设为首页收藏本站language 语言切换
查看: 1240|回复: 0
收起左侧

如何在.NET中创建服务型组件

[复制链接]
发表于 2010-2-25 10:26:49 | 显示全部楼层 |阅读模式
<p >对于在WINDOWS上作过一些开发的程序员来说,COM+应该是不会感到陌生的吧。COM+代表了Microsoft在COM技术平台上的最高水平,也是Microsoft藉以和J2EE抗衡的支点(J2EE里的核心思想其实也从COM+的前身MTS中借鉴了许多)。事实上,COM+确实是非常出色的产品,对于中等难度的项目,用VB6加COM+的确是一个非常快速高效的技术组合。更值得一提的是COM+是完全免费的。只要你拥有了WINDIWS 2000或是XP。<p >在.NET推出后,人们似乎忘记了COM+。但如果你留心一下Microsoft技术发展的动向,你就不难发现在今后一到两年内,COM+不会退出WINDOWS舞台。它的许多服务功能还是.NET在短时间内无法替代的。比如说,COM+提供的实例管理(Instance management),交易处理(Transactions),断开连接的异步队列组件(Disconnected asynchronous queued components),基于角色的安全机制(Role-based securiry)等等。所以在今后一段时间内将是新旧技术结合,COM逐渐向.NET过渡的情形。在这种大的技术背景下,学习如何用.NET来编写在COM+中运行的组件还是非常有意义的。<p >本文将结合一个小的例程向大家描述一下开发SERVICED COMPONENTS的基本流程、技术要点以及实际开发工作中应遵循的一些基本原则。<p ><center><font color="#000099"><strong>SERVICED COMPONENT简介</strong></font></center><p >SERVICED COMPONENT是指用任何和.NET CLS相兼容的程序语言开发的类。它必须直接或间接的派生于System.EnterpriseService.ServicedComponent这一基类。这样开发的类可以在COM+的环境中运行,调用COM+的服务。在.NET开发环境里,可供调用的COM+服务有<p >· Automatic Transaction Processing )(自动交易处理)<p >· COM Transaction Integrator (COMTI) (COM交易集成)<p >· Compensating Resource Managers (CRMs) (补偿性资源管理者)<p >· Just-In-Time Activation(即时激活)<p >· Loosely Coupled Events(松散连接事件)<p >· Object Construction (对象创建)<p >· Object Pooling(对象循环)<p >· Queued Components(队列组件)<p >· Role-Based Security(基于角色的安全)<p >· Shared Properties(共享的属性)<p >· Synchronization (Activity) (同步)<p >· XA Interoperability (XA的互操作)<p ><center><font color="#000099"><strong>SERVICED COMPONENT的开发流程</strong></font></center><p ><b>创建类库文件(Class Libray)</b><p >如例程所示,用户编写的类它必须直接或间接的派生于ServicedComponent基类<p ><ccid_nobr><table width="550" border="1" cellspacing="0" cellpadding="2" bordercolorlight = "black" bordercolordark = "#FFFFFF" align="center"><tr><td bgcolor="e6e6e6" class="code"><pre><ccid_code>//例程的文件名是Bank.csusing System.EnterpriseServices;using System.Runtime.CompilerServices;using System.Reflection;namespace BankComponent{    //继承ServicedComponentpublic class Account : ServicedComponent   {      public bool transfer(int from_Account, int to_Account, double amount)      {                //银行转帐的实现细节,这里从略                return true;      }    }}</ccid_code></pre></td></tr></table></ccid_nobr><p ><b>生成钥匙文件(Key)</b><p >在COM+环境里运行的SERVICED COMPONENT必须是被签署的(有STRONG NAME),所以你开发的组件要用"钥匙"文件来签署。钥匙文件可以用.NET提供的工具sn.exe来生成。最简单的方法是从VISUAL STUDIO提供的COMMNAD PROMPT打开一个DOS窗口,执行如下命令:<p ><center><img  src="http://www.hh010.com/upload_files/article/244/9_yognhh44468.jpg"></center><p align="center"><font color="FF0000" >1</font>23<span class="content01">下一页&gt;&gt;</span></p></p>
您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-4-10 15:49 , Processed in 0.085724 second(s), 24 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表