Material Lectura
Material Lectura
Capítulo 1
Desarrollo de Aplicaciones
Empresariales
Objetivo
Temas
• Definición de la arquitectura:
El diseño debe estar basado en función a un framework robusto y escalable, que
se encuentre alineado a un patrón sustentado para la construcción de
Aplicaciones Web. Esto implica seleccionar qué usar en cada capa de la
aplicación y seleccionar el tipo de proyecto web a usar (Web Forms, MVC, etc.).
Debe tener una estructura que permita la extensibilidad de la aplicación para la
gestión de cambios e implementación de nuevas funcionalidades con el menor
esfuerzo posible.
• Identificación y distribución del contenido:
Determinar qué tipo de web se hará, qué recursos se van a incluir y cómo se
manejará la navegabilidad y accesibilidad.
Debe tener secciones completamente diferenciadas entre el contenido dinámico y
estático para la respectiva localización de componentes y crecimiento horizontal.
• SEO (Search Engine Optimization):
Consiste en la elaboración y distribución del contenido de las páginas web de
manera que los buscadores puedan asignar un buen ranking a nuestra aplicación.
Desarrollo de Aplicaciones Empresariales 3
• Personalización:
Si se desea que la aplicación pueda ser accedida y visualizada en diferentes
idiomas y respetando un formato establecido, se deben tener en cuenta los
siguientes criterios:
Localización: es el proceso de personalización de la aplicación para un
idioma dado. Consiste principalmente en la traducción de la interfaz de
usuario mediante el uso de archivos de recurso (.resx).
Globalización: es el proceso de personalización de la aplicación para que
las fechas, números, moneda, etc., se muestren en un formato específico
según se configure.
• Configuración:
Un aspecto importante en toda aplicación es su despliegue en diferentes
ambientes, y que esto sea de manera configurable. Los ambientes pueden ser
diferentes servidores como por ejemplo, pruebas, desarrollo, producción, 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 Empresariales 4
Esta última versión también mejorará las experiencias en los desarrolladores al escribir
código para la web, Windows, Office, base de datos y las aplicaciones móviles. El
producto 2017 permite a los desarrolladores aumentar realmente su rango en la
construcción de aplicaciones modernas conforme la demanda actual de los usuarios.
3. IIS 8 / 8.5 / 10
IIS 8 y 8.5
IIS 8.0 tiene una serie de nuevas características y mejoras, algunas de las cuales han
sido liberadas para IIS 7.5 actualizaciones out-of-band www.iis.net. Muchas de estas
nuevas características se deben a los cambios dentro del nuevo sistema operativo y
no son compatibles con versiones anteriores de IIS.
Módulo de aplicación Warm-Up, por ejemplo, fue lanzado para IIS 7.5 y está integrada
en IIS 8.0, pero un almacén central para los certificados SSL requiere Windows Server
2012 y solo está disponible en IIS 8.0.
IIS 8.5, con el lanzamiento de la nueva versión de Windows Server 2012 R2 viene una
nueva versión de IIS, IIS 8.5. Las nuevas características se pueden dividir en 2
categorías, escalabilidad y facilidad de gestión:
Desarrollo de Aplicaciones Empresariales 7
IIS 10
Una nueva versión de IIS se incluye en Windows 10 y Windows Server 2016, que fue
lanzado recientemente. Y entre sus características más resaltantes tenemos:
Antes de entrar en materia, es importante entender los cambios que .NET Framework
está teniendo para conocer cómo impacta esto a ASP.NET.
Es importante notar que sobre .NET Framework 4.6 están las tecnologías WPF,
Windows Forms y ASP.NET versiones 4 y 5. .NET Core 5: Microsoft lo describe como
un “framework modular”, el cual llega a nosotros como una versión de software abierto,
el cual puede ser desplegado de manera modular y local, además de ser mucho más
ligero. Al ser modular busca también ser multiplataforma, corriendo en Windows, Linux
y OSX. A diferencia de .NET Framework 4.6, .NET Core 5 permite correr aplicaciones
ASP.NET solamente en la versión 5 y Universal Windows Apps con
.NET Native.
Desarrollo de Aplicaciones Empresariales 11
De esta forma ASP.NET se ubica de la siguiente manera dentro del universo .NET.
A este punto .NET Core 5 soporta solamente ASP.NET MVC en C#, es decir, no Web
Forms ni VB.NET. Esto no significa que no pueda ser que Microsoft incluya soporte a
Web Forms o VB.NET en el futuro. Por otro lado, .NET Framework 4.6 sí continúa
soportando el modelo de desarrollo en Web Forms y el lenguaje de programación
VB.NET.
Modelo Vista Controlador, es lo que las siglas MVC representan, y su objetivo principal
es lograr la separación entre estos tres “personajes”, lo cual permite, a través de este
patrón de diseño, crear aplicaciones robustas tomando en consideración buenas
prácticas aprendidas de otras plataformas de desarrollo y del propio Microsoft.
Así como otros patrones ya buscan lograr esto, tales como programación en N-Capas,
MVC puede seguir estos lineamientos como separación de proyectos para distribuir
componentes comunes. Todo esto es porque MVC como tal es un patrón, no una
tecnología.
con el usuario, como iterar una lista (List) y presentar una lista ordenada (ul) de
ítems al usuario.
• Modelo: Son los objetos de dominio o negocio de la aplicación, más
adelante, veremos que no es necesario que esté en el mismo proyecto que la
aplicación web.
• Controlador: El controlador se encarga de recibir solicitudes y ser el punto de
entrada de la aplicación, a través de lo que se conoce como acciones (Actions).
Se basa en solicitudes HTTP y puede responder con datos o con contenido,
como HTML.
Para comenzar a explicar de forma general este modelo con la ayuda de Visual Studio
2015, es importante entender que una plantilla de Visual Studio, no es más que una
serie de DLLs que funcionan para un fin específico incluidas en un proyecto + una
base de código configurativa de la tecnología + uno o varios ejemplos de código. Es
decir, si uno quisiera hasta podría empezar un proyecto sin necesidad de seleccionar
un template de Visual Studio.
Estructura de solución
Nuevo Proyecto
Para los que vienen desde versiones anteriores previo a Visual Studio 2012, han visto
un par de cosas nuevas, entre ellas, que no tuvieron que seleccionar el tipo de
proyecto (Web Forms, MVC o Web Pages), sino que se selecciona un proyecto de tipo
ASP.NET, esto es por un cambio que se dio en el 2013, en el cual aparece el término
ONE ASP.NET, el cual busca que se puedan crear proyectos con tecnología Web
Forms y MVC/Web API en un solo proyecto de Visual Studio, a diferencia de cómo
anteriormente solo se podía seleccionar un tipo.
Desarrollo de Aplicaciones Empresariales 15
Cambiar autenticación
se quiere autenticar usuarios con una tercera parte, tal como Facebook,
Twitter, Google o Microsoft.
• Work And School Accounts: permite autenticar con proveedores de
autenticación empresariales, tal como Azure Active Directory o Active Directory
Federation Services.
En esta nueva versión de .NET y Visual Studio, NuGet toma mucho protagonismo, ya
que se busca que con .NET Core solo se traiga lo mínimo necesario y lo demás que se
ocupe sea descargado a través de NuGet. Esta nueva estructura es muy similar a las
de los proyectos en Github o Codeplex.
• Solutions Items
• src
El primer archivo global.json dentro del fólder Solution Items es el archivo que contiene
la información del proyecto para Visual Studio u otras herramientas, en este caso el
archivo está casi vacío, solo contiene información de las carpetas y versión del SDK.
Para los que vienen de versiones anteriores de .NET, ver archivos configurativos con
extensión JSON es algo totalmente nuevo. Por otro lado, para los que vienen de otras
plataformas como Node.JS es algo muy común y natural.
Archivo global.json
En el siguiente fólder src es donde se ven los archivos propios del proyecto, como ya
se han conocido anteriormente.
Dentro del fólder src aparecen los proyectos de la solución, en este ejemplo solo existe
el proyecto de Interfaz de Usuario “wm.website.ui”.
Folder wwwroot
A nivel de raíz de proyecto hay otros archivos extensión .json, tales como bower.json,
config.json, package.json y project.json.
¡Sí! No hay web.config por defecto, sin embargo ASP.NET 5 soporta archivos
configurativos en formato XML, INI o JSON. Para tratar de entender todo este cambio
configurativo se hará un pequeño overview de cada archivo.
Desarrollo de Aplicaciones Empresariales 18
El patrón de desarrollo ASP.NET MVC es la idea que inicialmente fue desarrollada por
Scott Guthrie en 2007. Él es el arquitecto clave de este patrón de diseño. Por lo que
entendemos, siempre se designa a Scott Gu, como el padre de .NET. Él es la persona
principal que originó la idea de .NET. Desde entonces el equipo de Microsoft o de
Scott ha añadido toneladas de mejoras y/o cambios en el desarrollo .NET, haciendo
que los desarrolladores se sientan cómodos escribiendo cualquier tipo de proyecto
utilizando .NET.
ASP.NET MVC 1:
ASP.NET MVC 2:
Fue liberado justo después de 1 año, específicamente esta versión fue lanzada al
mercado en marzo del 2010. La misma que traía consigo algunos cambios
interesantes, los cuales nos permitían implementar MVC de una forma más robusta y
poderosa. Algunas de sus características fueron:
ASP.NET MVC 3:
Fue lanzado oficialmente en 2011. MVC 3 llegó con importantes mejoras en muchas
secciones. Algunas de sus características se enumeran a continuación:
ASP.NET MVC 4:
ASP.NET MVC 5:
• Scaffolding
• ASP.Net Identity
• Bootstrap
• Enrutamiento de atributos
ASP.NET MVC 6:
ASP.NET MVC 6 en muchos términos es un marco único, ya que es un cambio
importante en MVC. A continuación, algunas enumeraciones de las características de
esta versión:
Para finalizar, el método de la acción retornará a string, binary file o un JSON data. El
Action Result más importante es el ViewResult, el cual renderiza y retorna una página
HTML para el browser utilizando el view engine actual.
Desarrollo de Aplicaciones Empresariales 24
Hace mucho tiempo, con la ayuda de tecnologías como Visual Basic y Visual C++,
Microsoft habilitó la creación de interfaces gráficas de forma rápida, con lo cual, los
programadores podían enfocarse más en el negocio que en el diseño de las interfaces
de usuario.
Las aplicaciones web funcionan sobre el protocolo HTTP, el cual es un protocolo sin
estado. A diferencia del escritorio, no hay variables que se preserven y no hay una
programación completa manejada por eventos. Como en el escritorio, la web espera la
entrada de un usuario, pero cada interacción actúa como un pedido nuevo al servidor.
En base a este escenario, Microsoft presentó ASP.NET Web Forms, manteniendo el
desarrollo de aplicaciones rápido y la facilidad de aprendizaje.
Web Forms
Los Web Forms aparecieron para solucionar los problemas que tenía la tecnología
ASP clásica. Se creó un nuevo nivel de abstracción sobre la web sin estado,
simulando el modelo con estado de los Windows Forms. Se introdujeron conceptos
como postback (un envío desde la misma página) y ViewState (un objeto que
almacena los valores de los controles durante los postbacks) y se redujo la cantidad
de código a escribir.
Ventajas
Desventajas
ASP.NET MVC
ASP.NET MVC es un nuevo framework para aplicaciones web creado por Microsoft,
diseñado bajo la idea de la separación de responsabilidades y la posibilidad de
implementar el testing. No posee ni ViewState, ni controles de servidor.
Ventajas
Desventajas
Lineamientos de uso
Ambas tecnologías pueden ser las mejores, todo depende de los requerimientos, el
problema dado y el conocimiento que tenga el equipo de desarrollo. Lo que es
importante saber, es que una tecnología no suplanta a la otra.
Existen unos factores que pueden hacernos decidir por una o por otra:
Vamos a ver un resumen de las principales herramientas que ofrece Microsoft para el
desarrollo.
• SharePoint Designer
Permite crear aplicaciones sobre SharePoint.
Viene incluido en el paquete Microsoft Office.
Permite crear aplicaciones bastante sofisticadas sin necesidad de
programar.
No soporta la propagación de entornos.
No soporta test unitarios.
No soporta software de control de versiones
• Expression Web
Editor enfocado en diseñadores y desarrolladores front-end.
Permite crear páginas en ASP.NET y PHP.
Es compatible con Microsoft Visual Studio y Adobe Photoshop.
Permite probar páginas en navegadores no instalados en el sistema.
• Expression Blend
Permite crear aplicaciones XAML, Silverlight, WPF y Windows Phone.
No permite crear aplicaciones web HTML5, pero si Windows 8.
Se utiliza en conjunto con Visual Studio para crear las interfaces gráficas.
Viene incluido en Visual Studio 2015.
Desarrollo de Aplicaciones Empresariales 28
• WebMatrix
Es un IDE liviano alternativo a Visual Studio.
Integrado con el Web Platform Installer.
Permite elegir un desarrollo open-source desde una galería y usarlo como
punto de inicio.
También permite desarrollar aplicaciones ASP.NET, Node.js y PHP.
• LightSwitch
Permite crear aplicaciones en Silverlight y HTML5.
Sirve para crear ABMs rápidos y casi sin código.
Las aplicaciones pueden ejecutarse en el navegador o como aplicaciones
de escritorio.
Pensado para aplicaciones pequeñas, ya que posee bastantes limitaciones.
•Visual Studio Express for Web
Versión reducida de Visual Studio.
Es gratuito.
Diferencias con la versión de pago:
▪
Muchos instaladores en vez de
una sola aplicación: for Web, for Windows 8, for
Desktop y for Windows Phone.
▪
No tiene explorador de servidores.
▪
No tiene soporte integrado para software de control de versiones.
▪
Soporte para reportes limitado.
▪
Soporte limitado para deploy.
▪
Sin soporte para dispositivos móviles.
Soporte enriquecido para los frameworks tanto del lado del servidor como del
cliente, tales como jQuery, Ember.js, y AngularJS.
Soporte para herramientas como Grunt y Bower que se conectan directamente
con Visual Studio.
Mejora en el soporte de NuGet a través del diálogo de referencias (no más
referenciar DLLs en nuestros proyectos), incluyendo IntelliTrace para
paquetes NuGet.
Desarrollo de Aplicaciones Empresariales 30
Uno de los cambios que vienen con Visual Studio 2017 es como se manejan los
paquetes en NuGet.
Desarrollo de Aplicaciones Empresariales 31
Una de las primeras cosas a destacar es que ya no es una ventana modal, sino de una
ventana de documento normal. Cómo moverse en la interfaz de usuario puede ser un
poco confuso al principio así que vamos a echar un vistazo a cómo acceder a toda la
información que teníamos en las versiones anteriores.
Instalando Paquetes
Una vez que haya encontrado el paquete que desea instalar es necesario asegurarse
de la acción, el lado derecho debe estar establecido en Instalar (por defecto). A
diferencia de Visual Studio 2013 también puede seleccionar la versión específica de
instalar. Con Visual Studio 2013 si quería instalar versiones previas a la última tenía
que hacerlo por la consola. Ahora puede seleccionar la versión adecuada de todo
dentro de la misma interfaz de usuario. Por último, puede seleccionar el proyecto(s)
donde el paquete se instalará. Actualmente, se muestran todos los proyectos de la
solución y no proporciona ninguna manera de seleccionar o anular la selección de
todos los proyectos. Además, la lista de proyectos se muestra de forma desordenada
lo que puede ser tedioso cuando tengamos mayor cantidad de proyectos en nuestra
solución.
Desarrollo de Aplicaciones Empresariales 32
Cuando esté listo para instalar, haga clic en el botón Instalar y se ejecutará a través
del proceso de instalación. Si desea ver una vista previa de los cambios a
continuación, utilizar Vista previa en su lugar.
Dependencias
Administrando Paquetes
Una de las cosas confusas que encontraremos la primera vez que trabajemos con la
nueva interfaz de usuario es cómo determinar qué paquetes ya están instalados. Esto
es útil cuando usted está tratando de diagnosticar problemas. Para llegar al paquete
instalado cambie el combo de filtro en la parte superior como Installed. Ahora solo
verá los paquetes que están instalados.
Las opciones de acción han cambiado también. Ahora puede actualizar a una versión
diferente o desinstalar el paquete de uno o más proyectos.
Actualizando Paquetes
Mientras que usted puede seleccionar cada paquete debajo de Installed y proceder a
actualizarlos manualmente, esto es un proceso engorroso y lento. En lugar de ello,
considere cambiar el filtro a Update Available para obtener la lista de paquetes que
tengan alguna actualización pendiente.