Gewusst wie: Überprüfen von C- und C++-Code anhand von Ebenendiagrammen

Mit diesem Visual Studio 2010 Feature Pack können Sie während der Entwicklung des Codes die Einhaltung architekturbezogener Einschränkungen für C und C++-Code in Visual Studio 2010 Ultimate erzwingen. Führen Sie für diese Aufgabe regelmäßig eine Ebenenvalidierung aus, um die Abhängigkeiten in Code mit den Abhängigkeiten in einem Ebenendiagramm zu vergleichen. Ein Ebenendiagramm beschreibt die Architektur des Systems und organisiert Namespaces, Projekte und andere Artefakte in logischen, abstrakten Gruppen oder Ebenen. Diese Ebenen beschreiben die Hauptkomponenten des Systems oder die Aufgaben, die von diesen Artefakten ausgeführt werden. Führen Sie zum Erstellen eines Ebenendiagramms für C- oder C++-Code die gleichen Schritte wie bei .NET-Code aus. Weitere Informationen finden Sie unter Gewusst wie: Erstellen von Ebenendiagrammen aus Artefakten und Visual Studio Feature Packs.

Tipp

Sie müssen Visual Studio 2010 Feature Pack installieren, um diese Funktion verwenden zu können.

Für Binärdateien wird die Ebenenvalidierung nur auf Binärebene ausgeführt. Obwohl Sie andere Arten von Artefakten mit einem Ebenendiagramm verknüpfen können, werden von der Ebenenvalidierung nur Abhängigkeiten auf Binärdateiebene analysiert.

Die Ebenenvalidierung kann auch die folgenden Aufgaben vereinfachen:

  • Erkennen von Unterschieden zwischen dem vorhandenen Code und dem beabsichtigten Entwurf

  • Finden von Code, der nicht wie beabsichtigt organisiert ist oder unerwünschte Abhängigkeiten aufweist

  • Ermitteln von Abhängigkeiten, die möglicherweise von vorgeschlagenen Änderungen betroffen sind

    Sie können z. B. das Ebenendiagramm ändern, um potenzielle Architekturänderungen darzustellen, und dann den Code überprüfen, um die betroffenen Abhängigkeiten zu ermitteln.

  • Umgestalten oder Migrieren von Code in einen anderen Entwurf

    Ermitteln von Code oder Abhängigkeiten, die bei der Umstellung des Codes auf eine andere Architektur noch bearbeitet werden müssen

In diesem Thema werden die Anforderungen beschrieben, die erfüllt sein müssen, bevor Sie die Ebenenvalidierung für C- oder C++-Code ausführen.

Anforderungen

  • Stellen Sie sicher, dass Visual C# mit Visual Studio installiert ist.

  • Erstellen eines Modellierungsprojekts mit einem Ebenendiagramm

  • Fügen Sie zum Überprüfen von Binärdateiabhängigkeiten dem Modellierungsprojekt die Binärdateien hinzu

  • Informationen zum Validieren von C- und C++-Projekten für Team Foundation Build finden Sie unter Anforderungen für Team Foundation Build.

Wenn diese Anforderungen erfüllt sind, können Sie die gleichen Schritte wie bei .NET-Code ausführen. Informationen zu diesen Schritten finden Sie unter Gewusst wie: Überprüfen von .NET-Code anhand von Ebenendiagrammen. Informationen zu Probleme im Zusammenhang mit Modellierungsprojekten und Ebenendiagrammen, die mit C- oder C++-Code erstellt wurden, finden Sie unter Problembehandlung.

Erstellen eines Modellierungsprojekts mit einem Ebenendiagramm

Die Visual Studio-Projektmappe muss ein Modellierungsprojekt mit einem Ebenendiagramm einschließen.

So erstellen Sie ein Modellierungsprojekt

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den Projektmappenknoten der obersten Ebene, zeigen Sie auf Hinzufügen, und klicken Sie dann auf Neues Projekt.

  2. Klicken Sie im Dialogfeld Neues Projekt hinzufügen unter Installierte Vorlagen auf Modellierungsprojekte und dann auf Modellierungsprojekt.

  3. Benennen Sie das Projekt um, und klicken Sie dann auf OK.

    Visual Studio fügt der Projektmappe ein neues Modellierungsprojekt hinzu.

  4. Speichern Sie das Modellierungsprojekt.

So erstellen Sie ein Ebenendiagramm

  1. Klicken Sie im Menü Architektur auf Neues Diagramm, und klicken Sie dann im Dialogfeld Neues Diagramm hinzufügen auf Ebenendiagramm.

  2. Benennen Sie das Diagramm um, wählen Sie das Modellierungsprojekt aus, und klicken Sie dann auf OK.

    Visual Studio fügt dem Modellierungsprojekt ein leeres Ebenendiagramm hinzu und zeigt dann das Diagramm an.

  3. Ziehen Sie im Projektmappen-Explorer mindestens ein C- oder C++-Projekt auf die Ebenendiagrammoberfläche.

    – oder –

    Ziehen Sie im Architektur-Explorer mindestens eine Binärdatei auf die Ebenendiagrammoberfläche.

    Beim Ausführen eines dieser Schritte werden dem Modellierungsprojekt auch die folgenden Elemente automatisch hinzugefügt:

    • Dem Modellierungsprojekt werden Projektverweise hinzugefügt.

    • Der Modellierungsprojektdatei (.modelproj) wird ein <Import>-Element hinzugefügt, mit dem eine benutzerdefiniert TARGETS-Datei importiert und die Ebenenvalidierung für C- oder C++-Code aktiviert wird.

  4. Definieren Sie andere Ebenen definieren, verknüpfen Sie Artefakte mit ihnen, und die beschreiben Sie die beabsichtigten Abhängigkeiten zwischen diesen Artefakten.

    Weitere Informationen finden Sie unter Gewusst wie: Erstellen von Ebenendiagrammen aus Artefakten und Ebenendiagramme: Richtlinien.

  5. Speichern Sie das Modellierungsprojekt.

    Wichtig

    Wenn Sie nur das Ebenendiagramm speichern, nicht jedoch das Modellierungsprojekt, und dann die Projektmappe schließen, müssen Sie C- oder C++-Projektverweise hinzufügen und die benutzerdefinierte TARGETS-Datei für das Modellierungsprojekt manuell importieren. Weitere Informationen finden Sie unter Problembehandlung.

Wichtig

Wenn Sie ein Ebenendiagramm mit C oder C++-Code in Visual Studio 2010 Ultimate unter Windows XP oder Windows 2003 erstellen, wird ein absoluter Pfad verwendet, um den Eintrag zum Importieren der benutzerdefinierten Microsoft.VisualStudio.Progression.NativeProvider.targets-Datei in der Modellierungsprojektdatei (.modelproj) zu erstellen. Dies könnte Probleme verursachen, wenn Sie versuchen, die Projektmappe unter Windows 7, Windows Vista oder Windows Server 2008 zu öffnen. Wenn Sie Visual Studio 2010 Ultimate unter Windows XP oder Windows 2003 ausführen, können Sie keine Ebenendiagramme öffnen, die in Visual Studio 2010 Ultimate unter Windows 7, Windows Vista oder Windows Server 2008 erstellt wurden. Informationen zum Beheben dieses Problems finden Sie unter Problembehandlung.

Hinzufügen der Binärdateien zum Modellierungsprojekt

Wenn Sie Binärdateiabhängigkeiten überprüfen möchten, müssen Sie die zu überprüfenden Binärdateien manuell dem Modellierungsprojekt hinzufügen. Die Dateien werden nicht automatisch hinzugefügt, wenn Sie sie in das Ebenendiagramm ziehen.

So fügen Sie dem Modellierungsprojekt Binärdateien hinzu

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Modellierungsprojekt, und klicken Sie dann auf Vorhandenes Element hinzufügen.

  2. Suchen Sie im Dialogfeld Vorhandenes Element hinzufügen die Binärdateien, wählen Sie die Dateien aus, und klicken Sie dann auf OK.

    Die Binärdateien werden im Modellierungsprojekt angezeigt.

  3. Klicken Sie im Projektmappen-Explorer auf die Binärdatei, die Sie hinzugefügt haben, und drücken Sie dann F4, um das Fenster Eigenschaften zu öffnen.

  4. Legen Sie für jeder Binärdatei die Eigenschaft Buildvorgang auf Überprüfen fest.

Anforderungen für Team Foundation Build

Zum Überprüfen von C- und C++-Projekten auf dem Team Foundation Build-Server müssen Sie folgende Schritte ausführen:

  1. Stellen Sie zum Kompilieren der Projekte sicher, dass Folgendes auf dem Server installiert ist:

    Tipp

    Wenn Visual Studio 2010 Ultimate auf dem Server installiert ist, können Sie statt dem Ausführen der Schritte 2 und 3 das Feature Pack auf dem Server installieren. Andernfalls müssen Sie den Ordner "<InsertVisualStudioFeaturePackName>\<InsertVisualStudioFeaturePackVersionNumber> erstellen, falls er nicht auf dem Server vorhanden ist. Sofern Sie das Feature Pack nicht an einem anderen Speicherort installiert haben, ist %LocalAppData% in der Regel "DriveName:\Users\UserName\AppData\Local". Verwenden Sie unter Windows XP oder Windows 2003 %APPDATA% statt %LocalAppData%.

  2. Wenn Sie Visual Studio 2010 Visualization and Modeling Feature Pack installiert haben:

    Kopieren Sie die Datei Microsoft.VisualStudio.Progression.NativeProvider.targets aus dem folgenden Feature Pack-Installationspfad an die gleiche Position auf dem Server:

    %LocalAppData%\Microsoft\VisualStudio\10.0\Extensions\Microsoft\<InsertVisualStudioFeaturePackName>\1.0

    Wenn Sie Visual Studio 2010 Feature Pack 2 installiert haben:

    Kopieren Sie die Datei Microsoft.VisualStudio.Progression.NativeProvider.targets aus dem folgenden Feature Pack-Installationspfad:

    …\Microsoft Visual Studio 10.0\Common7\IDE\Extensions\<InsertVisualStudioFeaturePackName>\<InsertVisualStudioFeaturePackVersionNumber>

    an die folgenden Position auf dem Server:

    …\Microsoft Visual Studio 10.0\Common7\IDE\Extensions\Microsoft\Modeling\<InsertVisualStudioFeaturePackName>\1.0

  3. Kopieren Sie die Datei Microsoft.VisualStudio.Progression.NativeProvider.dll aus einem der folgenden Feature Pack-Installationspfade, abhängig von der Version des installierten Feature Packs:

    • Visual Studio 2010 Visualization and Modeling Feature Pack: %LocalAppData%\Microsoft\VisualStudio\10.0\Extensions\Microsoft\<InsertVisualStudioFeaturePackName>\1.0

    • Visual Studio 2010 Feature Pack 2: …\Microsoft Visual Studio 10.0\Common7\IDE\Extensions\<InsertVisualStudioFeaturePackName>\<InsertVisualStudioFeaturePackVersionNumber>

    an den folgenden Serverspeicherort:

    …\Microsoft Visual Studio 10.0\Common7\IDE\PrivateAssemblies\Providers

Problembehandlung

Wenn Sie nur das Ebenendiagramm speichern, nicht jedoch das Modellierungsprojekt, und dann die Projektmappe schließen, müssen Sie C- oder C++-Projektverweise hinzufügen und die benutzerdefinierte TARGETS-Datei für das Modellierungsprojekt manuell importieren. Gehen Sie dazu folgendermaßen vor:

Aktion

Schritte

Hinzufügen der C- oder C++-Projektverweise

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Modellierungsprojekt, das die Ebenendiagramme enthält, und klicken Sie dann auf Verweis hinzufügen.

    – oder –

    Klicken Sie im Modellierungsprojekt mit der rechten Maustaste auf den Ordner Ebenenverweise, und klicken Sie dann auf Verweis hinzufügen.

  2. Wählen Sie im Dialogfeld Verweis hinzufügen die Projekte aus, die Sie überprüfen möchten, und klicken Sie dann auf OK.

    Die Projektverweise werden im Ordner Ebenenverweise angezeigt.

Importieren der benutzerdefinierten TARGETS-Datei

  1. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf den Modellierungsprojektknoten, und klicken Sie anschließend auf Projekt entladen.

  2. Klicken Sie mit der rechten Maustaste auf den Modellierungsprojektknoten, und klicken Sie dann aufModellierungsprojektname.modelproj bearbeiten.

  3. Suchen Sie in der Datei "Modellierungsprojektname.modelproj" das folgende <Import>-Element:

    <Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\ArchitectureTools\Microsoft.VisualStudio.TeamArchitect.ModelingProject.targets" />

    Fügen Sie unter diesem <Import>-Element das folgende <Import>-Element hinzu:

    Wenn Sie Visual Studio 2010 Visualization and Modeling Feature Pack installiert haben:

    <Import Project="$(LocalAppData)\Microsoft\VisualStudio\10.0\Extensions\Microsoft\<InsertVisualStudioFeaturePackName>\1.0\Microsoft.VisualStudio.Progression.NativeProvider.targets" />

    HinweisHinweis
    %LocalAppData% ist in der Regel DriveName:\Users\UserName\AppData\Local.Verwenden Sie unter Windows XP oder Windows 2003 %APPDATA% statt %LocalAppData%.Wenn das Feature Pack an einem anderen Speicherort installiert ist, verwenden Sie stattdessen diesen Speicherort.Sie können auch die Datei Microsoft.VisualStudio.Progression.NativeProvider.targets aus dem Feature Pack-Installationspfad in den Ordner kopieren, der das Modellierungsprojekt enthält.

    Wenn Sie Visual Studio 2010 Feature Pack 2 installiert haben:

    <Import Project="…$\Microsoft Visual Studio 10.0\Common7\IDE\Extensions\<InsertVisualStudioFeaturePackName>\<InsertVisualStudioFeaturePackVersionNumber>\Microsoft.VisualStudio.Progression.NativeProvider.targets" />

  4. Speichern Sie die MODELPROJ-Datei, und schließen Sie sie dann.

  5. Klicken Sie mit der rechten Maustaste auf den Modellprojektknoten, und klicken Sie anschließend auf Projekt erneut laden.

Wenn Sie ein Ebenendiagramm mit C oder C++-Code in Visual Studio 2010 Ultimate unter Windows XP oder Windows 2003 erstellen, wird ein absoluter Pfad verwendet, um den Eintrag zum Importieren der benutzerdefinierten Microsoft.VisualStudio.Progression.NativeProvider.targets-Datei in der Modellierungsprojektdatei (.modelproj) zu erstellen. Dies könnte Probleme verursachen, wenn Sie versuchen, die Projektmappe unter Windows 7, Windows Vista oder Windows Server 2008 zu öffnen. Wenn Sie Visual Studio 2010 Ultimate unter Windows XP oder Windows 2003 ausführen, können Sie keine Ebenendiagramme öffnen, die in Visual Studio 2010 Ultimate unter Windows 7, Windows Vista oder Windows Server 2008 erstellt wurden.

Verwenden Sie eine der folgenden Problemumgehungen, um dieses Problem zu beheben:

  1. Kopieren Sie die Datei Microsoft.VisualStudio.Progression.NativeProvider.targets aus folgenden Speicherort in den Ordner, der das Modellierungsprojekt enthält:

    Wenn Sie Visual Studio 2010 Visualization and Modeling Feature Pack installiert haben:

    %LocalAppData%\Microsoft\VisualStudio\10.0\Extensions\Microsoft\<InsertVisualStudioFeaturePackName>\1.0

    Tipp

    Sofern Sie das Feature Pack nicht an einem anderen Speicherort installiert haben, ist %LocalAppData% in der Regel "DriveName:\Users\UserName\AppData\Local". Verwenden Sie unter Windows XP oder Windows 2003 %APPDATA% statt %LocalAppData%.

    Wenn Sie Visual Studio 2010 Feature Pack 2 installiert haben:

    …\Microsoft Visual Studio 10.0\Common7\IDE\Extensions\<InsertVisualStudioFeaturePackName>\<InsertVisualStudioFeaturePackVersionNumber>

  2. Aktualisieren Sie in der MODELPROJ-Datei das <Import>-Element für die TARGETS-Datei, indem Sie den absoluten Pfads durch einen relativen Pfad für die TARGETS-Datei ersetzen. Beispiel:

    <Import Project="Microsoft.VisualStudio.Progression.NativeProvider.targets" />
    

    Wichtig

    Wenn Sie die Versionskontrolle verwenden, müssen Sie die TARGETS-Datei in der Versionskontrolle einchecken.

– oder –

  1. Erstellen Sie eine neue Umgebungsvariable, die den Installationspfad der Datei Microsoft.VisualStudio.Progression.NativeProvider.dll darstellt.

  2. Verwenden Sie diese Variable, um die TARGETS-Datei zu importieren.

    Sie können z. B. eine Umgebungsvariable wie "NativeProviderTargetPath" erstellen, die auf den Speicherort der TARGETS-Datei verweist. Sie können dann das <Import>-Element wie folgt aktualisieren:

    <Import Project="$(NativeProviderTargetPath)\Microsoft.VisualStudio.Progression.NativeProvider.targets" />
    

    Wichtig

    Stellen Sie sicher, dass Sie die Umgebungsvariable auf den verschiedenen Betriebssystemen ordnungsgemäß festgelegt haben.

Siehe auch

Aufgaben

Gewusst wie: Erstellen von Ebenendiagrammen aus Artefakten

Gewusst wie: Überprüfen von .NET-Code anhand von Ebenendiagrammen

Konzepte

Ebenendiagramme: Richtlinien

Änderungsprotokoll

Datum

Versionsgeschichte

Grund

Dezember 2010

Aktualisiert für Visual Studio 2010 Feature Pack 2.

Informationsergänzung.