2009-07-25 14 views
9

He leído varios otros mensajes aquí, así que conseguir la idea sobre los contras pro vs, especialmente tener un control total sobre el código HTML representado etc. (en MVC).ASP.NET MVC vs Webforms: Sustitución de WebForms Controles

Mi pregunta es con respecto a los controles de interfaz de usuario: En MVC, voy a tener que escribir toda la interfaz de usuario controla a mí mismo (o el HTML equivalente). ¿Ahora no va a ser muy difícil? La razón por la que estos proveedores de terceros para asp.net están ahí es simplemente porque es difícil escribir los controles de IU para ASP.NET por nosotros mismos, y poder orientarnos a todos los navegadores web, y también que es mejor que concentremos nuestro tiempo en la lógica empresarial en lugar de dedicar todo el tiempo a escribir el código HTML de los controles de la interfaz de usuario.

entiendo que esta característica nos consigue el control total sobre el html final, pero no es contraproducente para hacer esta interfaz de usuario se mordió nosotros mismos. Si fue tan fácil escribirlos nosotros mismos, ¿cómo es que estos vendedores de la tercera parte están viviendo ahora? Podríamos haber hecho todo esto solos todos estos años de días de WebForms.

Estoy seguro de que estoy perdiendo algo aquí o ser un poco tonto, pero por favor me ilumine en cuanto a lo que me falta en lo que respecta específicamente al bit de interfaz de usuario está escrito por nosotros mismos.

Solo porque tengo control total sobre el programa al escribir en código IL, ¿vamos y hacemos eso? Aún usamos C# y cosas por el estilo. De modo que esa teoría de "tener un control total sobre html" no me gusta esa idea.

Por favor, ayúdenme a entender este bit de la interfaz de usuario. Otras cosas que entiendo, sobre la separación de la preocupación, el desarrollo basado en TDD es posible con MVC, etc. Pero ¿por qué iba a escribir los controles de la interfaz de usuario solo? Es un poco trabajo, ¿no?

+0

Pido disculpas si mi publicación es un duplicado.si me puede indicar otra publicación en este punto exacto (en el bit de la interfaz de usuario que me preocupa), incluso trataría de eliminar esta publicación de aquí. Gracias. –

+0

Sombody había comentado unos segundos atrás que mi publicación era un duplicado, y respondí como un comentario, pero esa otra persona aparentemente ha eliminado sus comentarios ahora :-) –

+0

Yo era ese alguien. Vuelve a leer esa publicación y debes admitir que no es un duplicado exacto. De todos modos, estoy harto de esta cosa de "ASP.NET MVC vs WebForms". Es incluso peor que "PHP vs RoR". : D –

Respuesta

2

El problema es que ASP.NET MVC es un producto mucho más joven que ASP.NET. Durante muchos años, las compañías de terceros han estado desarrollando TONELADAS de componentes reutilizables, y creo que es solo cuestión de tiempo antes de que haya disponible un conjunto comparable de controles para ASP.NET MVC.

Si realmente necesita muy rica interfaz gráfica de usuario con controles de 3 ª parte, y no se puede volver a extender en el tiempo aceptable - seguir con asp.net. A pesar de que en mi opinión, MVC te da toneladas de potencia, no sería prudente dedicar mucho más tiempo a la reescritura de los controles que lo que puedes ahorrar. Si puedes vivir sin controles, y como los conceptos de MVC, utiliza MVC, y seguramente verás soluciones de terceros tan pronto como haya un mercado en crecimiento (quizás ya lo hayas notado, no sé) para extensiones de mvc

1

Creo que la interfaz de usuario y la experiencia del usuario son vitales para el éxito de una aplicación web. Hacer la página intuitiva y fácil de usar, minimizar la cantidad de navegación que el usuario tiene que hacer para realizar el trabajo, y proporcionar comentarios e interactividad efectivos puede marcar la diferencia entre un sitio que los usuarios quieren usar y uno que evitan.

Si está tratando de atraer usuarios a un sitio web público, una apariencia agradable y una usabilidad excelente son la clave para construir visitas repetidas.

Si está escribiendo una aplicación de intranet para ser utilizada por cientos o miles de empleados durante todo el día, como lo hago principalmente, hacer que la UI sea eficiente y fácil de usar realmente significa mucho para sus usuarios.

Por lo tanto, no minimizaría la importancia de la IU. No es una molestia. Es una parte clave de la experiencia del usuario.Sugiero que un desarrollador web adopte las herramientas y estrategias que hagan el trabajo. Eso a menudo significa que la codificación de la interfaz de usuario se controla usted mismo. O trabajando con un compañero de equipo al que le gusta hacer esa parte del trabajo.

11

La cosa es:

Si usted quiere dominar en el desarrollo web que tiene que dominar HTML + CSS + Javascript

Y con WebForms que tienen que aprender la manera WebForms para hacerlo, pero con MVC tiene el poder de .Net con la libertad de generar el HTML + CSS + Javascript que desee.

+0

Eduardo, el mismo poder (para generar su HTML) que tiene con WebForms también. – user134706

+6

Los controles de asp.net son abstracciones que se filtran y ocultan la complejidad suficiente para simplificar las aplicaciones simples, pero cuando necesitas hacer más de lo que te ofrecen terminas enfrentando una curva de aprendizaje muy empinada. – Will

+0

Es un arma nuclear para desarrolladores de arrastrar y soltar. La falta de conocimiento hace preguntas sobre la sopa de etiquetas y vuelve a la tecnología clásica no apropiada de ASP. –

0

Aquí está la cosa clave que creo que te estás perdiendo. Cuando ASP.NET ya no es la forma de MS de hacer las cosas ... eventualmente se verá obligado a continuar y hacer otra cosa. He programado en Perl, ASP clásico, luego ColdFusion, luego PHP, luego formularios web ASP.NET, luego ASP.NET MVC ... lo único que todos tienen en común es la base de datos subyacente, patrones de diseño, mejores prácticas para un conjunto dado de tecnología Y ... HTML, JavaScript, CSS y Photoshop.

Nadie le está pidiendo que aprenda MVC. Nadie te está diciendo que no uses WebForms. Sin embargo, quejarse de que tiene que escribir una interfaz de usuario sin procesar no lo llevará muy lejos en esta industria. Debería aprender algo nuevo todos los días ... ¡y parece que algún tiempo dedicado a HTML y CSS sería un gran lugar para comenzar a enfocar!

El mayor problema que tiene al depender de controles de terceros es cuando un cliente le pide que haga algo que los controles de terceros no cubren. Si no puede replicar su complejidad más la solicitud de funciones adicionales por su cuenta, está bordeando un posible fracaso en su sustento profesional. ¡Tendrás que saber cómo hacerlo todo ... eventualmente!

Por lo general, sugiero que adopte las nuevas tecnologías. No tienes que usarlos ... pero al menos deberías saber cómo. De esta manera sabrá cuál es la mejor herramienta para un proyecto determinado.

+0

Claro, gracias. Estoy preparado para aprender HTML + CSS + JS con el apoyo de JQuery, JQ UI :-) Solo pensé pedirle que confirmara que "voy a ser yo" quien escribirá el código de UI, por si me perdía un poco señalar allí; -) ... no quiero terminar pareciendo un tonto en mi equipo cuando otros dirían "¿estás loco? ¿Por qué estás escribiendo todo eso, idiota?" :-) Solo quería que me aclararan y evitar esa situación. Gracias. –

+0

En realidad, a menudo una patada pequeña con el código del cliente puede hacer mucho. –

0

Me he estado preguntando: ¿qué es un equivalente al "control" de los formularios web en asp.net mvc? No es una vista parcial con seguridad. ¿Qué más puede ser? Controlador + vistas parciales a través de solicitudes parciales?

Tal vez soy tonto, ciego o ambos, pero no he visto ningún 'control' para asp.net mvc. Solo una gran cantidad de fragmentos de código para lograr una cosa específica u otra.

Creo que asp.net mvc es bastante hostil con el rápido desarrollo. La única forma de salir de este problema: una gran cantidad de código fuente abierto (como MvcContrib), tutoriales, aplicaciones de ejemplo & más importantes: desarrolladores un poco más inteligentes.

+0

Realmente no necesitamos desarrolladores "un poco más inteligentes". Solo necesitamos desarrolladores de ole que supieran cómo hacer las cosas en el bloc de notas en lugar de requerir un montón de sofisticados widgets y conjuntos de herramientas. El bloc de notas te obliga a conocer tu profesión ... no solo crees que conoces tu profesión. Si usted es un desarrollador web ... y no puede trabajar en html, javascript, css, etc. en bruto, entonces no es realmente un desarrollador web por el momento. En realidad, todavía eres solo un script kiddy con una dependencia en dreamweaver o visual studio. No se preocupe ... ¡todos comenzamos allí! ¡Sé que lo hice! –

+0

Llámalos como quieras. La idea permanece –

+0

@Andrew: comencé en el bloc de notas, html, css, javascript, ASP clásico. y se movió a formularios web. ¿Realmente quiero volver al bloc de notas? No, gracias: D – joedotnot

1

Recientemente refactoreé un sitio web muy complejo utilizando ASP.NET + jactwork a javascript para MVC + jQuery. La complejidad del código se redujo en un 50% -75% y se volvió mucho más comprobable. Reemplacé todos los controles web complejos que tuve que escribir (con una curva de aprendizaje empinada que tuve que superar) con métodos HtmlHelper muy simples.

No olvide que, cuando utiliza controles web personalizados, el desarrollador de control le proporciona una interfaz de usuario muy estática. Con HTML sin procesar, puede aprovechar los estilos y la interfaz de usuario desarrollados por toda la industria web.

Mayor simplicidad, menor tiempo de desarrollo, capacidad de prueba, flexibilidad en la interfaz de usuario ... No quiero volver atrás.

+2

Tiene una IU estática si así es como se escribió el control.No hay ninguna razón para que los "estilos y UI desarrollados por toda la industria web" no puedan ser encapsulados en un control web. –

+0

Para entender de lo que estoy hablando basta con ver cómo los controles ASP.NET procesan el contenido lado a lado y cómo lo hacen los demás. Debido a que los autores de control configuran el html en piedra, a menudo encontrará que no puede usar fácilmente diseños y estilos comunes; tienes que trabajar duro (por ejemplo, adaptadores de control) para adaptar los estilos a usar con tus controles web. – Will

+0

Will, WebForms le permite crear WebControl modificable (dado el hecho de que crea propiedades ITemplate) que le da al integrador la capacidad de escribir el html personalizado que desea. El desarrollador puede construir un conjunto muy complejo de controles web sin escribir una sola línea de html. –

1

También debe recordar que ASP.NET MVC es solo la primera versión.No creo que haya ninguna razón intrínseca por la cual no puedas tener el equivalente de los controles del servidor para habilitar ciertas tareas. Recuerda que hay muchos controles de servidor que no generan ningún marcado (como el Repeater, PlaceHolder, Vista de la lista). Este tipo de controles podría ser útil en una futura configuración de MVC, creo.

+0

Claro: siempre podrá hacer/usar controles siempre que no use viewstate. ¿Pero no es eso lo que los hace dignos y windows-forms-like en la mayoría de los casos? –

1

Creo que ASP.net apareció cuando muchos desarrolladores todavía estaban acostumbrados a hacer aplicaciones de escritorio y apenas comenzaban el desarrollo web. En ese momento, la abstracción de los detalles de la web con controles y publicaciones posteriores era una excelente manera de iniciar a la gente. En ese momento no estábamos tratando de perfeccionar la web, ¡solo queríamos lograrlo!

Ahora que la web ha madurado y todos hemos aprendido lentamente acerca de html, css, javascript y los gustos queremos optimizar nuestros sitios web para nuestras propias necesidades y no queremos depender de los controles de ASP.net Forms para controlar los detalles finos de nuestros sitios web.

En resumen, creo que esto es acerca de la evolución natural de muchos desarrolladores desde el escritorio a la web

+0

Ese es un buen punto. Los desarrolladores son importantes y no la tecnología que utilizan. –

0

Bueno, también me preguntaba cómo utilizar los controles de 3 ª parte en ASP.NET MVC. Obviamente, y al contrario de algunas respuestas aquí, tenía que ser posible.

Como ha pasado mucho tiempo desde que se formuló la pregunta, la industria ha evolucionado. Así que he buscado y encontrado (pero aún no probado) soluciones como Telerik Extensions for ASP.NET MVC.

Quiero poner esta respuesta aquí principalmente para apoyar otros newbees MVC como yo - Sólo Google

"asp.net mvc" controla

1

Por mi parte, estoy muy agradecido de que no puede usar controles ASP.NET en MVC.

Los controles, como ya se ha señalado, son solo bloques de código del lado del servidor que procesan HTML y javascript en su nombre. Las cosas como una cuadrícula de datos son geniales, hasta que alguien le pida que haga una pequeña modificación, como tener una alerta de confirmación de eliminación, y entonces parece imposible hacer ciertas tareas.

La buena noticia es que hay herramientas jQuery muy potentes escritas para ayudarlo. jqGrid es un gran reemplazo de rejilla que hace mucho más que la rejilla ASP.NET ...

http://www.trirand.com/blog/

jsTree es una vista de árbol que es fantástico. De nuevo con el jQuery ....

http://www.jstree.com/

Y la verdad es que la mayoría de las cosas que se pueden hacer con la maquinilla de afeitar, HTML, JavaScript y CSS. Es tan simple que es simplemente estúpido.

Es difícil para personas como yo, desarrolladores de formularios web, comprender MVC y por qué deberían usarlo, ya que es muy simple. Es difícil dejar de lado la complejidad de ASP.NET convencional. Pero se siente tan bien cuando lo haces.

Y no mezcle formularios web con MVC. Puedes hacerlo, pero desearás no haberlo hecho.

Cuestiones relacionadas