讨论: 说说.Net Framework的缺点.可以给分吧 :P

大家说说.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的原因之一吧。

欢迎大家来砸砸!
[1571 byte] By [TomMax-笑望人生] at [2008-2-13]
# 1
关于第一点:如果是web应用,程序是运行在服务器上,很难被别人获取.如果是windows应用,可以使用混淆器之类的工具打乱代码.不过由于必定存在某个时刻对CLR而言需要知道正确的次序,因此还是有机会被破解,如果你担心这种破解,那可以编写unmanaged代码.
第二点,.net提供的类可以实现绝大多数windowsAPI的功能.而且.net并不鼓励你使用windowsAPI,除非你的程序只考虑在windows平台下运行.
第三点,还是使用activeX吧
cnuninet at 2007-10-23 > top of Msdn China Tech,.NET技术,.NET Framework...
# 2
关键的就是第三点,微软没有办法吗?
服务器端打印是否可以?
我用水晶报表现在是导出为PDF文件,让客户端打印的,没有好办法了吗?
有没有好的ActiveX控件?
TomMax-笑望人生 at 2007-10-23 > top of Msdn China Tech,.NET技术,.NET Framework...
# 3
俺不知道什么叫“好”,请解释一下!?
w_rose-w_rose at 2007-10-23 > top of Msdn China Tech,.NET技术,.NET Framework...
# 4
运行有带提高
sbgphl-十八哥 at 2007-10-23 > top of Msdn China Tech,.NET技术,.NET Framework...
# 5
还想提两个,
1、.NET应用在安装实施阶段有好多隐患。主要因为.net framework没有经过长时间的检验,在98和windows me/2000 professional上运行不稳定。前段时间我们使用.net开发的一套gov办公应用,结果在安装之后,没有任何规律的出现错误:.NET框架不能运行给定的程序。时好时坏,真要命。如果大家有兴趣的话,可以去http://www.Codefund.cn/expert/topic/933/933068.xml?temp=.4834253看看。
2、在使用原有COM的时候存中在bug,我们在开发过程中至少遇到三个。不信,你可以通过.NET来响应Excel的事件。
还有一点建议,.NET目前用来跟踪学习或者练练手是个不错的选择,但是如果要搞大型项目的话,还是三思吧。虽然我们刚刚完成的项目还算成功,可还是让我一身冷汗。
cwsheng-蹦虾 at 2007-10-23 > top of Msdn China Tech,.NET技术,.NET Framework...
# 6
唉,我最希望的就是微软在IE以后的版本里面加上可以用.net控制的客户端打印功能,谁也不希望使用第三方开发的ActiveX控件。
.net使用Com控件不方便不说,安全性问题也非常麻烦,谁没事干下载不知道来历的ActiveX控件,要弄一个经过安全认证的控件非常麻烦,是否支持.net还不知道呢~!

如果IE支持客户端打印就好了,唉~~~~~~
TomMax-笑望人生 at 2007-10-23 > top of Msdn China Tech,.NET技术,.NET Framework...