工具项目的服务器端(exe)控制端(web)都是用.net写的,原本两者的通信想用Socket,
但被协议所累,即使用序列化传输,也是要处理一大坨东西,偷偷懒,采用Remoting,
缺点是以前的设计是单线程,不用加锁,现在要在服务器端的主循环进行加锁。
决定采用这个方案后决定对Remoting进行一个简单的封装,原因有二:
- 为了减少开发者的学习成本,没必要每个程序员都要精通这套方案
- 为了减少业务逻辑对Remoting的依赖(说不定哪天发现不满足需求就换掉了)
定义Server被web的基本操作的接口,我们定为IServerControl,里面只有一个Add方法。
实现Remoting的对象,也就是允许在支持远程处理的应用程序中跨应用程序域边界访问对象。
定义配置文件类 和 封装Server端的封装
封装Client,把RemotingControl进行封装,隐藏Remoting机制!
代码中我们采用短连接,因为Web出现长连接的可能性也不大
小补充 :
如果Remoting有异常的话,通常主线程也会断下,通常只要修改
工具->选项->Debug->启用仅我代码 就不会断下了!
本文链接, 未经许可,禁止转载