将我的应用程序转换为.Net真的是个好主意吗?

将我的应用程序转换为.Net真的是个好主意吗?,.net,.net,我所有的应用程序都是用本机代码开发的。由于我听到了很多负面消息,例如: 慢响应时间 锁在窗户里 依赖于庞大的.Net运行时间,这使得安装既痛苦又缓慢 等等等等 您的建议将不胜感激。不要仅仅为了转换而这样做 如果你有其他的技术原因去转换,那么你应该考虑它,但是要注意它不是一个小的变化,尤其是对于较大的项目。 编辑:我还想补充一点,如果你在.NET中启动一些小项目,只是为了知道会发生什么,然后再决定转换现有项目是否是有效的选项,那会更好。响应速度慢可能是错误的。您基本上被锁定在windows中(Mo

我所有的应用程序都是用本机代码开发的。由于我听到了很多负面消息,例如:

  • 慢响应时间
  • 锁在窗户里
  • 依赖于庞大的.Net运行时间,这使得安装既痛苦又缓慢
  • 等等等等


    您的建议将不胜感激。

    不要仅仅为了转换而这样做

    如果你有其他的技术原因去转换,那么你应该考虑它,但是要注意它不是一个小的变化,尤其是对于较大的项目。


    编辑:我还想补充一点,如果你在.NET中启动一些小项目,只是为了知道会发生什么,然后再决定转换现有项目是否是有效的选项,那会更好。

    响应速度慢可能是错误的。您基本上被锁定在windows中(Mono除外,它还不成熟),并且依赖于运行时。这就是说,运行时通常已经安装在大多数系统上(不过如果失败,您必须确保并提供安装方法)


    我的问题是,为什么要切换?如果您已经有了本机代码,那么移植工作将是一件痛苦的事情。您的整个开发团队也需要学习新的.net语言。为了克服转换到任何语言(更不用说.net)所带来的障碍,您需要在转换方面有一些巨大的优势。

    这取决于几个因素

    你的申请需要重写吗?Net的优势需要多长时间来抵消重写的成本?Windows锁定对您来说是个问题吗


    .Net是一个很好的平台,但它并不适合所有人或每个项目。我要说的是,当.Net刚刚出现时,运行时问题更为严重,在这一点上,它已经变得相当琐碎了。

    无论第1点和第2点是什么,我都不会太担心.Net运行时-我现在很少遇到没有安装它的机器

    至于反应慢,我还没有这样的经历。我认为你可以用任何语言编写一个反应缓慢的应用程序。NET并不是最差的,使用它对开发者有巨大的好处


    不过,作为一项规则,我从不在没有确凿理由的情况下重新开发某些东西。让你的应用程序更新到最新和最棒的版本听起来可能是个不错的主意,但通常会导致时间的巨大损失,而收益却微乎其微。

    可能没有令人信服的理由重新编写你的应用程序。性能和较小的内存占用将是这些应用程序的一个持续优势。任何生产率的提高都可能远远超过移植成本

    对于新的应用程序,切换到.Net可能会带来一些好处。与C++相比,它将更高效,以运行时依赖性、内存占用增加和性能命中为代价。p>

    您也可以选择做混合系统,在其中,将.NET前端放在C++编写的后端上,以便对内存消耗进行速度控制或更多控制。对我来说,内存消耗可能是最大的。在体验过使用大型托管代码应用程序(Oracle Warehouse Builder和BIDS)的乐趣后,即使在高规格的现代PC上,这些应用程序的性能也非常糟糕


    在这种情况下,控制内存使用率(以及相关的CPU缓存抖动)、垃圾收集时间和更节省的数据结构将是一个性能胜利

    虽然“1”非常模糊,但您的三点都至少有一点是正确的——普通的.NET应用程序的启动时间往往比本地应用程序的启动时间长——也许这就是您的意思

    在某些情况下,Mono是点“2”的缓解措施

    MS对“3”点的处理确实慢得令人不快,但我认为他们正在逐步做到这一点,互联网速度的普遍提高意味着人们比5年前更不关心几十秒的梅格


    对我来说,最大的问题是,几乎所有关于C语言编程的东西都比C++好得多(我是一个硬核C++人,有迈尔斯和Alexandrescu图书的架子),当你不得不回到C++时,感觉就像是一场冷水淋浴。

    < P>切换到<强>任何不同的开发语言或框架的开销相当高。在以下所有情况都属实之前,我不会这么做:

    • 您的客户中有相当多的人要求这样做
    • 你有开发技能来完成转换
    • 您对当前产品有很好的了解和文档
    所以这与.NET没有特别的关系。但假设您确实决定切换(并切换到.NET),我就不会担心响应时间慢或.NET运行时的可用性。在我的B2B应用程序中,这两个问题都不是什么大问题


    但是,如果您不想这样做,Windows锁定肯定是一个大问题。

    如果您对本机代码感到满意,并且决定权归您,那么为什么要移动呢

    个人而言,我不想念我的C++时代(MFC,com等等),对生产力的IMO没有多大的帮助。我发现.Net和C#提供了多种工具和功能的完美结合。我可以轻松构建看起来和感觉都像普通Windows应用程序的Windows应用程序

    我也很高兴C#提供了一种有趣的混合了OO和声明式编程的方式,这是我喜欢的。该框架还不完整,但仍有很多功能需要添加


    可能.Net最有趣的部分是越来越多的针对该平台的不同语言。我欢迎IronPython和IronRuby的加入,据我所知,随着VisualStudio的下一个版本,IronPython和IronRuby将成为一流的.NET语言

    但是,如果在最后一个屏幕上留下太多对象,那么应用程序的速度应该不会明显变慢