【问题标题】:What are the major risks vs. benefits of using VS2010 Async CTP?使用 VS2010 Async CTP 的主要风险与好处是什么?
【发布时间】:2013-03-30 04:41:53
【问题描述】:

我想使用Visual Studio Async CTP (Version 3) 在 Windows XP SP3 上的 VS2010 SP1 中进行开发和测试,主要是因为我的客户(以及我)在 Windows XP SP3 上。 MSDN论坛有相关讨论:If I target .net 4.0 but run on a machine that has .net 4.5 will .net 4.0 WPF bugs still be there?

不过,NOTE ON "AS IS" LICENSE 告诉我们:

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

这些缺陷和错误有多严重,在Visual Studio Async CTP (Version 3) 中被放弃,我应该考虑哪些其他可能的考虑因素会迫使我改变我的决定?

询问的主要原因是:

  • 我没有过多关注 C#/.NET 4.5 VS2012 主题(由于坚持使用 Windows XP SP3、.NET 4.0 和 VS2010),我需要减少遇到关键问题的时间;
  • 我以前从未遇到过应该遵循错误修复列表(而不是根据需要单独解决特定问题)的情况
    对于这种情况,我现在真的需要吗?

主要问题:
在 VS2010、Windows XP SP3 的 .NET/C# 4.0 中,不受支持的缺陷无法轻松解决的问题/可能性有哪些?

@DanPuzey 评论的答案:

该应用程序基于 TPL,WPF 处理来自互联网(证券交易所)的异步数据流。我以前从来不需要关心我会留下不受支持的文档(示例)、缺陷和错误。我可能无法询问它们,因为 MSFT 支持和其他人无法重现它们。我想估计使用不受支持的扩展程序的风险与收益

主要差异、缺陷、错误和风险是否无限且无法列举?有吗?

让我引用download page

“包括用于生产用途的新 EULA。注意 - 此许可证不 鼓励您使用 CTP 进行制作 代码。 CTP 仍然不受支持且使用风险自负 技术预览。但是,我们收到了很多来自 开发人员将 CTP 用于生产代码,因此更改了 许可”

@CodesInChaos 评论的答案:

这不是我在问题开头提到 preventer link description here 讨论时提到的选项。无法从 VS2012 或具有 .NET 4.5 的机器开发和测试 .NET 4.0 应用程序。在 Windows XP 上安装 VS2012 或 .NET4.5 是不可能的。我的经验(尝试安装其他供应商的应用程序)是您提到的方法不会产生在 Windows XP 上运行的应用程序

【问题讨论】:

  • 我不清楚你在问什么。您似乎说您以前从未需要阅读文档并询问是否应该阅读。您是否希望有人建议预发布产品中的哪些错误对您来说可能很重要,在十年前的操作系统中从事具有未知需求的未知项目?我不认为这是一个你会在这里得到答案的问题......
  • 阅读此问题的人如何理解您所感知的好处或能够判断风险?这样的人必须了解整个应用程序的代码库,以及使用异步的程度。许可证明确建议您不要在生产环境中使用 CTP 的事实是您的问题中唯一可以让我发表任何意见的事情。 (因此,我建议如果您被 XP/VS2010 卡住,那么您也会卡在没有 async 支持的情况下。)
  • 我更喜欢将 VS2012 与异步定位包一起使用。这需要在较新版本的 Windows 上进行开发,但用户可以使用 XP。请参阅我的相关问题Using async-await on .net 4
  • 如果需要支持xp用户不要使用vs2012,不要安装.net 4.5,如果你不能有单独的机器与xp进行开发和测试不要打扰,你会的无法找到最终的错误,您可以使用 vs2010 中的每个异步支持库,甚至是 blc 异步,只需在此处阅读我之前的答案stackoverflow.com/a/19208665/287815 不需要 KB 和 .net 4.5。不要让微软仅仅因为他们不想为 .net 4 进行愚蠢的更新而强迫你更新。
  • @Programista,谢谢。在我的答案hereherehere 中发布了相同的内容。全部投反对票

标签: .net-4.0 windows-xp async-await c#-5.0 async-ctp


【解决方案1】:

我赞同@CodesInChaos 建议您使用 VS2012 进行开发。我在 Windows 7 上使用 VS2012 开发在 Windows XP 上运行的 .NET 4 应用程序,它运行良好。唯一需要注意的是,您无法在 .NET 4 上进行调试(实际上是在 .NET 4.5 运行时上运行),但对于 99% 的情况来说,这并不重要。

我确实在生产中使用了异步 CTP;我认为它对于 CTP 来说非常稳定。也就是说,有一些已知的错误。最值得注意的是围绕await 表达式的操作顺序。因此,请遵循每条语句只有一个 await 的准则,并将 await 表达式设为顶级表达式,例如:

var result = await ...;

我相信 Jon Skeet 在他的 eduasync series 中也发现了一些更不为人知的错误。

没有已修复或仍然存在的异步 CTP 错误列表(在Microsoft.Bcl.Async 中)。微软内部可能有一些列表,但没有其他人知道。

该应用程序基于 TPL,WPF 处理来自互联网(证券交易所)的异步数据流。

在这种情况下,请考虑Rx。 .NET 4 完全支持 Rx,但我认为它确实需要 VS2012 进行开发。

【讨论】:

  • 我已经 100% 陷入了 1% 无法在 Windows XP 上使用 VS2012 开发的应用程序
  • Rx 甚至可以在 .NET 3.5 中开发,尽管有一些注意事项是 Rx 的最新版本(2.0 及更高版本)传递给为 .NET 4.5 开发而没有修复 .NET 版本中的错误和问题。 NET 4.0 和 Rx 2.0 在 .NET 4.0、VS2010 (Windows XP SP3) 中不起作用,尽管它被写入了
  • @ГеннадийВанинНовосибирск:我指的是Identity not implementing IClaimsIdentity之类的1%。 async WPF 应用程序应该没有问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-18
  • 2012-05-15
  • 2012-06-13
  • 2011-12-30
  • 2010-11-19
  • 1970-01-01
相关资源
最近更新 更多