net mvc kendo ejemplos demos asp asp.net-mvc

asp.net-mvc - mvc - kendo ui



Tengo 15 minutos para presentar ASP.NET MVC a mis colegas. ¿En qué temas debería centrarme? (13)

Atraería su atención con el enrutamiento, eso es lo más obvio (y no se limita a MVC). Luego miraría la vista de nivel superior y hablaría sobre la separación de preocupaciones, la capacidad de prueba y la simulación.

Si fuera tú, me dirigiría al blog ScottGu''s y usaría su excelente material :-)

He estado usando ASP.NET MVC para proyectos personales desde antes de que llegara a RTM.

Estoy preparando una presentación para que mis colegas les presenten los conceptos básicos de ASP.NET MVC y les muestre cómo podría usarse en nuestro entorno.

Mi presentación tiene un límite de 15 minutos. Hay mucha información para retransmitir (especialmente si tiene en cuenta proyectos como MVCContrib y varias publicaciones de blog).

¿En qué temas debería centrarme?

Algún contexto: trabajo para una agencia digital. Mis colegas son desarrolladores de .NET con más de 3 años de experiencia en ASP.NET.

Lo que se ha sugerido hasta ahora:

  • Razones para querer cambiar a ASP.NET MVC
  • Enrutamiento
  • ActionResults (habilidad para servir diferentes respuestas)
  • Internas de solicitud-respuesta
  • Probabilidad
  • Andamios (plantillas T4)
  • Control de grano fino sobre la salida HTML
  • Separación de intereses ()
  • Diferencias entre ASP.NET WebForms y ASP.NET MVC

Creo que, en general, el mejor enfoque cuando se quiere presentar alguna nueva tecnología es hacer un ejemplo simple que explique algunas de las características interesantes.

Puede crear un ejemplo de aplicación mvc simple con 2 vistas diferentes de la misma página y 2 controladores diferentes. Un controlador que puede usar para operaciones asíncronas y el segundo para solicitudes normales. Una vista puede ser vista normal, la segunda vista puede ser vista optimizada para teléfonos móviles. Son pocas horas de trabajo y con este ejemplo puede cubrir todas las características geniales de asp.net mvc:

-ruta -testabilidad -flexibilidad y separación de la preocupación

aclamaciones


Echa un vistazo al kit de formación MVC de ASP.NET .

Incluye una presentación pre-enlatada (aunque de 60 minutos) con la que puedes hackear.

Se enfoca en:

  • Separación de preocupaciones
  • Probabilidad
  • Controlar

De hecho, hice algo similar (aunque fue de aproximadamente 45 a 60 minutos, incluida la demostración) justo antes de que saliera a la luz, y la clave para llevarnos a casa fue realmente:

Te devuelve el control del código HTML.

La capacidad de prueba, etc., ya se entendió bastante, pero se vio como un beneficio clave sobre ASP.NET estándar.


En realidad, 15mins no es suficiente para profundizar en cualquiera de los beneficios que obtiene de MVC. Supongo que la persona con la que trabajas está más familiarizada con los formularios web de Asp.net. Sin excavar también los patrones de diseño y por qué MVC es genial, lo más comprensible que se puede repasar es el uso fácil de Ajax.

1. jQuery – Ajax 2. Routing – SEO and No need for Custom URL rewriting 3. Partial-View – showing tabular data and use server-side Ajax to sort and a client side example using jQuery

La mayoría de las veces, cuando entro en tiendas que han estado desarrollando Web Forms, la pregunta más común es dónde están mis controles; más concretamente, ¿dónde está el repetidor o datagrid? Reunir este tipo de demostración daría lo máximo posible en 15 minutos y respondería las preguntas más comunes.


Explícales que:

  1. Ya no hay controles de servidor

  2. Ya no hay mecanismo de eventos.

  3. Ya no hay ViewState

  4. Ahora no se saldrán con los WebForms cómodos y tendrán que aprender los conceptos básicos de HTTP, HTML / CSS y JavaScript

Prepare algunos medicamentos para los que se desmayarán.

(5). Ahora no se trata de páginas, sino de recursos (modelo REST). La URL no apuntará a un archivo físico (.aspx) sino a una acción del controlador que puede servir para diferentes tipos de respuestas: una página para representar, un xml corto como una respuesta Ajax, etc.

PD: si tiene algo como un marco interno de la empresa que facilita muchas operaciones comunes y está creado con WebForms, es probable que no los convenza para que adopten MVC, ya que significa mucho trabajo, cambios dramáticos en los patrones de pensamiento y probablemente una cantidad significativa de tiempo / costes.

EDITAR: Para aquellos que pidieron puntos positivos ...

(6). Urls SEO-amigable fuera de la caja, sin la necesidad de utilidades de terceros para la reescritura de Url.

(7). Control completo sobre su salida HTML. Sin carga útil de ViewState, sin inyección de ID generadas automáticamente => marcado limpio + tamaños de páginas más pequeños => menos consumo de tráfico + tiempos de respuesta más cortos.

(8). Una posibilidad para un diseño limpio y transparente de una aplicación (incluso con varias capas). En lugar de piratear con cada control por separado en el código subyacente, ahora está en una mejor posición para diseñar una arquitectura con un flujo de datos comprensible y rastreable, desde la capa de base de datos sobre la lógica empresarial hasta que llegue a la vista. Mucho mejor en comparación con el ubicuo estilo de codificación de WebForms cuando cada control va directamente a la base de datos para obtener algunos datos para mostrar. No necesariamente que administre un diseño limpio, pero al menos el concepto MVC lo hace más limpio para usted ahora cómo hacerlo correctamente.


Ha obtenido todo tipo de puntos. Mi pregunta es, ¿por qué cree que quiere usarlo en primer lugar y cómo cree que le ayudará a usted y al resto del equipo de desarrollo en su entorno? Las viñetas son inútiles si no se aplican a su situación.


La mejor manera de hacer esto es seguir el Capítulo de ejemplo de ScottGuthries en ASP.NET MVC 1.0 profesional, donde se le da un tutorial para desarrollar una aplicación web completa con ASP.NET MVC con todas las características. Puedes resumir ese capítulo en 20 minutos.

Descargue el capítulo de muestra por Scott Guthrie Here !

LinkText: Here

Espero que esto ayude.


Por supuesto, lo primero y más importante es la separación de conceptos, que proporciona: 1. Un diseño más transparente que es más fácil de entender y administrar. 2.Convención sobre configuración. Lo que acelera el desarrollo y reduce las diferencias en la práctica de codificación / diseño entre los desarrolladores. 3. El desarrollo patern ya se integró en el diseño de la aplicación: desarrolla modelos, luego controla y luego visualiza. Cámbielas y pruébelas por separado (quizás con desarrolladores dedicados).

Pero déjame decirte que si te dieron solo 15 minutos, realmente no quieren escucharlo ni usarlo para el caso;)


Si han estado usando ASP.NET para empezar, quizás no estén familiarizados con la arquitectura MVC y es posible que tengas que hablar de eso un poco.

Como todos son desarrolladores y tiene solo 15 minutos, le sugeriría que los muestre Archivo> Nuevo para el proyecto MVC de ASP.NET y que hable brevemente sobre los andamios. Esa es una gran venta para MVC, ya que funciona de inmediato y ya está preparado para el desarrollo iterativo.

Después de eso, podría cambiar a una demostración de trabajo de una aplicación simple. Para esto, paso a través de la aplicación con un depurador de enrutamiento en global.asax a la acción del controlador para modelar y eventualmente realizar una copia de seguridad en la vista. Esto generará preguntas interesantes y explicará el nuevo ciclo de vida de la aplicación, incluidos SoC, MVC, L2S, etc. Esto también resaltará implícitamente las diferencias entre ASP.NET MVC y ASP.NET.

Si tiene wfetch (o Fiddler o encabezados HTTP en vivo), entonces mostraría la solicitud del lado del cliente y destacaría la ausencia de estados de vista y resaltaría los verbos POST / GET (PUT / DELETE si está usando wfetch). Tal vez mencionar la utilidad de esto en las aplicaciones AJAX.

Anticipe preguntas sobre cómo migrar la aplicación actual y cuál es la propuesta de valor para sus escenarios de casos de uso actuales.


Solo tienes tiempo para 2 o 3 puntos principales.

El concepto más importante que se debe comprender es que las solicitudes llegan a los controladores, luego el controlador elige qué vista presentar los resultados que el controlador ha generado.

El siguiente concepto importante es que MVC tiene su gran triunfo sobre ASP.NET "clásico" cuando crea pruebas unitarias para sus controladores y el modelo. Sin este MVC es solo otra forma de despellejar a un gato.

Para un punto final, me enfocaré en la estructura de las URL no porque sea tan importante, sino porque nos gustan las cosas que tienen una sensación de limpieza y MVC Urls puede hacer eso, esto puede ayudar a generar una respuesta positiva.

Evite continuar con el hecho de que no haya controles del servidor (lo que no es del todo cierto) ya que es probable que provoque una respuesta negativa. En general, evite mencionar lo que no se hace en comparación con los formularios ASP.NET (aunque no es necesario mencionar Viewstate al pasar). Usted sabe que los beneficios pesan lo que falta (o es innecesario), pero su audiencia no. Mantenlo positivo.


Un blog en 15mins :-). En serio, tal vez centrarse en la separación de las preocupaciones?


Tuve que escribir un informe para mi jefe justificando por qué quería usar MVC a través de formularios web / Nettiers. Blogué mi informe http://ivida.co.uk/2011/05/11/mvc-nhibernate-vs-webforms-nettiers/

Me doy cuenta de que solo tiene un período de tiempo corto, pero puede encontrar algunas ideas de la siguiente lista ...

  1. Beneficios de MVC

ASP.MVC fue escrito en respuesta a las críticas de Web Forms en relación con otras plataformas de desarrollo. Si bien Web Forms ofrece a los desarrolladores un marco de desarrollo rápido de aplicaciones y se escribió para "imitar" los métodos de desarrollo utilizados en Win Forms, dificultó la implementación de ciertas prácticas implementadas en otras plataformas y se consideró fundamental para un buen desarrollo. 1.1.Testable

MVC permite escribir pruebas automatizadas de unidad e integración. Esto tiene una serie de ventajas distintas.

a) Reduce grandemente la necesidad de pruebas manuales; el costo inicial de la creación de pruebas unitarias se reembolsa de manera descendente al reducir significativamente la cantidad de pruebas manuales.

b) Se puede ejecutar durante todo el desarrollo; esto es invaluable ya que permite al desarrollador estar seguro de que no están introduciendo cambios de última hora en la base del código.

c) Le da al desarrollador la confianza para implementar cambios en la base del código, ya que las pruebas mostrarán cualquier error.

d) Conduce a una base de código mucho más rigurosa, ya que el código se ha probado varias veces a lo largo del desarrollo en lugar de lo que ofrecen las pruebas manuales esporádicas.

e) Cada prueba es un requisito FUNCIONAL encapsulado en el código. Si existe un requisito de que solo los usuarios con el rol X pueden realizar la actividad Y, la prueba es evidencia de que este requisito se está cumpliendo. Esto tiene un valor incalculable si un desarrollador regresa a una base de código después de un período de tiempo, ya que los requisitos se pueden ver directamente ejecutando las pruebas.

Un desarrollador puede escribir tan poco o mucho código de prueba según los requisitos del proyecto. Si un proyecto está expuesto a cambios en la especificación, tener pruebas implementadas acelera significativamente la implementación de los cambios. Para pequeños desarrollos de menor impacto, las pruebas automatizadas podrían reducirse para cubrir principalmente los escenarios Crear / Actualizar y Eliminar en lugar de los Escenarios de Lectura.

Escribir pruebas es un arte en sí mismo y uno en el que un desarrollador mejora con el tiempo. Sin escribir ningún código de prueba, un desarrollador experimentado podría crear un proyecto usando MVC o Web Forms en un tiempo similar. Escribir pruebas agregaría quizás un 20% al tiempo de desarrollo, pero reduciría considerablemente el tiempo para las pruebas del sistema.

La implementación de pruebas también reduce considerablemente el tiempo que se tarda en implementar cambios y, si un cambio es significativo, puede permitir que ese cambio tenga lugar donde, de lo contrario, se consideraría demasiado riesgoso o demasiado lento.

1.2.Se adhiere a principios de buen diseño de software.

ASP.MVC sigue ciertos principios bien trillados de diseño de software bueno y mantenible, como:

“Don’t Repeat Yourself (DRY) “Separation of Concerns” (SoC)

La separación de inquietudes (no mezclar la lógica de IU con el comportamiento subyacente) es un principio fundamental que existe para ayudar a los desarrolladores a lidiar con la complejidad. La combinación de diferentes responsabilidades dentro del mismo objeto o archivos (como poner la mayor parte de su lógica en el código detrás de los archivos, como el manejo de edición, cancelación y edición de eventos posteriores a la devolución) provoca problemas de mantenimiento y hace que el código sea difícil de cambiar y de leer. MVC prescribe dónde se deben escribir ciertos tipos de objetos para que la base del código resultante sea mucho más clara y fácil de seguir.

1.3.MVC es prescriptivo

Debido a que MVC sigue buenos principios de diseño de software, es prescriptivo sobre dónde se deben desarrollar ciertos tipos de código. Esto es útil en un entorno de equipo porque estandariza las estructuras del proyecto mucho más que en los formularios web. Una vez que los desarrolladores están familiarizados con la estructura de un proyecto MVC, resulta obvio dónde buscar ciertos tipos de código. Esto facilitará el trabajo en el código de otros desarrolladores; a) debido a la prescripción yb) porque la ejecución de las pruebas unitarias garantizará que los desarrolladores adicionales no rompan la funcionalidad existente. También ayuda al desarrollador a tomar decisiones sobre dónde se deben desarrollar ciertos tipos de código y cómo se debe separar el código para permitir un mantenimiento más fácil. La naturaleza prescriptiva de un proyecto MVC también ha demostrado ser útil al permitir que los desarrolladores de este equipo hablen sobre los problemas y los problemas que enfrentan sin tener que conocer la implementación detallada del proyecto.

1.4.MVC permite una fácil integración con marcos de JavaScript

Desde el lanzamiento de Google Suggest en 2004, ha habido un gran cambio en el desarrollo web del lado del cliente. Este cambio ha sido sobre la implementación de la funcionalidad AJAX. AJAX (abreviatura de JavaScript asíncrono y XML) es un grupo de técnicas relacionadas que se utilizan en el lado del cliente para crear aplicaciones web ricas e interactivas. Con AJAX, las aplicaciones web pueden recuperar datos del servidor de forma asíncrona en segundo plano sin interferir con la visualización y el comportamiento de la página existente. AJAX utiliza una combinación de HTML y CSS para marcar y diseñar información. Se accede al DOM con JavaScript para mostrar dinámicamente y permitir que el usuario interactúe con la información presentada.

Este tipo de funcionalidad solía ser bastante difícil de programar debido a la implementación variable de cumplimiento de estándares en los navegadores. Ahora esto se ha convertido en un problema menor a) debido a un mejor cumplimiento de los estándares yb) más significativamente debido al desarrollo de marcos de JavaScript como JQuery que le permiten escribir código que funciona en cada navegador.

La ''V'' en MVC, significa ''Vista'' y se ocupa solo de la entrega frontal de HTML y JavaScript. MVC permite la fácil integración con marcos JS como JQuery y simplifica enormemente la creación de experiencias del lado del cliente enriquecidas utilizando dichos marcos. (Tenga en cuenta que JQuery ahora se incluye como estándar con ASP.NET 2010 y Microsoft ahora está contribuyendo de manera activa y quizás tardía a la base del código de JQuery).

Esta integración simplificada facilita el desarrollo de experiencias de usuario que coincidan con el rendimiento que los usuarios esperan en un sitio web moderno. Este es un punto sutil, pero creo que no debemos ignorarlo. Nuestros clientes desarrollarán cada vez más expectativas implícitas sobre cómo interactúan con los sitios web en función de su uso de Internet. Ahora hay muy pocos sitios comerciales que no implementan la funcionalidad AJAX y la interfaz sensible que ofrece. Si no observamos el desarrollo de frontends ricos, cada vez más haremos que nuestra salida se compare desfavorablemente con las expectativas de nuestros clientes.

1.5.El consumo de la web está cambiando (rápido)

Morgan Stanley predice que más personas accederán a la web usando dispositivos móviles que a través de internet / escritorio fijos a mediados de 2013 (es decir, dentro de 2 años y medio).

(http://gigaom.files.wordpress.com/2010/04/mobile-chart2.png)

¿Qué tiene esto que ver con MVC? Creo que MVC es una mejor plataforma para entregar contenido a una variedad de dispositivos debido a su implementación más sencilla de las bibliotecas JS y la facilidad con la que permite al desarrollador controlar los contenidos de la respuesta HTTP (se explica en detalle a continuación).

1) Implementación más sencilla de AJAX: una conexión 3G en un dispositivo móvil actualmente no tiene un ancho de banda comparable al de la banda ancha. AJAX mejora en gran medida el rendimiento de las páginas en conexiones más lentas, ya que solo devuelve los datos requeridos (que están formateados por el navegador) en lugar de los datos y toda la página.

2) MVC le da al desarrollador un control mucho mayor sobre los datos devueltos de una solicitud. Esto se ve mejor con ejemplos de códigos reales, pero dentro de dos líneas de código, un desarrollador puede devolver una página completa (con Página maestra, etc.), JSON (Notación de objetos de JavaScript), que es el formato de datos de elección en solicitudes AJAX, XML o cualquier otro formato. necesario.

Ejemplo de código:

//Try doing this in webforms If (IsJson) { return this.JSON(model); } Else if (IsXml) { return new XMLResult(model); } else { return View(model)l; }

Este nivel de control es mucho más difícil de lograr utilizando los formularios web. Tener un control estricto sobre lo que se devuelve en la respuesta HTTP simplifica el desarrollo de contenido para una gama de dispositivos como los navegadores tradicionales o las aplicaciones de teléfonos inteligentes, o para aplicaciones que se encuentran en otras plataformas como SharePoint. 2.1.1.6.MVC utiliza URLs RESTFul

MVC le da al desarrollador el control total sobre la URL. Con WebForms, la URL coincide con la estructura de archivos subyacente del código. Con MVC tiene lo que se conoce como un ''Registrador de ruta'', que es un archivo que combina las URL con los recursos que se ocuparán de la solicitud.

Hay dos ventajas distintas de tener control total sobre la URL:

i) Si un proyecto requiere un URL legible por humanos o la optimización de un motor de búsqueda, el control de URL es una gran ventaja. Considera lo siguiente:

www.mywebapplication.com/users/alex.hardman (es decir, Recuperar usuario con el nombre alex.hardman)

Opuesto a

www.mywebapplication / users / getuser.aspx (nombre pasado en la sesión) o www.mywebapplication / users / getuser.aspx? username = alex.hardman

La primera URL (a través de MVC) es más legible para los humanos y más amigable para los motores de búsqueda (por ejemplo, todos los motores de búsqueda principales clasificarán más arriba).

ii) La segunda ventaja de tener control total sobre las URL se relaciona con el impulso actual en la investigación en Humanidades Digitales para la preservación de datos. Sin entrar en demasiados detalles, un aspecto de la preservación de datos implica la creación de "url permanentes" y "identificadores de recursos únicos" (uri''s). El uso estándar de las variables de sesión y el estado de vista en los formularios web significa que la misma url puede referirse a múltiples elementos de datos (donde los parámetros de consulta se ingresan a través del estado de vista). El resultado es que los datos a los que se accede en esta mansión no tienen un identificador de recursos único (es decir, una dirección única en la web). Esto significa que no se puede hacer referencia a los elementos de datos, ya que no tiene una dirección única en la web y evita su inclusión en las iniciativas de Datos Vinculados y otras iniciativas de investigación que requieren un URI.

La combinación de URI y la facilidad con la que un sistema puede devolver formatos de datos legibles por computadora, como XML (ver más arriba), ofrece a los desarrolladores una ventaja cuando se trata de las mejores prácticas en técnicas de conservación y conservación de datos de Humanidades. En las recientes bases de datos de investigación de Oxford sobre las humanidades, ¿dónde iremos ahora? En el taller se hizo un gran énfasis en la curación de datos de investigación de Humanidades con uri y formatos de datos legibles por computadora. Esto es algo que podríamos "vender" como algo claramente ventajoso para nuestros clientes de investigación.


  • Enrutamiento
  • La flexibilidad de ActionResults
  • Conectar diferentes vistas a la misma acción del controlador (es decir, una vista móvil)

El gran tema de las pruebas unitarias puede ser demasiado grande para una reunión de 15 minutos, pero si sus desarrolladores ya están utilizando TDD, lo agregaría