Hallo Laurin,
erstmal vorweg eine super Quelle für Unity und Enterprise Library:
http://www.pnpguidance.net/, das war meine Hauptquelle zu diesem
Thema.
Unity habe ich bisher in einem größeren Projekt (
ASP.NET
Intranetanwendung) eingesetzt. Meine Antworten auf Deine Fragen
beziehen sich darauf, wie ich Unity in dem Projekt verwendet habe. Das
ist möglicherweise nicht immer der beste Weg, hat aber prima
funktioniert.
On 14 Jun., 14:47, Laurin Stoll <
devc...@yooapps.com> wrote:
> 1. Wer darf Unity alles referenzieren?
In meinem Fall in der Regel nur der "Einsprungspunkt", d.h. bei uns
waren das die Webanwendung und ein Windowsdienst. Von da aus wird
alles über Constructor-Injection aufgebaut.
An einer Stelle gab es zu dieser Regel aber eine Ausnahme, da musste
ich aus der BL .ResolveAll<> aufrufen. Dafür habe ich ein
IContainerAccessor-Interface verwendet, das der BL per Construktor-
Injection übergeben wurde. Wenn ich jetzt so drüber nachdenke hätte
ich aber wohl auch den ResolveAll-Aufruf über ein eigenes Interface
kapseln können und somit ganz auf die Unity-Referenz verzichten
können.
> 2. UnityContainer von überall?
Eigentlich schon unter 1 beantwortet. Würde ich jetzt über ein eigenes
Interface lösen, falls ich es noch einmal implementieren müsste.
Den Container habe ich in einer eigenen HttpApplication-Klasse
erstellt und konfiguriert. Zum größten Teil erfolgt die Konfiguration
über eine Konfigurationsdatei, nur zwei Interfaces die sowieso direkt
von meiner HttpApplication-Klasse implementiert werden sind über Code
konfiguriert. Diese Klasse liegt zusammen mit ein paar anderen
Basisklassen in einem eigenen Projekt, so dass ich sie im nächsten
Projekt, das Unity und das MVP Pattern nutzen soll, einfach
wiederverwenden kann.
Ich hatte auch mal angefangen, darüber zu bloggen, muss aber schon
seit Monaten noch den 2. Teil dazu schreiben ;-)
http://www.outofcoffeeexception.de/2008/10/21/Das+ModelViewPresenter+Pattern+In+ASPNET+Ndash+Teil+1.aspx
Grüße,
Mathias