25
Bloques es Bloques es Aplicación Aplicación Nombre: Rodrigo Traverso Nombre: Rodrigo Traverso Cargo: Analista de Sistemas (MVP) Cargo: Analista de Sistemas (MVP) Area: Desarrollo Area: Desarrollo Empresa/institución: Banco Empresa/institución: Banco Nacioanl de Bolivia Nacioanl de Bolivia

Bloques es Aplicación Nombre: Rodrigo Traverso Cargo: Analista de Sistemas (MVP) Area: Desarrollo Empresa/institución: Banco Nacioanl de Bolivia

Embed Size (px)

Citation preview

Page 1: Bloques es Aplicación Nombre: Rodrigo Traverso Cargo: Analista de Sistemas (MVP) Area: Desarrollo Empresa/institución: Banco Nacioanl de Bolivia

Bloques es AplicaciónBloques es Aplicación

Nombre: Rodrigo TraversoNombre: Rodrigo TraversoCargo: Analista de Sistemas (MVP) Cargo: Analista de Sistemas (MVP) Area: DesarrolloArea: DesarrolloEmpresa/institución: Banco Nacioanl de Empresa/institución: Banco Nacioanl de BoliviaBolivia

Page 2: Bloques es Aplicación Nombre: Rodrigo Traverso Cargo: Analista de Sistemas (MVP) Area: Desarrollo Empresa/institución: Banco Nacioanl de Bolivia

AgendaAgenda

Qué son los bloques de aplicaciónQué son los bloques de aplicación Bloques de aplicaciónBloques de aplicación Patterns & PracticesPatterns & Practices

Page 3: Bloques es Aplicación Nombre: Rodrigo Traverso Cargo: Analista de Sistemas (MVP) Area: Desarrollo Empresa/institución: Banco Nacioanl de Bolivia

Patrones y prácticas de arquitectura y diseño Patrones y prácticas de arquitectura y diseño de aplicacionesde aplicaciones

Algunos recursos disponiblesAlgunos recursos disponibles Guías de referencia de arquitecturaGuías de referencia de arquitectura Bloques de aplicaciónBloques de aplicación Mejores prácticas en desarrollo, seguridad y Mejores prácticas en desarrollo, seguridad y

operacionesoperaciones

Clases VB.NET o C#.NETClases VB.NET o C#.NET DescargablesDescargables

Código FuenteCódigo Fuente DocumentaciónDocumentación EjemplosEjemplos

Bloques de aplicaciónBloques de aplicación

Page 4: Bloques es Aplicación Nombre: Rodrigo Traverso Cargo: Analista de Sistemas (MVP) Area: Desarrollo Empresa/institución: Banco Nacioanl de Bolivia

Bloque de aplicación Bloque de aplicación para .NET:para .NET:“Acceso a Datos”“Acceso a Datos”

Page 5: Bloques es Aplicación Nombre: Rodrigo Traverso Cargo: Analista de Sistemas (MVP) Area: Desarrollo Empresa/institución: Banco Nacioanl de Bolivia

Acceso a datos Optimizado.Acceso a datos Optimizado. Mejores prácticas ADO.NET:Mejores prácticas ADO.NET:

Rendimiento, Escalabilidad, Administración de recursos de Rendimiento, Escalabilidad, Administración de recursos de base de datosbase de datos

Métodos, Interfaces ADO.NETMétodos, Interfaces ADO.NET

Encapsula tareas comunes de acceso a datosEncapsula tareas comunes de acceso a datos SQL Server 7.0 o superiorSQL Server 7.0 o superior

Permite:Permite: Llamar a procedimientos almacenados o comandos de texto Llamar a procedimientos almacenados o comandos de texto

SQL. SQL. Especificar detalles de parámetros. Especificar detalles de parámetros. Devolver objetos SqlDataReader, DataSet o XmlReader. Devolver objetos SqlDataReader, DataSet o XmlReader.

Acceso a datos - Acceso a datos - DescripciónDescripción

Page 6: Bloques es Aplicación Nombre: Rodrigo Traverso Cargo: Analista de Sistemas (MVP) Area: Desarrollo Empresa/institución: Banco Nacioanl de Bolivia

AssembliesAssemblies Microsoft.ApplicationBlocks.Data.dllMicrosoft.ApplicationBlocks.Data.dll

ClasesClases

SqlHelper (Abstracta)SqlHelper (Abstracta) Métodos estáticos. Tareas comunes sobre SQL Métodos estáticos. Tareas comunes sobre SQL

ServerServer

SqlhelperParameterCacheSqlhelperParameterCache Almacenema parámetros de comando en cacheAlmacenema parámetros de comando en cache Recupera parámetros de comandoRecupera parámetros de comando

Acceso a datos - Acceso a datos - DescripciónDescripción

Page 7: Bloques es Aplicación Nombre: Rodrigo Traverso Cargo: Analista de Sistemas (MVP) Area: Desarrollo Empresa/institución: Banco Nacioanl de Bolivia

Acceso a Datos - ArquitecturaAcceso a Datos - Arquitectura

Acceso datos Application BlockComponente de acceso a datos

SQL Server

SqlHelper

ExecuteNonQuery

SqlHelperParameterCache

ExecuteDataset

ExecuteReader

ExecuteScalar

ExecuteXmlReader

CacheParameterSet

GetCachedParameterSet

GetSpParameterSet

int

DataSet

SqlDataReader

object

XmlReader

SqlParameter[ ]

Transact-SQLor

Stored Procedure

Page 8: Bloques es Aplicación Nombre: Rodrigo Traverso Cargo: Analista de Sistemas (MVP) Area: Desarrollo Empresa/institución: Banco Nacioanl de Bolivia

SqlHelper – Algunos SqlHelper – Algunos métodosmétodos SqlHelperSqlHelper proporciona cinco métodos proporciona cinco métodos SharedShared

(Visual Basic) o (Visual Basic) o staticstatic (C# (C#

ExecuteNonQueryExecuteNonQuery No retorna registrosNo retorna registros

ExecuteDatasetExecuteDataset Retorna registros como Retorna registros como DataSetDataSet

ExecuteReaderExecuteReader Retorna registros como Retorna registros como SqlDataReaderSqlDataReader..

ExecuteScalarExecuteScalar Retorna un valor único Retorna un valor único como un “objectcomo un “object.”.”

ExecuteXmlReaderExecuteXmlReader Retorna XML en un Retorna XML en un XmlReaderXmlReader..

Page 9: Bloques es Aplicación Nombre: Rodrigo Traverso Cargo: Analista de Sistemas (MVP) Area: Desarrollo Empresa/institución: Banco Nacioanl de Bolivia

SQLHelperParameterCacheSQLHelperParameterCache

Parámetros encontrados y mapeados Parámetros encontrados y mapeados en RunTimeen RunTime

Cache y obtención de SqlParameter Cache y obtención de SqlParameter arraysarrays

Cambios de los parámetros en el Cambios de los parámetros en el arreglo no deben afectar los valores en arreglo no deben afectar los valores en cachecache

Obtiene dinámicamente un arreglo de Obtiene dinámicamente un arreglo de parámetros para un procedimiento parámetros para un procedimiento almacenado.almacenado.

Page 10: Bloques es Aplicación Nombre: Rodrigo Traverso Cargo: Analista de Sistemas (MVP) Area: Desarrollo Empresa/institución: Banco Nacioanl de Bolivia

SqlHelper - ImplementaciónSqlHelper - Implementación

[Visual Basic][Visual Basic]Imports Microsoft.ApplicationBlocks.DataImports Microsoft.ApplicationBlocks.Data

Dim ds As DataSet = SqlHelper.ExecuteDataset( _ Dim ds As DataSet = SqlHelper.ExecuteDataset( _ "SERVER=(local);DATABASE=Northwind;INTEGRATED "SERVER=(local);DATABASE=Northwind;INTEGRATED SECURITY=True;", _ CommandType.Text, "SELECT * FROM Products")SECURITY=True;", _ CommandType.Text, "SELECT * FROM Products")

[C#][C#]using Microsoft.ApplicationBlocks.Data; using Microsoft.ApplicationBlocks.Data;

DataSet ds = DataSet ds = SqlHelper.ExecuteDataset( "SERVER=DataServer;DATABASE=NorthwindSqlHelper.ExecuteDataset( "SERVER=DataServer;DATABASE=Northwind;INTEGRATED SECURITY=sspi;", _ CommandType.Text, "SELECT * ;INTEGRATED SECURITY=sspi;", _ CommandType.Text, "SELECT * FROM Products"); FROM Products");

FillDataSetFillDataSetUpdateDatasetUpdateDatasetExecute_____TypeParams.Execute_____TypeParams.

Page 11: Bloques es Aplicación Nombre: Rodrigo Traverso Cargo: Analista de Sistemas (MVP) Area: Desarrollo Empresa/institución: Banco Nacioanl de Bolivia

SqlHelper - SobrecargasSqlHelper - Sobrecargas

(ByVal (ByVal connectionconnection As SqlConnection, ByVal As SqlConnection, ByVal commandTypecommandType As As CommandType, ByVal CommandType, ByVal CommandTextCommandText As String) As String)

(ByVal (ByVal connectionconnection As SqlConnection, ByVal As SqlConnection, ByVal commandTypecommandType As As CommandType, ByVal CommandType, ByVal commandTextcommandText As String, ByVal As String, ByVal ParamArray ParamArray commandParameters()commandParameters() As SqlParameter) As SqlParameter)

(ByVal (ByVal connectionconnection As SqlConnection, ByVal As SqlConnection, ByVal spNamespName As String, ByVal As String, ByVal ParamArray parameterValues()ParamArray parameterValues() As Object) As Object)

(ByVal (ByVal transactiontransaction As SqlTransaction, ByVal As SqlTransaction, ByVal commandTypecommandType As As CommandType, ByVal CommandType, ByVal commandTextcommandText As String) As String)

(ByVal (ByVal transactiontransaction As SqlTransaction, ByVal As SqlTransaction, ByVal commandTypecommandType As As CommandType, ByVal CommandType, ByVal commandTextcommandText As String, ByVal As String, ByVal ParamArray ParamArray commandParameters()commandParameters() As SqlParameter) As SqlParameter)

(ByVal (ByVal transactiontransaction As SqlTransaction, ByVal As SqlTransaction, ByVal spNamespName As String, ByVal As String, ByVal ParamArray parameterValues()ParamArray parameterValues() As Object) As Object)

Page 12: Bloques es Aplicación Nombre: Rodrigo Traverso Cargo: Analista de Sistemas (MVP) Area: Desarrollo Empresa/institución: Banco Nacioanl de Bolivia

Bloque de aplicación Bloque de aplicación para .NET:para .NET:“Exception Managment”“Exception Managment”

Page 13: Bloques es Aplicación Nombre: Rodrigo Traverso Cargo: Analista de Sistemas (MVP) Area: Desarrollo Empresa/institución: Banco Nacioanl de Bolivia

Exception Management - Exception Management - DescripciónDescripción

Framework administrador de excepcionesFramework administrador de excepciones

Administrador eficiente y consistenteAdministrador eficiente y consistente Administración aislada de las lógicas de negocioAdministración aislada de las lógicas de negocio Captura y Log de excepciones en solo 1 línea de código.Captura y Log de excepciones en solo 1 línea de código.

[C#][C#]using using Microsoft.ApplicationBlocks.ExceptionManagement ;Microsoft.ApplicationBlocks.ExceptionManagement ;catch ( Exception ex )catch ( Exception ex )

{ ExceptionManager.Publish( ex ); }{ ExceptionManager.Publish( ex ); }

[Visual Basic][Visual Basic]Imports Imports Microsoft.ApplicationBlocks.ExceptionManagement Microsoft.ApplicationBlocks.ExceptionManagement Catch ex As ExceptionCatch ex As Exception

ExceptionManager.Publish( ex ) ExceptionManager.Publish( ex )

Page 14: Bloques es Aplicación Nombre: Rodrigo Traverso Cargo: Analista de Sistemas (MVP) Area: Desarrollo Empresa/institución: Banco Nacioanl de Bolivia

Qué incluyeQué incluye Microsoft.ApplicationBlocks.ExceptionManagementMicrosoft.ApplicationBlocks.ExceptionManagement

Contiene:Contiene: Clase primaria para administración de excepcionesClase primaria para administración de excepciones ExceptionManagerInstaller para crear Event Sources.ExceptionManagerInstaller para crear Event Sources.

Microsoft.ApplicationBlocks.ExceptionManagement.IntMicrosoft.ApplicationBlocks.ExceptionManagement.Interfaceserfaces

Interfaces para implementar publicadores de Interfaces para implementar publicadores de excepciones personalizadosexcepciones personalizados

Incluye DefaultPublisherIncluye DefaultPublisher

Exception Management Quick Start SamplesException Management Quick Start Samples EjemplosEjemplos

Exception Management - Exception Management - DescripciónDescripción

Page 15: Bloques es Aplicación Nombre: Rodrigo Traverso Cargo: Analista de Sistemas (MVP) Area: Desarrollo Empresa/institución: Banco Nacioanl de Bolivia

Exception Management - Exception Management - ArquitecturaArquitectura

Database

Config File

Application Exception

ExceptionManagement Assembly

ExceptionManager

BaseApplicationException

ExceptionManagementSectionHandler

DefaultPublisher

Custom Publisher

Custom Publisher

Custom Publisher

Event Log

Log File

EmailNotification

1

2

3

4

5

5

CustomPublisherException

Interfaces Assembly

IPublishExceptionIPublishXMLException

6

Page 16: Bloques es Aplicación Nombre: Rodrigo Traverso Cargo: Analista de Sistemas (MVP) Area: Desarrollo Empresa/institución: Banco Nacioanl de Bolivia

IExceptionPublisher, IExceptionXMLPublisher interface IExceptionPublisher, IExceptionXMLPublisher interface de:de:

- Microsoft.ApplicationBlocks.ExceptionManagement.InterfacMicrosoft.ApplicationBlocks.ExceptionManagement.Interfaces es

Public classPublic class PublicadorPersonalizado PublicadorPersonalizado Implements Implements IExceptionPublisher IExceptionPublisher

IExceptionXMLPublisher: Info de la excepción en XMLIExceptionXMLPublisher: Info de la excepción en XML

Exception Management - Exception Management - ImplementaciónImplementación

Page 17: Bloques es Aplicación Nombre: Rodrigo Traverso Cargo: Analista de Sistemas (MVP) Area: Desarrollo Empresa/institución: Banco Nacioanl de Bolivia

Demos Application BlocksDemos Application Blocks

DemoDemo

Page 18: Bloques es Aplicación Nombre: Rodrigo Traverso Cargo: Analista de Sistemas (MVP) Area: Desarrollo Empresa/institución: Banco Nacioanl de Bolivia

Otros bloques de aplicaciónOtros bloques de aplicación

Autorización y perfilamientoAutorización y perfilamiento Smart ClientSmart Client Manejo de CACHEManejo de CACHE Agregación de entidadesAgregación de entidades Invocación asíncronaInvocación asíncrona Administrador de Administrador de

configuracionesconfiguraciones Manejo de LOGManejo de LOG Interfaz de usuarioInterfaz de usuario

Page 19: Bloques es Aplicación Nombre: Rodrigo Traverso Cargo: Analista de Sistemas (MVP) Area: Desarrollo Empresa/institución: Banco Nacioanl de Bolivia

Elementos ya Elementos ya implementadosimplementados PAGPAG

Bloques de Bloques de aplicaciónaplicación

GuiasGuias Patrones de diseñoPatrones de diseño SeguridadSeguridad

ASP.NETASP.NET Starter KitsStarter Kits

ReportesReportes Time TrackingTime Tracking e-Commercee-Commerce ……

Controles de Controles de servidorservidor

Windows FormsWindows Forms controlescontroles

Page 20: Bloques es Aplicación Nombre: Rodrigo Traverso Cargo: Analista de Sistemas (MVP) Area: Desarrollo Empresa/institución: Banco Nacioanl de Bolivia

Microsoft PAG Microsoft PAG Prescriptive Architecture GuidancePrescriptive Architecture Guidance

PAG son las recomendaciones de Microsoft para arquitectos, PAG son las recomendaciones de Microsoft para arquitectos, desarrolladores y personas de operaciones responsables de desarrolladores y personas de operaciones responsables de entregar y administrar soluciones empresariales en la entregar y administrar soluciones empresariales en la Plataforma MicrosoftPlataforma Microsoft..

En la Internet:En la Internet: Para una lista de los documentos de PAG puede visitar:Para una lista de los documentos de PAG puede visitar: httphttp://://

www.microsoft.comwww.microsoft.com//practicespractices

Guias impresas disponibles en:Guias impresas disponibles en: http://http://shop.microsoft.comshop.microsoft.com/practices/practices

Algunos de los elementos disponiblesAlgunos de los elementos disponibles Guías de referencia de arquitecturaGuías de referencia de arquitectura Bloques de aplicaciónBloques de aplicación Mejores prácticas en desarrollo, seguridad y operacionesMejores prácticas en desarrollo, seguridad y operaciones

Page 21: Bloques es Aplicación Nombre: Rodrigo Traverso Cargo: Analista de Sistemas (MVP) Area: Desarrollo Empresa/institución: Banco Nacioanl de Bolivia
Page 22: Bloques es Aplicación Nombre: Rodrigo Traverso Cargo: Analista de Sistemas (MVP) Area: Desarrollo Empresa/institución: Banco Nacioanl de Bolivia

Conferencias Técnicas, MSDN Briefings, Seminarios, Conferencias Técnicas, MSDN Briefings, Seminarios, DevDays DevDays

Programa Desarrollador 5 EstrellasPrograma Desarrollador 5 Estrellas

Grupos de Usuarios y Comunidades – Panorama BoxGrupos de Usuarios y Comunidades – Panorama Box

Imagine Cup. Certamen Internacional de DesarrolloImagine Cup. Certamen Internacional de Desarrollo

Boletín vía E-mail – MSDN Flash (~20000 lectores)Boletín vía E-mail – MSDN Flash (~20000 lectores)

Web Site ExclusivoWeb Site Exclusivo

Suscripción a los productos MSDNSuscripción a los productos MSDN

Grupos de soporte técnicoGrupos de soporte técnico

Recursos para DesarrolladoresRecursos para Desarrolladores

Programa MSDN:Programa MSDN:

Page 23: Bloques es Aplicación Nombre: Rodrigo Traverso Cargo: Analista de Sistemas (MVP) Area: Desarrollo Empresa/institución: Banco Nacioanl de Bolivia

Desarrollador 5 EstrellasDesarrollador 5 EstrellasCaracterísticas:Características: ¿Qué es?¿Qué es?

Un conjunto de herramientas que te permite incrementar tus Un conjunto de herramientas que te permite incrementar tus conocimientos y habilidades en la tecnología .NETconocimientos y habilidades en la tecnología .NET

¿En qué consiste?¿En qué consiste? Cursos GratuitosCursos Gratuitos Capacitación en líneaCapacitación en línea Exámenes de evaluaciónExámenes de evaluación Reconocimiento del mercadoReconocimiento del mercado

¿Para quién es?¿Para quién es? Desarrolladores profesionalesDesarrolladores profesionales Estudiantes universitariosEstudiantes universitarios

¿Dónde comenzar?¿Dónde comenzar? www.microsoft.com/spanish/msdn/comunidad/dce/www.microsoft.com/spanish/msdn/comunidad/dce/

Page 24: Bloques es Aplicación Nombre: Rodrigo Traverso Cargo: Analista de Sistemas (MVP) Area: Desarrollo Empresa/institución: Banco Nacioanl de Bolivia

Suscripciones MSDNSuscripciones MSDN

Acceso a Productos Microsoft (limitadas o Acceso a Productos Microsoft (limitadas o perpetuas) y garantía tecnológica por 2 años.perpetuas) y garantía tecnológica por 2 años.

Downloads electrónicos de los productos el día de Downloads electrónicos de los productos el día de su publicación.su publicación.

Soporte técnico para Desarrolladores, garantizado Soporte técnico para Desarrolladores, garantizado por Microsoft, dentro de las 48 hs.por Microsoft, dentro de las 48 hs.

Acceso a información preferencial en el site MSDN, Acceso a información preferencial en el site MSDN, invitación a eventos y seminarios, etc. invitación a eventos y seminarios, etc.

Soporte para el uso de los recursos MSDN a Soporte para el uso de los recursos MSDN a través de Chat.través de Chat.

Línea exclusiva de ayuda para administrar la Línea exclusiva de ayuda para administrar la suscripción MSDN. suscripción MSDN.

Page 25: Bloques es Aplicación Nombre: Rodrigo Traverso Cargo: Analista de Sistemas (MVP) Area: Desarrollo Empresa/institución: Banco Nacioanl de Bolivia

© 2004 Microsoft Corporation. © 2004 Microsoft Corporation. Todos los derechos reservadosTodos los derechos reservados

Muchas gracias por su participaciónMuchas gracias por su participación