What are the major risks vs. benefits of using VS2010 Async CTP?
Asked Answered
C

1

2

I'd like to use Visual Studio Async CTP (Version 3) for developing and testing in VS2010 SP1 on Windows XP SP3 mainly because my clients (as well as I) on Windows XP SP3. Ghere is a related discussion on MSDN forum: 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?

Though, the NOTE ON "AS IS" LICENSE tells:

While the Async CTP license does not prevent you using it at your own risk in production environments, we advise you not to. The goal of this CTP is solely to gather feedback on our intended async design. We did not design or build it to be used in production environments, and did not test it as thoroughly as is needed for use in production environments, and we believe it has too many flaws to be fit for use in production environments. We gratefully appreciate feedback on the Async CTP, but we do not plan to make any fixes to the Async CTP itself: the fixes we make will only appear in the eventual supported released product

How serious are those flaws and bugs, being abandoned in Visual Studio Async CTP (Version 3) and what are the possible other consideration that I should take into account which can force me to change my decision?

The main reasons of asking are that:

  • I did not follow much anything about C#/.NET 4.5 VS2012 topics (due to sticking to Windows XP SP3, .NET 4.0 and VS2010) and I need to reduce the time of bumping into critical issues;
  • I have never before been in a situation when I should probably follow the lists of bug fixes (instead of specific isolated issue on a by-need basis)
    Do I really need now, for this case?

The main question:
What are the araes/possibilities that the unsupported flaws will not have easy workarounds in .NET/C# 4.0 in VS2010, Windows XP SP3 and those that can outweigh the benefits of using async/await

The asnwer to @DanPuzey's comment:

The application is based on TPL, WPF dealing with asynchronously coming from the internet (stock exchange) data flows. I have never before needed to care that I would be left with unsupported docs (samples), flaws and bugs. I probably will not be able to ask about them since they will not be reproducible by MSFT support as well as by others. I'd like to estimate the risks vs. benefits of using unsupported extensions

Are the main differences, flaws, bugs and risks infinite and cannot be enumerated? At all?

Let me cite from download page:

"Includes a new EULA for production use. Note - This license does not constitute encouragement for you to use the CTP for your production code. The CTP remains an unsupported and use-at-your-own-risk Technology Preview. However, we’ve received many requests from developers to use the CTP for production code, and so have changed the license to allow that"

The answer to @CodesInChaos' comment:

This is not the option as it was mentioned in the beginning of my question with reference to preventer link description here discussion. One cannot develop and test .NET 4.0 app from VS2012 or machine having .NET 4.5. It is impossible to install VS2012 or .NET4.5 on Windows XP. My experience (tried to install apps from other vendors) is that mentioned by you approach does not produce apps running on Windows XP

Cos answered 8/4, 2013 at 7:15 Comment(5)
I'm not clear what you're asking. You seem say you've never needed to read the documentation before and are asking whether you should. Are you expecting someone to suggest which bugs in a pre-release product might be important to you, working on an unknown project with unknown requirements in a decade-old operating system? I don't think that's a question you're going to get an answer to here...Wendelina
How would anyone reading this question understand the benefits you perceive or be able to judge the risk? Such a person would have to understand the code base of your entire application, and the extent to which async would be used. The fact that the license explicitly advises you not to use the CTP in a production environment is the only thing from your question that I could base any opinion on. (And from that, I would suggest that if you are stuck with XP/VS2010, you are also stuck without async support.)Wendelina
I prefer using VS2012 together with the async targeting pack. That requires developing on newer versions of windows, but the users can be on XP. See my related question Using async-await on .net 4Blomquist
If you need to support xp users don't use vs2012, don't install .net 4.5, if you can't have separate machines with xp for development and testing don't bother, you will not be able to find eventual bug, you can use every async support library in vs2010, even blc async, just read my previous answer here https://mcmap.net/q/24359/-async-await-targeting-4-0-deployment-requirements no KB and .net 4.5 required. Don't let Microsoft force you to update only because they don't want to make a silly update for .net 4.Pulverable
@Programista, Thanks. posted the same in my answers here, here and here. All downvotedCalabash
S
2

I second @CodesInChaos' recommendation that you develop using VS2012. I use VS2012 on Windows 7 to develop .NET 4 apps running on Windows XP, and it works fine. The only caveat is that you can't debug on .NET 4 (you actually run on the .NET 4.5 runtime), but for 99% of the cases that doesn't matter.

I did use Async CTP in production; I considered it surprisingly stable for a CTP. That said, there are some known bugs. Most notable was the ordering of operations around await expressions. So follow the guideline of only having one await per statement, and make the await expression your top-level expression, e.g.:

var result = await ...;

I believe Jon Skeet also uncovered some more obscure bugs during his eduasync series.

There is no list of Async CTP bugs that have been fixed, or that still exist (in Microsoft.Bcl.Async). There may be some list inside Microsoft, but no one else knows it.

The application is based on TPL, WPF dealing with asynchronously coming from the internet (stock exchange) data flows.

In that case, consider Rx. Rx is fully supported on .NET 4, though I believe it does require VS2012 for development.

Stratagem answered 8/4, 2013 at 12:42 Comment(3)
And I've already fallen 100% into that 1% failing to use on Windows XP an app developed in VS2012Calabash
Rx can be developed even in .NET 3.5 though there are caveats that the latest releases of Rx (2.0 and on) passed to being developed for .NET 4.5 without fixing the bugs and problems in releases for .NET 4.0 and Rx 2.0 doesn't work useles in .NET 4.0, VS2010 (Windows XP SP3) though it is written that it doesCalabash
@ГеннадийВанинНовосибирск: The 1% I'm referring to are things like Identity not implementing IClaimsIdentity. An async WPF app shouldn't be having problems.Stratagem

© 2022 - 2024 — McMap. All rights reserved.