22
Marcos de Desarrollo Diseño e implementación de aplicaciones Web con .NET

03.05 EnterpriseLibrary.Ult act 2013-10-21sabia.tic.udc.es/docencia/mad/pdf/03.04_EnterpriseLibrary.Ult_act_2013... · Introducción EL es un conjunto de componentes de software reusables

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 03.05 EnterpriseLibrary.Ult act 2013-10-21sabia.tic.udc.es/docencia/mad/pdf/03.04_EnterpriseLibrary.Ult_act_2013... · Introducción EL es un conjunto de componentes de software reusables

Marcos de DesarrolloDiseño e implementación de aplicaciones Web con .NET

Page 2: 03.05 EnterpriseLibrary.Ult act 2013-10-21sabia.tic.udc.es/docencia/mad/pdf/03.04_EnterpriseLibrary.Ult_act_2013... · Introducción EL es un conjunto de componentes de software reusables

Objetivos

Conocer la librería de clases "Enterprise Library"

Aprender a usar el Logging Application Block

Page 3: 03.05 EnterpriseLibrary.Ult act 2013-10-21sabia.tic.udc.es/docencia/mad/pdf/03.04_EnterpriseLibrary.Ult_act_2013... · Introducción EL es un conjunto de componentes de software reusables

Introducción EL es un conjunto de componentes de software reusables(Application Blocks) que resuelven problemas comunes: seguridad, acceso a datos, registro (logging), inyección de dependencias, etc.

Código fuente se puede descargar de forma gratuita Se puede modificar, extender…  Se puede utilizar como guía de arquitectura

La EL está programada para el .NET Framework, pero no es parte de él. No es un producto Microsoft con soporte

Page 4: 03.05 EnterpriseLibrary.Ult act 2013-10-21sabia.tic.udc.es/docencia/mad/pdf/03.04_EnterpriseLibrary.Ult_act_2013... · Introducción EL es un conjunto de componentes de software reusables

Application Blocks Un Application Block es un tipo de componente reusable Unitity es un Application Block de la EL

Los ABs no son específicos a ningún tipo de aplicación o arquitectura

La EL incluye algunas herramientas gráficas que facilitan la configuración de algunos ApplicationBlocks (p. ej.: Logging)

Page 5: 03.05 EnterpriseLibrary.Ult act 2013-10-21sabia.tic.udc.es/docencia/mad/pdf/03.04_EnterpriseLibrary.Ult_act_2013... · Introducción EL es un conjunto de componentes de software reusables

Enterprise Library 5,0 Application Blocks1. Caching Application Block

Mecanismos de caché para diferentes capas de aplicación2. Cryptography Application Block

Hashing, cifrado simétrico3. Data Access Application Block

Funcionalidad estándar de acceso a Bases de Datos 4. Exception Handling Application Block

Definición de estrategias de procesado de excepciones5. Logging Application Block

Funcionalidad de log

Page 6: 03.05 EnterpriseLibrary.Ult act 2013-10-21sabia.tic.udc.es/docencia/mad/pdf/03.04_EnterpriseLibrary.Ult_act_2013... · Introducción EL es un conjunto de componentes de software reusables

6. Policy Injection Application Block Implementar políticas de intercepción que pueden usarse para agilizar la implementación de características comunes, tales como el registro (logging), el almacenamiento en caché, la gestión de excepciones, la validación, etc.

7. Security Applicattion Block Autorización, caché de opciones de seguridad

8. Unity Application Block Contenedor de DI extensible con soporte para inyección de constructor, propiedad y método, así como intercepción de tipo e instancia

9. Validation Application Block Crear reglas de validación para los objetos de negocio 

Enterprise Library 5,0 Application Blocks

Page 7: 03.05 EnterpriseLibrary.Ult act 2013-10-21sabia.tic.udc.es/docencia/mad/pdf/03.04_EnterpriseLibrary.Ult_act_2013... · Introducción EL es un conjunto de componentes de software reusables
Page 8: 03.05 EnterpriseLibrary.Ult act 2013-10-21sabia.tic.udc.es/docencia/mad/pdf/03.04_EnterpriseLibrary.Ult_act_2013... · Introducción EL es un conjunto de componentes de software reusables

Logging Application Block. Introducción

Permite generar eventos de log en diferentes destinos, sin necesidad de modificar el código Posibles destinos (simultáneos) de la información de log:

Visor de eventos Base de Datos (SqlServer) Correo electrónico Fichero (XML, texto plano, …) …

Posibilita configuración en tiempo de ejecución 

Permite filtrar mensajes en base a la categoría

Page 9: 03.05 EnterpriseLibrary.Ult act 2013-10-21sabia.tic.udc.es/docencia/mad/pdf/03.04_EnterpriseLibrary.Ult_act_2013... · Introducción EL es un conjunto de componentes de software reusables

Logging Application Block. Uso Es necesario añadir la siguiente referencia al proyecto:

Y desde código añadir el espacio de nombres: using Microsoft.Practices.EnterpriseLibrary.Logging;

Page 10: 03.05 EnterpriseLibrary.Ult act 2013-10-21sabia.tic.udc.es/docencia/mad/pdf/03.04_EnterpriseLibrary.Ult_act_2013... · Introducción EL es un conjunto de componentes de software reusables

Logging Application Block. Uso Desde código:

No indica el destino del log

// ...

LogEntry entry = new LogEntry();entry.Message = "Mensaje a registrar";

entry.Severity = System.Diagnostics.TraceEventType.Critical;

entry.Categories.Add("General");

Logger.Write(entry);

// ...

Page 11: 03.05 EnterpriseLibrary.Ult act 2013-10-21sabia.tic.udc.es/docencia/mad/pdf/03.04_EnterpriseLibrary.Ult_act_2013... · Introducción EL es un conjunto de componentes de software reusables

Logging Application BlockConfiguración1) Lanzar "Enterprise Library Configuration Tool" (EntLibConfig.exe)2) File > Open Application > "Seleccionar fichero .config del proyecto en el que 

se desea configurar el log

Page 12: 03.05 EnterpriseLibrary.Ult act 2013-10-21sabia.tic.udc.es/docencia/mad/pdf/03.04_EnterpriseLibrary.Ult_act_2013... · Introducción EL es un conjunto de componentes de software reusables

Logging Application BlockConfiguración

Page 13: 03.05 EnterpriseLibrary.Ult act 2013-10-21sabia.tic.udc.es/docencia/mad/pdf/03.04_EnterpriseLibrary.Ult_act_2013... · Introducción EL es un conjunto de componentes de software reusables

Logging Application BlockConfiguración

Page 14: 03.05 EnterpriseLibrary.Ult act 2013-10-21sabia.tic.udc.es/docencia/mad/pdf/03.04_EnterpriseLibrary.Ult_act_2013... · Introducción EL es un conjunto de componentes de software reusables

Logging Application BlockConfiguración

Page 15: 03.05 EnterpriseLibrary.Ult act 2013-10-21sabia.tic.udc.es/docencia/mad/pdf/03.04_EnterpriseLibrary.Ult_act_2013... · Introducción EL es un conjunto de componentes de software reusables

Logging Application BlockConfiguración

Page 16: 03.05 EnterpriseLibrary.Ult act 2013-10-21sabia.tic.udc.es/docencia/mad/pdf/03.04_EnterpriseLibrary.Ult_act_2013... · Introducción EL es un conjunto de componentes de software reusables

Resultado en fichero .config (recortado) (1 de 2)<?xml version="1.0" encoding="utf‐8"?><configuration><configSections><section name="loggingConfiguration" type="Microsoft.Practices...

</configSections><loggingConfiguration name="Logging Application Block" tracingEnabled="true"defaultCategory="General" logWarningsWhenNoCategoriesMatch="true"><listeners><add fileName="trace.log"header="‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐"footer="‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐"formatter=""listenerDataType="Microsoft.Practices...traceOutputOptions="None" filter="All" type="Microsoft.Practices...name="FlatFile TraceListener" />

<add source="Enterprise Library Logging" formatter="Text Formatter"log="Application" machineName="" listenerDataType="Microsoft.Practices...traceOutputOptions="None" filter="All" type="Microsoft.Practices...          name="Formatted EventLog TraceListener" />

</listeners>

Logging Application BlockConfiguración

Page 17: 03.05 EnterpriseLibrary.Ult act 2013-10-21sabia.tic.udc.es/docencia/mad/pdf/03.04_EnterpriseLibrary.Ult_act_2013... · Introducción EL es un conjunto de componentes de software reusables

Resultado en fichero .config (recortado) (2 de 2)<formatters>

<add template="Timestamp: {timestamp}...type="Microsoft.Practices...name="Text Formatter" />

</formatters><categorySources>

<add switchValue="All" name="General"><listeners>

<add name="FlatFile TraceListener" /><add name="Formatted EventLog TraceListener" />

</listeners></add>

</categorySources><specialSources>

...</specialSources>

</loggingConfiguration></configuration>

Logging Application BlockConfiguración

Page 18: 03.05 EnterpriseLibrary.Ult act 2013-10-21sabia.tic.udc.es/docencia/mad/pdf/03.04_EnterpriseLibrary.Ult_act_2013... · Introducción EL es un conjunto de componentes de software reusables

Logging Application Block En ModelUtil se ha implementado la funcionalidad de log

LogManager Delega su funcionamiento en Logging Application Block

Basada en clase Logger

Simplifica el registro de mensajes Utiliza "MessageType“: Info, Warning, Error

Subconjunto de TraceEventType

Page 19: 03.05 EnterpriseLibrary.Ult act 2013-10-21sabia.tic.udc.es/docencia/mad/pdf/03.04_EnterpriseLibrary.Ult_act_2013... · Introducción EL es un conjunto de componentes de software reusables

Logging Application Block Es.Udc.DotNet.ModelUtil.Log

public class LogManager{

private LogManager() { }

public static void RecordMessage(String message){

RecordMessage(message, MessageType.Error, "General");}

public static void RecordMessage(String message, MessageType messageType){

RecordMessage(message, messageType, "General");}

Page 20: 03.05 EnterpriseLibrary.Ult act 2013-10-21sabia.tic.udc.es/docencia/mad/pdf/03.04_EnterpriseLibrary.Ult_act_2013... · Introducción EL es un conjunto de componentes de software reusables

Logging Application Block Es.Udc.DotNet.ModelUtil.Log

public static void RecordMessage(String message, MessageType messageType, string category)

{

Console.WriteLine("[" + DateTime.Now.ToString() + "] " +"(" + messageType.ToString() + ") : " + message);

// Provided by MS Enterprise LibraryLogEntry entry = new LogEntry();

entry.Message = message;entry.Severity = (TraceEventType)messageType;entry.Categories.Add(category);

Logger.Write(entry);

}

}

Page 21: 03.05 EnterpriseLibrary.Ult act 2013-10-21sabia.tic.udc.es/docencia/mad/pdf/03.04_EnterpriseLibrary.Ult_act_2013... · Introducción EL es un conjunto de componentes de software reusables

Logging Application Block Es.Udc.DotNet.ModelUtil.Log.LogManager. Uso:

LogManager.RecordMessage("Esto es un mensaje de ERROR");

LogManager.RecordMessage("Esto es un mensaje informativo", MessageType.Info);

LogManager.RecordMessage("Esto es un mensaje informativo de categoría 'General'", MessageType.Info, "General");

Page 22: 03.05 EnterpriseLibrary.Ult act 2013-10-21sabia.tic.udc.es/docencia/mad/pdf/03.04_EnterpriseLibrary.Ult_act_2013... · Introducción EL es un conjunto de componentes de software reusables

Bibliografía Recomendada:

Microsoft Enterprise Library 5,0 http://msdn.microsoft.com/en‐us/library/ff632023.aspx

Logging Application Block http://msdn.microsoft.com/en‐us/library/ff664569(v=pandp.50).aspx