拼吾爱程序人生

首页 » .Net编程 » Visual Studio.NET » Remoting系统构思及分布式注册
cobra - 2008-9-10 23:49:00
上午刚好有空,写了简单的Remoting程序,并且把服务器端注册成windows service,文章后面附上相关代码。

      测试通过后,对系统的架构布局有了新的认识。

      在以前,做WEB系统都是参考微软给的示例进行设计部署,一个系统经常分了好几层,简而言之,纯粹为了分层而分层。那时自己也觉得修改维护挺麻烦,特别是做的WEB系统也不是很大,一般也就四五十个表左右的系统。

      虽然如此,我还是坚持采用多层结构,并且层与层之间的设计越来越规范,基本上可以做到当修改其中某个层的内容时,不会对其他的有影响。设计的结构也越来越复杂,现在随便设计一个WEB系统,十来层正常的,就好象Petshop一样,第四版比第三版多了N个层。

      当然,如果仅仅是WEB系统,倒没有必要这么复杂。这也是为了以后公司可能会出现相关的需求,比如说C/S结构的系统,或者要提供接口给其他兄弟单位。就好象现在SOA就非常流行,那么WEB Service ,Remoting应用就在所难免了,这样一旦系统改变,我仅仅需要新增一个项目,把接口继承过来即可。甚至可以编写程序自动生成WEB Service或者Remoting的类文件,去年就差点写这么个自动工具,后来接口比较统一,数量也不多,所以就取消了。当经历过这些后,多层结构的优势我才真正感觉出来。

      废话少说,下面就讲Remotintg的简单实现以及服务器端的windows service注册,本文是以VS2005做示范的,VS2008里已经有了WCF,所以不提供windows service项目模板了。

    首先,服务器端的代码,基本上就是建立一个tcp或者http之类的通道:

Code


其次,建立接口,这样是为了在客户端时不需要把封装业务流程的dll安装过去,而只需要接口即可,安全起见,并且业务逻辑有变也不会影响客户端程序。

Code


第三,建立业务类:

Code


第四,建立客户端:

Code


这个时候,基本上可以运行了,如果大家有.Net的QuickStart的话,可以查看到,我服务器端和客户端的代码都是从那里复制过来的。
但是如果把服务器端的程序注册到windows service,我之前以为很简单,弄个安装项目,结果没有成功,查资料才明白,还需要在服务端的项目文件里加一个Install class:

Code


最后用cmd命令安装服务器端即可,当然你也可以选择新建一个安装项目:
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe WindowsService1.exe
net start WindowsService1
如果想删除服务,则运行
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe WindowsService1.exe /u

现在大功告成,只需要添枝加叶,就可以成为一个分布式的多层系统。
技术有点老,但也很成熟,实用于企业内部系统应用。






(文/KiloNet  出处/博客园)

 您可能对 [Visual Studio.NET] 的这些文章也感兴趣:

初探Visual Studio 2008 Shell
VS2005中的WebSite和WebApplication有何区别
微软发布SQL Server 2008和Visual Studio 2008开发平台
Ibatis 代码生成工具 ---IbatisHelper 下载
如何让Visual Studio和web标准联姻
.Net Web ADF 应用中的安全技术
深入.NET DataTable
windows mobile 5.0 进程管理、窗体管理、重启和关闭操作系统
How to build Multi-Language Web Sites
.NET源代码已经公开,并可用于调试
1
查看完整版本: Remoting系统构思及分布式注册
Modify by pin5i DZNT_ExpandPackage 2.1.3258 2007-2008 pin5i.com
  Total Unique Visitors: