2011-05-25 18 views
17

Tengo que decidir sobre una nueva aplicación de grandes negocios que desarrollaremos en los próximos años, la pregunta es si deberíamos comenzar a utilizar MVC 3 o formularios web.Está ASP.NET MVC 3 listo para aplicaciones comerciales

Esto ya se discutió aquí en SO, pero he visto la pregunta: ASP.NET MVC ready for business applications (integrating 3rd party controls/components)? se le preguntó en 2008 y ahora muchas cosas podrían haber cambiado.

Mi principal preocupación es haber escuchado que MVC es bueno para mostrar contenido como cuadrículas o listas y no tan bueno para la entrada de datos y la interacción del usuario.

Nuestra aplicación tendrá muchos controles en los que los usuarios están ingresando datos y trabajando con listas y cuadros de texto, casillas de verificación, etc.

¿es todo absolutamente posible también en MVC o los formularios web clásicos y el modelo de estado de vista serían más apropiados?

gracias.

+0

Después de unos meses ... ¿decidió utilizar ASP.NET MVC 3? ¿Ya puede decirnos sus opiniones sobre la elección que ha hecho? Gracias. –

+1

Estamos aumentando para comenzar el desarrollo en enero. el reciente lanzamiento de la biblioteca devxpress 2011.2 nos ha dado confianza en el lado de los controles ya que finalmente agregaron PivotGrid en MVC. sobre la tecnología y la madurez de MVC considerando las características planeadas para MVC 4, también confiamos en que vamos por buen camino. –

Respuesta

8

He usado todas las versiones de WebForms desde 1.0 beta y MVC 1, 2 y 3 y creo que MVC definitivamente está listo para su uso en producción.

Debe tener en cuenta que el enfoque de desarrollo de la 2 es bastante diferente:

MVC requiere que usted aprenda los detalles más bajo nivel de las tecnologías web básicos: HTML, CSS, JS, HTTP, (que yo cree que deberías hacerlo de todos modos si todavía no están en tu conjunto de habilidades).

WebForms intenta abstraer la mayor parte y puede considerarse más productivo para juntar algunas páginas simples. Pero es una abstracción con goteras y la falta de control puede frustrarte a medida que te vuelves más competente, más fácil al principio si eres nuevo en el desarrollo web; más difícil de doblar a medida que adquieres experiencia. Las ganancias de productividad comienzan a desaparecer cuando las páginas se vuelven más complejas.Es más probable que la abstracción cause problemas de rendimiento y menoscaba la capacidad de automatizar las pruebas de sus páginas (pruebas de nivel de unidad e interfaz de usuario con Selenium o herramientas equivalentes).

Ejemplo 1: en MVC lo más probable es que necesite comprender cómo se procesan los campos de formulario para componer un POST sobre HTTP con application/form-url-encoded; de lo contrario, podría tener problemas con el enlace de modelo. En WebForms puede crear grandes aplicaciones sin tener que preocuparse por eso.

Ejemplo 2: en MVC necesita administrar la mayor parte del estado de su página entre las solicitudes. En WebForms es fácil que el framework lo haga por usted.

Las aplicaciones MVC tienden a confiar más en los componentes javascript del lado del cliente para tener widgets reutilizables, por ejemplo, datos JSON vinculantes. WebForms fomenta el uso de controles del lado del servidor, ya que se integran muy bien en las instalaciones de administración del estado del marco.

A diferencia de otras personas, no creo que decir que MVC es estrictamente más productivo que WebForms. No subestime la capacidad de WebForms de entregar aplicaciones comerciales basadas en datos rápidamente. Habiendo logrado que mucha gente use ambos, mi opinión es que MVC requiere que los programadores más hábiles se vuelvan más productivos. Pero si ese es tu caso, probablemente encontrarás que MVC es una plataforma más agradable y poderosa en esas manos expertas.

+0

+1 por mencionar que WebForms PUEDE ser productivo mientras que MVC puede hacer más pero es más difícil. Me encanta MVC, pero también me gusta WebForms y no puedo entender a la gente diciendo que "MVC está a años luz de WebForms".Es cierto que F1 bolid está a años luz de mi coche familiar, pero no importa si solo quiero conducir a un centro comercial cercano con mi familia. –

26

Es ASP.NET MVC 3 listo para aplicaciones de negocios

es todo absolutamente posible también en MVC

En mi humilde opinión; Absolutamente 100% si De hecho, afirmo que el marco de MVC está a años luz de WebForms tanto en funcionalidad como en productividad.

+13

+1 en ASP.NET MVC. Cuando tengo que volver a ASP.NET WebForms de vez en cuando, sufro físicamente. – Valentin

+1

@Valentin - Si alguna vez tengo que volver a WebFroms, creo que puedo estar físicamente _sick_. – Jamiec

+0

gracias por su respuesta, ¿está realizando muchas operaciones de entrada de datos y, por ejemplo, arrastrando y soltando entre los controles y el procesamiento del lado del servidor en sus aplicaciones? ¿Encuentra los controles/extensiones de terceros para MVC maduros y suficientes para sus necesidades? –

6

Sí, ASP.NET MVC 3 Razor está definitivamente listo para las aplicaciones de negocios. Estoy construyendo una aplicación web grande y de clase empresarial en MVC 3 Razor C# y cuanto más complejidad le doy a MVC y Entity Framewor, mejor lo manejan. Déjame darte un ejemplo de código. Digamos que queremos crear una tabla dinámica que mezcle HTML con el código y los datos de Razor C#. Esto no es tarea fácil usando formularios web y controla ASP.NET Web

<table>   
    <thead> 
     <tr> 
      <td>Date</td> 
      <td>Name</td> 
      <td>Price</td> 
      <td>Quantity</td> 
      <td>Shipper</td> 
     </tr> 
    </thead> 
    @foreach (eStore.Models.Product p in Model.Products) 
    { 
     <tr> 
      <td>@Html.Hidden("Date", p.Date.ToString()) 
       @Html.Hidden("productId", p.ProductId) 
      <td><input type="submit" name="submitButton" value="@p.Name"/></td> 
      <td>@Html.Label("Price", p.Price)</td> 
      <td>@Html.Label("Quantity", p.Quantity)</td> 
      <td>@Html.Label("Shipper", p.Shipper)</td> 
     </tr> 
    } 
</table> 

He creado una tabla dinámica que contiene una lista de productos con un botón que se puede acceder a más información sobre cada producto en la lista por productId. Esto requirió una cantidad mínima de código y esfuerzo. El código es claro, comprensible y fácil de editar. Ahora imagine lo que se requeriría con formularios web y controles web convencionales para realizar la misma tarea.

Hay una curva de aprendizaje con MVC 3 pero, en mi opinión, vale la pena.

+0

+1 No sé cuánto uso le dio al póster, pero no como MVCer. Encontré su ejemplo de código muy interesante y un gran ejemplo del poder de MVC y de lo que puede hacer. Todavía no estoy seguro de que encaje en mi idea de lo que hace el patrón de diseño MVC ... –