11

由于工作限制,我需要在不久的将来继续使用 Visual Studio 2010。同时,我在个人编码中一直在学习 Async。最新的 Async CTP 是否与 C# 5.0 的 Async 语言特性完全一致?并且安装 Async CTP 是在 VS2010 中使用 Async 的正确方法吗?

4

3 回答 3

11

异步 CTP 是在 Visual Studio 2010 中使用的唯一方法async。但是,它并不是在async.NET 4.5 / Visual Studio 2012 中使用的,CTP 中的几个错误已在最终版本中修复。根据 CTP 的自述文件,您不会在 Visual Studio 2010 中获得这些错误修复:

关于“原样”许可的说明

虽然 Async CTP 许可证不会阻止您在生产环境中自担风险使用它,但我们建议您不要这样做。此 CTP 的目标只是收集有关我们预期异步设计的反馈。我们没有设计或构建它以用于生产环境,也没有像在生产环境中使用所需的那样彻底测试它,我们认为它存在太多缺陷,不适合在生产环境中使用。我们非常感谢有关 Async CTP 的反馈,但我们不打算对 Async CTP 本身进行任何修复:我们所做的修复只会出现在最终受支持的发布产品中。

如果您绝对需要 VS 2010,我会尝试先安装 Async CTP,然后安装 .NET 4.5(运行时和 SDK)。在 Visual Studio 中开发,但使用独立编译器进行构建。

于 2012-08-21T14:13:24.287 回答
3

尽管关键字相同,但 Async CTP 与最终的 C# 5.0 实现并不完全一致。

如果您真正的业务需求是生成可以在 .NET 4.0 上运行的应用程序,那么推荐的方法是使用带有异步目标包的 VS2012 (可通过 NuGet 获得)。

在此配置下,您的开发机器具有 .NET 4.5 和 VS2012,但是从您的解决方案构建生成的二进制文件将与 .NET 4.0 兼容。

这导致对异步语言功能的最全面支持,因为 VS2012 + 异步目标包为您提供完全相同的官方编译器,并且高于 CTP 质量。

于 2012-08-21T18:51:47.663 回答
3

鉴于 .NET 4.5 安装在 .NET 4 之上的方式,以及可能带来的挑战,我会尽量将您的工作环境与您的个人开发环境分开。

可以在同一台机器上安装 VS2010 和 VS2012,我建议不要使用异步 CTP:

  • 减少对工作 IDE 的污染
  • C# 5 的最新版本
  • 使用 VS 2012 的所有好处

但是,如果可能的话,我认为在 VM 或单独的机器上进行开发会更安全。

最不吸引人的选择是使用 CTP,IMO - 老实说,我只能看到这方面的风险。

于 2012-08-21T14:33:03.833 回答