代码之家  ›  专栏  ›  技术社区  ›  Wiren

将.net 2.0解决方案转换为.net 3.5的陷阱

  •  6
  • Wiren  · 技术社区  · 16 年前

    • 有没有什么理由不让这件事发生 Visual Studio向导转换 我们的解决方案?
    • 3.5是否完全向后兼容
    • Entlib 4.0是否完全向后兼容 用2.0?

    当我写这篇文章时,我可能有点困惑,向后兼容应该是指;2.0项目中是否存在无法在3.5中工作/编译的内容

    :)

    //W

    6 回复  |  直到 16 年前
        1
  •  6
  •   ScottCher    16 年前

    从2005年到2008年,我们升级了一个相当大的解决方案(20多个项目),但它确实微不足道。项目升级只是基本上。由于3.0/3.5和2.0共享相同的核心框架,因此底层框架仍然相同。

    如上所述,即使您正在升级,也不需要更改项目的框架引用-事实上,它默认将框架保留为2.0,而不是将其更改为3.0/3.5。这意味着您将无法利用3.0/3.5功能,除非您更改引用(项目属性页,应用程序表“Target Framework”字段),但这也意味着您将更加确信不会出现其他兼容性问题(因为在更改引用之前,添加3.0/3.5代码将出错)。

    TFS 2008的新功能也不容忽视,尽管您不需要升级应用程序就可以使用TFS 2008。

    1.1到2.0的转换要痛苦得多。。。

        2
  •  4
  •   OregonGhost    16 年前

    请记住,您不需要升级.NET版本。VisualStudio2008支持.NET2.0、3.0和3.5。然而,3.5无论如何都是向后兼容的,因为它位于同一个CLR上,或多或少只是一些额外的库。而“旧”图书馆保持不变。

    我不知道Entlib。

    为什么不试着运行单元测试呢?:)

        3
  •  1
  •   Oli    16 年前
    • 是否有任何理由不让Visual Studio向导为我们转换解决方案?

    • 3.5是否完全向后兼容2.0?

    没有。3.5中有一些新功能不会在本地向后移植。和(IIRC)有一些从2.0到3.5的弃用。

    我不这么认为。3.5被列为一项要求。

    进行备份,运行向导,看看会发生什么。对于这样一个庞大的项目,可能需要一段时间,但您可以判断它是否会按预期构建/运行。

        4
  •  1
  •   Christian Hayter    15 年前

    • 在2.0中,可以使用 CacheManager cache = CacheFactory.GetCacheManager() .
    • CacheManager 具有 ICacheManager 否则它将无法编译。

    • 在2.0中,必须定义一个带有签名的构造函数 (TextWriter, Exception) .
    • (TextWriter, Exception, Guid)
        5
  •  1
  •   Ade Miller    15 年前

    从EntLib 3.1迁移到4.0时,不应该有任何突破性的更改:

    “对公共API没有突破性的更改。这是EL4的设计目标之一。请记住EL4需要.NET3.5。

    --格里戈里“

    http://blogs.msdn.com/agile/archive/2008/05/16/enterprise-library-4-0-for-visual-studio-2008-released.aspx

    (Grigori是EntLib的项目经理)

    不过,我不确定2.0到3.1之间。如果我能找到合适的人@p&p明天我会更新这个。

    艾德