Frage

Leute,

Ich habe ein ASP.NET-Projekt, das ziemlich n-tier ist, durch Namespace, aber ich muß in drei Projekte trennen. Data Layer, Middle Tier und Front-End

Ich tue dies, weil ...

A) Es scheint, das Richtige zu tun, und

B) Ich habe alle möglichen Probleme bei der Ausführung von Unit-Tests für ASP.NET Baugruppen statt.

Wie auch immer, meine Frage ist, wo halten Sie Ihre Config-Informationen?

Im Moment zum Beispiel meiner Middle-Tier-Klassen (die Linq to SQL verwendet) automatisch ihre Verbindungszeicheninformationen aus der web.config ziehen, wenn ein neuen Datenkontext Instanziierung.

Wenn meine Datenschicht ist in einem anderen Projekt kann / sollte es die web.config für die Konfiguration Informationen werden verwendet?

Wenn ja, wie wird ein Unit-Test, (in der Regel in einer separaten Assembly) liefert soch Konfiguration Informationen?

Vielen Dank für Ihre Zeit!

War es hilfreich?

Lösung

Wir halten sie in einer globalen „Einstellungen“ Datei, die XML sein geschieht. Diese Datei enthält alle globalen Einstellungen, von denen eine Verbindungszeichenfolge zeigt auf die entsprechende ist Server sowie Benutzername und Passwort. Dann, wenn meine Anwendungen sie verbrauchen, setzen sie den spezifischen Katalog (Datenbank) sie müssen in der Verbindungszeichenfolge.

Wir haben eine Version der Datei für jede Betriebsumgebung (prod, Entwickler, Inszenierung, etc). Dann mit zwei Einstellungen - Dateipfad (mit einem Token, die die Umwelt) und der Umwelt. - Ich kann die richtigen Einstellungen Dateien aufheben

Dies hat auch den Vorteil eines schönen 30 Sekunden Failover. Einfacher Wechsel der Servername in der Einstellungsdatei und starten Sie die Anwendungen (Web), und Sie haben es versäumt, über (natürlich müssen Sie Ihre Daten bei Bedarf wiederherstellen).

Dann, wenn die Anwendung gestartet wird, schreiben wir die richtige Verbindungszeichenfolge der Datei web.config (wenn es anders). Damit können wir eine Website von DEV ART ändern, indem Sie einen appSettings Wert zu ändern.

Andere Tipps

Solange es nicht zu viel ist, ist es praktisch, es in der web.config zu haben. Natürlich sollten Sie Ihre DAL haben absolut keine Ahnung, dass es von dort kommt.

Eine gute Option ist für Ihre Datenschicht seiner Konfigurationsinformationen gegeben werden, wenn es aufgefordert wird, etwas zu tun, und es wird auf etwas zu tun aufgerufen werden, wenn ein Web-Anruf eingeht. Hergehen und die Informationen stellt in Ihrem web.config. In meinem aktuellen Projekt, ich habe ein statisches Wörterbuch von Verbindungszeichenfolgen in meiner Datenschicht, die ich wie so ausfüllen in einer Routine von meinem global.asax genannt:

CAPPData.ConnectionStrings(DatabaseName.Foo) = 
    ConfigurationManager.ConnectionStrings("FooConnStr").ConnectionString()
CAPPData.ConnectionStrings(DatabaseName.Bar) = 
    ConfigurationManager.ConnectionStrings("BarConnStr").ConnectionString()
etc.

„Injizieren“ es so können gut sein für die automatisierte Testzwecke, je nachdem, wie / ob Sie Ihre DAL testen. Für mich ist es nur, weil ich keine separate Konfigurationsdatei machen wollte.

Für die Zwecke Prüfung nicht instantiate Datacontext mit Standard Ctor. Pass-Verbindungszeichenfolge Info-Konstruktor.

Ich ziehe IoC Frameworks einzuspritzen Verbindung zum Datenkontext dann inject Kontext zu anderen Klassen zu verwenden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top