Wenn Sie ein Projekt erstellen, stellt Design Studio sicher, dass alle Entitäten deklariert werden, auf die außerhalb des Projekts verwiesen, aber außerhalb des Projekts definiert wird. Design Studio speichert die Projektabhängigkeitsinformationen und verwendet diese Informationen, um Abhängigkeiten bei der Bereitstellung zu überprüfen. Project Server ist ein von Unternehmen gehosteter Dienst, in dem das Unternehmen den Server verwaltet und sichert, der Projekt-, Programm- und Portfolioinformationen enthält. Project Server bietet durch die interne Sicherung des Servers die projekt-, programm- und portfolioorientierten Funktionen von extern gehostetem Project Online mit einer größeren Anpassungskapazität. Die ersten beiden Themen behandeln grundlegende Probleme: Erstellen eines Visual Studio-Projekts mit entsprechenden Namespaces und Assemblys und Zugriff auf den Hostingserver. Die übrigen Themen betreffen das Abrufen von Informationen über das CSOM, von einem und vielen Objekten. Project professional edition ist eine Desktopanwendung, die mit einem Server in größerem Maßstab interagieren und Daten teilen sowie die in der Project-Standardedition gefundenen Funktionen ausführen kann. Sie müssen die folgenden allgemeinen Modelle beziehen und importieren, wenn Sie mit Design Studio for Inventory oder Design Studio for Network Integrity arbeiten: Beim Modellieren von Entitäten für Ihre Lösung können Sie die Konfiguration von jeder anderen Entität verwenden. Die Datenmodellierung beschränkt sich nicht auf die Verwendung von Datenelementen in Datenschemaentitäten.

Jede Datenkonfiguration, die zum Datenwörterbuch beiträgt, steht zur Verwendung zur Verfügung. Abbildung 2-17 zeigt, wie ein Auftrag (Mobile GSM Delivery), der in einem OSM-Projekt erstellt wurde, die Datenelemente TN (Telefonnummer) und TN-Typ (Telefonnummer) aus einer in einem Aktivierungsprojekt modellierten Serviceaktion verwenden kann. Vergessen Sie nicht, die Migrationen von Django zu erstellen und anzuwenden, sobald das Modell vorhanden ist (beachten Sie, dies sind zwei verschiedene Befehle): Rufen Sie die Projektinformationen ab, einschließlich der Task-Eigenschaften. Sie können Ihre Modellierungseffizienz erhöhen, indem Sie Entitäten erweitern. Die Datenerweiterbarkeit ermöglicht es Ihnen, Daten beim Erstellen neuer, ähnlicher Entitäten zu nutzen. Sie können z. B. Aufträge und Aufgaben erweitern. Wenn Sie eine Entität von einer anderen erweitern, erbt die Zielentität alle für die erweiterte Entität definierten Datenelemente. Reduzieren Sie die Größe und Komplexität eines Lösungsmodells.

Microsoft Project begann als Desktop-Anwendung in den frühen 1990er Jahren. Heute ist Project viel mehr, wie mehrere Varianten bezeugen: Wenn Sie eine Patrone importieren, wird sie zu einem Projekt im aktuellen Arbeitsbereich. Einige Patronen sind versiegelt, was bedeutet, dass sie schreibgeschützt sind. Versiegelte Patronen können nicht verändert werden, ohne vorher entsiegelt zu werden. Ein rekursiver Verweis kann indirekt sein, wenn zwei Strukturen Datenelemente haben, die voneinander ableiten. Indirekte Beziehungen können durch mehrere Ableitungsebenen realisiert werden und sind nicht sofort ersichtlich. Abbildung 2-9 zeigt zwei verschiedene Datenmodelle unter Verwendung der Rekursion. Es sollte keinen Grund geben, "Projektebenenmodelle" (oder "Ansichten auf Projektebene" zu haben). Sie müssen nur die Funktionalität in separate Apps aufteilen.

Beispielsweise sind gängige Produktprojekte häufig versiegelte Modelle, die von den Produktteams für die Lösungsentwicklung bereitgestellt werden, während domänenspezifische Modellprojekte ideal für domänenspezifische Inhalte sind. Es gibt keine Einschränkung, dass ein Projektpaket nicht auch als Anwendung betrachtet werden kann und Modelle usw. haben (was das Hinzufügen zu INSTALLED_APPS erfordern würde). Angenommen, Sie entwerfen eine Intranet-Website für eine Schule. Sie hätten eine App, die sich mit den Konten der Schüler befasst, und eine andere App, die Zeitpläne generiert, und eine weitere für ein internes Message Board usw. Jede App definiert ihre eigenen Modelle (es gibt keine "Projekt-Level-Modelle"), aber Apps können sich gegenseitig Modelle importieren (so können Message Board-Beiträge ein ForeignKey-Feld haben, das auf Studenten aus der "Studenten"-App zeigt). Außerdem können Sie Datenelemente aus der Wörterbuchansicht in eine Editordatenstruktur ziehen, wenn Sie die Projektmappe modellieren.