【问题标题】:How to decide what is the .Net target如何确定 .Net 目标是什么
【发布时间】:2011-01-11 10:25:06
【问题描述】:

我们现在使用 VS2003(目标为 .Net 1.1),我们想升级到 VS2008,但我想知道新的 .Net 目标应该是什么?

  1. 我应该将目标保留为 .Net 1.1(非常旧,未安装在所有计算机上)还是升级它?

  2. 如果我升级 - 是 2.0 吗?或者升级到最新的 3.5(我们的客户使用 Windows XP、Vista 和 Windows 7)

  3. 如果我将应用程序定位到 2.0,而用户拥有 3.5,会发生什么情况?用户应该在 .Net 3.5 上安装 .Net 2.0 吗?即使安装旧版本“高于”新版本,它是否可以并排工作?或者,由于 3.5“包含”2.0,应用程序可能会在没有错误和警告的情况下运行?

谢谢,

阿塔拉

。 . .

谢谢大家。 我想我的目标是 2.0,以覆盖我的大多数客户,如果客户没有安装任何 .Net,我会要求他安装最新版本(3.5 和更高版本 4)

您能否确认一下 .Net 3.5 只是向 2.0 添加了更多程序集,并且不包括对 2.0 程序集的错误修复?

(我的用户电脑水平不高,少装比较好)

。 . .更新: 看到我的问题 - Microsoft .NET compatibility

感谢您的回答。

阿塔拉

【问题讨论】:

  • 只是需要考虑一下,除非您订阅了 MSDN,否则您可能不想升级到 2008...VS 2010 指日可待。
  • 但是等到 2010 年会有 servicePack 不是更好吗?

标签: .net visual-studio visual-studio-2008


【解决方案1】:

您不能使用 VS2008 来定位 1.1,所以不要使用该选项。 2.0、3.0 和 3.5 之间没有真正的区别,它们都使用相同版本的 CLR。版本 3.0 和 3.5 只是添加了更多程序集。尤其是那些支持 WPF、WCF 和 Linq 的。

如果您对使用这些新功能不感兴趣,那么定位 2.0 就可以了。如果目标机器安装了任何等于或大于 2.0 的 .NET 版本,您的程序将毫无问题地运行。

发现您可能不小心使用了仅在更高版本中可用的类很容易,当您使用 Project + Add Reference 时,您根本无法添加程序集引用。后面的将在列表中灰显。它在 MSDN 库中也有详细记录,该类可用的框架版本列在页面底部。

还有一个选择:如果您有很多客户仍在使用 XP 且尚未安装 .NET,那么您可能需要考虑检查“仅客户端框架子集”。这减少了您可以引用核心程序集的程序集,相关的客户端框架安装非常精简 28 MB。

【讨论】:

    【解决方案2】:

    快速澄清一下,如果您升级到 VS2008,则不能针对任何 1.X 框架。 VS2008 仅支持面向 2.0、3.0 和 3.5 框架。

    定位框架时需要考虑的一件事是对客户的影响。要使用您的应用程序,目标客户还需要在他们的机器上安装相应的 .Net 框架。这样做的成本可能会有所不同,具体取决于场景。最好的情况是 .Net 框架已经安装,因此用户可以安装您的应用程序。

    • 1.X:预装在 W2K3 上
    • 2.0:预装在 Windows Vista、W2K8 和 Win7 上
    • 2.0SP1:预装在 Win7(可能是 W2k8)上
    • 3.5:Win7(可能是 W2K8)

    我个人的选择是使用 2.0 框架,除非您的应用程序实际上使用了 3.5 或更高版本框架的功能。这增加了最终用户已经在他们的机器上安装了 .Net 框架的机会,从而降低了安装应用程序的成本。

    对于最后一部分,如果客户拥有更高版本的 .Net 框架,那么您的应用程序就可以正常工作。

    【讨论】:

      【解决方案3】:

      我的目标是 3.5,大多数安装和服务包现在默认安装它,所以你应该没问题。如果您以 2.0 为目标,而用户拥有 3.5,则实际上什么都没有发生,那么它是完全受支持的。

      【讨论】:

        【解决方案4】:

        如果您在 VS2003 之后还没有升级,并且现在将要升级 - 考虑等待不到 6 个月,改为获取 VS2010。有几个好处:

        • 您仍然可以以 .NET 2.0/3.5 为目标,但您也可以随时使用 .NET 4.0。
        • 对于新项目,您可以考虑升级到 4.0 开始工作,而不是绝望地落后(因为您,没有冒犯,现在......如果继续使用 VS2008,很快就会),您可以前端。
        • 由于有一个公共测试版,如果您愿意,您可以让您的开发人员开始适应新环境。我不是律师,但据我所知,在商业生产中使用测试版没有法律限制 - 除了因为它是测试版,MS 不承担任何稳定性等责任。虽然它工作得非常好......
        • 公开测试版的另一个效果是,有很多关于 .NET 4 中的新功能以及如何使用它们的文章、屏幕截图和博客文章。大多数新发布的材料都针对 VS2010,很快将不会为 VS2008 程序员的受众编写任何(或很少)新内容。

        【讨论】:

        • 我们可能会等到 VS2010,但是您建议始终将目标定位到较低的 .Net (2.0) 还是最新的 (4.0/3.5)?
        • @Atara:如果在 2.0 和 3.5 之间进行选择,我总是选择 3.5 - 几乎没有拥有 2.0 的客户端机器不再缺少 3.5,而且少数确实需要借口更新 ;) 当考虑到 4.0,我可能会等到 MS 发布最终版本后才开始向需要它的大众发布软件,并且可能在此之后一两个月,以防任何紧急错误需要修复。但这在很大程度上取决于您的用户是谁,以及他们的计算机技能水平。
        【解决方案5】:

        .Net 3.5 SP1 默认安装在 Windows 7 上,Windows Vista 安装了 3.0。

        如果您要将应用程序转换为 WPF,目标 3.5。

        如果您要使用 LINQ 或 Lambda 表达式,请至少使用 3.0

        2.0 现在应该在所有机器上。大多数用户应该有 3.5,因为它是通过 windows 更新推送的。

        我会推迟 4.0(当它发布时),但如果这是必须的,请针对 4.0 客户端,因为它只有 30mb 左右。

        要求用户没有安装的框架对他们来说很烦人。确保您的部署解决方案能够检测到 .Net,如果他们没有,请在机器上安装 3.5 sp1(即使您的目标是 2.0 而他们没有 2.0)。

        从 1.1 迁移到 2.0 是一大步,因为您需要重写或更改代码中的一些内容,主要是由于过时的方法等。

        在使用 VS 2010 Beta 2 后有了我的主要 IDE,我无法再使用 2008。2010 是一个很大的改进,2003 > 2008 也是如此。

        对于您目前的情况,目标是 2.0,但稍后目标是 3.0 或 3.5 并使用 lambda(resharper 可以帮助优化您的代码!)

        【讨论】:

          猜你喜欢
          • 2010-09-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-08-01
          • 2018-07-10
          相关资源
          最近更新 更多