Using async-await on .net 4
-
Saturday, February 04, 2012 1:16 PM
I'm currently starting to create an application that would profit a lot from C# 5's async-await feature. But I'm not sure which version of VS and of the async runtime to use.
Looking at OS popularity charts, I'll need to support Windows XP for another three years or so. It looks like .net 4.5 runs only on newer versions of Windows, so I need to target .net 4.0. The development machines use Windows 7, so using a newer version of VS is not a problem.
Now I need to first choose a compiler for doing this:
- VS2010 with AsyncCTP
- VS2012 Preview (and final once it arrives), setting the target to .net 4.0
- Mono (Looks like 2.12 has async-await, I prefer/am used to VS over MonoDevelop as IDE)
Which one has fewer code-gen bugs?
And more importantly which runtime to use?
Does VS2012 contain a redistributable async runtime for use with .net 4?
I managed to compile code, with the preview, by referencing the AsyncCTP runtime. But since the CTP has strange licensing conditions, that doesn't look like a good long term solution.
Or should I use a third party implementation? Perhaps mono has one?
For distributing the library I prefer simply putting the dll in the same directory as the application, instead of some kind of installer.
I'd also like it if my binaries would work without changes on mono+Linux/MacOS. So the runtime should either be compatible with whatever mono (2.12 probably) has built in, or allow use on non windows OSs.
Crossposted on Stackoverflow- Edited by CodesInChaos Saturday, February 04, 2012 1:25 PM
All Replies
-
Tuesday, May 08, 2012 11:45 AM
Omer Mor answered on Stackoverflow:
Microsoft recently released the Async Targeting Pack for Visual Studio 11 through Nuget as a replacement for the AsyncCTP.
You can read more about it here: http://blogs.msdn.com/b/lucian/archive/2012/04/24/async-targeting-pack.aspx.
As this pack is officially supported, I now believe the best option for targeting XP + async would be using Visual Studio 11 + C#5 + Async Targeting Pack.
If you feel the need to target .NET 3.5 though, you can still use (my) AsyncBridge for .NET 3.5.
- Marked As Answer by CodesInChaos Tuesday, May 08, 2012 11:45 AM
- Edited by CodesInChaos Tuesday, May 08, 2012 11:47 AM
-
Thursday, May 17, 2012 8:01 PMWill this work for .net 4.0 projects?

