You are on page 1of 23

Desarrollo de Aplicaciones Web con

Visual Studio 2013

Objetivo
Al finalizar el captulo, el alumno:

Comprende el ambiente de desarrollo web con .NET y Visual Studio.

Conoce las herramientas necesarias para el desarrollo web.

Describe escenarios de aplicacin para Web Forms y MVC.

Conoce la evolucin de ASP.NET MVC.

Usa componentes de terceros mediante NuGet.

Temas
1.

IIS 8.0

2.

ASP.NET 4.5.1

3.

Fundamentos de Diseo de Aplicaciones Web

4.

Framework ASP.NET MVC

5.

Evolucin de ASP.NET MVC

6.

Anlisis del Ciclo de Vida de un Request

7.

Lineamientos para el uso de WebForms y MVC

8.

Herramientas para el desarrollo de Aplicaciones Web

9.

Usando componentes de terceros con NuGet

.Net 4.5.1 Web Application Developer Visual Studio 2013 con C#

Desarrollo de Aplicaciones Web con Visual Studio 2013

1.

IIS 8.0

IIS (Internet Information Services) es un servidor web para ASP.NET, que proporciona una
plataforma modular y extensible para sitios web, servicios y aplicaciones.
Algunas caractersticas del IIS 8.0:

Application Initialization
Permite a los administradores de sitios web mejorar la capacidad de respuesta de los
sitios Web mediante la carga de las aplicaciones antes de que llegue la primera
solicitud.
Consiste en, proactivamente, cargar e inicializar todas las dependencias, como las
conexiones de base de datos, compilacin de cdigo de ASP.NET, y la carga de
mdulos. De esta manera se puede asegurar que los sitios web estn listos para
atender las solicitudes de los clientes en todo momento, incluso si el application pool se
reinicia.
Mientras se inicializa una aplicacin, el IIS tambin puede ser configurado para devolver
una respuesta alternativa, tal como contenido esttico, hasta que una aplicacin ha
finalizado sus tareas de inicializacin.

CPU Throttling
En la versin 7 de IIS ya existen funciones para limitar el uso de CPU, que evitan que
determinados sitios web consuman ms de lo deseado. Pero el funcionamiento no es
del todo adecuado, ya que en caso de llegar a un lmite, solo se tiene la opcin de
detener el Application Pool.

Desarrollo de Aplicaciones Web con Visual Studio 2013

En la versin 8 del IIS, se ha modificado este funcionamiento, introduciendo dos


acciones:
- Throttle: Limita la CPU para un determinado proceso (Worker Process asociado
a un Application Pool).
-

Throttle Under Load: Permite a un sitio disponer de tanta CPU como necesite
mientras est disponible, pero limitar el uso si empiezan a aparecer otros sitios
web que necesiten capacidad de procesamiento. De este modo, se aade
flexibilidad porque puede limitar el uso de CPU sin detener procesos.

Dynamic IP Restrictions
La restriccin dinmica IP permite configurar al IIS para bloquear el acceso a
direcciones IP que excedan un determinado nmero de solicitudes en un perodo de
tiempo determinado, o cuando utilizan ms de un determinado nmero de peticiones
simultneas.
En el caso de que se tenga activado el servidor FTP de IIS, tambin se permite restringir
el acceso a usuarios que realizan un determinado nmero de fallos durante el inicio de
sesin FTP.

Centralized SSL Certificate Support


Las mejoras se pueden resumir en: gestin centralizada de certificados y escalabilidad.
En IIS 7, se deba importar cada certificado en cada instancia de IIS. En el caso que se
administre una granja de servidores, se podra dificultar la administracin.
La nueva versin de IIS, permite crear un Central Certificate Store o CCS. De este modo,
se administra desde un nico punto, todos los certificados de los servidores. El nombre
del fichero del certificado puede ser utilizado para asociarlo a un dominio y soporta los
certificados multidominios.
En cuanto a escalabilidad, los sitios bajo SSL escalan ms eficientemente, ya que es
posible tener mltiples sitios SSL bajo el mismo hardware. Del mismo modo, los ficheros
de configuracin de IIS han sido rediseados para permitir escalabilidad.

WebSocket Protocol Support


Esta nueva caracterstica trata de resolver una de las mayores limitaciones de HTTP
desde su nacimiento: no es posible mantener una conexin abierta indefinidamente
entre cliente y servidor, para comunicaciones full-duplex en tiempo real. IIS 8 aade el
soporte para Websockets, permitiendo este tipo de conexiones.
Tiene que ser instalado como un ApplicationDevelopment cuando se instala IIS 8
(ASP.NET 4.5).

Recuerde
Un Application Pool permite aislar aplicaciones que se estn ejecutando en el
mismo servidor. De esta manera, si hay un error en una aplicacin, este no
afectar a otras, solo a las asociadas con el Application Pool.

Desarrollo de Aplicaciones Web con Visual Studio 2013

2.

ASP.NET 4.5.1

1.2.1 MVC
ASP.NET MVC es un framework de aplicaciones web que implementa el patrn
modelo-vista-controlador. En marzo de 2009 se hizo pblica la primera versin de
ASP.NET MVC.
El patrn de arquitectura MVC (model-view-controller) no es nuevo (data de 1979)
ni es algo que haya inventado Microsoft. Existen muchos frameworks de desarrollo
web populares que utilizan MVC, como por ejemplo Ruby on Rails, Spring o Struts.
MVC es un patrn de arquitectura que ayuda a crear una separacin lgica entre
el modelo (la lgica de acceso a datos), la vista (la lgica de presentacin) y el
controlador (la lgica de negocio).
Uno de los pilares bsicos de ASP.NET MVC es el concepto de enrutamiento
(routing), lo que permite a las aplicaciones aceptar peticiones a URLs que no se
corresponden con ficheros fsicos en el servidor.
1.2.2 Web Pages
Una pgina web HTML simple es esttica, y su contenido est determinado por el
formato HTML fijo que est en la pgina.
ASP.NET Web Pages es un framework que se puede utilizar para crear pginas
web dinmicas. Permite crear y modificar el contenido de la pgina de forma
dinmica mediante el uso de cdigo.
El uso de pginas dinmicas permite hacer todo tipo de cosas, tal como pedir a un
usuario la entrada de datos por medio de un formulario y segn esto cambiar lo
que se muestra en la pgina. Tambin, puede tomar informacin de un usuario,
guardarla en una base de datos para utilizarla en alguna accin ms adelante,
entre otras muchas ms funcionalidades.
Para trabajar con ASP.NET Web Pages, puede crear pginas con un editor de
texto, y realizar las pruebas mediante el uso de un servidor web al que se tenga
acceso.

Desarrollo de Aplicaciones Web con Visual Studio 2013

Pero, existe una herramienta que es WebMatrix, la cual simplifica el trabajo y es


gratuita. Esta herramienta Integra un editor de pginas web, una utilidad de base
de datos, un servidor web para probar el funcionamiento de las pginas, y
caractersticas de publicacin de su sitio web a Internet.
1.2.3 Web Forms
Web Forms es una parte del framework de aplicaciones web de ASP.NET. Es uno
de los tres modelos de programacin diferentes que puede utilizar para crear
aplicaciones web ASP.NET, los otros son ASP.NET MVC y las ASP.NET Web
Pages, descritos anteriormente.
Web Forms son pginas escritas usando una combinacin de HTML, controles de
servidor y el cdigo del servidor. Cuando los usuarios solicitan una pgina, se
compila y se ejecuta en el servidor, y a continuacin, se genera el HTML que el
navegador finalmente muestra.
Con Visual Studio se puede crear formularios Web ASP.NET arrastrando y
soltando controles de servidor para disear los formularios. A continuacin, puede
configurar fcilmente las propiedades, mtodos y eventos de los controles o de la
pgina con el fin de definir el comportamiento de la pgina. Para escribir cdigo de
servidor que maneje la lgica de la pgina, se puede utilizar un lenguaje de .NET,
como Visual Basic o C #.
1.2.4 Single Page Application
Single Page Application (SPA) es el trmino general para una aplicacin web que
carga una pgina HTML y la actualiza de forma dinmica, sin cargar nuevas
pginas. Es decir, despus de la carga de la pgina inicial, SPA se comunica con
el servidor a travs de requests AJAX con lo que no se vuelve a ver un refresco de
pgina en el navegador.
Se trata bsicamente de una mezcla de tecnologas y uso intensivo de
programacin en el lado del cliente: Javascript, Ajax, Json, HTML5, CSS3, entre
otros.
1.2.5 Web API
ASP.NET WebAPI permite construir servicios sobre HTTP en una aplicacin
ASP.NET MVC. Es un framework para construir servicios HTTP que llegan a una
amplia gama de clientes, incluyendo navegadores y dispositivos mviles. Es una
plataforma ideal para la creacin de aplicaciones RESTful en el .NET Framework.
Comenz como WCF Web API (Windows Communication Foundation). Fue
diseado principalmente para interactuar con el cliente, emitiendo HTML y
respondiendo a la interaccin del usuario; es decir, responder a solicitudes que
procedan de alguna peticin AJAX, jQuery o una interfaz de servicio.
1.2.6 SignalR
Ofrece una visin a muy alto nivel de la comunicacin entre el servidor y los
mltiples clientes que se encuentren conectados a l. Sin embargo, en realidad
estas conexiones persistentes no existen o no tienen por qu existir, pues se trata
de una abstraccin creada por SignalR, que se encargar de mantener la
conexin de los clientes con el servidor mediante distintos mecanismos
denominados transportes, que son el conjunto de tecnologas utilizadas para
crear y mantener la conexin.

Desarrollo de Aplicaciones Web con Visual Studio 2013

Lo interesante de los protocolos de transporte es que pueden ser sustituidos de


forma transparente sin afectar a las aplicaciones, que trabajarn aisladas de estos
detalles. Los sistemas funcionarn exactamente igual, sea cual sea el transporte
utilizado, lo que permite que este sea elegido en cada escenario, en funcin de la
disponibilidad de las tecnologas en ambos extremos.
Por ejemplo, el transporte websockets es capaz de crear una conexin con el
servidor y mantenerla abierta de forma continua, aunque requiere que esta
tecnologa est disponible tanto en el cliente (en el caso de clientes web, es
necesario que el navegador implemente Websockets) como en el servidor.
Debido a ello, y para asegurar la mxima compatibilidad con los clientes,
actualmente se utiliza por defecto, el transporte denominado Long polling.
Asimismo, SignalR, mediante su componente cliente, ser el encargado de
realizar las conexiones, mantenerse a la espera de noticias del servidor,
reconectar cuando se reciban eventos o cuando por cualquier otra causa, se haya
perdido la conectividad, etc.
El lado servidor de SignalR, por otra parte, ser el encargado de recibir la
conexin y mantenerla en espera, almacenar los mensajes recibidos, realizar el
seguimiento de clientes conectados, enviar mensajes a travs de un bus interno,
etc.
SignalR ofrece dos frmulas para trabajar sobre las conexiones que crea con el
servidor:
-

Usando conexiones persistentes: Es la de ms bajo nivel y proporciona


mecanismos simples para registrar conexiones y desconexiones de
clientes, adems se comunica de forma bidireccional con ellos.

Usando hubs: Ofrece una abstraccin an mayor, permitiendo la


comunicacin entre cliente y servidor de forma casi mgica. Esta es la
opcin que convendr utilizar en la mayora de ocasiones, por la potencia
que aporta y su gran comodidad de uso.

En cualquiera de los dos casos, donde el servidor es una aplicacin ASP.NET y


los clientes van a ser las pginas o vistas en las que se tendr un motor de
scripting, la implementacin de servicios consistir en:
-

El servidor: crea el servicio


(tambin llamado endpoint) con
las
funcionalidades
que
interese, utilizando las clases
disponibles en el ensamblado
SignalR.

El cliente: crea el consumidor


del servicio, utilizando las
clases disponibles en la
biblioteca
de
scripts
jQuery.SignalR.js
(o
su
correspondiente
versin
minimizada).

Desarrollo de Aplicaciones Web con Visual Studio 2013

3.

Fundamentos de Diseo de Aplicaciones Web

Existen varias consideraciones que deben tomarse en cuenta para el diseo de


aplicaciones web:

Definicin de la arquitectura:
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. Esto implica seleccionar qu usar en cada capa de la aplicacin y seleccionar
el tipo de proyecto web a usar (Web Forms, MVC, etc.).
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.

Identificacin y distribucin del contenido:


Determinar qu tipo de web se har, qu recursos se van a incluir y cmo se
manejar la navegabilidad y accesibilidad.
Debe tener secciones completamente diferenciadas entre el contenido dinmico y
esttico para la respectiva localizacin de componentes y crecimiento horizontal.

SEO (Search Engine Optimization):


Consiste en la elaboracin y distribucin del contenido de las pginas web de
manera que los buscadores puedan asignar un buen ranking a nuestra aplicacin.

Personalizacin:
Si se desea que la aplicacin pueda ser accedida y visualizada en diferentes idiomas
y respetando un formato establecido, se debe tener en cuenta los siguientes
criterios:

Desarrollo de Aplicaciones Web con Visual Studio 2013

- Localizacin: es el proceso de personalizacin de la aplicacin para un idioma


dado. Consiste principalmente en la traduccin de la interfaz de usuario mediante
el uso de archivos de recurso (.resx).
- Globalizacin: es el proceso de personalizacin de la aplicacin para que las
fechas, nmeros, moneda, etc., se muestren en un formato especfico segn se
configure.

Configuracin:
Un aspecto importante en toda aplicacin es su despliegue en diferentes ambientes,
y que esto sea de manera configurable. Los ambientes pueden ser diferentes
servidores como por ejemplo, pruebas, desarrollo, produccin, entre otros. Para esto
se puede hacer uso por ejemplo del XDT (XML Data Transform) que permite generar
diferentes web.configs para diferentes ambientes.

Desarrollo de Aplicaciones Web con Visual Studio 2013

4.

Framework ASP.NET MVC

MVC (Modelo - Vista - Controlador) es un patrn de diseo para la capa de presentacin


desarrollada en los aos 80, con el que estn familiarizados muchos desarrolladores.
Algunos tipos de aplicaciones web salen beneficiadas con el framework MVC, otras
seguirn usando el modelo Web Forms tradicional. Otros tipos de aplicaciones web
combinarn las dos estrategias, una no excluye a la otra.
El modelo de MVC ayuda a crear aplicaciones que separan los diferentes aspectos de la
aplicacin (lgica de entrada, lgica de negocio y lgica de la interfaz de usuario), a la
vez que proporciona un bajo acoplamiento entre estos elementos.
La lgica de la interfaz de usuario pertenece a la Vista, la lgica de entrada pertenece al
Controlador y la lgica de negocio pertenece al Modelo. Esta separacin permite
centrarse en cada momento en un nico aspecto de la implementacin; por ejemplo, se
podra estar centrado en la vista sin estar condicionado por la lgica del negocio.
El bajo acoplamiento entre los tres componentes principales de una aplicacin MVC,
tambin favorece el desarrollo paralelo; por ejemplo, un desarrollador de software puede
trabajar en la vista, un segundo desarrollador puede ocuparse de la lgica del
controlador, y un tercero se puede centrar en la lgica de negocio del modelo.
MVC incluye los siguientes componentes:

Modelos: son las partes de la aplicacin que implementan la lgica del dominio de
datos de la aplicacin. A menudo, recuperan y almacenan el estado del modelo en
una base de datos, por ejemplo, un objeto podra recuperar informacin de una base
de datos, trabajar con ella, y a continuacin escribir la informacin actualizada en
una tabla de base de datos.

Vistas: son los componentes que muestran la interfaz de usuario de la aplicacin.


Usualmente, esta interfaz de usuario se crea a partir de los datos de modelo. Un
ejemplo sera una vista de edicin de una tabla que muestra cuadros de texto, listas
desplegables y casillas, basndose en el estado actual del objeto.

Desarrollo de Aplicaciones Web con Visual Studio 2013

10

Controladores: son los componentes que controlan la interaccin del usuario,


trabajan con el modelo y seleccionan una vista para construir la interfaz que se
muestra al usuario. En una aplicacin MVC, la vista solo muestra informacin; el
controlador administra y responde a los datos proporcionados por el usuario y su
interaccin.

El proceso de manejo de un request desde un navegador hacia la aplicacin web,


cuando se usa MVC es el siguiente: (los nmeros corresponden a los indicados en la
diapositiva)

Paso 1: La solicitud pasa a travs de los componentes de ASP.NET y es pasada al


motor de enrutamiento.

Paso 2: En base a la configuracin del routing, el motor de enrutamiento busca el


controlador adecuado. Si se encuentra el controlador, se invoca. Si no se encuentra,
un controlador "Not Found" es devuelto por el motor de enrutamiento.

Paso 3: El controlador interacta con el modelo segn sea necesario. Si hay datos
entrantes, ASP.NET MVC aplica el Model Binding para hacer que los datos de
entrada que provienen de la vista, se enlacen con los datos definidos en el
controlador.

Paso 4: En caso de que el modelo sea invocado, se recuperan o guardan los datos,
y se retorna al controlador.

Paso 5: Luego, el controlador solicita una vista con los datos del modelo (en caso se
haya usado), entrega la solicitud al motor de vistas que devuelve el resultado al
controlador. El controlador enva de vuelta el resultado como una parte de la
respuesta HTTP.

Ventajas de una aplicacin web basada en MVC:

Hace ms sencilla la administracin y mantenimiento del cdigo, al dividir una


aplicacin en el modelo, la vista y el controlador.

No usa ViewState, y no hay que preocuparse de manejar el PostBack y todo el


tedioso ciclo de eventos de ASP.NET Web Forms, ni formularios basados en
controles de servidor. Adems, evita gestionar el complejo mecanismo de eventos
entre cliente y servidor durante el ciclo de vida de la pgina. Esto hace que el marco
de MVC sea ideal para los desarrolladores que deseen un control completo sobre el
comportamiento de una aplicacin.

Se tiene un control preciso sobre el HTML generado, algo que no se tena con
ASP.NET Web Forms. Esto significa que las aplicaciones van a generar un cdigo
ms limpio, que siga los estndares y que se integre fcilmente con el cdigo
javascript.

Es extensible. Cada pieza que forma el framework ASP.NET MVC puede ser
alterada o modificada por una implementacin propia para cubrir las necesidades
especficas. Para cada componente del MVC Framework se tienen 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 implementacin.

Desarrollo de Aplicaciones Web con Visual Studio 2013

11

Potente sistema de ruteo (routing). ASP.NET Web Forms ya contaba con un sistema
de ruteo, pero ha sido con ASP.NET MVC en donde se explota al mximo para
aprovechar todas sus capacidades. Con ASP.NET MVC, una peticin HTTP no tiene
que estar necesariamente mapeada a un archivo, sino que se pueden crear URL's
elegantes, semnticas y user-friendly.

Debido a la separacin de responsabilidades entre el controlador, el modelo o


repositorio de datos y reglas de negocio y las vistas, esta arquitectura proporciona
una mayor compatibilidad con el desarrollo basado en pruebas unitarias de cdigo y
el enfoque TDD (Test Driven Development), lo que favorece a la creacin de
aplicaciones ms estables y robustas.
Escribir pruebas automatizadas para las aplicaciones ASP.NET basadas en Web
Forms puede ser complejo, ya que para probar una pgina individual se deben crear
instancias de la clase de la pgina, todos sus controles secundarios y las clases
dependientes adicionales de la aplicacin. Dado que se crean instancias de tantas
clases para ejecutar la pgina, puede ser difcil escribir pruebas que se centren
exclusivamente en partes individuales de la aplicacin. Es ms, las pruebas en una
aplicacin ASP.NET basada en Web Forms requieren de un servidor web. El marco
de MVC desacopla los componentes y hace un uso intensivo de las interfaces, lo
cual hace posible probar los componentes individuales de manera aislada.

Funciona bien para las aplicaciones web en las que trabajan equipos de desarrollo
grandes y para los diseadores web que necesitan un alto grado de control sobre el
comportamiento de la aplicacin

Desarrollo de Aplicaciones Web con Visual Studio 2013

12

Laboratorio 1.1

Crear un proyecto web de tipo MVC con Visual Studio 2013, que tenga autenticacin
"Individual User Account", y examinar la estructura de carpetas y archivos que se
generan, con la finalidad de que se vea cmo se organiza un proyecto Model-ViewController, y la convencin de nombres que implica.

Realizar el despliegue de la aplicacin creada y revisar la configuracin en el IIS 8.0,


enfocndose en sus nuevas caractersticas, las cuales se pueden revisar en el
application pool, tales como Application Initialization, CPU Throttling, Dynamic IP
Restrictions. Tambin, mostrar cmo se pueden ejecutar proyectos web sin
necesidad de un deploy, solo con usar el IISExpress.

Desarrollo de Aplicaciones Web con Visual Studio 2013

5.

Evolucin de ASP.NET MVC

MVC2:
- WebForms View Engine (.aspx)
- TempData, ViewData
- <%=Html...code %>
- MasterPage

MVC3:
- Razor View Engine (.cshtml, .vbhtml)
- Nuevos controles: Chart, WebGrid, WebImage, WebMail.
- TempData, ViewData, ViewBag
- @Html...code
- LayoutPage
- Model Validation con Unobtrusive Javascript

MVC 4:
- ASP.NET Web API
- Mobile Project Template
- Display Modes
- Task Support for Asynchronous Controllers
- Bundling and Minification
- OAuth and OpenID

MVC 5:
- ASP.NET Web API 2
- One ASP.NET
- ASP.NET Identity
- Bootstrap
- Attribute Routing
- ASP.NET Razor 3

13

Desarrollo de Aplicaciones Web con Visual Studio 2013

6.

14

Anlisis del Ciclo de Vida de un Request

El ciclo de vida de un request es totalmente diferente si se trata de una aplicacin en


donde se usa Web Forms y en una donde se usa MVC.
Para ASP.NET Web Forms, el ciclo de vida se trata de una secuencia de eventos de la
pgina y los controles, as como el manejo del ViewState, todo esto con la intencin de
ocultar la complejidad de trabajar directamente con HTTP.
Para ASP.NET MVC, el ciclo de vida es mucho ms sencillo, se basa en el enrutamiento
del request al controlador respectivo y la ejecucin de la accin. En este caso, se deja de
lado por completo conceptos como manejo de ViewState, eventos de pgina y controles.
A continuacin se muestran diagramas detallados que explican cmo ocurre un request
tanto en ASP.NET Web Forms y ASP.NET MVC.

Desarrollo de Aplicaciones Web con Visual Studio 2013

15

Ciclo de vida de un request en Web Forms:


En el siguiente diagrama se muestran los mtodos ms importantes de la clase Page
que se pueden reemplazar con el fin de agregar cdigo que se ejecuta en puntos
especficos en el ciclo de vida de la pgina. Tambin se muestra cmo estos mtodos se
relacionan con los eventos de la pgina, as como los mtodos y eventos de los
controles. La secuencia de los mtodos y los eventos en el ejemplo es de arriba a abajo,
y dentro de cada fila de izquierda a derecha.

Desarrollo de Aplicaciones Web con Visual Studio 2013

16

Ciclo de vida de un request en ASP.NET MVC:


En el siguiente diagrama se muestra el detalle desde que se recibe una peticin en el
servidor hasta que la vista es enviada con la respuesta al cliente.

Desarrollo de Aplicaciones Web con Visual Studio 2013

7.

17

Lineamientos para el uso de WebForms y MVC

ASP.NET tuvo un gran impacto cuando fue lanzado, no solamente por ser una
plataforma multilenguaje, sino que llenaba el vaco existente entre las aplicaciones
Windows Forms, con estado y orientada a objetos, y las aplicaciones web orientadas a
HTML, intrnsecamente sin estado.
Con ASP.NET Web Forms, Microsoft intent ocultar tanto el protocolo HTTP (que es
intrnsecamente sin estado) as 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 diferentes 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. Aunque la
intencin fue buena al principio, la realidad result ser un poco ms complicada.
A lo largo de los aos ASP.NET Web Forms ha demostrado tener una serie de
debilidades:

ViewState: el mecanismo para mantener el estado a travs de peticiones web,


normalmente resulta en bloques gigantes de cdigo que son innecesariamente
transferidos entre cliente y servidor (muchas veces llegan a ser cientos de kb),
ralentizando la experiencia del visitante. 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 conecta eventos de cliente y


servidor, parte del ciclo de vida de la pgina, llega a ser extraordinariamente
complicado y delicado, llevando normalmente a errores y problemas de
mantenibilidad.
Manipular la jerarqua de controles de un web form comnmente lleva a errores de
Viewstate o eventos que misteriosamente fallan al ejecutarse.

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)

Desarrollo de Aplicaciones Web con Visual Studio 2013

18

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 es frgil e ilegible.

Limitado control sobre el HTML generado: los controles de servidor renderizan


HTML, pero el cdigo generado es ineficiente, pesado y no cumple los estndares ni
hace un correcto uso de CSS. El servidor genera una enredada coleccin de valores
de ID cliente, a los que es muy difcil de acceder va javascript.

Complicado de testear: cuando se lanz ASP.NET Web Forms, no se anticip que


el desarrollo orientado a pruebas unitarias iba a ser una prctica comn en el
desarrollo de software a nivel mundial. Es por ello, que esta arquitectura es muy
complicada de testear.

Desde que ASP.NET Web forms fue lanzado, ha habido muchos progresos en la
industria del desarrollo web:

Web standards y REST:


Las pginas web son consumidas por una gran variedad de dispositivos, por lo que
se hace necesaria una convergencia hacia unos estndares comunes.
De la misma manera, REST ha ido ganando una gran popularidad y ha sido
reconocida como la referencia de interoperabilidad entre aplicaciones sobre el
protocolo HTTP.

Desarrollo gil y dirigido por pruebas unitarias:


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.
Desafortunadamente, Web Forms no facilita este tipo de trabajo.

Es importante tener presente que a pesar que MVC es un patrn con muchos beneficios,
an Web Forms es una alternativa vlida para ciertos escenarios. Todava se usa Web
Forms en caso:

Se necesite un entorno RAD (Rapid Application Development).


No se necesite hacer Unit testing.
No se necesite hacer uso intensivo de Javascript y Ajax.
Se tenga una aplicacin con enfoque a realizar mantenimientos (Data Driven
Application).
Se tenga restriccin de tiempo (curva de aprendizaje).

Desarrollo de Aplicaciones Web con Visual Studio 2013

8.

19

Herramientas para el desarrollo de Aplicaciones Web

Existen diversas herramientas y tecnologas que brindan una gama de funcionalidades


especializadas para desarrollar en un entorno web:

Visual Studio 2013


HTML 5 CSS 3
Javascript Jquery
Complementos de desarrollo web que se integran con diferentes Navegadores, para
analizar todos los objetos de la aplicacin en tiempo real, as como caractersticas de
debugging.

Desarrollo de Aplicaciones Web con Visual Studio 2013

9.

20

Usando componentes de terceros con NuGet

NuGet es un manejador de paquetes que permite instalar y actualizar libreras y


herramientas en Visual Studio 2013. Est incluido desde la versin 2012 del Visual
Studio. Para el caso del Visual Studio 2010, se debe instalar desde el Extension Gallery,
agregando funcionalidades de lnea de comando (PowerShell) e interfaz grfica para
realizar la bsqueda, instalacin y actualizacin de paquetes.
Del mismo modo, que se va a poder agregar o quitar referencias a paquetes, NuGet es
capaz de detectar si existen nuevas versiones en el repositorio y descargar la nueva
versin.
Un paquete es el conjunto de archivos (clases, referencias, carpetas, etc.) que se van a
distribuir en conjunto desde NuGet. Se puede decir que NuGet es un repositorio comn
en el que se pueden encontrar proyectos y libreras que antes se tenan que descargar y
agregar a un proyecto en varios pasos, y que si exista una nueva actualizacin, se tena
que realizar una bsqueda manual.
Para la administracin de paquetes existen algunos comandos de PowerShell que se
pueden utilizar para ejecutar alguna accin. Dichos comandos pueden ser genricos,
como por ejemplo, para instalar un paquete; pero tambin, pueden ser comandos
propios de un paquete en particular, es decir, existen paquetes que tienen su propia
implementacin de comandos para realizar o activar algunas caractersticas.

Desarrollo de Aplicaciones Web con Visual Studio 2013

21

Existen dos formas principales de navegacin sobre los paquetes:

Package Manager Console: Es una consola basada en PowerShell que se habilita


dentro de Visual Studio 2013, la cual permite consultar, instalar, actualizar y remover
paquetes de los proyectos. A continuacin, se muestran algunos comandos
generales para trabajar con paquetes:
-

Get-Command *-Package: lista todos los comandos disponibles para trabajar con
Packages.

Get-Package: lista todos los paquetes presentes en una solucin. Si la solucin


no est abierta, entonces se combina con el parmetro ListAllAvailable para
mostrar todos los paquetes presentes en la fuente consultada.

Install-Package: instala un paquete en un proyecto. Si el proyecto est abierto,


solo se debe indicar el nombre del paquete a instalar.

Uninstall-Package: desinstala un paquete en un proyecto.

Update-Package: actualiza un paquete dentro de un proyecto o solucin.

Para acceder a la consola, hacer lo siguiente:

Library Package Manager: Es una interfaz grfica que permite realizar las mismas
operaciones que en la consola. Se divide en tres paneles:
-

El panel de la izquierda (paquetes instalados, galera en lnea y actualizaciones).

El panel central donde se visualizan los paquetes disponibles, instalados y


buscados.

El panel donde aparecen las especificaciones del paquete seleccionado.

Desarrollo de Aplicaciones Web con Visual Studio 2013

Para acceder a la interfaz grfica, hacer click derecho sobre el proyecto:

22

Desarrollo de Aplicaciones Web con Visual Studio 2013

23

Laboratorio 1.2

Mediante interfaz grfica y lnea de comandos de NuGet, administrar los paquetes de


un proyecto MVC 5 (Ejemplo con Entity Framework).

Instalar y/o mostrar los complementos para desarrollo de cada navegador: Internet
Explorer, Mozilla Firefox y Google Chrome.

Examinar los objetos HTML de un sitio web utilizando las diferentes herramientas y
complementos que brinda cada navegador.

You might also like