论C#及.net缺点及发展
我们先来看看2009年8月编程语言排行版:
2009年8月前十名排行榜
C#仅排名第7,只占4.4%,而前三名的java, c, c++都超过10%,这与我们的期望,相差甚大。
C#因为年轻,所以拥有很多的优点,但却很多的缺点,却阻碍了他的发展。
C#的开发,主要在windows(包括win api和com)和web(asp.net, silverlight等)两方面,别的方面,基本都占太少,不用分析。
由于微软放弃了传统win32开发环境的支持(主要是指vb, foxpro)之类,vba基本也没有更多的改进。加之.net和com的互操作,微软的意图是让.net也代替传统的win32开发(vc开发不再讨论之列)。但由于C#和vb.net定位于快速开发,在api开发方面,只有极少数的辅助类直接调用API,大部分.net是基于com(包括activex控件)来进行开发的。
由于com基本上都是组件(activex控件),我们可以这么认为,对于传统的windwos资源的利用,基本上都是二次开发。常见的二次开发有Office Excel, Access, AutoCAD, GIS(mapx, ArcEngine, MapObjects, Supermap Objects)等。由于.net对资源管理的缺陷(例如excel进程问题,很多人引入DLL,使用api来杀死进程)和性能问题,同时C#语言的繁琐,以及很多未知问题(如不稳定),相比VBA用于传统的二次开发,产生了代码量急剧膨胀,性能差,严重的不稳定,开发速度慢,不便于调试等。
对于win form开发,C#和.net支持得都比较好,性能也可以,开发速度快,稳定。但.net 框架的完整安装