Material MVC Basico en español

  • View
    92

  • Download
    0

Embed Size (px)

DESCRIPTION

manual para aprender mvc de asp, rapidamente y de forma autodidacta con ejemplos y codigos leibles a la perfeccionfffmanual para aprender mvc de asp, rapidamente y de forma autodidacta con ejemplos y codigos leibles a la perfeccionfffmanual para aprender mvc de asp, rapidamente y de forma autodidacta con ejemplos y codigos leibles a la perfeccionfffmanual para aprender mvc de asp, rapidamente y de forma autodidacta con ejemplos y codigos leibles a la perfeccionfffmanual para aprender mvc de asp, rapidamente y de forma autodidacta con ejemplos y codigos leibles a la perfeccionfffmanual para aprender mvc de asp, rapidamente y de forma autodidacta con ejemplos y codigos leibles a la perfeccionfffmanual para aprender mvc de asp, rapidamente y de forma autodidacta con ejemplos y codigos leibles a la perfeccionfff

Transcript

  • DESARROLLO DE APLICACIONES WEB CON

    ASP.NET MVC 4

  • NDICE

    [1] Overview Web Applications ...................................................................................................3

    [2] ASP.NET MVC 4 Architecture ................................................................................................9

    [3] Javascript and jQuery ..........................................................................................................17

    [4] Working with HTML5 and CSS3 Features ...........................................................................23

    [5] Handling File Upload ...........................................................................................................38

    [6] Integrating with SSRS .........................................................................................................42

    [7] Web Application Vulnerabilities ..........................................................................................44

  • Captulo

    1

    Overview Web

    Applications

  • DESARROLLO DE APLICACIONES WEB CON

    ASP.NET MVC4 PLURALSOFT

    4

    Existen varias consideraciones que deben tomarse en cuenta para el Diseo de Aplicaciones

    Web:

    El diseo debe estar basado en funcin a un Framework robusto y escalable, que se encuentre alineado a un Patrn sustentado para la construccin de Aplicaciones Web.

    Debe tener una estructura que permita la extensibilidad de la aplicacin para la gestin de cambios e implementacin de nuevas funcionalidades con el menor esfuerzo posible.

    Debe tener secciones completamente diferenciadas entre el contenido dinmico y esttico para la respectiva localizacin de componentes y crecimiento horizontal.

    Debe tener un alto grado de personalizacin a travs de configuracin.

    ASP.NET tuvo un gran impacto cuando fue lanzado, no solamente por ser una plataforma

    multilenguaje, sino en que llenaba el hueco existente entre las aplicaciones Windows

    Forms, con estado y orientadas a objetos, y las aplicaciones web orientadas a HTML,

    intrnsecamente sin estado.

    Microsoft intent ocultar tanto el protocolo HTTP (que es intrnsecamente sin estado)

    como el cdigo HTML generado (que en el momento no era conocido por muchos

    desarrolladores) modelando una arquitectura de interfaz de usuario que abstraa esos

    conceptos a un conjunto de controles. Cada control gestionaba su propio estado a travs

    de las diferentes llamadas al servidor, conectaba los diferntes eventos de cliente y servidor,

    y se encargaba de generar el html correspondiente.

    De esta manera, los desarrolladores no tenan que trabajar con una serie de peticiones

    HTTP independientes y sus consiguientes respuestas. De esta manera nos olvidabamos de

    la web, y construamos nuestro interfaz usando un diseador de "arrastrar y soltar", y nos

    imaginbamos que todo suceda en el servidor.

  • DESARROLLO DE APLICACIONES WEB CON

    ASP.NET MVC4 PLURALSOFT

    5

    Aunque la intencin fue buena al pincipio, la realidad result poco ms complicada. A lo

    largo de los aos ASP.NET webforms ha demostrado tener una serie de debilidades:

    ViewState: El mecanismo para mantener estado a travs de peticiones web, normalmente resultaba en bloques gigantes de cdigo que eran innecesariamente transferidos entre cliente y servidor (muchas veces llegaban a ser cientos de Kb), ralentizando la experiencia del visitante cada vez que clicaban un botn de nuestra aplicacin web. ASP.NET Ajax adolece del mismo problema, aun suponiendo que este era el problema que Ajax deba de solucionar.

    Ciclo de vida de la pgina: El mecanismo que conectaba eventos de cliente y servidor, parte del ciclo de vida de la pgina, llegaba a ser extraordinariamente complicado y delicado, llevando normalmente a errores y problemas de mantenibilidad. Manipular la jerarqua de controles de un webforms comunmente llevaba a errores de Viewstate o eventos que misteriosamente fallaban al ejecutarse.

    Limitado control sobre el HTML generado: Los controles de servidor renderizan HTML, pero nunca el HTML que a ti te gustara. El cdigo HTML que generan es ineficiente, pesado y no cumple los standards ni hace un correcto uso de CSS. El servidor genera una enfarragosa coleccin de valores de ID cliente, a los que es muy difcil de acceder via Javascript.

    No hay separacin de responsabilidades: El modelo de ASP.NET code-behind pretende desacoplar el cdigo HTML del cdigo de servidor, pero en la realidad se acaba mezclando cdigo de presentacin (ej: manipulando la jerarqua de controles) con el de lgica de negocio (ej: accediendo a la base de datos) en la misma, enorme, y difcil de mantener clase de code-behind. Sin separacin de responsabilidades, el resultado final se frgil e ilegible.

    Imposible de testear: Cuando se lanz ASP.NET, no se anticip que el desarrollo orientado a pruebas iba a ser una prctica comn en el desarrollo de software a nivel mundial. Es por ello que esta arquitectura es completamente intesteable.

    El Desarrollo Web Actual

    Desde que ASP.NET webforms fue lanzado, ha habido muchos progresos en la industrial del

    desarrollo web:

    Web standards y REST Las pginas web hoy son consumidas por una gran variedad de dispositivos, por lo

    que se hace necesario una convergencia hacia unos estndares comunes.

    De la misma manera, REST ha ido ganando una gran popularidad y se ha reconocida

    como la referencia de interoperabilidad entre aplicaciones sobre el protocolo HTTP.

  • DESARROLLO DE APLICACIONES WEB CON

    ASP.NET MVC4 PLURALSOFT

    6

    Agile y desarrollo dirigido a test El desarrollo gil y orientado a test permite introducir capacidad de adaptacin al

    cambio, sin comprometer la base de cdigo existente, ya que cada funcionalidad o

    comportamiento deseado est garantizada por varias pruebas unitarias que

    garantizan su funcionamiento.

    Desgraciadamente, webforms no nos facilita (ms bien todo lo contrario) el trabajo

    orientado a pruebas.

    Beneficios sobre ASP.NET MVC

    Arquitectura MVC Desarrollada en los aos 80, promulga la separacin de responsabilidades entre el

    controlador de peticiones, el modelo o repositorio de datos y reglas de negocio y las

    vistas. Esta arquitectura facilita la testeabilidad.

    Extensible Prcticamente cada pieza que forma el framework ASP.NET MVC puede ser

    alterado, o modificado por una implementacin propia para cubrir nuestras

    necesidades. Para cada componente del MVC Framework tenemos 3 opciones:

    Usar la implementacin que trae por defecto (normalmente suficiente para

    la mayora de las aplicaciones)

    Crear una clase derivada y modificar el comportamiento deseado.

    Reemplazar el componente deseado por una nueva y completa

    implementacin que cubra nuestras necesidades.

    Testeable

    La arquitectura MVC facilita la creacin de pruebas unitarias. Crear

    aplicaciones usando metodologas giles o basadas en TDD es muy sencillo

    usando ASP.NET MVC. Ahora nuestras aplicaciones son ms robustas.

    Control preciso sobre el HTML generado. Usando ASP.NET MVC podemos escribir el cdigo HTML final que deseemos, control

    que no tenamos con ASP.NET webforms. Eso significa que nuestras aplicaciones

    van a generar un cdigo ms limpio, que siga los estndares, y que se integre

    fcilmente con nuestro cdigo Javascript.

    URL's elegantes, semnticas y user-friendly Basado en una nueva estructura para las URL: /Compras/Listar/1

    Potente sistema de ruteo (routing) ASP.NET webforms ya contaba con un sistema de rutado, pero ha sido con ASP.NET

    MVC cuando lo hemos exprimido para aprovechar todas sus capacidades. Con

    ASP.NET MVC, una peticin HTTP no tiene que estar necesariamente mapeada a un

    archivo, sino que podemos crear elegantes "user-friendly.

    Sigue el diseo "sin estado" nativo de la web Ausencia de ViewState, PostBack y todo el tedioso ciclo de eventos de un

    webforms.

  • DESARROLLO DE APLICACIONES WEB CON

    ASP.NET MVC4 PLURALSOFT

    7

    Nos evita gestionar el complejo mecanismo de eventos de cliente y servidor durante

    el ciclo de vida de la pgina.

    Construido sobre lo mejor de la plataforma .NET No cabe duda que la plataforma .NET ofrece ventajas considerables de

    productividad, potencia, seguridad y escalabilidad. ASP.NET MVC hace uso de toda

    esa base de cdigo.

    ASP.NET MVC es open source ASP.NET MVC es "open source". Puedes descargar la ltima versin del framework,

    e incluso modificarla y compilarla a tu gusto. Puedes descargarlo aqu:

    http://aspnet.codeplex.com/

    Introduccin en ASP.NET 4.5

    Recordando Web ASP.NET API comenz como WCF Web API, y esta nos permite unir la programacin del modelo y eliminar la carga de procesamiento en el cliente.

    Fue diseado principalmente para interactuar con el cliente emitiendo HTML, respondiendo a la interaccin del usuario; es decir ASP.NET WEB API es creado para las solicitudes que procedan de cdigo o de algn tipo estructurado. cmo puede ser una peticin AJAX, jQuery o una interfaz de servicio.

    Esto significa que usted podr construir servicios de primer nivel de HTTP en una aplicacin ASP.NET MVC.

    Web ASP.NET API incluye soporte para las siguientes caractersticas:

    El modelo moderno de programacin HTTP: Directamente acceder y manipular las peticiones HTTP y las respuestas en WEN API utilizando un nuevo modelo inflexible de tipos objeto HTTP. El mismo modelo de programacin y la canalizacin HTTP es simtrica disponible en el cliente a travs del nuevo tipo de HttpCli