一、.NET Framework是什么
他是一个集成在Windows中的组件,支持生成和运行下一代应用程序与XML Web Services。然而微软创建一套.Net Framework框架是为了规范基于.NET开发平台的统一性。那么这个框架的设计主要完成了那些目标呢?
1.提供一致的面向对象编程环境。(共用同一套CLR)
2.提供软件部署和版本控制冲突最小化的代码执行环境。(共用同一套CLR)
3.提供可提高代码执行安全性的代码执行环境。(托管代码及其编译,可以避免许多典型的导致安全黑洞和不稳定程序的编程错误。)
4.提供可消除脚本环境或解释环境的性能问题的代码执行环境。(所有程序都先通过CLR进行代码的翻译工作,翻译成为一个可被移植的PE程序)
二、.NET framework的两个主要组成部分
第一个组成部分:公共语言运行时
公共语言运行时功能:
执行时管理代码的代理。
内存管理
线程管理
远程处理等核心业务。
强制实施严格的类型安全以及可提高安全性和可靠性的其他形式的代码准确性。
以运行时为目标的代码称为托管代码,而不以运行时为目标的代码称为非托管代码。
安全性;取决于包括托管组件的来源在内的一些因素,托管组件被赋予了不同程度的信任。可以在运行时强制实施代码访问安全。运行时的安全性功能就使用通过Internet部署的合法软件就能够具有特别丰富的功能。
托管和非托管代码之间的互操作性使开发人员能够继续使用所需的COM组件和DLL。
什么是公共语言运行时?
使用基于公共语言运行时的语言编译器开发的代码称为托管代码。公共语言运行时使用元数据来完成,查找和加载类,在内存中安排实例,接卸方法调用,生成本机代码,强制安全性,以及设置运行时上下文边界。语言交互的组件和应用程序。可以定义一个类,然后使用不同的语言从原始类派生出另一个类或调用原始类的方法。
什么是托管执行过程?
1.选择编辑器。
如果您的组件必须完全能够被其他语言编写组件使用,您的的导出类型必须只公开公共语言规范(CLS)中包括的语言功能。
2.将代码编译为MSIL。编译代码为Mircrosoft中间语言MSIL,并生成所需的元数据。
当编译为托管代码时,编译器将源代码翻译为Microsoft中间语言(MSIL),MSIL和元数据包含在一个可移植可执行PE文件中,此文件基于并扩展过去用于可执行内容的已发布Microsoft PE和通过对象文件格式COFF。
3.将MSIL编译为本机代码。实时(JIT)编译器将MSIL编译为本机代码。
在程序运行时,JIT编译在加载和执行程序集内容的过程中根据需要将MSIL转换为本机代码。
JTI编译在执行过程中根据需要转换MSIL并将生成的本机代码存储在内存中,以提供该进程上下文中的后续调用访问。
代码验证:
对类型的引用与被引用的类型严格兼容。
在对象上只调用正确定义的操作。
标识与声称的要求一致。
4.运行代码。
公共语言运行时提供使托管代码执行能够发生以及可在执行期间使用的各种服务的基础结构。
第二个组成部分:.NET Framework类库
编写C#程序的时候需要using的类库dll文件。我们可以usingVS内部的开发环境提供的dll,我们也可以using自己编写的dll文件。