Un elogio ai VirtualPathProvider

Premessa.
Ricordo ancora che la prima volta che vidi un VirtualPathProvider in azione, rimasi folgorato sulla via di Damasco e mi posi subito una domanda: "E che .... ci faccio con sta cosa???" La verve con cui il relatore tedesco mi parlava di questa feature era quella di un uomo che dopo anni aveva finalmente risolto i suoi problemi, ma io ancora rimanevo perplesso.

Situazione.
Verso marzo ho cominciato a lavorare ad un framework che dovrebbe gestire alcune problematiche comuni delle applicazioni web sviluppate nell'azienda in cui lavoro. Un'esigenza è quella di creare un sistema di news con un custom control per visualizzarle ed una pagina per inserirle. Qui scattava il mio dubbio, creare una pagina e copiarla su ogni sito cambiando solo lo stile è una scelta che proprio non mi piaceva, ma non trovavo un modo alternativo soddisfacente.

Soluzione.
Dopo qualche giorno mi sono ricordato della faccia entusiasta del tedesco ed ho finalmente capito perchè. Con il VirtualPathProvider posso inserire la pagina (poi diventata uno usercontrol, in un punto qualsiasi ed utilizzarla in ogni applicazione. Quindi, ho inglobato lo UserControls per inserire le news in un assembly, come risorsa, ed ho creato un VirtualPathProvider che recepisce le richieste per quell controllo. Se ci mettiamo anche un HttpModule che carica il provider quando parte l'applicazione, si riesce a creare un vero e proprio modulo pluggabile.

Conclusione.
Insomma i VirtualPathProviders sono qualcosa che risolve alcuni problemi comuni di pacchettizzazione e non solo. D'ora in poi li userò molto spesso anche se devo capire bene alcuni comportamenti in fase di compilazione, ma credetemi, quando ho parlato ai miei colleghi per la prima volta del VirtualPathProvider avevo la stessa gioia di quel tedescone che mi parlava tempo fa. (ed ovviamente i colleghi mi guardavano un pò allibiti) :D.

Stay Tuned...

Nella stessa categoria

Commenti
andrewz scrive:
Re: Un elogio ai VirtualPathProvider

Stefano Mostarda <Stefano_Mostarda> ha scritto:
Dopo qualche giorno mi sono ricordato della faccia entusiasta del tedesco ed ho finalmente capito perchè. Con il VirtualPathProvider posso inserire la pagina (poi diventata uno usercontrol, in un punto qualsiasi ed utilizzarla in ogni applicazione. Quindi, ho inglobato lo UserControls per inserire le news in un assembly, come risorsa, ed ho creato un VirtualPathProvider che recepisce le richieste per quell controllo. Se ci mettiamo anche un HttpModule che carica il provider quando parte l'applicazione, si riesce a creare un vero e proprio modulo pluggabile.

La cosa non l'ho mai provata, ma dimmi, il virtualpathprovider ti permette di creare uno "specie" di usercontrol utilizzabile da più applicazioni?
Ciao!
10/06/2006 ore 13.28 | 9 risposte
»»»» SM15455 scrive:
Re: Un elogio ai VirtualPathProvider

è esattamente quello che ho fatto io.

Praticamente puoi mettere un file dove ti pare e recuperarlo tramite virtualpathprovider.

Questo è un articolo molto ben fatto che implementa un virtualpathprovider che legge da zip.

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnaspp/html/vpp_vga.asp

Byez
10/06/2006 ore 14.20
andrewz scrive:
Re: Un elogio ai VirtualPathProvider

Me lo leggo!

Ti ringrazio, anche per quel programmino che mi hai suggerito: lo sto provando

Ciao!
10/06/2006 ore 14.22
nostromo scrive:
Re: Un elogio ai VirtualPathProvider

Ciao stefano, davvero interessante, devo dire che ancora non ho mai utilizzato il VirtualPathProvider, avevo lettò l'articolo ma non avevo pensato alla pacchettizzazione, e per gli UserControl ci sta a pennello :) io che usavo ILMERGE :)

una domanda, l'UserControl viene inserito dinamicamente nella pagina?
ciao marco
12/06/2006 ore 0.12 | 1 risposta
nostromo scrive:
Re: Un elogio ai VirtualPathProvider

perfetto :) grazie mi sono tolto tutti i dubbi, aspetto l'Usag


ciao marco
12/06/2006 ore 15.10
Daniele Bochicchio scrive:
Re: Un elogio ai VirtualPathProvider

nostromo wrote:
una domanda, l'UserControl viene inserito dinamicamente nella pagina?

sì, in pratica è un sistema che fa il build da una qualsiasi sorgente. cioè, se scrivi un provider puoi prendere una classe da db, uno zip, un assembly, etc e poi con il giusto build provider, il resto è automatico
era una delle cose che aveva colpito anche me di più, a PDC 2003. vedi pezzetto in fondo al post
http://blogs.aspitalia.com/daniele/post42/Ancora-Novita-ASP.NET-2.0.aspx
12/06/2006 ore 10.00 | 1 risposta
nostromo scrive:
Re: Un elogio ai VirtualPathProvider

interessante, quindi usando VirtualPathProvider un BuildProvider, HttpModule e/o Handler, si possono fare cose spettacolari , devo trovare del tempo per iplementarle...e pensarci su

altra domanda, dovendo posizionare l'UserControl in una pagina esistente, che modifiche dovrei fare, o meglio posso non fare nessuna modifica alla pagina?

quello che devo capire è se posso intervenire nella fase di build della pagina inserendo quello che mi pare senza modificare una riga dell'esistente, solo utilizzando quanto detto sopra.

mumble sto meditando
12/06/2006 ore 12.04 | 1 risposta
Daniele Bochicchio scrive:
Re: Un elogio ai VirtualPathProvider

nostromo wrote:
quello che devo capire è se posso intervenire nella fase di build della pagina inserendo quello che mi pare senza modificare una riga dell'esistente, solo utilizzando quanto detto sopra.

devi registrare il control come faresti normalmente.
poi crei una classe che recupera il file, con il suo markup e poi registrarla. trovi tutto spiegato nella doc:
http://msdn2.microsoft.com/en-us/library/bhesyfec.aspx
in realtà, più o meno, questa cosa si poteva fare anche con la 1.x, però forse era meno facile se non compilavi tutto prima
cmq, devo farci uno usag!
12/06/2006 ore 12.41 | 1 risposta
»»»» SM15455 scrive:
Re: Un elogio ai VirtualPathProvider

cmq, devo farci uno usag!

cavoli mi hai fregato l'idea .
.
12/06/2006 ore 14.13 | 1 risposta
Daniele Bochicchio scrive:
Re: Un elogio ai VirtualPathProvider

SM15455 wrote:
cavoli mi hai fregato l'idea .

no dai, te lo cedo che io di idee ne ho segnate almeno altri 30 in un bel file txt
12/06/2006 ore 17.14

Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.

© 1998-2008 - SMWorld.NET - Il blog di Stefano Mostarda

TagCloud
BLOG INFO
  • Post: 124
  • Commenti: 74
  • TrackBacks: 19
  • Feed blog e contenuti tecnici: RSS
  • Feed blog: RSS Atom OPML

MVP
CATEGORIE
I PIÙ LETTI DEL MESE
IN EVIDENZA