2010-07-10 16 views
7

Me refiero a que el marco te bloqueará para que sigas ciertas convenciones o tecnologías o arquitecturas. Algo similar a Rails o Django. Esto hará posible la creación de complementos profundamente integrados.Un marco web obstinado además de ASP .NET MVC

Una de las principales ventajas de usar Rails/Django es las gemas/complementos. Como usted sabe, encontrará una joya para todo: páginas de administración, autenticación, comentarios, asistentes enriquecidos, etc.

Actualmente, MVC puede imitar ese comportamiento hasta cierto punto con el uso de archivos DLL. Sin embargo, hasta donde yo sé, MVC no tiene una arquitectura estándar que permita complementos profundamente integrados; por ejemplo, no podemos tener un sistema de comentarios, porque para guardar los comentarios necesita un repositorio, y un proyecto típico de MVC puede ser usando L2S/EF/NHibernate/MongoDB/etc.

Me parece que una buena manera de hacer esto es:

  • establecer un proyecto central "motor central" que emplea MEF
  • El núcleo del motor expondrá:
    • de contenedores/Ubicación de servicio
    • Pocas interfaces (como IRepository)
    • Algunos "ganchos" como ApplicationStart más cualquier otro gancho/evento que pueda pensar
    • ¿Qué más?
  • Para utilizar esta
    • Agregar referencia al "motor central" binario
    • Establece algunas de las configuraciones (un ejemplo sería una instancia de IRepository)
  • Un desarrollador es ahora capaz de incluir cualquier complemento que dependa del "motor central", y esos complementos tendrán acceso completo a los eventos de la aplicación y al repositorio
  • Obviamente, los desarrolladores de complementos desarrollarán un complemento ins que se dirigen al motor principal: nunca hablan directamente con la aplicación, y el motor es el software intermedio entre los dos.

El objetivo no es tener el Marco de Empresa Web perfecto ... pero en cambio es construir algo parecido a lo Django y Rails tienen y MVC parece faltar: alta capacidad de reutilización de componentes pesados ​​pero populares.

¿Ha hecho esto antes? ¿Hay una mejor manera de hacer esto?

+0

Mire S # arp Architecture y ASP.NET MVC Multi-tentancy (mvcex en codeplex). Al menos S # arp hace mucho de lo que piensas, aunque todavía no fuerza bibliotecas específicas (y no usa MEF). Pero puede ampliarlo ;-) – queen3

+0

+1 Estoy pensando en algo así como caliburn micro (http://caliburnmicro.codeplex.com/) pero para ASP.Net MVC sería increíble. –

Respuesta

-1

Creo que el Orchard project puede ser similar a lo que está buscando.

+0

Orchard parece más un CMS que un marco web. Además, no está construido encima de MVC. – ANaimi

1

Es posible que desee ver lo que MVC Turbine ofrece. No es todo lo que mencionaste, pero sería un buen punto de partida.

Cuestiones relacionadas