Home   Cover Cover Cover Cover
 

Eignung von C# für große Softwareprojekte

Bei großen Softwareprojekten geht es vor allem darum, die Komplexität in den Griff zu bekommen. Man erreicht das, indem man den Überblick über die Software bewahrt und Komplexes hinter einfachen Schnittstellen verbirgt. Folgende Sprachmittel helfen einem dabei:

  • Klassen fassen Daten und dazugehörige Operationen zu einer Einheit zusammen. Komplexe Algorithmen und Datenstrukturen können hinter einfachen Methodenschnittstellen verborgen werden (Information Hiding). Neben Methoden helfen auch Properties und Indexer bei der Datenabstraktion.


  • Namensräume fassen verwandte Klassen und andere Typen zu größeren Einheiten zusammen und helfen so besonders in großen Projekten Ordnung zu schaffen.


  • Interfaces erlauben es, von der konkreten Implementierung eines Bausteins zu abstrahieren und sich ganz auf seine Schnittstelle zu konzentrieren. Ein und dieselbe Schnittstelle kann von ganz unterschiedlichen Klassen implementiert werden, die dann auf dieselbe Art benutzt werden können.


  • Die objektorientierten Eigenschaften von C# (v.a. Vererbung und dynamische Bindung) unterstützen die Wiederverwendung und Erweiterbarkeit von Software. Dadurch muss nicht jedes Software-Projekt bei Null beginnen.


  • Typsicherheit. Die strenge Typprüfung zur Compilezeit fängt bereits viele Programmierfehler ab. Der Garbage Collector garantiert zur Laufzeit, dass Objekte weder zu früh noch zu spät freigegeben werden. Dadurch werden lästige Fehler vermieden. Typumwandlungen werden zur Laufzeit geprüft. Ungültige Arrayindizierungen und Zugriffe über null-Referenzen werden ebenfalls erkannt. Dadurch wird ein Softwareprojekt nicht zu einem Hochseilakt ohne Netz.


  • Assemblies tragen eine Versionsnummer. Dadurch wird sichergestellt, dass zur Laufzeit die korrekten Versionen von Softwareteilen geladen werden, d.h. jene, mit denen der Compiler seine Typprüfungen durchgeführt hat. Die Möglichkeit, Assemblies zu signieren, macht Viren das Leben schwer.