Ciao a tutti,
da qualche mese sviluppo applicativi desktop (principalmente su WPF) in cui cerco di seguire in maniera più stretta possibile il pattern IoC.
Ora devo sviluppare un applicativo ASP.NET abbastanza "impegnativo" e pensavo di seguire lo stesso approccio, ma mi sorge un dubbio: dove va piazzato "l'inizio" dell'IoC (configurazione del container e blablabla)?
Ciao e grazie,
Giulio
p.s. ma l'interfaccia NNTP è proprio giù? :-(
Ciao Mauro,
> startup dell'applicazione poi piazzi il tutto in una bella variabile
>Application,
uh? Startup? e dove starebbe?
> se invece usi MVC vivi molto pi� felice perch� non ti devi > preoccupare di nulla
Uhm... diciamo che non lo posso usare perché di fatto la pagina aspx non è la pagina di una applicazione ma mi serve per un uso perverso come gateway tra due mondi un po' strani... ;-) (per ora non posso dire di più)
> no :-)
Boh... sono tre giorni che non riesco ad accedere... :-/
petrux
se usi ASP.NET MVC, ti implementi una controller factory custom o fai "cut&paste" di quella già pronta in NSK :-)
Utilizza il routing di asp.net MVC, routi le richieste su un tuo gestore che crea l'handler risolvendolo con IoC, potrebbe anche questo essere una soluzione se l'uso è perverso :D
alk.
--Blog Eng: http://www.codewrecks.com/blogBlog Ita: http://blogs.ugidotnet.org/rgmTwitter: http://twitter.com/alkampfer
Si può fare anche utilizzando MVP, anche se c'è da "sporcarsi un po' le mani":
la configurazione del container può essere fatta, come in tutti gli altri casi, nell'Application_Start del Global.asax. Il ServiceProvider così ottenuto può essere infilato in una qualunque variabile a livello di Application e riutilizzato nei Page_Load delle singole pagine per iniettare il Presenter nella view ed effettuare il double-binding...
Ciao,neronotte
L'IoC container va inizializzato una volta per tutte, e resterà in piedi per tutto il ciclo di vita dell'applicazione... per questo ha senso inizializzarlo una volta per tutte nel global.asax ed infilarlo in una variabile di Application. Per quanto riguarda il dataContext, il gioco è diverso: tipicamente il suo ciclo di vita è configurabile nel il motore di IoC, che può essere configurato in modo tale (ad esempio) da restituire un nuovo DataContext per ogni Session, o per ogni Request.