3 Dinge, die ich an .NET mag

In meinem Studium hatte ich in den letzten Wochen wieder die Möglichkeit eine neue Sprache kennenzulernen, nämlich C# auf der .NET Plattform. Sobald man eine neue Sprache lernt, vergleicht man unweigerlich mit den bisher bekannten Konstrukten. Daher möchte ich in diesem Artikel festhalten, was ich an C# und .NET mag und was vielleicht in C# anders oder auch besser gelöst wurde, als mit anderen Sprachen wie PHP, Java, Javascript.

1. “Syntactic Sugar” in C#

  • Properties (einfachere Definition von getter/setter und einfacherer Zugriff)

  • Alle Typen (auch primitive) sind von Sytem.Object abgeleitet -> Primitive Datentypen werden mittels Boxing / Unboxing automatisch umgewandelt

2. Die IDE – Microsoft Visual Studio

Auch wenn ich die IDE nur Oberflächlich kennengelernt habe, sind mir einige Dinge sehr positiv aufgefallen.

  • Gute Code Completion
  • Gute Integration der Bibliotheken
  • Klassendiagramm Ansicht (Aus Source Code wir direkt ein Klassendiagramm generiert und umgekehrt)

3. .NET Framework

C# ist logischerweise in das .NET Framework integriert und das bedeutet, dass man folgende Eigenschaften des .NET Frameworks nutzen kann.

  • Multilanguage Development möglich
  • Gemeinsames Typensystem
  • Umfangreiche Libraries
  • Alle Typen (auch primitive) sind von Sytem.Object abgeleitet

 

Ich glaube nicht, dass ich in nächster Zeit wieder mit C# und .NET in Kontakt komme, aber die Programmierer in der Microsoft Welt haben definitiv einige gute Tools und Sprachen zur Verfügung.

Was habt ihr für Erfahrungen mit C# und .NET gemacht?

8 Responses

  1. Das man alles was mit Microsoft und .NET zu tun hat niemalsnicht auf seinem Computer installieren darf nur um es mal auzuprobieren.
    Wer sich das jetzt mal anschauen will weil er neugierig geworden ist, sollte das auf alle Fälle in einer virtuellen Maschine machen (VM-Ware, Virtual Box o.ä.). Bei C# und MS Visual Studio weiß ich gar nicht mehr wie lange ich gebraucht hatte um den PC wieder sauber zu bekommen. Bei MS WebMatrix dauerte es bei mir 6 Stunden um die .NET-Komponenten vom PC wieder zu entfernen ohne das dieser sich ständig ins Nirvana verabschiedete.

  2. Ich empfinde Autoboxing gar nicht so sehr als Feature, sondern viel mehr als Krücke, die nichteinmal ganz ungefährlich ist, kennt der primitive Datentyp schließlich keine null. Die u.U. notwendige Null-Abfrage ist bei der einfachen Zuweisung schnell übersehen. Ansonsten erinnert mich C# noch immer sehr an Java, nur mit viel besserer OS-Integration und ein paar mehr Sprachfeatures, dafür mit schlechterer OS-Portabilität.

  3. @Ralf
    Zum Glück haben wir das ganze schon in einer VMWare erhalten, daher habe ich mir über das entfernen gar keine Gedanken gemacht 🙂

    @David
    Stimmt, LINQ ist noch ne gute Sache. Hätte ich auch noch in die Liste aufnehmen können.

    @Blubberbart
    In jeder Sprache gibt es Konstrukte, bei denen wissen muss was man tut. Insgesamt finde ich es aber trotzdem eine Erleichterung für die Anwendung.
    Ja, C# kam auch nach Java. Die Sprachen entwickeln sich weiter und jeder schaut von jedem ab. Insgesamt sind die Sprachen C, C++, C#, Java, Javascript und PHP vom Syntax her sehr ähnlich, da sie alle die gleiche Basis haben.

  4. “Bei MS WebMatrix dauerte es bei mir 6 Stunden um die .NET-Komponenten vom PC wieder zu entfernen ohne das dieser sich ständig ins Nirvana verabschiedete.”

    Ohne hier beleidigen zu wollen… aber das tönt stark nach einem Layer 8 Problem!

  5. @Martin Jäger:
    Wenn Layer 8 das Windows Update ist, gebe ich dir Recht. Leider ist das MS Update nicht so wirklich prickelnd, so dass man schon mal ein paar Stunden mit Neustarts und Deinstallation verbringen kann um eine .NET-Komponente los zu werden die sich nicht updaten lässt, von MS Update aber ständig upgedatet werden soll.
    Vielleicht lag es auch am Win XP, unter Win 7 lies sich alles recht reibungslos entfernen.

  6. nein… bei Layer 8 hab ich an was anderes gedacht! 😛
    Nun, mit XP würd ich auch ned unbedingt mit den aktuellen Tools entwickeln wollen!

Leave a Reply

Your email address will not be published. Required fields are marked *