Wednesday 13 April 2005

COM+学习体会(一)

COM+的东西虽然用起来简单了一些,只要引用就可以,但实际上,如果想真正合适的一个引用的服务并不是很容易的,还是需要了解COM的知识的,COM世界博大精深,需要好好努力了!



写了第一小程序,调试经验如下:

1、程序集必须有一个强名称。

2、使用COM+的类必须是Public的,如果是私有的,将不能使用COM+服务。



导出COM+的两种方式:

1、Server Application:导出组件以及其配置,并配置到另一台机器上。以*.MSI的格式,生成Install文件。(使用于从开发的机器转移到使用的机器上。)

2、Client Proxy:仅仅导出代理,可以使其在另一台机器远程使用本机的服务。(并不是真正的导出组件)



COM+ Catalog编程实现:



Com+ Admin Library用于负责编程实现COM+ Catalog的功能。



简单的企业服务安装模式:

System.EnterpriseServices.RegistrationHelper接口也可以提供简单的COM+注册服务。当然功能少很多。

简单看了一下,主要提供初始化一个组件,Install,以及deInstall



一个最简单的程序:



namespace ER

{

    
/// <summary>

    
/// Class1 的摘要说明。

    
/// </summary>


    public class  Register

    
{

        
private string path=@"c:\COMTest.dll";

        
private string appId;

        
private string typeId;

        
public  Register()

        
{

            

        }


        
public void Install()

        
{

            System.EnterpriseServices.RegistrationHelper rh
=new RegistrationHelper ();

              rh.InstallAssembly (path,
ref appId,ref  typeId,System.EnterpriseServices.InstallationFlags.Install);

         }


    }


}








以下是其测试代码:

使用了NUNIT2.2







using System;

using NUnit.Framework;



namespace ER

{

    
/// <summary>

    
/// TestRegister 的摘要说明。

    
/// </summary>


    [TestFixture]

    
public class TestRegister

    
{

        
public TestRegister()

        
{

 

        }


        [Test]

        
public void test()

        
{

            Register registerObj
=new Register ();

            registerObj.Install();

        }


    }


}