2009-05-09 3 views
1

Hier ist das aktuelle Layout:Wo in Ihrer Lösung setzen Sie normalerweise Ihre StructureMap-Registrierungsklassen ein?

Lösung:

  • Kern

    • Domain
    • Schnittstellen
  • Data Access

    • Provider
    • Session
  • Dienst

  • UI

  • Unittests

  • IntegrationTests

Normalerweise versuche ich, meine Core Domain Entities/POCOs so leicht wie möglich zu halten, ohne sehr viele externe Abhängigkeiten. Also dachte ich, es könnte sinnvoll sein, sie in die Service-Schicht zu legen, da sie normalerweise einen Projektreferenz auf alle hat die Schichten.

http://code.google.com/p/codecampserver/source/browse/trunk#trunk/src/DependencyResolution

Gedanken: genannt DependencyResolution für ihre IoC Konfiguration

Ich habe, dass sie ein eigenes Projekt tatsächlich in CodeCampServer bemerkt haben erstellt?

+0

Werfen Sie einen Blick auf http://stackoverflow.com/questions/536994/not-understanding-where-to-create-ioc-containers-in-system-architecture – xrost

Antwort

1

Die IOC-Konfiguration sollte auf der Seite liegen. Es muss nicht unbedingt in einem separaten Projekt vorhanden sein, aber es muss vom Anwendungscode entfernt sein. Wir haben es in ein anderes Projekt in CodeCampServer eingefügt, um es "realitätsnaher" zu machen. Aber in einer aktuellen Produktions-App behalten wir sie in einem separaten Namespace in unserem Hauptprojekt. Wir haben Projekte konsolidiert, um die Kompilierzeit zu erhöhen.

+0

Ich stieß auf zirkuläre Referenzprobleme, wenn ich meinen Bootstrapper legte in einem separaten Projekt. Wenn meine Testprojekte und Web-Projekte das IoC-Projekt referenzieren, dann ist es barfuss! Was ist die Lösung hier? Momentan habe ich IoC Init im Host-Web-Projekt und es ist auch für die Test-Projekte Init'ed. –

+0

Das ist Teil des Punktes: referenziere dein ioc-Projekt nicht in deinem Webprojekt. schau dir Codecampserver an. Ihr ioc-Projekt sollte keinen Verweis auf Ihr Testprojekt benötigen. –

Verwandte Themen