Der Aufbau einer .NET-Anwendung und das Zusammenspiel mit Bibliotheken bildet den ersten Teil dieses Kapitels, der zweite Teil widmet sich Konfigurationsdateien.
8 Anwendungen: Struktur und Installation
8.1 Bibliotheken 

Sobald Projekte etwas größer werden, teilen Sie den Code auf mehrere Dateien auf. Damit Sie das Rad nicht bei jedem Projekt neu erfinden, sollten Sie die eventuell für andere Projekte nützliche Funktionalität in Bibliotheken zusammenfassen. Sie werden vom Compiler in Dateien mit der Endung dll abgelegt und sind selbst nicht lauffähig, sondern müssen von einer Anwendung aus angesprochen werden. Das Visual Studio bietet zur Erstellung einige Vorlagen an. Wir konzentrieren uns hier auf die Projektvorlage Klassenbibliothek.
Vorhandene Quelltextdateien können Sie auf zwei Arten in einer Bibliothek integrieren:
- In den Projekteigenschaften, erreichbar über das Menü Projekt, legen Sie auf der Karteikarte Anwendung im Listenfeld den Anwendungstyp Klassenbibliothek fest.
- Fügen Sie über das Kontextmenü Hinzufügen • Vorhandenes Element die Quelltextdateien hinzu.
8.1.1 Projekte in einer Projektmappe 

In Abschnitt 2.4, »Projektorganisation«, habe ich Ihnen bereits gezeigt, wie Sie mehrere Projekte in einer Projektmappe organisieren können. Das hat den Vorteil, dass Sie nicht für jedes offene Projekt eine eigene Instanz von Visual Studio starten müssen. Die Zusammenfassung von Projekten in einer Projektmappe hat keinen Einfluss auf die Kompilation. Abhängigkeiten der einzelnen Projekte müssen Sie in den Projekteigenschaften festlegen.
Von den Projekten einer Mappe kann nur jeweils eines aus dem Visual Studio heraus gestartet werden. Das Startprojekt ist im Projektmappenexplorer fett geschrieben. Über den Kontextmenüpunkt Als Startprojekt festlegen eines Projekts können Sie es zum Startprojekt machen. Physikalisch werden Projekte als Unterordner des übergeordneten Ordners der Projektmappe gespeichert. Die .sln-Datei in diesem Verzeichnis definiert die Zusammensetzung der Projektmappe, die .suo-Datei speichert die für die Mappe festgelegten Optionen.
8.1.2 Zugriffsmodifikatoren 

Damit eine Anwendung auf die Funktionalität einer Bibliothek zugreifen kann, muss diese die Sichtbarkeit Public oder, im Falle von Kindklassen, Protected haben. Auf Klassenebene gibt es nur die Modifizierer Public und Friend. Wie in Abschnitt 3.2.1, »Kombination«, beschrieben ist, können Modifizierer nur einschränken, nicht erweitern. Damit muss eine Bibliotheksklasse den Modifizierer Public haben, und ihre Mitglieder müssen Public oder Protected sein.
Neben diesen Modifizierern können Sie Friend-Klassen und -Mitglieder einer gegebenen Anwendung oder Bibliothek zugänglich machen. Dazu geben Sie der Bibliothek das Attribut InternalsVisibleTo aus dem Namensraum System.Runtime.CompilerServices. Dem ersten Argument übergeben Sie den Namen der Bibliothek oder Anwendung, die auf die Friend-Elemente zugreifen können soll, zum Beispiel:
Imports System.Runtime.CompilerServices
<Assembly:InternalsVisibleTo("AndereBibiothek")>
Namespace ClassLibrary
Class X ...
End Namespace
8.1.3 Einbinden einer Klassenbibliothek 

Über den Knoten Verweise eines Projekts im Projektmappen-Explorer können Sie dem Projekt eine Bibliothek bekannt machen (gegebenenfalls müssen Sie den Knoten über die Schaltfläche Alle Dateien anzeigen sichtbar machen). Im Kontextmenü des Knotens wählen Sie Verweis hinzufügen... Alternativ klicken Sie auf die gleichnamige Schaltfläche auf der Karteikarte Verweise der Projekteigenschaften. Daraufhin öffnet sich der in Abbildung 8.1 gezeigte Dialog mit den Registerkarten .NET, COM, Projekte, Durchsuchen und Aktuell (siehe Tabelle 8.1).
Registerkarte | Bedeutung |
.NET |
Grundlegende Bibliotheken im Global Assembly Cache (siehe unten) |
COM |
Common Object Model: Vorgängertechnologie von .NET zur Interoperabilität von Anwendungen »beliebiger« Programmiersprachen |
Projekte |
Alle in der Visual Studio-Umgebung verfügbaren Projekte |
Durchsuchen |
Navigation im Dateisystem zu einer Bibliothek |
Aktuell |
Zeigt alle vor kurzem hinzugefügten Verweise an |
Abbildung 8.1 Der Dialog »Verweise hinzufügen«
Bitte beachten Sie, dass selbst teilweise innerhalb von .NET ein Bibliotheksname nichts mit dem oder den Namensräumen der Definitionen zu tun haben muss.
Ihre Meinung
Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.