C#和.NET框架

第一章  C#和.NET

    本章内容

        在.NET之前

        进入Microsoft .NET

        编译成CIL

        编译成本机代码并执行

        CLR

        CLI

        缩写回顾

    1.1    在 .NET之前

            C#编程语言是为微软公司的.NET框架上的程序而设计的。本章将简要介绍.NET从何而来,以及它的基本架构。这只是为了确保你从正确的一步开始。

    1.1.1  20世纪90年代末的Windows编程

            这时大多数程序员使用VB、C或C++,一些C/C++程序员使用纯Win32API,但纯Win32API不是面向对象的,而且使用它的工作量很大,比MFC还大。大多数程序员在使用MFC(Microsoft Foundation Class,微软基础类库),MFC是面向对象的,但是它却不一致,并逐渐变得陈旧。其他的程序员开始转向了COM(Component Object Mode

l,对象组件模型),COM相对前两者概念简单,但它的实际代码复杂,并且需要很多丑陋的、不雅的底层基础代码。

    1.1.2  下一代平台的目标

            执行环境的目标:安全、多平台、性能;开发环境的目标:面向对象、一致的编程环境、使用行业标准进行通信、简化的部署等;

    1.2    .NET的时代来临

            2002年,微软发布了.NET框架的第一个版本,.NET框架是一种比MFC和COM编程技术更一致并面向对象的环境。

    1.2.1    .NET框架的组成

            .NET框架由三部分组成,如下图所示。

       (1)编程工具:IDE、编译器、调试器、网站开发服务端技术(ASP.NET,WCF等);

  (2)执行环境—CLR(公共语言运行库):内存管理、垃圾回收、即时编译等;

  (3)BCL(基类库):在.NET框架中使用的一个大的类库,也可以在程序中使用;

        1.2.2    大大改进的编程环境

        (1)面向的对象的开发环境、

          (2)自动垃圾收集、

          (3)互操作性、

          (4)不需要COM等;

    1.3    编译成CIL

        .NET语言的编译器接受源代码文件,并生成名为程序集(程序集要么是可执行的,要么是DLL)的输出文件。下图阐述了这个过程。

    1.4    编译成本机代码

            程序的CIL直到它被调用执行时才会被编译成本机代码,在运行时,CLR执行如下图所示的步凑。

    

        这里有两个名词需要理解:

  (1)托管代码:使用.NET框架编写的代码成为托管代码(Managed Code),需要CLR。

  (2)非托管代码:不在CLR控制下运行的代码,比如Win32 C/C++ DLL,称为非托管代码(Unmanaged Code)

      1.5    CLR

            毫无疑问,.NET框架的核心组件是CLR(公共语言运行时),它在操作系统的顶层,负责管理程序的执行

        1.6    CLI

        过去,各种不同语言的类型特征(例如,组成整数的位数对于不同的语言和平台就有很大差别)不一致,缺乏统一性。为了使不同语言编写的程序和库能够一起有序协作,必须要有一组标准

   CLI就是这样的一组标准,它把所有.NET框架的组件连接成一个内聚的、一致的系统。它展示了系统的概念和架构,并详细说明了所有软件都必须坚持的规则和约定。CLI的组成如下图所示:

            在CLI的众多组成部分中,最重要的是CTS和CLS。CTS(公共类型系统)定义了那些在托管代码中一定会使用的类型的特征,而CLS(公共语言规范)详细说明了一个.NET兼容语言的规则、属性和行为。

        1.7 本章思维导图




















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值