Ich habe nicht viele Fälle gefunden, in denen C# keine gute Wahl für Sprachen ist und .Net (oder Mono) keine gute Plattform ist. Bemerkenswerte Ausnahmen sind die Entwicklung auf Kernel-Ebene oder Treiber. Es gibt viele Bereiche, in denen Low-Level- und Rohleistung benötigt wird. Für die meisten, wenn nicht sogar für alle Geschäfts- oder Unternehmensanwendungen ist C# eine der besseren Wahl für die Entwicklung. Es wird gut unterstützt und arbeitet mit vielen anderen Systemen, Bibliotheken, Kommunikationskanälen und Komponenten zusammen, die bereits verfügbar sind, ganz zu schweigen von der Tatsache, dass es eine recht angenehme Sprache ist (insbesondere 3.5), mit der man arbeiten kann.
ASP.N
In Bezug auf Dienstschichten und sogar GUI-Entwicklung ist es ziemlich gut. Ich habe viel mehr Erfahrung mit webbasierten Anwendungen und Dienst-/Kommunikations-/Geschäftsschichten als mit Desktop-GUI-Anwendungen, daher kann ich dazu nicht viel sagen. Ich habe das Gefühl, dass es bei der GUI-Entwicklung mehr auf die IDE/Toolkit ankommt als auf die jeweilige Sprache.
Was die Langsamkeit betrifft, so führen Sie speziell Java an. In den meisten Fällen ist C#/.Net genauso schnell oder schneller als Java. IMHO verläuft die Entwicklung mit C# (Visual Studio) reibungsloser als mit Java (Eclipse). Für webbasierte Anwendungen bevorzuge ich ASP.Net MVC (und sogar ASP.Net) gegenüber Swing. Das ist aber nur meine Meinung.