Escolar Documentos
Profissional Documentos
Cultura Documentos
Capas
INTRODUCCION:
Las aplicaciones han pasado por un proceso evolutivo enorme. Desde su
inicio con las aplicaciones monolticas donde en una aplicacin todo estaba
ligado o mezclado por decirlo de alguna manera. Es decir, la interfaces de
usuario, la lgica de cmo funcionaba la empresa y el manejo de la
informacin almacenada y recuperada estaban juntas.
Luego la industria ha implementado un nuevo modelo de aplicaciones, las
aplicaciones distribuidas cliente/servidor, que se convirti en el estndar por
un tiempo. Pero con la llegada de las aplicaciones web se hacia necesario
un nuevo estndar para la operaciones de los sistemas, y es por esto que
se ha propuesto el modelo de las aplicaciones en n-capas.
Este modelo por lo general esta basado en un esquema de tres partes:
Acceso, Lgica de negocios e interfaces de usuario. Aunque es posible
continuar sub dividiendo este modelo en sub capas para una mayor
flexibilidad en la distribucin en el equipo de desarrollo y durante el
mantenimiento. Veamos en que consiste.
End Sub
Protected Overloads Overrides Sub Dispose(ByVal disposing As
Boolean)
'CODEGEN: This procedure is required by the Web Services
Designer
'Lo segundo que debos saber es que para sobre cargar los
WebMethod utilizamos
'la propiedad llamada MessageName para que el servicio web
distinga estre estas
'funciones o procedimiento.
'Esto no quiere decir que, para llamar dichas funciones usemos
el nombre designado
'en el MessageName, se invocan igual que un mtodo sobre cargado
en una clase normal.
'Sobre cargo la funcin Query para los diversos caso que pueda
necesitar.
Return ds
Catch ex As SqlException
ex.Message)
MsgBox(ex.Procedure & ", " & ex.LineNumber & ", " &
End Try
End Function
'sobre cargo QueryInteger por si necesito que el procesudre me
retorne por ejemplo un id.
<WebMethod(MessageName:="primer")> Public Function
QueryInteger(ByVal procedure As String) As Int32
Try
i = SqlHelper.ExecuteScalar(sqlconn,
CommandType.StoredProcedure, procedure)
Return i
Catch ex As Exception
Trace.Write(ex.Message)
End Try
End Function
<WebMethod(MessageName:="second")> Public Function
QueryInteger(ByVal procedure As String, ByVal parametros() As
SqlParameter) As Integer
Try
i = SqlHelper.ExecuteScalar(sqlconn,
CommandType.StoredProcedure, procedure, parametros)
Return i
Catch ex As Exception
Trace.Write(ex.Message)
End Try
End Function
'Sobre cargo la funcin NoQuery para los procedure con
delete, update)
(Insert,
Try
i = SqlHelper.ExecuteNonQuery(conexion,
CommandType.StoredProcedure, procedure, parametros)
Return i
Catch ex As Exception
Trace.Write(ex.Message)
End Try
End Function
<WebMethod(MessageName:="3")> Public Function NoQuery(ByVal
conexion As String, ByVal procedure As String) As Integer
Try
i = SqlHelper.ExecuteNonQuery(conexion,
CommandType.StoredProcedure, procedure)
Return i
Catch ex As Exception
Trace.Write(ex.Message)
End Try
End Function
End Class
o
3.
o
Mantenimiento y soporte ms sencillo (es ms sencillo cambiar un componente que
modificar una aplicacin monoltica)
o
o
Mayor flexibilidad (se pueden aadir nuevos mdulos para dotar al sistema de nueva
funcionalidad)
o
Alta escalabilidad. La principal ventaja de una aplicacin distribuida bien diseada es
su buen escalado, es decir, que puede manejar muchas peticiones con el mismo rendimiento
simplemente aadiendo ms hardware. El crecimiento es casi lineal y no es necesario aadir ms
cdigo para conseguir esta escalabilidad.
4.
Acceso a bases de datos (BD)
Escalables
5.
Seguras
Integracin
Tipo de interfaz
sentido en intranets.
6.
grficas
Transaccionales
8.
9.
10.
11.
La capa de servicios de presentacin es responsable de:
procesamiento.
12.
El nivel de servicios de negocios es responsable de:
13.
14.
15.
16.
17.
UI Components
UI Process Components
Implementan procesos de UI
18.
Model View Controller
Concepto de Proceso
Responsabilidad de navegacin
la View
20.
21.
22.
Service Interface
23.
24.
Business Entities
memoria.
instancias.
bien modelada.
Presentation Layer
25.
Business Components
un Business Entity.
26.
Business Workflow
27.
Y donde programo ?
Validaciones
Locales
Globales
Formateo
28.
Data Access Logic Components
en la base de datos.
Application Block.
Debe ser una nica clase que sea llamada por el Business Component
de forma que no se tenga en cuenta el origen de los datos.
29.
30.
Data Access Logic Components
Demo
32.
33.
Data Access Application Block
Versin 1.0
Una sola clase con con todos mtodos estticos que soporta
los siguientes features: ExecuteReader, ExecuteDataSet, ExecuteNonQuery,
ExecuteXmlReader, cache de parmetros y discovery.
Versin 3.0
34.
Data Sources
and-Forward.
35.
o
36.
Dado que no pertenecen a ninguna capa, se definen por fuera aunque en algunos
casos se implementen o usen en alguna capa.
Seguridad
Perfiles.
Operaciones
Metadatos, Configuracin.
Comunicaciones
37.
Autenticacin.
Countermeasures
38.
Comunicacin segura
Aditora
Tecnico
Lgico
Manejo de Perfiles
39.
Manejo de excepciones
Tecnicas
Funcionales
Usar la InnerException
40.
41.
Monitoreo
Performance Counters
WMI
(MSMQ).
42.
Metadatos
Se puede usar en
Tiempo de diseo: generacin de cdigo
43.
Configuracin
XmlSerialization.
44.
45.
Formato
Protocolo
IM, etc
46.
Intra-aplicacin
Inter-aplicacin
47.
Caching
Presentacin
Lgica
Datos
Soluciones
48.
Balanceo de Carga / Alta disponibilidad
Basado en el servidor
49.
Concurrencia
Dado que hay un ambiente distribuido sin estado en el servidor, hay que
relajar la concurrencia de los datos = optimista.
Se puede usar
SqlDataAdapter
50.
Persistencia
Transacciones Distribuidas
Performance
Sesin
Reportes
51.
Persistencia
52.
Performance
53.
Reportes
grandes.
Foglight Transaction
Recorder - Recorrido de
una Aplicacin .NET
Ver demostracin
Foglight - Integracin
con Foglight for .NET
Ver demostracin
Foglight es la nica Solucin de Administracin de Aplicaciones y Servicios que conecta los servicios del
negocio con la infraestructura, a los usuarios finales con las base de datos y produccin con desarrollo,
para unificar TI y el negocio.
Como parte integral de Quests Service Management, Foglight for .NET le permite a las organizaciones
gestionar los niveles de servicio de las aplicaciones .NET a travs de un monitoreo proactivo y
diagnsticos en tiempo real.
Rpidamente asociar los aspectos de una excepcin con la lnea de cdigo a travs de la
integracin con Visual Studio.
Optimizar el tiempo de los desarrolladores para que la escritura de cdigo agregue valor al
negocio, mientras disminuye el tiempo requerido para el soporte de las aplicaciones.
Maximizar la visibilidad de la aplicacin desde la perspectiva del usuario final hasta la base de
datos cuando Foglight for .NET es usado con Quest's Application Advantage Solution.
Una ves que el cuello de botella es identificado en la aplicacin, el usuario puede hacer un drill-down
dentro de ese componente para observar los detalles del evento que identifiquen el cuello de botella en
el cdigo.
Para ganar el contexto completo de un problema de desempeo, el usuario puede hacer drill-down
sobre las peticiones SQL para observar no solo el SQL en s, sino los parmetros de ese SQL tambin.
Conociendo el contexto completo del problema, el SQL puede ser optimizado apropiadamente con
productos como el SQL Optimizer for Visual Studio o las caractersticas de optimizacin de Toad o
Spotlight.
Foglight for .NET viaja directo desde el evento de excepcin hasta la lnea de cdigo a travs de su
Integracin con Visual Studio para agilizar el diagnstico y resolucin.
Conectando Produccin con Desarrollo
Dada la naturaleza de las aplicaciones .Net distribuidas de hoy, que impulsan tecnologas como .NET
Remoting ASP.NET Web Services, la complejidad de las aplicaciones se incrementa
considerablemente. Las aplicaciones confan en otras infraestructuras como bases de datos o Servicios
Web de terceras partes. Incluso el escenario ms bsico puede involucrar servidores web, lgica de
negocio o niveles de servicio as como servidores de base de datos.