Obecnie zaczynam tworzyć aplikację, która przyniosłaby duże korzyści dzięki funkcji async-await w języku C # 5. Ale nie jestem pewien, której wersji VS i środowiska uruchomieniowego asynchronicznego użyć.
Patrząc na wykresy popularności systemów operacyjnych, będę musiał obsługiwać system Windows XP przez kolejne trzy lata. Wygląda na to, że .net 4.5 działa tylko w nowszych wersjach systemu Windows, więc muszę wybrać .net 4.0. Maszyny deweloperskie korzystają z systemu Windows 7, więc korzystanie z nowszej wersji VS nie stanowi problemu.
Teraz muszę najpierw wybrać kompilator do tego:
- VS2010 z AsyncCTP
- Wersja zapoznawcza VS2012 (i ostateczna, gdy nadejdzie), ustawiając cel na .net 4.0
- Mono (wygląda na to, że 2.12 ma async-await, wolę / jestem przyzwyczajony do VS zamiast MonoDevelop jako IDE)
Który z nich ma mniej błędów związanych z genem kodu? Patrząc na blog Jona Skeeta, VS2012 Preview używa nigdy generatora kodu niż CTP.
A co ważniejsze, którego środowiska uruchomieniowego użyć?
Czy VS2012 zawiera redystrybucyjne asynchroniczne środowisko uruchomieniowe do użytku z .net 4?
Udało mi się skompilować kod z podglądem, odwołując się do środowiska uruchomieniowego AsyncCTP. Ale ponieważ CTP ma dziwne warunki licencyjne, nie wygląda to na dobre długoterminowe rozwiązanie.
Czy powinienem skorzystać z implementacji innej firmy? Może mono ma taki?
Do dystrybucji biblioteki wolę po prostu umieścić bibliotekę dll w tym samym katalogu co aplikacja, zamiast jakiegoś instalatora.
Chciałbym też, żeby moje pliki binarne działały bez zmian na mono + Linux / MacOS. Zatem środowisko wykonawcze powinno albo być kompatybilne z tym, co mono (prawdopodobnie 2.12) ma wbudowane, albo pozwalać na użycie w systemach operacyjnych innych niż Windows.