C#103课的主要内容

今天主要学习了一下内容:

        1.NET Framework 高级开发

外接程序和扩展性

管理

异步编程设计模式

.NET Framework 应用程序中的缓存

清理非托管资源

动态语言运行时概

动态源代码生成和编译

垃圾回收

发出动态方法和程序集

互操作性

延迟初始化

Managed Extensibility Framework 概述

操作和惯性

.NET Remoting

Network Programming

.NET Framework 中的并行编程

反射

可靠性

Serialization

线程处理

XAML 服务

XML Web Services Created Using ASP.NET and XML Web Service Clients

2下面介绍个章节的详细内容:

          外接程序和扩展性

.
本文档已存档,并且将不进行维护。
推荐的版本

外接程序和扩展性外接程序为宿主应用程序提供扩展的功能或服务。 .NET Framework 提供了一个编程模型,编程人员可以使用该模型开发外接程序并在外接程序的宿主应用程序中激活它们。 该模型通过在宿主与外接程序之间构造一个通信管线来实现这一点。 该模型是通过使用System.AddInSystem.AddIn.HostingSystem.AddIn.Pipeline 和 System.AddIn.Contract 命名空间中的类型来实现的。

本概述包含以下几节:

           外接程序模型

           区分外接应用程序和宿主

           相关主题

               外接程序模型

         外接程序模型包含一系列的段,这些段组成负责外接程序和宿主之间所有通信的外接程序管线(也称为通信管线)。 管线是在外接程序与外接程序宿主之间交换数据的段的对称通信模型。 在宿主和外接程序之间开发这些管线段可以提供必需的抽象层,用于支持外接程序的版本管理和隔离。

外接程序管线

这些管线段的程序集不需要在同一应用程序域中。   可以将外接程序加载到其自己的新应用程序域、现有的应用程序域中,甚至加载到宿主的应用程序域中。   可以将多个外接程序加载到同一应用程序域中,从而使外接程序可以共享资源和安全上下文。

外接程序模型支持并建议在宿主和外接程序之间有一个可选边界,这个可选边界称为隔离边界(也称为远程处理边界)。 此边界可以是应用程序域或进程边界。

管线中间的协定段加载到宿主的应用程序域和外接程序的应用程序域。 协定定义宿主和外接程序之间用于互相交换类型的虚方法。

若要通过隔离边界进行传递,则类型必须或者是协定类型,或者是可序列化类型。 非协定或非可序列化类型的类型必须由管线中的适配器段转换为协定。

管线的视图段是抽象基类或接口,用于向宿主和外接程序提供一个它们共享的、由协定定义的方法的视图。

下面介绍外接程序模型的功能。

独立的版本控制

外接程序模型允许宿主和外接程序独立进行版本控制。 因此,使用外接程序模型可以实现以下方案:

           创建一个适配器,该适配器使宿主能够使用为以前版本的宿主生成的外接程序。

           创建一个适配器,该适配器使宿主能够使用为以后版本的宿主生成的外接程序。

           创建一个适配器,该适配器使宿主能够使用为其他宿主生成的外接程序。

发现和激活

可以使用表示某个信息存储区中发现的外接程序的集合中的标记来激活外接程序。 外接程序是通过搜索对宿主的外接程序视图进行定义的类型找到的。 您还可以通过定义外接程序的类型发现特定的外接程序。 信息存储区包含两个缓存文件:管线存储区和外接程序存储区。

.

隔离级别和外部进程

外接程序模型支持外接程序与其宿主之间或者不同外接程序之间的若干隔离级别。 从最低的隔离程度开始,这些级别如下所述

             外接程序与宿主运行在同一应用程序域中。 不建议使用此隔离级别,其原因是您失去了使用不同应用程序域时获取的隔离和卸载功能。 

            多个外接程序加载到同一应用程序域,并且该应用程序域不同于宿主使用的应用程序域。 

           每个外接程序以独占形式加载到其自己的应用程序域。 这是最为常见的隔离级别。

           多个外接程序加载到外部进程中的同一应用程序域。

          每个外接程序以独占形式加载到外部进程中其自己的应用程序域。 这是一种隔离程度最高的方案。

生存期管理

由于外接应用程序模型跨应用程序域和进程边界,因此自行进行垃圾回收不足以释放和回收对象。 外接程序模型提供使用标记和引用计数的生存期管理机制,通常不需要进行额外编程。.

区分外接应用程序和宿主

外接程序和宿主的区别仅在于宿主激活接程序。 宿主可以是两个程序中较大的一个,例如,字处理应用程序和其拼写检查器;宿主也可以是两个程序中较小的一个,例如,嵌入媒体播放器的即时消息客户端。 外接程序模型既在客户端方案中支持外接程序,也在服务器方案中支持外接程序。服务器外接程序的示例包括提供具有病毒扫描、垃圾邮件筛选器和 IP 保护功能的邮件服务器的外接程序。 客户端外接程序示例包括字处理的引用外接程序、图形程序和游戏的专用功能以及本地电子邮件客户端的病毒扫描



你可能感兴趣的:(C#103课的主要内容)