正文

dotnet框架的学习笔记(不断更新)2007-09-17 13:43:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/goalbell/29464.html

分享到:

SOAP---简单对象访问协议
意思:用来描述通过HTTP协议发送的特殊格式的XML。
Passport
意思:是一种用户认证服务。
目的是:为了保证信息访问的安全。
.NET Framework包含两个部分:
CLR--通用语言运行时
FCL--.NET框架类库

代码重用、代码专业化(code specialization)
CIL--通用中间语言--编译器编译面向.NET框架的源代码时所产生的
CTS--通用类型系统--CLR要求所有面向它的语言都要遵循的规范
CLS--通用语言规范--描述了一个语言要和其他的语言很好地集成在一起所必须要遵循的规范。
类型安全--系统所分配的对象总能够以正确方式被访问;应用程序执行流程只能向已经确知的位置传递(真正的方法入口点)。
异常--将恢复代码和真正的应用程序逻辑代码分离开来实现。
CAS--代码访问安全。
IL(Intermediate Language)中间语言汇编器。

一、将源代码编译为托管模块


托管模块是一个需要CLR才能执行的标准windows可移植可执行(portable executable)简称PE文件。

托管代码(managed code)

托管模块的组成部分:PE表头、CLR表头、元数据(metadata)、中间语言(IL)代码

元数据是一个数据表的集合,一些用于描述托管模块中所定义的内容(比如所定义的类型和它们的成员),一些用于描述托管模块中所引用的内容
(比如被引用的类型和它们的成员)。
类型库、接口定义语言(IDL)

MFC(Microsoft Foundation Class)

二、将托管模块组合为程序集

程序集(assembly)是一个或多个托管模块,以及一些资源文件的逻辑组合。程序集是组件复用,以及实施安全策略和版本策略的最小单位。可以是一个文件或多个文件。

清单(manifest)的数据块,是一些元数据表的集合。描述了组成程序集的文件。

程序集连接器(AL)

自描述(self-describing)

三、加载通用语言运行时
 MSCorEE.dll是微软组件对象运行时执行引擎
 JMP指令
 托管模块中包含着元数据和IL代码。
 just-in-time(JIT),JITCompiler将一个方法的IL代码编译成本地CPU指令。

四、IL与代码验证
验证过程(verification ),安全代码是那些可验证安全的代码,绑定(bind)与探测(probe)规则,虚拟地址空间,应用程序域(AppDomain)代表一个托管应用程序。

五、.NET框架类库
 WebService(web服务)使我们可以非常容易地通过互联网来进行方法调用。
 WebForms应用程序做一些数据库查询与web服务调用,然后对返回的信息进行组合与选取,最后通过一个HTML的用户界面将信息表示在浏览器中。
 WindowsForms是windows图形用户界面(GUI)应用程序。
 windows控制台应用程序。
 windows服务。创建出由windows服务控制管理器(Server Control Manager,简称SCM)控制的服务程序。
 组件库。创建出单独组件类型,并且可以应用于前面提到的各种类型的应用程序。
 
六、通用类型系统

 类型为应用程序和组件提供了它们所需的功能,并做为一种机制使得一种语言编写的代码可以和另一种语言编写的代码进行无缝地集成。     
 通用类型系统(CTS)描述类型的定义与行为。
 CTS定义了类型可见性和访问类型成员的一些规则。
 Public对于任何程序集都是可见的。
 Assembly(internal)对于其所定义的程序集中的代码可见。
 Private方法能够被同一类型中的其他方法调用。
 Family方法可以被派生类型中的代码调用,而不管他们是否位于同一个程序集中。(protected)
 Family与assembly方法只可以被位于同一个程序集中的派生类型中的代码调用。(IL汇编语言可以)
 Assembly方法可以被同一个程序集中的任何代码调用。(internal)
 Family或assembly方法可以被任何程序集中的派生类型的代码调用,也可以被同一程序集中的任何类型调用。(protected internal)
 Public方法可以被任何程序集中的任何代码调用。
 所有的类型都必须(直接或间接)继承自预定义类型System.Object。
 
七、通用语言规范(CLS)
   CTS描述了面向CLR的编译器必须支持的一个最小特性集合。
   索引器、构造器、析构器、重载操作符、转换操作符。

八、与非托管代码互操作
    CLR支持三种互操作:托管代码调用DLL中的非托管函数(P/Invoke平台调用DLL中的函数);
    托管代码使用现存的COM组件(非托管组件作为COM服务器);非托管代码使用托管类型(托管类型作为COM服务器)。
    内联汇编语言。C++ 签名编码转换()mangle
        
----------------------------------------------------------------------------------------------------------------------

九、.NET框架部署目标
  DLL Hell(DLL地狱)
  windows支持两种类型的应用程序--控制台用户界面(CUI)应用程序和图形用户界面(GUI)应用程序。
  托管PE文件包含PE表头、CLR表头、元数据和IL代码。
  元数据引用表
  代码安全访问(code access security)
 
十、将类型生成为模块

    元数据分为定义表、引用表和清单表。
    定义表:ModuleDef、TypeDef、MethodDef、FieldDef、ParamDef、PropertyDef和EventDef。
    引用表:AssemblyRef、ModuleRef、TypeRef、MemberRef

十一、将模块组合为程序集

 程序集是包含一个或多个类型定义文件和资源文件的集合。
 清单是另外一组元数据表的集合,其中主要包含了程序集中一部分文件的名称。
 程序集的特性:程序集定义了可重用的类型;标识有一个版本号;可以包含与之相关的安全信息。
 活动辅助类型(Active Accessibility)
 codeBase元素标识了一个可以找到程序集所有文件的URL地址。
 程序集是一个可重用、可实施版本策略和安全策略的单元。它允许我们将类型和资源划分到不同的文件中。
 清单元数据表:AssemblyDef、FileDef、ManifestResourceDef、ExportedTypesDef

十二、使用VS.NET IDE为项目添加程序集引用

十三、使用程序集链接器(Assembly Linker)
 卫星程序集(satellite assembly)用来解决本地化问题。

十四、在程序集中包含资源文件

 

 

阅读(2468) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册