做.net Remoting分布式开发的总结

来源:互联网 发布:淘宝如何入驻特色卖家 编辑:程序博客网 时间:2024/05/17 07:58

 

 

做.net Remoting分布式开发的总结

.net Remoting分布式开发比较适用于局网内的程序通信,特别是windows与windows、web与windwos等,充分体现.net Remoting的效率。

net Remoting宿住程序可以以Windows应用、Console应用及Windows服务应用,但个人推荐使用Windwos服务做为服务器端的宿住。优点如下:

  1. Windows服务比较稳定,不会因用户的注销而停止服务。
  2. Windows服务可以设置为自启动,对程序的运行和维护会带来很大的方便。
  3. 可以设置windows服务使用的帐户,通过Widnows帐户策略,可以保证服务程序的安全性。

.net Remoing服务器端与客户端的契约应以接口为标准,并把此接口独立为单个DLL,方便程序的部署与维护。

服务器端可以实现多个接口,并以URI进行标识;客户端可以通过不同的URI生成不同的接口代理,实现不要同的功能。 

.net Remoting可以使用Tcp/Http/Ipc及自定义不同的通信协议,个人建议使用Tcp为好。如果服务器与客户端部署在同一机器,可使用Ipc通信协议。

 需要在服务器端与客户端通信的对象需要进行序列化,以属性[Serializable]标识即可。

服务器端程序在实现接口的同时,必须继承MarshalByRefObject类。

服务器端的Remoting配置应在config配置文件中实现,节点为:<system.runtime.remoting>,同在在启动程序中写入如下代码:

 

 

客户端的URI标识也应在config中标识,写在节点<appSettings>中即可。代码实现如下:

 

.net Remoting解决方案目录个人建议如下:

解决方案

  • Inerface接口项目(类库):此项目中包括所有的接口定义、需要序列化对象的定义等,不包括任何实现逻辑。
  • Services实现(类库,引用Inerface):此项目主要实现Inerface接口,包括所能的实现逻辑。
  • 宿住程序(Windows、Console或Windows服务),此项目主要实现服务的配置及注册。配置一般放在app.config中,
  • 在程序的启动入口只需要写入“RemotingConfiguration.Configure(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile, false);”
  • 代码及其他需要实现的功能,如记录服务启动日志等。
  • 客户端(引用Inerface):客户端可包括任何类型的项目,如Asp.net Windows Console等。