taller campus party 2011: desarrollo de aplicaciones con .net (sesión 2)

38
TALLER Desarrollo de Aplicaciones Profesionales con Tecnologías .NET

Upload: avanet

Post on 22-Jan-2015

958 views

Category:

Education


3 download

DESCRIPTION

Esta es solo la parte teórica

TRANSCRIPT

Page 1: Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 2)

TALLERDesarrollo de Aplicaciones

Profesionales con Tecnologías .NET

Page 2: Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 2)

Sorey García(@soreygarcia)

Page 3: Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 2)

AGENDA

• Sesión 2 (Junio 30 10:00 A.M. a 12:00.M.)– Introducción a los conceptos

• Aplicaciones Distribuidas

– TALLER: Construyendo aplicación profesional• Presentación (Winforms, ASP.NET, C#.NET)• Servicios Web (ASP.NET, C#.NET)• Lógica de Negocio (C#.NET)• Acceso a Datos (C#.NET, LINQ, SQL Server

2008)

Page 4: Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 2)

¿Qué es una aplicación distribuida?

Page 5: Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 2)

Es una aplicación con distintos

componentes que se ejecutan en

entornos separados, normalmente en diferentes plataformas

conectadas a través de una red

Wikipedia

Page 6: Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 2)

¿Cuales son los componentes que se distribuyen?

¿Qué criterios se usan para determinar que conforma un componente?

¿A través de que mecanismos se realiza la comunicación entre componentes

distribuidos?

¿Qué es un componente?

Page 7: Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 2)

Algunos Conceptos…

Capas

Niveles

Arquitectura

Protocolos

UMLDespliegue

Cliente/Servidor

Servicios

Lógica de Negocio

Acceso a Datos

Webservices

Interfaces

Componentes

Objetos

Interfaz de UsuarioPaquetes

InteroperabilidadComunicación

Page 8: Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 2)

Vamos por partes…

¿A qué se refiere la

distribución?

Las distribución refiere a la construcción de software por partes, a las cuales les son

asignadas un conjunto específico de responsabilidades dentro de un sistema.

Page 9: Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 2)

Esta distribución como bien enunciaba la definición formal, habla de que las partes o

componentes se encuentran en entornos separados, sin embargo, lo

que tiene implícito esta definición, es que

para realizar esta separación física primero debe tenerse clara la

separación lógica de las partes de una aplicación, esto quiere decir que

programáticamente existe una forma de separar o agrupar los componentes.

Page 10: Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 2)

La separación física no es en todas las ocasiones “maquinas

diferentes” de acuerdo a la arquitectura también puede ser la

ubicación de un conjunto de funcionalidades en rutas de

despliegue o tecnologías diferentes dentro de la misma máquina

Page 11: Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 2)

Ahora bien, cuando hablemos de distribución lógica lo

entenderemos como separación por “Capas” (layers) y cuando

hablemos de distribución física usaremos el término separación en

“Niveles” (tiers)

Page 12: Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 2)

La separación por capas y niveles hace parte de la arquitectura del

sistema y es definida por el arquitecto de la aplicación.

Page 13: Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 2)

“Las capas dentro de una arquitectura son un conjunto de servicios especializados que

pueden ser accesibles por múltiples clientes y que deben ser fácilmente

reutilizables.”

Page 14: Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 2)

Una capa puede contener muchos componentes, un mismo

componente puede ubicarse en varias capas de acuerdo a su

naturaleza y a las consideraciones explicitas de la arquitectura

… como? No hay problema, lo iremos entendiendo, de eso se trata…

Page 15: Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 2)

Un componente es un elemento de software que encapsula una serie de

funcionalidades.

Un componente es una unidad independiente, que puede ser utilizado en

conjunto con otros componentes para formar un sistema más complejo.

¿Qué es un componente?

Page 16: Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 2)

Un componente esta compuesto por elementos que pueden ser clases y/o recursos complementarios como archivos de configuración, imágenes, entre otros.

Y a su vez esas clases y recursos pueden están agrupados dentro del componente en

subpaquetes, de acuerdo a su naturaleza o necesidades de negocio.

Cada componente de un sistema puede verse como un paquete o módulo

Page 17: Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 2)

Aplicación

Niveles

Capas

Componentes

En este punto visualizamos varios conceptos que podemos presentar de la siguiente forma…

Paquetes

Clases

Sub paquete

s

Otros Recurs

os

Page 18: Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 2)

Ahora bien…

El paradigma básico de la separación por capas establece al menos 3 partes distintas dentro

de una aplicación

La PresentaciónLa Lógica de Negocio

El Acceso a Datos y los Datos

Page 19: Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 2)

La Presentación o interfaz de usuario se refiere al mecanismo de

interacción del usuario con el sistema

Los tipos de interfaces de software más comunes son las aplicaciones de

ventanas y web

Los tipos de interfaces de hardware más comunes son el ratón, el teclado, el

micrófono, pantallas táctiles, dispositivos de audio

Page 20: Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 2)

La Lógica de Negocio refiere el conjunto de reglas que determinan

específicamente como funciona un sistema, según su naturaleza, y bajo que parámetros y condiciones de acuerdo a

las necesidades de los clientes y usuarios.

Page 21: Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 2)

El Acceso a Datos refiere al medio a través del cual podemos acceder y

manipular los datos persistentes de un sistema

El Almacenamiento de Datos refiere a la forma en que se encuentran guardados dichos datos, por ejemplo, en archivos o

bases de datos.

Page 22: Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 2)

Así nos encontramos con componentes de diferentes

tiposEjecutables, Páginas Web, Librerías,

Controles, Procedimientos Almacenados, Servicios Web…

Page 23: Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 2)

Después de conocer estos conceptos básicos, podemos pasar entonces a ver, los diferentes tipos de aplicación

Aplicaciones MonolíticasAplicaciones Cliente/Servidor

Aplicaciones de 3 CapasAplicaciones de N Capas

Page 24: Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 2)

Una aplicación monolítica o de una capa es aquella cuya interfaz, lógica de negocio y acceso a datos se encuentran mezclados o altamente acoplados, esto

dificulta que pueda hacerse una separación lógica y física donde alguna de

las partes pueda ser reutilizable.

Page 25: Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 2)

Una aplicación Cliente/Servidor o aplicación de dos capas es aquella donde los datos y la

lógica de negocio se encuentran separados de la interfaz, este tipo de aplicación también es

denominada, cliente liviano.

Otro escenario válido para una aplicación Cliente/Servidor, se da separando los datos de

la interfaz y la lógica de negocio, este tipo de aplicación también es denominado, cliente

pesado.

Page 26: Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 2)

Una aplicación 3 capas es aquella donde la interfaz, la lógica de negocio, el acceso a datos y los datos se encuentran separados.

Page 27: Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 2)

Es muy importante entender, que la separación de la que se habla no es

necesariamente física, como ya se había dicho antes, la primera separación que se

da es lógica y debemos reiterar que la separación lógica es programática.

¡ATENCIÓN!

Page 28: Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 2)

Ahora, para hacer un trabajo bien hecho, hay que reconocer

que las consideraciones asociadas al desarrollo por

capas…

Page 29: Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 2)

¿Que consideraciones deberíamos tener en cuenta cuando pensamos en

la Capa de Presentación?

Page 30: Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 2)

¿Y las consideraciones de la Capa de Lógica de Negocios?

Page 31: Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 2)

¿Y las consideraciones de la Capa de Acceso a Datos?

Page 32: Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 2)

Bueno y si ya están separadas las 3 capas principales,

¿Qué es entonces una de aplicación de N capas?

Page 33: Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 2)

Pues bien, la evolución de la tecnología y las redes de comunicaciones, hacen

que cada día se generen nuevos escenarios de intercambio de

información entre empresas, y entre los mismos sistemas existentes dentro de las empresas, de forma que se satisfagan las necesidades constantes y cambiantes de clientes y usuarios, para quienes debe

resultar transparente el obtener información de un sistema u otro.

Page 34: Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 2)

Otra de las razones importantes por las que surge este concepto, es debido a que en la evolución del desarrollo de software, se ha identificado la necesidad de crear

nuevas capas, especializadas en funciones especificas, diferentes a las 3

identificadas previamente.

Tal es el caso de la seguridad, el control de excepciones, el transporte de

datos entre capas, la generación de trazas de errores, entre otros.

Page 35: Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 2)

Componentes de Interfaz de Usuario

Componentes de Proceso de Interfaz de Usuario

Componentes Acceso Datos

Flujos de Negocio

Componentes de negocio

Usuarios

Entidades de Negocio

Agentes de Servicio

Au

dito

ria y

Con

trol d

e

Excep

cio

nes

Seg

urid

ad

Com

un

icació

n

Interfaces de Servicio

Orígenes de Datos Servicios Externos

Una propuesta Microsoft Patterns & Practices

Page 36: Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 2)

¿Qué arquitectura tendrá nuestro ejemplo de Campus Party?

Page 37: Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 2)

• @soreygarcia• @mteheran• @dramirez2009• @khriztianmoreno• @jodageeks• @andreslon• @pavelespitia• @dxp2• @hernandgr (virtual)• @magicovercast (virtual)• @elianaca (virtual)

ACOMPAÑAMIENTO

Page 38: Taller Campus Party 2011: Desarrollo de Aplicaciones con .NET (Sesión 2)

¡GRACIAS!Síguenos @Avanet