2011-05-30 9 views
5

Sto progettando l'architettura di un'applicazione che contiene numerose applicazioni secondarie. Queste sotto-applicazioni saranno sviluppate da noi ma in una fase successiva.Come sviluppare un'applicazione basata su modulo inseribile/innestabile in ASP.net/ASP.net MVC

Voglio creare quelle sotto-applicazioni come plugin/modulo installabili che potrebbero avere più pagine (pagine .aspx) che dovrebbero essere in grado di interagire con l'Applicazione Principale Principale e consumare anche i suoi dati condivisi.

I rigorosamente necessità I plugins/moduli da installabile dal manipolando la configurazione o l'aggiunta di una cartella di file o diuna DLL.

La mia applicazione sarà un'applicazione Web ASP.net. Se ASP.net MVC risolve lo scopo, posso anche cercare anche quello.

La mia applicazione utilizzerà gli URL per identificare il modulo da caricare. Di seguito sono riportati alcuni esempi di alcuni URL che desidero avere la mia applicazione.

ad es.

http://www.myCoreApp.com/Module1/

http://www.myCoreApp.com/crm/

www.myCoreApp.com ospiterà la mia applicazione core in cui verranno installati i miei moduli.

Module1, crm, accounting e xyz sono moduli installati nell'app My Core.

risposta

3

Si dovrebbe dare un'occhiata a MEF (Managed Extensibility Framework). Non fa alcuna differenza se la tua app è moduli web ASP.NET o MVC, o anche se è Winforms

+0

Grazie Antonio per la risposta. Ho esaminato la documentazione del MEF sul progetto Code ma non sono riuscito a implementarlo. puoi guidarmi attraverso un tutorial o qualche esempio di codice in cui posso guardare ..? –

+0

guarda http://dotnetbyexample.blogspot.com/2010/04/very-basic-mef-sample-using-importmany.html e http://blogs.msdn.com/b/brada/archive/2009/07 /20/simple-example-using-managed-extensibility-framework-in-silverlight.aspx –

0

Vorrei andare per MVC.

Uno potrebbe rilevare automaticamente i moduli, probabilmente per convenzione e controllando l'implementazione di un determinato tipo di inizializzazione come IModule.

Quindi è possibile registrare i controller in un contenitore DI (ad esempio Windsor) in modo che tutti i componenti "condivisi" vengano iniettati dal contenitore.

HTH

Problemi correlati