.Net下开发COM+组件
2007-11-02 18:30
204 查看
一、问题的提出
1、最终用户的每次请求,都将读取Mapping文件--可以通过缓存解决;
2、子系统需要不断的写入Mapping文件--也可以先写入内存然后批量写入文件解决;
二、分析解决问题
由于分别有2个或更多子系统需要对同一文件进行读写操作,而客户端又有很大的并发性,所以极可能出现读写冲突或错误,也必将影响系统的性能。
通过调用共同的进程外组件的方式来读写文件;而这个共同的进程外组件只有在自身启动的时候把文件内容load到内存,当文件有变化时更新内存。
三、实例剖析
1、首先新建一个类库。(在我的项目里叫ClassLibrary1) 它会生成两个文件,AssemblyInfo.cs和Class1.cs
2、添加引用(System.EnterpriseServices )
3、回到Class1.cs:
[ObjectPooling(MinPoolSize=0, MaxPoolSize=1)]
[JustInTimeActivation(true)]
[ClassInterface(ClassInterfaceType.AutoDual)]
public class Class1:ServicedComponent
{
public Class1()
{
}
protected override void Construct(string constructString)
{
base.Construct(null);
}
protected override void Activate(){}
protected override void Deactivate(){}
protected override bool CanBePooled(){return true;}
protected override void Dispose(bool disposing)
{
base.Dispose(disposing);
}
public string visit(string name)
{
return "欢迎 " + name;
}
}
5、注册
E:/Test/ClassLibrary1> sn -k ClassLibrary1.snk
6、强名称生成完后,回到程序中,在AssemblyInfo.cs中最后几排,把文件路径写进去[assembly: AssemblyKeyFile("../../ClassLibrary1.snk ")]
7、生成解决方案,服务器就构建完成!
打开我的电脑,控制面板,管理工具,组件服务,com+应用程序,现在我们可以看到com+中多了个,ClassLibrary1这个就是刚所建的服务器。
8、客户端。
建一个winfrom来调用ClassLibrary1
加入引用:
using System.EnterpriseServices;
using XMLOperate;
在客户端要引用的地方new 一下就可以直接用其中的方法了!
1、最终用户的每次请求,都将读取Mapping文件--可以通过缓存解决;
2、子系统需要不断的写入Mapping文件--也可以先写入内存然后批量写入文件解决;
二、分析解决问题
由于分别有2个或更多子系统需要对同一文件进行读写操作,而客户端又有很大的并发性,所以极可能出现读写冲突或错误,也必将影响系统的性能。
通过调用共同的进程外组件的方式来读写文件;而这个共同的进程外组件只有在自身启动的时候把文件内容load到内存,当文件有变化时更新内存。
三、实例剖析
1、首先新建一个类库。(在我的项目里叫ClassLibrary1) 它会生成两个文件,AssemblyInfo.cs和Class1.cs
2、添加引用(System.EnterpriseServices )
3、回到Class1.cs:
[ObjectPooling(MinPoolSize=0, MaxPoolSize=1)]
[JustInTimeActivation(true)]
[ClassInterface(ClassInterfaceType.AutoDual)]
public class Class1:ServicedComponent
{
public Class1()
{
}
protected override void Construct(string constructString)
{
base.Construct(null);
}
protected override void Activate(){}
protected override void Deactivate(){}
protected override bool CanBePooled(){return true;}
protected override void Dispose(bool disposing)
{
base.Dispose(disposing);
}
public string visit(string name)
{
return "欢迎 " + name;
}
}
5、注册
E:/Test/ClassLibrary1> sn -k ClassLibrary1.snk
6、强名称生成完后,回到程序中,在AssemblyInfo.cs中最后几排,把文件路径写进去[assembly: AssemblyKeyFile("../../ClassLibrary1.snk ")]
7、生成解决方案,服务器就构建完成!
打开我的电脑,控制面板,管理工具,组件服务,com+应用程序,现在我们可以看到com+中多了个,ClassLibrary1这个就是刚所建的服务器。
8、客户端。
建一个winfrom来调用ClassLibrary1
加入引用:
using System.EnterpriseServices;
using XMLOperate;
在客户端要引用的地方new 一下就可以直接用其中的方法了!
相关文章推荐
- .net下开发COM+组件
- .net下开发COM+组件
- .net下开发COM+组件
- 【干货】.NET开发通用组件发布(三) 简易数据采集组件
- .net组件开发--DesignerSerializationVisibility
- 基于组件的.NET软件开发(1)
- 开发COM+组件需要注意的几个地方
- 深入Lumisoft.NET组件开发碰到乱码等问题的解决方法
- 使用.Net图表开发工具JDash.Net添加组件
- 在.net开发中使用Log4Net组件
- N-Tiers开发方式(如何使用VB.NET撰写COM+组件)
- .NET平台常用的开发组件
- [VB开源]KillIt :ASP/COM+组件开发辅助软件
- .NET面试题 – 组件开发人员 & XML开发人员
- .NET开发中的事务处理大比拼 之 企业级服务COM+事务 (转)
- 10.15俺有个关于.net组件开发的讲座
- 在.net应用程序中使用用户控件-.NET教程,组件控件开发(转载)
- 为.net中的ListBox控件添加双击事件-.NET教程,组件控件开发
- 在.net开发中使用Log4Net组件
- 使用C#开发COM+组件