Ich beginne derzeit mit der Erstellung einer Anwendung, die von der asynchronen Wartefunktion von C # 5 sehr profitieren würde. Ich bin mir jedoch nicht sicher, welche Version von VS und der asynchronen Laufzeit verwendet werden soll.
Wenn ich mir die Beliebtheitstabellen des Betriebssystems anschaue, muss ich Windows XP noch etwa drei Jahre lang unterstützen. Es sieht so aus, als ob .net 4.5 nur unter neueren Windows-Versionen ausgeführt wird, daher muss ich auf .net 4.0 abzielen. Die Entwicklungsmaschinen verwenden Windows 7, daher ist die Verwendung einer neueren Version von VS kein Problem.
Jetzt muss ich zuerst einen Compiler auswählen, um dies zu tun:
- VS2010 mit AsyncCTP
- VS2012-Vorschau (und endgültig, sobald sie eintrifft), wobei das Ziel auf .net 4.0 festgelegt wird
- Mono (Sieht so aus, als hätte 2.12 asynchrones Warten, ich bevorzuge / bin es gewohnt, VS gegenüber MonoDevelop als IDE zu verwenden)
Welches hat weniger Code-Gen-Fehler? Wenn Sie sich Jon Skeets Blog ansehen, verwendet die VS2012-Vorschau einen Never-Code-Generator als das CTP.
Und was noch wichtiger ist, welche Laufzeit soll verwendet werden?
Enthält VS2012 eine weiterverteilbare asynchrone Laufzeit zur Verwendung mit .net 4?
Ich habe es geschafft, Code mit der Vorschau zu kompilieren, indem ich auf die AsyncCTP-Laufzeit verwiesen habe. Da das CTP jedoch seltsame Lizenzbedingungen hat, scheint dies keine gute langfristige Lösung zu sein.
Oder sollte ich eine Implementierung eines Drittanbieters verwenden? Vielleicht hat Mono einen?
Für die Verteilung der Bibliothek ziehe ich es vor, die DLL einfach im selben Verzeichnis wie die Anwendung abzulegen, anstatt eine Art Installationsprogramm.
Ich würde es auch mögen, wenn meine Binärdateien unter Mono + Linux / MacOS ohne Änderungen funktionieren würden. Daher sollte die Laufzeit entweder mit dem integrierten Mono (wahrscheinlich 2.12) kompatibel sein oder die Verwendung unter Nicht-Windows-Betriebssystemen ermöglichen.