2017-02-06 3 views
0

Ich unternehme einen ersten Versuch, eine wiederverwendbare mehrstufige Anwendung zu erstellen.Assembly-Abhängigkeiten innerhalb einer mehrschichtigen Anwendung

Ich habe ein Datenzugriffsschichtprojekt erstellt, auf das von einem Business-Schicht-Projekt verwiesen wird. Ich habe eine Website erstellt, die auf das Business-Layer-Projekt verweist und plant, diese auf vielen anderen Websites zu verwenden.

Ich habe die entsprechende Business-Layer-Projekt-DLL in den Ordner Website-Ordner fallengelassen und eine Dateireferenz erstellt. Wenn ich die Business-Schicht anrufe, kann die Data Access-Baugruppe nicht geladen werden. Um das Problem zu lösen, lege ich die Data Access dll in den website bin Ordner und alles funktioniert.

In der Zukunft erwarte ich, dass die Business-Schicht viele Verweise auf verschiedene Projekte erstellt, daher erwarte ich, alle Projekt-DLLs hinzuzufügen, die die Business-Schicht für jede Website in den Ordner bin verweist. Ist das der richtige Weg, oder mache ich einen vereinfachten Ansatz?

+0

Warum richten Sie nicht den Verweis auf die Data-Access-Layer-Projekt-DLL ein, statt die DLL im Bin-Ordner der Business-Schicht ablegen zu lassen? Der Compiler sollte das Mischen der DLL-Dateien für Sie auf diese Weise behandeln. – itsme86

+0

Im Idealfall sollten Sie nichts "fallen lassen" müssen. Alles sollte auf atomaren Aufbau aufbauen –

Antwort

0

Es gibt zwei Möglichkeiten, wie Sie diese

1) Fügen Sie Projektverweis verarbeiten kann.

Klicken Sie auf Referenz im Webprojekt hinzufügen -> klicken Sie auf Projektoptionen -> klicken Sie auf Lösung -> Business-Schicht prüfen.

Sie müssen auf der Business-Schicht dasselbe tun, um eine Datenschicht-Projektreferenz hinzuzufügen.

2) Der zweite Ansatz verwendet nuget-Pakete. Sie können ein nuget-Paket für csproj erstellen, das freigegeben werden soll. Dieser Ansatz ist sehr nützlich, wenn Sie DLLs über mehrere Projekte verteilen und Versionskontrolle zwischen verschiedenen Projekten benötigen. Befehl zum Erstellen eines nugget-Pakets von csproj.

+0

Danke. Ich habe mit dem NuGet Package Explorer nachgesehen, um ein Paket zum Speichern in einem gemeinsamen Repository zu erstellen. – Kogroth

0

Erstellen Sie einen Ordner, sagen Sie BusinessLayer. Erstellen Sie Unterordner in diesem Ordner. Erstellen Sie Klassenbibliotheken in diesen Ordnern und erstellen Sie Namespaces, die sich in den Ordnernamen widerspiegeln. Machen Sie dasselbe für, sagen wir Data Access und View Layers. Namespaces für Referenzdatenzugriffe in Business Layer und die Namespaces der Business-Schicht in den View-Layern. Stellen Sie sicher, dass der Data-Access-Layer nach Möglichkeit über eine Schnittstelle mit dem Business-Layer kommuniziert. Die API-Website/App usw. könnte oben auf diesen 3 Ebenen sitzen.

Verwandte Themen