2011-09-02 9 views
7

¿Alguien ha implementado con éxito ASP.NET MVC junto con formularios web en la misma aplicación en un entorno de producción? ¿Hubo algún conflicto o problema que enfrentaste al hacerlo?ASP.NET MVC junto con formularios web en la misma aplicación web?

¿Es realmente tan fácil como se muestra here en la práctica? ¿Qué pasa si ejecuta un MVC usando el motor Razor view junto con los formularios web?

Respuesta

10

Mvc se basa en asp.net como es webforms, así que sí, es fácil. hecho par de veces a efectos de conversión

Tal vez de esta URL podría ayudarle a:

http://www.hanselman.com/blog/IntegratingASPNETMVC3IntoExistingUpgradedASPNET4WebFormsApplications.aspx

y

http://www.hanselman.com/blog/PlugInHybridsASPNETWebFormsAndASPMVCAndASPNETDynamicDataSideBySide.aspx

+0

¿Ha ejecutado un MVC usando el motor de visualización Razor junto con formularios web? –

+1

Sí, tengo. Usé estos dos mientras convertía una aplicación webforms a mvc 3. Aunque tiene que hacer algunas cosas manuales en comparación con una aplicación mvc3 estándar recién creada. –

2

¿Alguien ha implementado con éxito ASP.NET MVC junto con Formularios web en la misma aplicación en un entorno de producción?

Nunca mezclé ASP.NET MVC y los clásicos WebForms en la misma aplicación. Los hago correr en aplicaciones separadas y me comunico entre ellos con técnicas HTTP estándar (parámetros de cadenas de consulta, publicaciones de formularios, cookies, ...).

¿Es realmente tan fácil como se muestra aquí en la práctica?

Sí, es así de fácil.

+0

¿Cómo es esto más fácil que ejecutarlos en la misma aplicación? Parece que administrar la comunicación entre aplicaciones separadas usando HTTP es más trabajo que hacer una llamada a una clase en el mismo ensamblado. –

+3

@T. Webster, no dije que fuera más fácil. Es más limpio Contaminar una nueva aplicación ASP.NET MVC dentro de alguna aplicación existente de WebForms siempre es una mala idea. Te sentirás tentado de hacer cosas que nunca debes hacer en una aplicación ASP.NET MVC. Definitivamente terminará con un código feo que necesitará una reescritura más tarde. Personalmente, prefiero hacer tings de una manera limpia al migrar una aplicación, incluso si puede ser un poco más difícil, pero saber que al final estaré contento con el resultado. –

2

Echa un vistazo a scott hanselmans AddMvc3ToWebForms paquete Nuget. Lo estoy usando y funciona bastante bien. Lo estoy usando para convertir gradualmente mi aplicación de formularios web a mvc

+0

Bien, pero antes de que pueda marcar esto como una respuesta, tendré que intentarlo por mí mismo. –

3

Una cuestión es no poner su WebForms dentro de la carpeta de Vistas. No me he figurado cómo hacer que MVC deje esos caminos en paz. Ninguna de las instrucciones de enrutamiento ignoradas parece funcionar en este caso y el WebForms lanza 404s.

Aparte de eso WebForms funciona perfectamente bien junto con MVC desde MVC2.

2

He pasado mucho tiempo en esto durante los últimos meses. Aquí están mis observaciones.

La buena/fácil - Conseguir Webforms poner en MVC controladores - era muy fácil de soportar un nuevo proyecto MVC3 y soltar Webforms páginas en él. - yo era capaz de mover mi sección <pages><controls></controls></pages> en el directorio /pages en una nueva web.config no

El sucio/difícil

  • Regarding the GUID

    • Tenga en cuenta que el GUID tiene que ser añadido en el frente de la línea por alguna razón ... cada vez que lo intenté falló. Hasta que tropecé con una publicación que insistía en que era la anterior a las demás.
    • también que no sé cuál es la diferencia, pero tengo un GUID diferente de trabajo ... {E53F8FEA-EAE0-44A6-8774-FFD645390401}
  • conseguir la página de destino para ser Webforms causó todo tipo de obstáculos.

  • recibiendo jQuery intelisense jugar muy bien con T4MVC

esto es lo que hice para tratar de que

@if (System.Diagnostics.Debugger.IsAttached) 
    { 
    <script src="../../Scripts/Mvc3/jquery-1.7-vsdoc.js" type="text/javascript"></script> @* intellisense! *@ 
    @Html.RelativeJavascript(Links.Scripts.Mvc3.jquery_1_7_js) 
    @Html.RelativeJavascript(Links.Scripts.Mvc3.jquery_unobtrusive_ajax_js) 
    } 
    else 
    { 
     @Html.RelativeJavascript(Links.Scripts.Mvc3.jquery_1_7_min_js) 
     @Html.RelativeJavascript(Links.Scripts.Mvc3.jquery_unobtrusive_ajax_min_js) 
    } 

recomendaciones:

  • Use T4MVC en todos los casos, incluso si está formularios web puros. La eliminación de cadenas mágicas para contenido estático (.js, .css, imágenes, plantillas específicas) es excepcional.
    • y si tiene alguna parte de su build process compiling views, entonces obtiene seguridad en tiempo de compilación en cualquiera de esos enlaces.
Cuestiones relacionadas