网络通信小工具的选型

背景需求:

1. 自动化测试中server能发送指令给多台测试机,或从他们那里获取进度数据。发送的指令可以通过脚本发送。

2. 每台测试机都安装有fitnesse完成本地测试,这样不会因为需要断网或reboot OS导致整个测试中断。

3. 每台测试机能主动反馈数据给server

选型要求:易于操作,易于编写,易于扩展,易于理解。

可用技术框架对比

技术 来源 开源 优点 缺点  
Named Pipe Microsoft N 很成熟的技术

1. 接收数据A触发A',接收数据B触发方法B',这个机制要自己定义 

2. 必须通过code才能用Client与Server 通信. 非开发人员无法调用.

 
NodeJS NodeJS Y 社区活跃,Express能帮助快速完成http webside

1. 要调用系统底层方法,必须写Addon.

2. 要打包成一个.exe不方便

 
Eletron Eletron Y 社区活跃,VS Code与Atom就是这个实现的。而且不用写Addon就能访问系统底层。 1. 打包成exe非常巨大,一个empty project就有100MB了  
EmbedIO unosquare Y 整合了Angular1.x ,nuget 1.  没有完整的文档,不知道从哪里着手  
Nancy(OWIN) Github Y 似乎demo很好写 2016年就没怎么更新了 OWIN=Open Web Interface for .Net
ASP.Net Microsoft N   需要IIS托管  
WebAPI2(OWIN) Microsoft N

1. 很成熟的技术,2013就有了

2. 很容易实现一个self-host的server,而且不需要IIS,compile后只是一些dll与.exe

3. 可以实现成RESTful的webservice,客户端可以是浏览器|脚本,普通人都能调用

1. 要有ASP.Net开发背景的人才知道这个东西 OWIN=Open Web Interface for .Net
WCF Microsoft N 1. 很成熟的技术

1. 要访问service添加webservice reference,要用code访问

2. service暴露的是method,即各种自定义的。

 

选择:由于我期望的使用者包括了非开发人员,能被脚本调用,最终我选择了WebAPI2(OWIN)。通过RESTful API非常方便访问,也很规范直观。而且作为Webserver,还能提供简单的Web page给用户,让用户一次提供丰富的信息。

猜你喜欢

转载自blog.csdn.net/Marcus2006/article/details/104145755