2010-10-07 38 views
5

¿Es posible construir un módulo DNN que use ASP.NET MVC?ASP.NET MVC dentro de DotNetNuke?

sentado que DNN no soporta ASP.NET MVC fuera de la caja ... pero ya que tanto DNN y MVC se ejecutan en la parte superior de la canalización de ASP.NET ...

La razón que pido. gran sitio web que se ejecuta en el legado DNN:

http://blahblahblah.com 

me gustaría pegar una página web ASP.NET MVC/aplicación existente aquí:

http://blahblahblah.com/subfolder 

Es esto mejor hacerlo mediante la creación de un directorio virtual, etc. en el servidor, o hay una forma de integrar esto con DNN?

Respuesta

8

DNN está estrechamente relacionado con Webforms. ASP.Net MVC sería muy difícil, quizás imposible de integrar en un módulo. Sin embargo, DNN admite Webforms MVP (Model View Presenter) que permite todos los beneficios estructurales/de prueba de MVC en el contexto de WebForms. Todos los nuevos módulos desarrollados por DotNetNuke Corp. utilizan el patrón Webforms MVP.

Aquí hay un enlace para que pueda empezar Step by Step Webforms MVP and DotNetNuke – Part 1.

+0

¡Gracias! Verificará esto. –

+0

Algún tiempo después de publicar esta respuesta, hice un aumento tratando de integrar MVC con DNN. Mi conclusión de que sería posible hacerlo, con algunos compromisos, pero en última instancia no valdría la pena. Hoy me siento inclinado a escribir servicios con el marco de trabajo de servicios y a hacer todo el uso de la interfaz de usuario en JavaScript, dejando de lado los formularios web y el código por completo. – ScottS

0

Si solo quiere una aplicación MVC separada en un subdirectorio, debería poder hacer eso. La principal parte complicada sería integrar usuarios/sesiones (suponiendo que lo necesites), pero eso no debería ser demasiado un gran obstáculo que hay que descifrar (en lugar de codificar nuevamente tu aplicación MVC existente). Probablemente también necesites actualizar web.config para tu aplicación MVC para despejar cualquier cosa desde DNN (lo más importante, los Módulos y Manejadores HTTP, para que no interfieran con el enrutamiento).