学习.NET:NET组件是什么

学习.NET:NET组件是什么

ID:38651938

大小:39.50 KB

页数:4页

时间:2019-06-17

学习.NET:NET组件是什么_第1页
学习.NET:NET组件是什么_第2页
学习.NET:NET组件是什么_第3页
学习.NET:NET组件是什么_第4页
资源描述:

《学习.NET:NET组件是什么》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、.NET组件是什么组件的定义有多种,但最常见有几种。组件是可互换的软件部分,它既是工业化系统的产物,也是工业第系统的动力。在.NET平台的组件层中,组件是以Assemblies的形式创建的。.NET平台创建了组件,并将组件作为其基本的元素。从本质上看,.NET平台组件是一个用任何.NET语言以插件形式开发的可互换的软件部件,它可以与其他应用程序实现互操作。使用COM+服务的.NET组件被称作服务化组件,以示与.NET中标准的可管理组件的区别。强命名.NET组件下面我们将讨论强命名组合体(.NET组件)是什么。当开发可配置类时,

2、它必须被编译。在编译代码后,有二方面的事情需要考虑。第一,COM+集成要求被编译的组合体必须被强命名。我们必须通过运行被称为sn.exe的强命名工具生成一个密码,以生成一个强命名的组合体。一旦编译了强命名的组合体,必须使用System.Reflection名字空间中一个被称作AssemblyKeyFileAttribute的组合体级的属性调用存储在文件中的该密码。#usingusingSystem;usingSystem::EnterpriseServices;usingSystem::Reflection;[assembly

3、:ApplicationName("FirstApp")][assembly:ApplicationActivation(ActivationOption.Library)]//AssemblyKeyFile属性调用由sn.exe生成的密码文件,组合体将拥有强命名[assembly:AssemblyKeyFile("thiskeyfile")]namespaceESExample{???}第二,在编译强命名的组合体时,必须调用输出System.EnterpriseServices名字空间中类型的组合体━━System.Ente

4、rpriseServices.dll。下面是生成密码和编译可配置类的命令:sn-kthiskeyfileCl/out:ThisExample.dll/t:library/r:System.EnterpriseServices.dllFirstCfgClass.cpp在COM+中注册.NET组件COM+有二种注册方式:动态方式和手工方式。这二种方式都相当简单,但对于本例,动态方式是合适的。动态注册方式还有一些要求:1、组合体必须是强命名的。2、组合休可以不在全局性的组合体缓冲区中。3、组合体必须被可管理的(.NET)客户端使用。

5、4、组合体激活类型必须是Library。初看起来,似乎限制相当严格,但其实它包括多种情况。读者一定在想,激活类型必须是Library,但还没有创建过LibraryCOM+组件呢。在.NET中,服务组件的客户端在同一台计算机上,或者客户端将远程访问代理应用程序,以访问COM+组件。因此,纯.NET解决方案将在大多数情况下使用动态注册方式。在客户端第一次实例化服务化组件时,就会进行动态注册,而且对于每个版本的组合体而言,只会注册一次。我们需要注意COM+目录更新和组件第一次被访问之间在时间上的滞后。代码将跟踪内存中对象的数量以及在

6、一定的活动期间及其之后仍然有多少对象仍然是活动的。注意,在对对象进行初次调用后,系统中存在一个有5个对象的缓冲池。似乎是一旦一个对象被实例化,在有方法被调用之前,它一直是活动的。一旦有方法被调用,该对象就只在调用期间是活动的。这也提醒我们,在准备使用对象之前,尽量不要去招惹它们。移植的策略在决定将部分或全部现有的应用软件移植到.NET环境中,就需要决定哪种移植方法最适合你。本篇文章介绍了水平移植和垂直移植二种应用软件的移植方式。水平移植和垂直移植水平移植是指取代应用程序中的全部一个层。例如,可以选择取代基于Web的表示层中的A

7、SP代码或选择取代中间层中的COM代码。垂直移植指的是替换一个应用程序中所有n层中的一部分。组件设计本篇文章提出了一些与向.NET/COM移植和组件设计互操作性问题方面的普遍原则。通过互操作层在.NET和COM环境之间进行互操作时,CCW或RCW(依据调用的方向而不同)必须在二个环境之间的调用栈中对数据进行转化,有些数据类型无需转换。包括整型、长整型和浮点型数据类型在内的通用性数据无需转换,而非通用性数据则需要转换。VisualBasic的BSTR是非通用性数据类型的一个例子。在向.NET移植应用程序之前,应该在可管理性和非可

8、管理性代码之间尽量少地使用非通用性数据类型,原因是相关的转换代价将影响到应用程序的性能。通用数据类型大多数的数据类型在可管理性和非可管理性内存中的表示都相同,互操作层无需作特别的处理,由于在可管理和非可管理代码之间无需转换,因此这些数据类型被称作通用类型。整型和浮点型数据是通

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。