2011-06-10 16 views
5

Diamonds es un ERP basado en formas de las ventanas, voy a volver a desarrollar usando tecnologías web en lugar de las formas de Windows ..formularios web ASP.NET MVC vs lo que es mejor para aplicaciones de negocios

pero ahora tengo que decidir que es mejor para esto, el ASP.NET webforms (como creo) es más fácil (diseñar) me refiero a la interfaz de usuario, pero el mvc tiene una salida html más simple, y algunas otras características ...

me pueden ayudar a decidir qué tecnología para usar y por qué?

estoy usando C#,

Saludos

Respuesta

5

Creo que ambas tecnologías pueden ser un poco complicadas después de superar cualquiera de los principios básicos. Estas son algunas de las breves opiniones que reuní al tener que implementar un proyecto que debe residir tanto en MVC como en los hosts de WebForms.

WebForms positivo:

  1. La madurez del producto
  2. mucho apoyo tercera parte con respecto a los controles sofisticados
  3. Hay maneras de evitar los aspectos legado-sensación de la estructura (por ejemplo, , WebForms MVP)

WebForms negativos:

  1. Los problemas del ciclo de vida de la página pueden enojarlo sin fin; hay una gran cantidad de piezas móviles para una aplicación web sofisticada
  2. El uso de la inyección de dependencia es "difícil" para usar/implementan
  3. Hay mucho en el marco que no se puede controlar
  4. necesita algo así como reflector para sumergirse en la fuente descompilada cuando tenga preguntas que no estén respondidas por documentación, web, experimentación.

MVC positivos:

  1. gran separación de las preocupaciones y el apoyo de la inyección de dependencia
  2. Más control sobre muchas cosas (es decir, estructura del proyecto, marco mvc, contenido representado, etc)
  3. Puede aplicar xcopy su aplicación junto con el marco mvc en la parte superior de una instalación de asp.net 4 (es decir, a un proveedor de hosting de terceros)
  4. Soporte nativo de JSON
  5. Código fuente (con comentarios !!) proporcionado para que pueda sumergirse en varias características cuando se encuentra con preguntas en el interior.
  6. Han estado haciendo lanzamientos fuera de banda en herramientas y creo que planean hacerlo en el marco (?); ellos tienen un proyecto de futuros junto con la fuente que le muestra algunas de las direcciones a las que se dirigen y que podría utilizar si lo desea.

MVC Negativos:

  1. puede tomar un poco de tiempo para envolver su mente alrededor de
  2. No como muchos ayudantes tercera parte (no hay controles); los que existen parecen no ser tan sofisticados como sus contrapartes de WebForm

Personalmente, soy un admirador de MVC por el control, la flexibilidad y el soporte transparente de inyección de dependencias. Tal vez deberías hacer un pequeño piloto con ambas tecnologías para ver cuál prefieres. ¡Buena suerte y diviertete!

+0

"Usar la inyección de dependencia es" difícil "de usar/implementar" - ¿Cómo es eso? Inyectar dependencias en 'Page' es notablemente fácil y similar a configurar una fábrica de controladores http://aspnetresources.com/articles/ioc_and_di_with_web_forms – jfar

+0

Lo siento, pero para mí, usar nuget para" instalar "ninject en mi mvc proyecto (que luego utiliza WebActivator para insertar dependencias sin problemas en mis controladores) es más intuitivo que la implementación de un PageHandlerFactory personalizado. Tengo una solución que se ejecuta parcialmente en mvc y parcialmente en formularios web, y terminé usando un patrón ServiceLocator para formularios web. No puedo cambiar la clase base a mis controles/páginas, y quería mantenerlo simple. Uno definitivamente puede hacer que funcione, pero encontré MVC más fácil de configurar. – Jason

+0

@Jason - Hay un paquete nuget Ninject para formularios web. No veo cómo esto es diferente o más intuitivo desde MVC. – jfar

6

Si se preocupan por la extensibilidad, facilidad de mantenimiento, escalabilidad y robustez de su aplicación, así como el desarrollo de sus habilidades de desarrollo de software, y luego quedarse en la medida de lo más lejos posible de los formularios web.

La idea de agregar una capa de estado envolviendo todo en un formulario es simplemente incorrecta. HTTP es sin estado, y MVC se basa en ese modelo, lo cual es bueno.

Editar En cuanto a los comentarios formulados. Las aplicaciones de formularios web no son extensibles porque la capa de presentación, la lógica comercial y el código de acceso a datos (orígenes de datos) residen en el código subyacente. Los controles que se ofrecen mediante formularios web solo son aplicables en formularios web. Esto significa que no podrá transferir estas habilidades a otro marco de desarrollo web.

Finalmente, por supuesto, es posible escribir una aplicación estrechamente unida utilizando MVC: siempre hay una forma de destruir algo. No hay discusión sobre eso. El punto principal es que MVC alienta una separación de preocupaciones y un principio de responsabilidad única, cuando los formularios web prácticamente se lo quitan.

También ha dicho que los formularios web son más fáciles. Es más fácil si lo ha estado usando y es más rápido recogerlo en comparación con MVC, sin embargo, en una ejecución a largo plazo, es probable que MVC sea "más fácil". Vea algunos videos en www.asp.net/mvc. Además, es posible que desee examinar el desarrollo impulsado por pruebas (pruebas unitarias). No creo que las pruebas unitarias funcionen con formularios web porque todo está muy unido. Por favor corrígeme si estoy equivocado.

Me interesaría mucho escuchar opiniones de otros desarrolladores que tengan experiencia trabajando con ambos frameworks.

+3

Esta respuesta es en el clavo. Verá gente apoyando ambos lados del argumento, pero como desarrollador de webforms desde hace mucho tiempo que recientemente se metió de cabeza en MVC, puedo decir honestamente que nunca más quiero escribir otra aplicación de formularios web :) – stephen776

+1

IMHO MVC es claramente mejor pero todo los motivos que citan no tienen nada que ver con el marco subyacente, sino que se obtienen a partir de la calidad del código entregado por los desarrolladores. La escalabilidad también se destaca por no tener nada que ver con el front-end web, pero siempre depende de los servicios de datos subyacentes. Un sitio MVC con un db sobrecargado es tan lento como una base de datos de formularios web. – jfar

+1

Por favor, mira la edición. –

4

Recomiendo MVC simplemente porque una vez que la IU se ha resuelto, hace que el desarrollo sea mucho más fácil desde un punto de vista de back-end. Hay toneladas de MVC vs preguntas asp por ahí: 1, 2, 3

desde mi perspectiva victorias MVC basa únicamente en TDD y sin Viewstate. Pero realmente depende de cómo planea administrar y usar las diversas características de cualquiera.

0

Todo se basa en su elección: tener formularios web puede facilitar el diseño de su aplicación, ya que MVC ahora se está convirtiendo en un estándar industrial e incluso MS lo está promocionando mucho. Si desea mantener su código limpio, entonces sin dudas MVC es una mejor opción.

1

Si bien he realizado muchos proyectos con formularios web, debo decir que la razón principal por la que existen es proporcionar una capa de abstracción sobre HTTP, principalmente para facilitar un modelo basado en eventos en un protocolo sin estado.Desafortunadamente, al igual que la mayoría de las soluciones MS, eso tiene un precio.

Históricamente, los formularios web solían estar plagados de problemas en torno a la generación de marcado. Algunos de estos problemas aún persisten hoy, especialmente cuando se trata de ViewState. Las cosas ahora son un poco mejores (puedes administrar la identificación DOM en ASP .NET 4.0) pero los formularios web aún te causarán dolor. Las cosas más comunes que verá en los proyectos de formularios web son grandes cantidades de lógica de bizcocho de identidad almacenada en código subyacente.

MVC no elimina esto, pero proporciona una estructura y separación de preocupaciones que hace que las malas prácticas sean menos probables. Dicho esto, aunque el motor de vista predeterminado es mejor para producir marcas limpias desde la perspectiva del usuario final, el código en línea en las vistas es un retroceso al clásico ASP.

Por lo que vale, he dejado de desarrollar proyectos de formularios web y me he mudado exclusivamente a MVC para un nuevo trabajo.

1

mi humilde opinión MVC

que tenía que escribir un informe para justificar el cambio a partir de formularios Web MVC/Nettiers

blogged mis argumentos here

Cuestiones relacionadas