现在VS 2012发布后,正确使用VS和Async的方法是什么?

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

Async 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中开发,但使用独立编译器构建。

考虑到.NET 4.5在.NET 4上的安装方式以及可能出现的挑战,我会尽量将您的工作环境与个人开发环境分开。

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

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

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

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

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

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

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

这样就可以最全面地支持异步语言function,因为VS2012 +异步定位包为您提供完全相同的官方编译器,并且高于CTP质量。