讨论: 说说.Net Framework的缺点.可以给分吧 :P
我从今年4月开始学习dotnet,觉得是微软全面升级他的编程平台,微软的目的是统一整个windows下的编程标准,从而把更多的用户拉到windows编程上来。
.net的优点: IL(中间语言)支持的统一的数据类型。支持多语言,C#比C++简单,容易使用,功能强大,可以不用去记复杂的windows API,不会出现像VB调用API时出现的类型转换的问题,等等等等。
但是.net Framework真的没有缺点吗?我看不见得:
1. MSIL,微软中间语言,现在VB.net、C#、J#等全部都不是完全编译语言,全部都编译成为MSIL,这本来是为了多语言支持的好事,可是这样导致了编译成的源文件很容易被别人破解,用.net自带的反编译器就可以轻松看到所有的类名称和方法名。那么其他的专用破解器更加容易得到源代码,因为编译成的东西(exe或dll)全部变成了自描述的装配件,所有的信息都在文件里面。那么只要弄一个il语言的翻译器,就可以得到全部源代码。
这样的话,那个公司敢用.net开发商业程序?我花了大价钱开发出来的程序,被别人轻松得到,我的保证在哪里?其实微软应该更加注意这方面的内容,为什么其他公司开发出了混淆器,微软没有??
2. WindowsAPI问题。
我以前学的是vb6,现在改成了VB.net,发现功能强大了好多,内容也清晰了好多,没有以前复杂了。但是VB.net无法做ActiveX控件,这个功能没有了。我后来又发现,VB.net调用WindowsAPI麻烦了好多,几乎不能这样做。因为vb.net无法直接调用windowsAPI,连APIView都没有了,在VS.net的帮助给出了:
ms-help://MS.VSCC/MS.MSDNVS.2052/vbcn7/html/vaconCallingWindowsAPIs.htm
我没有看懂 :(
是否是以后无法调用windowsAPI了呢?那么只好使用.net的类库了,这是否是束缚了程序员,毕竟直接使用winAPI是功能最强大的。但是这又和IL的概念冲突,不知道以后微软怎样解决。.net的类库够用吗?
3. 以上的缺点都是不常用的,可能有人说大部分人不会用到这些功能,但是这第三个缺点,就是只要是编程的人,大部分都会遇到的。真真是在中国程序员中最最臭名昭著的:客户端打印问题。
这个问题一般会出现在编写B/S编程中,远程调用打印机时,发现根本无法调用客户端的打印机,没有任何类,方法可以让你实现这个功能。这个问题在asp时代就出来了。导致客户端只能使用IE的打印功能,而IE的打印功能作的不好,仅仅是屏幕打印。所以后来国内外都使用在客户端安装ActiveX控件来控制打印。
我不明白的就是微软鼓吹的.net战略,带有IL中间语言,支持asp.net编译,支持Web Servies ,支持XML,这些技术都指向一个目的,现在最时髦的分布式应用程序。而编写这种程序,远程调用廋客户端的打印机,是最常用的功能,为什么微软从asp1.0开始,到asp.net,没有解决这个问题?编写一个标准的客户端打印控件就真的这么难??
好了,我就说这么多,剩下的让大家补充吧。:)
可能有人会说,你小子学了没几天.net,就来这里哗众取宠。但是我既然学习了.net,我就希望它强大,好用没有缺点。这也是我支持.net的原因之一吧。
欢迎大家来砸砸!

