2011-06-20 11 views
11

Actualmente estoy trabajando en un proyecto web creado mediante ASP.NET Web Forms. Queremos comenzar a construir nuevas páginas usando MVC framework.Ejecutar ASP.NET Webforms y ASP.NET MVC uno al lado del otro

Parece que correr MVC y Web Forms de lado a lado es factible http://weblogs.asp.net/rajbk/archive/2010/05/11/running-asp-net-webforms-and-asp-net-mvc-side-by-side.aspx

Tengo curiosidad por si hay algún problema o trampas que tengo que planificar.

Funciono en ASP.NET 4.0 y planeo usar MVC3.

Respuesta

11

He estado ejecutando Webforms y MVC juntos para una aplicación interna aquí. Comenzó como una aplicación de formularios web y la he migrado a MVC2 (luego a 3) con varias piezas que todavía funcionan con Webforms.

Como dijo Darin, lo principal será con la creación de plantillas. Si usa Webforms View Engine, debe crear 2 capas de páginas maestras. El código de formularios web (como el administrador de scripts) no se ejecuta en páginas MVC, y el código MVC no funciona en las páginas Webforms.

Mis páginas maestras están configuradas con una página maestra global que no contiene ningún código MVC o Webforms. Solo tiene CSS, javascript global y diseño principal. Luego tengo una página maestra MVC y una página maestra de webforms, ambas tienen directivas para usar la página maestra global como sus páginas maestras. Luego, cada página de webforms utiliza la página de submaster de Webforms y MVC utiliza la página de submaster de MVC.

Si necesita poner algún código en la página maestra global, puede detectar si la página secundaria es una página Webforms o MVC probando si Page is System.Web.Mvc.ViewPage. Si es true, entonces es una página de MVC, de lo contrario, es una página de Webforms.

Sin embargo, si decide usar el motor de visualización Razor (que recomiendo para MVC, es mucho mejor) se vuelve más difícil. Tienes que hacer algunas reparaciones adicionales más allá de lo que mencioné anteriormente. This blog post debería ayudar a ese respecto.

+0

gracias. esto también me lleva a otras publicaciones: http://www.eworldui.net/blog/post/2008/05/09/ASPNET-MVC-Living-in-a-Web-Forms-World.aspx y http: // www.eworldui.net/blog/post/2011/01/07/Using-Razor-Pages-with-WebForms-Master-Pages.aspx –

1

El gotcha que se me ocurre es que ser tentado de la reutilización de código de formularios Web existente en la parte MVC y terminan con DataSets en su acción del controlador, o (Dios no lo quiera puede) en sus puntos de vista :-) Otra Gotcha con la reutilización de dicho código es que debe tener mucho cuidado de no terminar con cosas runat="server" en sus vistas MVC. Mantendría las dos partes lo más unidas posible. Y por eso no los mezclaría en el mismo proyecto :-)

2

Además de what Darin said, intente no usar el motor de visualización de WebForms si puede ayudarlo y cree rutas de URL adecuadas para que las páginas que deberían estar manejado por WebForms aún son manejados por WebForms.

+0

Excelente punto. –

+0

@bzlm: Gracias por agregar un enlace directo. – R0MANARMY

1

Supongo que depende de qué interacción habrá entre los WebForms y las partes MVC del sitio. Si ambos utilizan el mismo back-end y el mismo registro de seguridad, entonces debería estar bien. Puede experimentar problemas si una acción web y una acción MVC necesitan cooperar. Como digo realmente todo depende de la interacción. Si corren uno al lado del otro pero se dejan solo, entonces deberías estar bien.

Un problema que puede ocurrir es el cambio en el pensamiento que se necesita para cambiar de WebForms a MVC y viceversa, aunque la experiencia y la práctica te enseñarán aquí.

0

Sugiero mantener las dos aplicaciones separadas y darles diferentes subdominios, puede mantenerlos en el mismo subdominio mediante el uso de un directorio virtual, pero no me gustó ese enfoque.

Puede usar una sola cookie para validar en ambas aplicaciones al compartir validationKey y decryptionKey.

De esta manera, sus bases de código no se mezclan y no está luchando contra ningún problema de archivo de configuración.

He publicado un longer description de este enfoque.

Cuestiones relacionadas