2011-05-30 12 views
5

Estoy diseñando la arquitectura de una aplicación que tendrá muchas aplicaciones secundarias en ella. Esas subaplicaciones serán desarrolladas por nosotros, pero en una etapa posterior.Cómo desarrollar una aplicación basada en módulos conectables/instalables en ASP.net/ASP.net MVC

Quiero crear esas subaplicaciones como un plugin/módulo instalable que podría tener varias páginas (páginas .aspx) que deberían poder interactuar con la aplicación principal principal y consumir también sus datos compartidos.

que estrictamente necesita los plugins/módulos que se puede instalar por manipular la configuración o añadir una carpeta de archivos o una DLL.

Mi aplicación será una aplicación web ASP.net. Si ASP.net MVC resuelve el problema, también puedo buscarlo también.

Mi aplicación hará uso de las URL para identificar el módulo que se va a cargar. Los siguientes son algunos ejemplos de algunas URL que deseo tener en mi aplicación.

p. Ej.

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

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

www.myCoreApp.com será el anfitrión de mi Solicitud núcleo en el que se instalarán mis módulos.

Module1, crm, accounting y xyz son módulos instalados en la aplicación My Core.

Respuesta

3

Deberías echar un vistazo a MEF (Managed Extensibility Framework). No importa si su aplicación es formularios web ASP.NET o MVC, o incluso si es Winforms

+0

Gracias Antonio por la respuesta. Revisé la documentación del MEF sobre el proyecto del Código, pero no pude implementarlo. ¿me puede guiar a través de un tutorial o algún código de muestra en el que pueda mirar ...? –

+0

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

0

Me gustaría ir a MVC.

Uno podría descubrir automáticamente los módulos --- probablemente por convención y verificando la implementación de un cierto tipo de inicialización como IModule.

Luego puede registrar sus Controladores dentro de un contenedor DI (como Windsor) para que todos los componentes 'compartidos' sean inyectados por el contenedor.

HTH

Cuestiones relacionadas