谈谈我自己对于.Net相对于VC在工控领域的应用的优点
我想在工控领域采用.Net最新的WPF和WCF来完成界面与监控以及分布式通信。为了说服领导写了下面这点内容,可能有不对之处,忘高人们指教!
1、就执行速度而言,二进制型的C/C++会稍快些,但就当今的新PC来说,其电脑的硬件性能与当年不可同日而语,除非用非常老式的电脑,否则性能上是够用了。就像分拣机的通讯方式有光电IO,红外,导轨,漏波电缆等等,每种的速度都不一样,总有稍快的有稍慢的,但是每一种我们都在实际的机器上使用过,所以说速度上够用就好。在第一次运行程序时,系统会初始化缓冲,所以初始化的时间可能较之VC长(与机器性能有关)。我们可以使用2个例子来证明类似.Net的中间语言也是可以运行在工控的高性能领域的:第一,作为OPC标准的制定与开发机构,opc基金会除了二进制式的OPCDAAuto.dll,还提供了基于.Net的OpcNetApi.Com.dll和OpcNetApi.dll,从侧面说明.Net可以运用于工控;第二,作为非常高性能的数据库软件oracle,安装过的人都知道,安装oracle先要装java的运行库jdk,而且最近oracle收购了java的开发公司SUN,说明oracle与java也越来越密不可分了。
2、不需要指针,C#不必使用指针(当然一定要使用时也是可以使用的),这样不容易产生因指针使用不当而产生的不容易发现的错误。
3、垃圾回收机制使得程序自动释放内存,可以避免忘记释放内存而导致的内存泄露与系统崩溃。
4、必至VC更方面的使用多线程与共享资源的控制
5、TCP的Scoket是基于多线程的,不容易堵塞
6、拥有多线程异步的定时器,可以避免定时器过多或者定时器执行内容过多而产生主线程没有相应的问题。
7、使用WCF(一种分布式的开发架构),就是使用面向服务SOA这种全新的理念来开发分布式系统,应对将来的越来越庞大的分拣系统更为合适。例如多个人工台席的程序都是基本一样的,可以采用同一个服务端来提供数据服务,又或者一个路由主控对多个分拣机主控提供数据服务等等。
8、采用VC绘制监控画面,不仅比较难看难画而且长时间运行后,也许会导致意想不到的后果(由于使用的设备上下文的指针进行的绘图工作),而WPF在绘图与动画制作上时行家。同时,重绘界面的工作系统会自动完成,VC则要复杂的处理函数。在调整窗体大小后,使用恰当的容器布局的WPF程序会自动调整容器内各控件的大小与布局。
9、从开发程序的效率的角度上来讲,新的架构有着更多的调试手段,线程观察,调用堆栈观察等等,而且其他诸如控件的使用也简单些
10、另一个值得一提的地方是,当与外系统通信时,由于通信过程中会用到中文,而不同的开发程序使用的字符集不同,像GB2312,UTF-8等等,使用.Net能轻易地改变字符集,而VC的话改变字符集相当麻烦
11、作为界面的用户体验,我们可以做到与VC程序开发的用户体验一致,但是色彩的运用上可以更为丰富,特别是WPF将界面布局与程序逻辑执行的文件想分离,使的制作界面变得简单,也更为丰富,甚至有专业的另一套工具expression,能的制作界面、动画、声效等就如同制作flash
12、作为微软现在的主打产品,相当长的时间内,可以说.Net是不会被淘汰的。举例而言,微软的新型操作系统windows vista就已经自带了.Net3.0,作为系统内核。也许以后的新的操作系统会默认搭载更高版本的.Net Framework吧