由于工作限制,我需要在不久的将来继续使用 Visual Studio 2010。同时,我在个人编码中一直在学习 Async。最新的 Async CTP 是否与 C# 5.0 的 Async 语言特性完全一致?并且安装 Async CTP 是在 VS2010 中使用 Async 的正确方法吗?
3 回答
异步 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 中开发,但使用独立编译器进行构建。
尽管关键字相同,但 Async CTP 与最终的 C# 5.0 实现并不完全一致。
如果您真正的业务需求是生成可以在 .NET 4.0 上运行的应用程序,那么推荐的方法是使用带有异步目标包的 VS2012 (可通过 NuGet 获得)。
在此配置下,您的开发机器具有 .NET 4.5 和 VS2012,但是从您的解决方案构建生成的二进制文件将与 .NET 4.0 兼容。
这导致对异步语言功能的最全面支持,因为 VS2012 + 异步目标包为您提供完全相同的官方编译器,并且高于 CTP 质量。
鉴于 .NET 4.5 安装在 .NET 4 之上的方式,以及可能带来的挑战,我会尽量将您的工作环境与您的个人开发环境分开。
您可以在同一台机器上安装 VS2010 和 VS2012,我建议不要使用异步 CTP:
- 减少对工作 IDE 的污染
- C# 5 的最新版本
- 使用 VS 2012 的所有好处
但是,如果可能的话,我认为在 VM 或单独的机器上进行开发会更安全。
最不吸引人的选择是使用 CTP,IMO - 老实说,我只能看到这方面的风险。