DotNET框架

1.1 .NET的诞生

        DotNET(以下称.NET)
        2002年,微软发布了.NET框架的第一个版本,称其实现了下一代系统的目标。.NET框架是一种比MFC和COM编程技术更抑制并面向对象的环境。

具备以下特点:
        多平台
        行业标准
        安全性

1.2 .NET框架组成

        .NET框架有三部分组成。执行环境诚为CLR(Common Language Runtime,公共语言运行库)
        CLR在运行时管理程序的执行

  包括以下内容:
        内存管理和垃圾回收
        代码安全验证
        代码执行、线程管理及异常处理

        编程工具涵盖了编码和调试的一切

  包括以下内容:
        Visual Studio集成开发环境(IDE  现最新版本Visual Studio2019)
        .NET兼容的编译器
        调试器
         站开发服务端技术,如ASP.NET

        BCL(Base Class Library,基础类库)是.NET框架使用的一个大的类库,而且可以在你的程序中使用

1.3新的开发环境

        ①面向对象的开发环境
                CLR、BCL和C#完全是面向对象的,并形成了良好的集成环境

        ②自动垃圾回收
                CLR有一项服务称为GC(Garbage Collector,垃圾收集器)自动管理内存

        ③互操作性
                .NET框架专门考虑了不同的.NET语言、操作系统或Win32DLL和COM之间的互操作性
                .NET语言的互操作性允许用不同的.NET语言编写的软件模块无缝地交互。
                    ■ 一种.NET语言写的程序可以使用甚至继承用另外一种.NET语言写的类,只需要遵循一定的规则即可
                    ■正因为能够很容易地集成不同编程语言生成的模块,.NET框架有时被称为是语言无关的
                .NET提供一种称为平台调用(platforminvoke,P/Invoke)的特性,允许.NET的代码调用并使用非.NET的代码。它可以使用标准Win32 DLL导出的纯C函数的代码,比如
Windows API
                .NET框架还允许与COM进行互操作。.NET框架软件组件能调用COM组件,而且COM组件也能调用.NET组件,就像它们是COM组件一样

        ④不需要COM
            .NET框架使程序员摆脱了COM的束缚。作为一个C#程序员,你肯定很高兴不需要使用COM编程环境,所有.NET对象都继承一个名为object的类。接口编程仍是.NET中的一个重要部分,但不再是中心主题了
                类型库 在COM中,类型信息作为.tlb文件保存在类型库中,它和可执行代码是分开的在.NET中,程序的类型信息和代码一起被保存在程序文件中。
                手动引用计数 在COM中,程序员必须记录一个对象的引用数目以确保它不会在错误的时间被删除。在.NET中,GC记录引用情况并只在合适的时候删除对象
                HRESULT COM使用HRESULT数据类型返回运行时错误代码。NET不使用HRESULT。相反,所有意外的运行时错误都产生异常。
                注册表 COM应用必须在系统注册表中注册。注册表保存了与操作系统的配置和应用程序有关的信息。NET应用不需要使用注册表,这简化了程序的安装和卸载。(但有功能类似的工具,称为全局程序集缓存—GAC)
                尽管现在不太需要编写COM代码了,但是系统中还是在使用很多COM组件,C#程序员有的时候需要编写代码来和那些组件交互

        ⑤简化的部署
            为.NET框架编写的程序进行部署比以前容易很多,原因如下:

        .NET程序不需要使用注册表注册,这意味着在最简单的情形下,一个程序只需要被复制到目标机器上便可以运行
        .NET提供一种称为并行执行的特性,允许一个DLL的不同版本在同一台机器上存在。这意味着每个可执行程序都可以访问程序生成时使用的那个版本的DLL

        ⑥类型安全性
                CLR检查并确保参数及其他数据对象的类型安全,不同编程语言编写的组件之间也没有问题
        ⑦基类库
            .NET框架提供了一个庞大的基础类库,很自然地,它被称为基类库(Base Class Library,BCL)(有时称为框架类库——Framework Class Library,FCL。)“在写自己的程序时,可以使用其中的类

        如下所示:
           通用基础类 这些类提供了一组极为强大的工具,可以应用到许多编程任务中,比如文件操作、字符串操作、安全和加密
           集合类 这些类实现了列表、字典、散列表以及位数组
           线程和同步类 这些类用于创建多线程程序
           XML类 这些类用于创建、读取以及操作XML文档

1.4编译成CIL

        .NET语言的编译器接受源代码文件,并生成名为程序集的输出文件

程序集要么是可执行的,要么是DLL
程序集里的代码并不是本机代码,而是一种名称为CIL(Common Intermediate Language,公共中间语言)的中间语言
程序集包含的信息中,包括下列项目:
        程序的CIL
        程序中使用的类型的元数据
        对其他程序集引用的元数据

编译过程

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年2月5日
下一篇 2020年2月5日

相关推荐