前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C#图解教程第一章 C#和.NET框架

C#图解教程第一章 C#和.NET框架

作者头像
房上的猫
发布2018-03-14 12:32:36
1.2K0
发布2018-03-14 12:32:36
举报
文章被收录于专栏:个人随笔个人随笔

1.1 在.NET之前  C#发音:see shap  1.1.1 20世纪90年代后期的Windows编程   20世纪90年代后期各语言缺点:    1.纯Win32 API不是面向对象的,而且工作量比MFC的更发    2.MC是面向对象的,但是他却不一致,并逐渐变得陈旧    3.COM虽然概念上简单。但实际代码复杂,而且需要更多丑陋的,不雅的底层代码   共同缺点:    主要针对桌面程序而不是Internet的开发 1.2 进入Microsoft.NET  .NET框架是一种比MFC或COM编程技术更一致并面向对象的环境  特点   多平台:可以在广泛的计算机上运行,包括从服务器,桌面机到PDA和移动电话   行业标准:使用行业标准的通信协议,比如XML,HTTP,OAP和WSDL   安全性:提供更加安全的执行环境(即使有来源可疑的代码存在)  1.2.1 .NET框架的组成

   1.编程工具--产生可执行代码(code)-->公共语言运行库(CLR)--使用-->基类库(BCL)    2.编程工具--使用-->基类库(BCL)   CLR(执行环境):    Common Language Runtime,公共语言运行库    在运行期管理程序的执行,包括内容:     内存管理     代码安全验证     代码执行     垃圾收集    编程工具涵盖了编码和调试需要的一起,包括:     Visual Studio集成开发环境     .NET兼容的编译器(例如:C#,VB.JScript和托管的C++)     调速器     服务器端改进,比如ASP.NET   BCL(是.NET框架使用的一个大的类库):    Base Class Library,基类库    可以在程序中使用  1.2.2 大大改进的编程环境   1.面向对象的开发环境    完全面向对象    形成良好的集成环境    为本地程序和分布式系统提供了一致的,面向对象的编程模型    为桌面,移动,Web开发提供了软件开发接口,涉及的对象范围广   2.自动垃圾收集    CLR有一项服务为GC(Garbage Collector,垃圾收集),"自动管理内存"    自动从内存中删除程序不再访问的对象    释放内存和检查内存泄漏   3.互操作性    允许在不同的.NET语言编写的软件模块间无缝地交互     一种.NET写的程序可以使用甚至继承用另外一种.NET语言写的类(只要遵循一定的规则)     很容易地集成不同编程语言生成的模块(有时被称为:"语言无关的")    平台调用(platfrom invake,P/Invoke)     允许调用并使用非.NET的,但通过Win32 DLL导出的纯C函数的代码(比如Windows API)    允许与COM的互操作     互相调用   4.不需要COM    .NET框架摆脱了COM的束缚,不需要使用COM   5.简化的部署    更加容易    不需要使用注册表注册,一个程序只需要被复制到目标机器便可以运行    并行执行     允许一个DLL的不同版本在同一台机器上存在   6.类型的安全性    CLR检查并确保及其他数据对象的类型安全,即使是在不同编程语言编写的组件之间   7.基类库    提供了一个人广泛的基础类库    BCL/FCL     通用基础类:一组极为强大的工具,比如字符串操作,安全和加密     集合类:实现了列表,字典,散列表以及位数组     线程和同步类:用于创建多线程程序     XML类:创建,读取以及操作XML文档  1.3 编译成CIL   程序集代码:非本机代码,,,CIL(Common Intermediate Language,公共中间语言)   程序集包含:    CIL    使用的类型的元数据    对其他程序引用的元数据    CIL术语:     IL/MSIL  1.4 编译成本机代码并执行   程序的CIL调用时才会被编译   CLR执行步骤:    检查程序集的安全特性    在内存中分配空间    可执行代码发送给实时编译器,把其中一部分编译成本机代码   不被调用的代码不会被编译成本机代码,被调用的代码只被编译一次   CIL-->本机代码 CLR在它运行时进行管理(释放无主内存,检查数组边界,检查参数类型和管理异常等)    术语:     托管代码:      为.NET框架编写的代码      需要CLR     非托管代码:      不在CLR控制之下运行的代码,比如:Win32 C/C++ DLL   本机映像生成器或Ngen:    可以把一个程序集转换成当前处理器的本机代码(免除了运行时的JIT编译过程)   编程的执行综述:

1.5 CLR  .NET框架的核心组件,在操作系统的顶层并管理程序的执行

 提供服务:   自动垃圾收集   安全和认证   通过访问BCL得到广泛的编程功能 1.6 CLI  有序和协作:标准  公共语言基础结构  把所以.NET框架的组件连结成一个内聚的,一致的系统  展示了系统的概念和架构  必须坚持的规则和约定   组成:

 开放的国际标准规范  CLI的重要组成部分:   1.公共类型系统(CTS)    定义了那些托管代码中一定会使用的类型的特征:     CTS定义了一组丰富的内置类型,以及每种类型确定的,详细的特性     .NET兼容编程语言提供的类型通常映射到CTS中已定义的内置类型集的某一个特殊子集     *CTS最重要的特征之一是所有类型都继承自公共的基类--object*   2.公共语言规范(CTS)    详细说明了一个.NET兼容编程语言的规范,属性和行为    其主题包括数据类型,类结构和参数传递 1.7 缩写  1.程序集   公共中间语言:    CIL    IL    MSIL  2.公共语言基础结构(CLI)   公共类型系统:    CTS   公共语言规范:    CLS  3.公共语言运行库(CLR)   垃圾收集:    GC   实时编译器:    JIT   基类库:    BCL

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档