Was ich persönlich sehr interessant an C# / .NET finde, ist die Tatsache, dass es für eine so junge Technologie erstaunlich ausgereift ist. In der FH führe ich zurzeit ein Semesterprojekt durch, das eine Steuerungssoftware inklusive Auswertung und so Spielkram für einen Extruder zum Ziel hat - komplett in C# ;c)
Ich finde vor allem, dass die Anbindung an die C-
API per P/Invoke eine super Sache ist. Man muss sich nicht mehr mit dem char*-Dreck etc. rumschlagen, weil der Marshaller das automatisch in einen string bzw. StringBuilder umsetzt, und man kann das Layout von structs exakt festlegen, also auch zum Beispiel, dass ein Array, das standardmäßig ja eine Referenz ist, flach in der struct abgelegt wird. Das ist eine Flexibilität, von der ich immer geträumt habe ;c)
Ich finde auch sehr interessant, dass es eigentlich keine fundamentalen Typen mehr gibt und nur noch zwischen Referenz- und Werttypen (also class und struct) unterschieden wird. Rein von der Performance her muss man zwar drauf achten, dass ein Integer nicht plötzlich geboxt wird, aber wenn's nicht so auf die Performance ankommt, braucht man an solche Kleinigkeiten nicht mehr zu denken.
Bei uns an der FH wird leider immer noch sehr viel Java benutzt, obwohl die Dozenten immer wieder anmerken, dass Java-Programme eigentlich sehr langsam sind.
Übrigens, MonoDevelop ist eine Auskopplung von SharpDevelop (#D) 0.98.
Auf D9 bin ich auch in dieser Hinsicht gespannt. Als VS2005-Fan hoffe ich, dass Borland aus einer Menge kleinerer Fehler (aus meiner Sicht zumindest) lernt und ausnahmsweise mal die Microsoft-Umgebung übertrifft. JBuilderX war ja auch eine super Sache, nur leider halt in Java geschrieben und damit recht träge. Was die Sprache angeht, werde ich in jedem Falle bei C# bleiben, vielleicht von einigen in Managed C++ gehaltenen Teilen abgesehen.
Zitat:
Jedoch störts mich, dass weder für
FTP noch für HTTP ne Klasse im Framework ist (für mich unverständlich).
HttpWebRequest und FtpWebRequest und -Response vielleicht? In Whidbey gibt's auch schon einen HttpListener (also einen HTTP-Server).
Zitat:
ich denke mal die Begeisterung wird sich etwas legen, wenn Du mal DLLs bzw. Funktionen der Windows
API importieren willst, bzw. musst, weil eben nichts passendes dabei ist.
Das ist doch etwas aufwändiger, speziell wenn Pointer erforderlich sind.
Auf
P/Invoke.net sind so ziemlich alle Windows-
API-Funktionen bereits als .NET-Prototypen vorhanden...