通常.net语言编译后的体积比其他语言编译后的体积小得多,它所调用的类库由系统支持。一两页的程序编译出来只有几K,但运行时却会占20-30M甚至更多的内存。

解决方案 »

  1.   

    大小没有绝对的意义,理论上讲是会比ATL小一些,这只能说是编译器优化的好,DEPHI的更小。再说C#写出来的控件和ATL写的控件本质还有区别,C#控件还要经过另外一个中间层而ATL的不用,如果你熟悉ATL写控件,那么一样用下去,至少3到5年依然还是最领先的,ATL依然是专家和系统级用户写控件的最好选择也是第一选择。
      

  2.   


    对不起,ccBoy(小气的神),微软下一代windows里已经没有什么东西叫做activex控件了。取而代之的form control,也就是jhnhu(jhnhu)提到的东西。这是一种更加优异的技术,对安全等问题有更好的模型,更适合在互联网上发布。所以,如果你用atl谢的话,3-5年后不会最先进,而是最淘汰。
    不但控件要一个中间层运行,将来的整个windows都会工作在一个类似虚拟机的基础上。当然内存要求就更高了。
    jhnhu(jhnhu)说得很对,form control非常小,因为它几乎没有什么静态连接的库文件,全是对系统(clr)的调用。
    大小当然有意义:因为将来的windows程序几乎没有什么桌面程序:几乎全是通过浏览器发布的。
    不要忘记:这是windows的变革。其意义不亚于从dos到windows。要用更开放的眼光看待问题。
      

  3.   

    atl还是会存在的,c++也会的,不然用什么编vm啊?
      

  4.   


    研究了几个月的.net框架,感觉我以前在系统设计中的很多想法都老土了。我是2000年的MCSD,但2001年,几乎所有的技术都快被淘汰了。
    以前被我奉为金科玉律的VC,在.net中成了一个鸡肋。估计它的作用会越来越小,最终淡出企业级的应用。
    干这一行就是这样,如果你停止学习,哪怕只有一分钟,你也会有被淘汰的危险。
    没办法,快快快!
    各位不要见怪,空活27年,编程6年,系统分析3年。感觉不懂得东西越来越多,心中不爽,发发牢骚。
      

  5.   

    To Kevin :首先:ActiveX控件一定会在3到5年存在,不仅这项技术会存在,而且现存上百亿的ActiveX市场不会突然消失。dotnet控件的成功与否在于它是否能提供一个更大的市场让开发人员将自己目前的ActiveX转换成dotnet控件,而不在与它有多么先进。第二:dotnet对于MS来说一直被定位成一个产品。而Windows是一个操作系统。MS没有承诺下一代的Windows会工作在一个虚拟机上。第三:年轻的dotnet 控件必须懂得如何和ActiveX进行互操作,现在如此,未来也还是。dotnet控件运行在dotnet的构架下,目前的Windows并不懂这个构架,ActiveX却可以直接和操作系统对话.第四:Windows的生命力在于它繁多的桌面程序,Windows平台上桌面程序还一定是主流,浏览器本身也是一个桌面程序,几年前我们不都热切的以为有了浏览器什么都可以不要了;桌面应用程序这个大的市场造就了Windows本身。第五:你可以狂热的接受新的技术,不过你也要看到dotnet还是一个年轻弱小的产品。开放的眼光也意味着你必须冷静的评估,让这些技术为你服务,当你快速完全的否定了过去,你又拿什么来坚定自己对未来的期望呢?
    介绍你一篇好文,系统分析员都应该去看看。
    http://www.csdn.net/develop/article/10/10240.shtm小气的神
    2001.09.03
      

  6.   

    楼上的说的不错,至少在3-5年内,现有的技术如ATL、ActiveX仍然不会过时,除非大家都是千兆到桌面了,不过.Net在intranet已经具有实用的价值。
      

  7.   

    to 小气的神
    首先:ActiveX控件一定会在3到5年存在,不仅这项技术会存在,而且现存上百亿的ActiveX市场不会突然消失。dotnet控件的成功与否在于它是否能提供一个更大的市场让开发人员将自己目前的ActiveX转换成dotnet控件,而不在与它有多么先进。
    -----------------------------------------------------------------------
    说的好,这是微软一贯的作风,保持高度的兼容性。就象现在依然有很多公司依然使用VBA在Office开发的办公软件一样。一种技术可以存在很久,慢慢死亡。但一个技术人员,如果3-5年后还在开发activex控件,就要为自己的出路担心了。第二:dotnet对于MS来说一直被定位成一个产品。而Windows是一个操作系统。MS没有承诺下一代的Windows会工作在一个虚拟机上。
    --------------------------------------------------------------------------------
    微软不承诺虚拟机,那么你告诉我。.net生成的中间码怎么能够在一个机器上运行?clr不是虚拟机是什么?dotnet不是一个产品,而是一个framework,更象是windows dna。也就是说高于产品,包括操作系统,决定了他们的走向。第三:年轻的dotnet 控件必须懂得如何和ActiveX进行互操作,现在如此,未来也还是。dotnet控件运行在dotnet的构架下,目前的Windows并不懂这个构架,ActiveX却可以直接和操作系统对话.
    -----------------------------------------------------------------------------
    dotnet 控件当然要懂得和ActiveX交互,又不是重新开发一个系统,任何一个成功的商业化公司都会保持自己的兼容性。但是一个产品和技术,等到了需要别人向下兼容的时候,他的明天已经不多了。我不知道和操作系统通话有什么好处,至少带来的好处比不上新技术带来的好处。java跨平台,只和虚拟机打交道,.net框架中的managed code都和clr打交道,以前的com技术被认为是一种特例,要通过特殊的技术来实现(名称也挺让人心酸的,unmanaged code,好像我们以前的开发都没有受到管理)。
    第四:Windows的生命力在于它繁多的桌面程序,Windows平台上桌面程序还一定是主流,浏览器本身也是一个桌面程序,几年前我们不都热切的以为有了浏览器什么都可以不要了;桌面应用程序这个大的市场造就了Windows本身。
    --------------------------------------------------------------------------------
    Windows,或者说微软,以前的生命力在于它繁多的桌面程序。将来在于服务器端的竞争和asp收益。
    以前我们都以为有了浏览器什么都可以不要了,不久的将来我们确实会实现这一步。甚至微软以后发行的软件程序都是通过浏览器发布。
    第五:你可以狂热的接受新的技术,不过你也要看到dotnet还是一个年轻弱小的产品。
    -------------------------------------------------------------------------------
    年轻?yes. 弱小? no,世界上最有钱的公司花了几十亿开发出来的东西叫做弱小,拿什么叫做强大?开放的眼光也意味着你必须冷静的评估,让这些技术为你服务,当你快速完全的否定了过去,你又拿什么来坚定自己对未来的期望呢?
    -------------------------------------------------------------------------------
    第一个登上新大陆的是谁?
    第一个在奥运会为中国夺金牌的是谁?
    第一个宇航员是谁?
    ...
    第二个登上新大陆的是谁?
    第二个在奥运会为中国夺金牌的是谁?
    第二个宇航员是谁?
    ...
    介绍你一篇好文,系统分析员都应该去看看。
    http://www.csdn.net/develop/article/10/10240.shtm
    ------------------------------------------------------------
    也介绍你一个好网站,开发人员都去看看。
    http://www.microsoft.com
    评论:真是小气的神,我只不过说了几句话,就引来一堆西红柿。好了,我投降了,我不准备和你争论下去,树立敌人不是件好事。
    如果可能的话,叫个朋友就更好了。kevin