La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Architectural Patterns Enterprise Library for NET Framework 2.0:

Presentazioni simili


Presentazione sul tema: "Architectural Patterns Enterprise Library for NET Framework 2.0:"— Transcript della presentazione:

1 Architectural Patterns Enterprise Library for NET Framework 2.0:
Giuseppe Dimauro Microsoft MSDN Regional Director, Italy

2 Microsoft Architect Webcast: la nuova serie di Webcast per gli Architetti Applicativi Un programma dedicato 19 appuntamenti fino a giugno Formazione specifica sulla progettazione sw e sui nuovi prodotti e tecnologie analizzati dal punto di vista architetturale Tutta la comodità e immediatezza del webcast, con la possibilità di rivedere le sessioni in streaming sul Web

3 Calendario dei prossimi Architect Webcast
Febbraio 14/2: Pattern architetturali per la realizzazione di applicazioni e servizi - Parte II 21/2: Introduzione alla metodologia agile MSF 4.0 con Visual Studio 2005 Team System 28/2: Progettare il Web Testing nel mondo Enterprise con Visual Studio 2005 Team Test Marzo 07/3: BizTalk Server 2006: uno strumento per tutta l'azienda 14/3: BizTalk Server 2006: mille e uno usi di uno strumento versatile 21/3: BizTalk Server 2006 e lo sviluppo di applicazioni orientate ai servizi 28/3: WinFX: Windows Workflow Foundation - Parte I Aprile 04/4: WinFX: Windows Workflow Foundation - Parte II 11/4: Realizzare servizi distribuiti con Windows Communication Foundation - Parte I 19/4: Realizzare servizi distribuiti con Windows Communication Foundation - Parte II 27/4: Architettura SOA. Perché non se ne può fare a meno? Maggio 09/5: Le applicazioni client negli scenari d'integrazione - Parte I 16/5: Le applicazioni client negli scenari d'integrazione - Parte II 23/5: Interoperabilità e migrazione tra .NET e COM Giugno 06/6: Smart Client. Unire il meglio di idee e tecnologie diverse 13/6: Il dato al centro dell'informazione aziendale. Come gestirlo 20/6: Snellire i processi aziendali gestendo il flusso di informazioni con Office 27/6: Smart Document: la nuova faccia del documento

4 Licenze individuali: 1 sviluppatore = 1 licenza
Visual Studio 2005: scegli il prodotto più giusto per te Visual Studio 2005 Team Edition Visual Studio Team Edition (for Architects, Developers o Testers) con MSDN Premium Visual Studio Team Suite con MSDN Premium Strumenti professionali Visual Studio 2005 Professional Visual Studio 2005 Professional con MSDN Professional Visual Studio 2005 Professional con MSDN Premium Visual Studio 2005 Tools for Microsoft Office System Strumenti di base Visual Studio 2005 Standard Visual Studio 2005 Express Edition Altri strumenti Visual SourceSafe 2005 VisualFox Pro 9.0 Licenze individuali: 1 sviluppatore = 1 licenza Dove acquistare: Per informazioni:

5 Architectural Patterns Enterprise Library for NET Framework 2.0:

6 Giuseppe Dimauro 15 anni nel settore Da 5 anni MS RD per l’Italia
VBForum ’95, MSDN Conference, Dev Days, WPC ecc. Cofondatore di Code Architects srl Coautore con Francesco Balena di: Practical Guidelines and Best Practices for Microsoft Visual Basic and Visual C# Developers (MSPRESS) Excellence award winner

7 Per tutti quelli che si fossero sintonizzati ora:
Gli Application Blocks di Patterns & Practices sono soluzioni software disponibili gratuitamente in in codice sorgente estensibile e riutilizzabile. Forniscono delle vere e proprie linee guida per l’implementazione di applicazioni di classe Enterprise affrontando problematiche molto ricorrenti (pattern) Fornisce, essenzialmente, sette blocchi applicativi in questo momento: Caching, Configuration, Cryptography, Data Access, Exception Handling, Logging & Instrumentation, Security Particolare attenzione rivolta alla consistenza, estensibilita’, facilita’ d’uso e integrazione Originariamente progettato per .NET Framework 1.1. Primo rilascio a gennaio 2005, aggiornato giugno 2005

8 Ecosistema della Enterprise Library
Customer Y library Partner X library p&p Enterprise Library Customer Z library p&p blocks Partner blocks Customer blocks Block Specification Community blocks

9 Enterprise Library Enterprise Library e’ …
Una libreria di macroblocchi applicativi (Application blocks) che affrontano e risolvono problematiche comuni Un insieme di classi “helper” riutilizzabili Guide architeturali fisicamente incapsulate in classi applicative disponibile in codice sorgente estendibile Free e scaricabile Enterprise Library non e’… Parte integrante del .NET Framework Un framework applicativo che impone uno stile architetturale. (Traete il meglio di cio’ che vi viene proposto) A Microsoft product with support, compatibility and localization For sale

10 Enterprise Library per .NET Framework 2.0
E’ una major release della Enterprise Library Riprogettata per Microsoft® .NET Framework 2.0 Sfrutta molte delle nuove potenzialita’ “chiave” di .NET 2.0 Alcune caratteristiche della library 1.x sono state “deprecate” Gli scenari applicativi e le feature restano invariate L’API pubblica (Application Programming Interface) non e’ identica, presenta modifiche minori …ma sono molte le migliorie che si celano sotto il coperchio!

11 Le modifiche importanti rispetto alla V 1.x
La configurazione si basa su System.Configuration Il Configuration Application Block non esiste piu’ Blocchi piu’ semplici da utilizzare senza file di configurazione Instrumentation e’ configurabile e disabilitato di default Logging Application Block e’ stato potenziato In termini di flessibilita’ e performance Data Access Application Block semplificato e potenziato Utilizzabile con OLE-DB, ODBC o qualsiasi provider managed Security Application Block e’ stato ridotto tantissimo Molte feature Security Application Block sono state deprecate a favore dei meccanismi nativi di .NET 2.0 per la gestione delle Membership e dei Profile

12 Enterprise Library for .NET Framework 2.0
Caching Data Access Logging Plug-in Config Helpers & Design Instrumen- tation Object Builder Core Cryptography Security Exception Handling Optional Provider Dependency Block Dependency

13 Enterprise Library for .NET Framework 2.0
Caching Data Access Logging Core Plug-in Config Helpers & Design Instrumen- tation Cryptography Object Builder Security Exception Handling Optional Provider Dependency Block Dependency

14 Il Core Configurazione Gestione della configurazione e Tool
Instrumentation Object Builder e Factories

15 Configurazione Tutti gli Enterprise Library block sono configurabili
Governare il lavoro dei “blocchi” nelle proprie applicazioni Specificare quali plug-in effettivamente utilizzare Comunque la nuova architettura e’ piu’ semplice da utilizzare con o senza file di configurazione Oggetti di Factory istanziano oggetti partendo dalle informazioni rilocate nei file di configurazione Gli oggetti possono essere istanziati con dati primitivi

16 Configurazione La configurazione si basa ora su System.Configuration
La configurazione e’ in app.config o web.config di default Supporta letture/scritture di oggetti complessi Supporta protezione dati “Sorgenti di configurazione” alternative possono essere utilizzate Un esempio di “SQL Configuration Source” e’ inclusa Assembly comuni contengono classi helper Il Configuration Application Block non esiste piu’ … Guide di migrazione verso System.Configuration incluse

17 Configuration Design & Tooling
I tool di configurazione eliminano la necessita di editare le informazioni XML nei file di configurazione Aggiungere velocemente info di default per uno specifico block Proprieta’ e provider tipizzati Validazione della configurazione prima del salvataggio Non ci sono grandi cambiamenti funzionali nel tool di configurazione rispetto alla versione precedente Il tool puo’ essere riutilizzato per le proprie applicazioni ed estensioni per offrire una interfaccia uniforme per operazioni amministrative di questo tipo

18 System.Configuration in .NET 2.0
Molto piu’ potente delle classi per .NET Framework 1.x Supporta la lettura e scrittura di interi grafi di oggetti Serializzazione/deserializzazione automatica tra classi di configurazione e XML usando oggetti ConfigurationSection e ConfigurationElement Alcune feature della Enterprise Library 1.x non sono supportate direttamente Informazioni di configurazione in file diversi da XML Monitoring esterno delle variazioni ai file di configurazione

19 Configuration Runtime
La Enterprise Library per .NET Framework 2.0 usa System.Configuration, ma mette a disposizione classi helper addizionali per un maggior numero di feature Tutti i block leggono informazioni di configurazione dall’apposita sezione di file web.config/app.config Tutte le feature avanzate come la cifratura o uso di file esterni sono supportate Le classi helper del Configuration Runtime sono presenti nei Common assembly Utilizzate ampiamente da tutti i Block della Enterprise Library Per situazioni particolari possiamo pensare di usare direttamente queste classi per esigenze similari

20 Sorgenti di configurazione
app.config / web.config Default ConfigurationSource = … Application Blocks or Custom Code IConfigurationSource SystemConfiguration Source FileConfiguration Source SqlConfiguration Source System.Configuration app.config / web.config foo.config File Watcher File Watcher

21 Sorgenti di configurazione
Attraverso l’uso di un contratto software e’ possibile astrarre le componenti di lettura e scrittura di informazioni di configurazione Due implementazioni incluse nel core SystemConfigurationSource ripiega su System.Configuration per la lettura e la scrittura da file di configurazione (aggiunge file watcher) FileConfigurationSource ripiega su System.Configuration per leggere da file arbitrari SqlConfigurationSource e’ incluso come esempio Necessita’ che le sezioni siano derivata da SerializableConfigurationSection

22 Scegliere una sorgente di configurazione
Esistono piu’ di una maniera per scegliere la sorgente di configurazione con Enterprise Platform Usando gli “access blocks” con façade statiche (Es. DatabaseFactory, Logger), si usa la ConfigurationSource di default: Modificando, definendo nel file di configurazione di default (default.config) la sezione ConfigurationSources, si puo’ specificare il particolare tipo di sorgente da utilizzare In assenza di questa sezione, SystemConfigurationSource e’ la sezione presa in considerazione dall’Application Block

23 Esempi di sorgenti di configurazione
<enterpriseLibrary.ConfigurationSource selectedSource="fileSource"> <sources> <add name="fileSource" type="Microsoft.Practices.EnterpriseLibrary.Common.Configuration.FileConfigurationSource, Microsoft.Practices.EnterpriseLibrary.Common" filePath="test.config"/> <add name="systemSource" type="Microsoft.Practices.EnterpriseLibrary.Common.Configuration.SystemConfigurationSource, Microsoft.Practices.EnterpriseLibrary.Common"/> </sources> </enterpriseLibrary.ConfigurationSource> // Use default source specified in the app.config / web.config file Database db1 = DatabaseFactory.CreateDatabase(“Sales”); // Use the specified source – you don’t need an app.config / web.config file FileConfigurationSource fileSource = new FileConfigurationSource(“tom.config”); DatabaseProviderFactory factory = new DatabaseProviderFactory(fileSource); Database db2 = factory.Create(“Sales”);

24 Change Notifications IConfigurationSource supporta il monitoraggio delle modifiche ai dati di configurazione AddSectionHandler(string sectionName, ConfigurationChangedEventHandler handler) RemoveSectionHandler(string sectionName, ConfigurationChangedEventHandler handler) Da codice e’ possibile sottoscrivere modifiche e partecipare al broadcast degli eventi Attualmente nella Enterprise Library, soltanto il Logging Application Block si registra per la ricezione di notifiche di modifica

25 Instrumentation Tutti i block includono feature di instrumentation per automatizzare fasi di sviluppo, test e operation Eventi per Event Log Performance Counters Eventi WMI (Microsoft® Windows® Management Instrumentation) Tutte le feature di instrumentation sono disabilitate di default. Ogni tipo particolare di instrumentation puo’ essere abilitato utilizzando il tool di configurazione Installare instrumentation richiede diritti amministrativi e puo’ essere utilizzata da installutil.exe Codice di instrumentation incapsulato in comuni assembly puo’ essere riutilizzato nelle proprie applicazioni

26 Abilitazione della Instrumentation
Esecuzione delle classi installer per creare gli artifacts di instrumentation Lanciare installservices.bat (con account amministrativo), oppure Lanciare installutil.exe su ogni assembly della Enterprise Library (utilizzando un account amministrativo), oppure Creare un proprio installers/MSI che fa questo lavoro Configurare instrumentation per la propria applicazione usando il tool amministrativo

27 Instrumentation - Architettura
Event Log Architettura Event-driven Application or Block calls Perf Counters Instrumentation Provider Class(es) Instrumentation Listener Class(es) Event WMI Wires up Instrumentation Configuration Settings ObjectBuilder

28 Instrumentation - Attributi
E’ pilotata attraverso l’uso di attributi: [InstrumentationListener] Applicato ad un tipo di un blocco o dell’applicazione Specifica quale listenere utilizzare per gli eventi di instrumentation [InstrumentationProvider] Definisce un evento block-wide o application-wide Specifica il nome dell’evento da sollevare [InstrumentationConsumer] Si usa su un metodo associato all’instrumentation listener Il metodo contiene la logica di instrumentation e il nome che deve combaciare con le informazioni fornite nella dichiarazione dell’attributo InstrumentationProvider

29 Instrumentation - Esempio
public class Database : IInstrumentationEventProvider { DbConnection OpenConnection() { // Do stuff instrumentationProvider.FireConnectionOpenedEvent(); } public object GetInstrumentationEventProvider() { return instrumentationProvider; } [InstrumentationListener( typeof(DataInstrumentationListener), typeof(DataInstrumentationListenerBinder))] public class DataInstrumentationProvider { [InstrumentationProvider("ConnectionOpened")] public event EventHandler<EventArgs> connectionOpened; public void FireConnectionOpenedEvent() { connectionOpened(this, new EventArgs()); } internal class DataInstrumentationListener : InstrumentationListener { public DataInstrumentationListener(string instanceName, bool perfCountersEnabled, bool eventLogEnabled, bool wmiEnabled) : base(perf…, event…, wmi…) {} [InstrumentationConsumer( “ConnectionOpened")] public void ConnectionOpened(object sender, EventArgs e) { if (PerformanceCountersEnabled) connectionOpenedCounter.Increment(); }

30 Instrumentation – attributi di installazione
Eseguendo installutil.exe, una classe con attributi di instrumentation installa automaticamente tutte le risorse di event log, schemi WMI e performance counter La Enterprise Library fornisce un ReflectionInstaller che usa reflection per ricercare le classi interessate. Usa degli attributi per velocizzare e semplificare l’operazione: [HasInstallableResources] Ci sono risorse per Instrumentation [PerformanceCountersDefinition] Definisce i contatori da utilizzare [EventLogDefinition] Definisce le informazioni di event log

31 Object Builder Nuovo sottosistema condiviso tra EntLib e Compsite UI Application Block Utilizzato per istanziare oggetti all’interno degli application block Invocando il custom factory preposto allo scopo utilizzando meta informazioni rilocate nel file di configurazione Configurare instrumentazione per i block Puo’ essere utilizzato per le proprie applicazioni Non va “imparato” per usare la Enterprise Library

32 Factories Application Block Core User Code Static Factory or façade
Configuration Source Instance Provider Factory Enterprise Library Factory Custom Factory Object Builder Strategies Block Objects

33 Facades e Factory statiche
Rappresenta il modo piu’ agevole e semplice per utilizzare I blcchi La configurazione viene ricavata dal sorgente di configurazione di default Instrumentation viene attivata/coinvolta automaticamente (ma andrebbe disabilitata) E’ di fatto, una chiamata ad un metodo di factory dietro le quinte Esempi: Dim db As Database = DatabaseFactory.CreateDatabase(“Sales”) Logger.Write(“My message”, “My Category”)

34 Instance Provider Factories
Maggiore controllo su cio’ che viene creato Possibilita’ di scegliere il proprio sorgente di configurazione Instrumentation viene attivata/coinvolta automaticamente (ma andrebbe disabilitata) Esempi: Dim factory As New DatabaseProviderFactory(configSource) Dim db As Database = factory.Create(“Sales”) Dim factory As New LogWriterFactory(configSource) Dim writer As LogWriter = factory.Create()

35 Creare oggetti direttamente
Utilizzo del costruttore di oggetti direttamente I sorgenti di configurazione non vengono interpellati L’Object Builder non e’ coinvolto L’instrumentation non e’ automaticamente coinvolta ma puo’ essere aggiunta “manualmente” Esempio: Dim db As SqlDatabase = New SqlDatabase("server=(local)\SQLEXPRESS;database=EntLibQuickStarts;Integrated Security=true")

36 Enterprise Library per .NET Framework 2.0
Caching Data Access Logging Plug-in Config Helpers & Design Instrumen- tation Object Builder Core Cryptography Security Exception Handling Optional Provider Dependency Block Dependency

37 Exception Handling Obiettivi:
Gestione delle eccezioni consistente in tutta l’applicazione Implementazione di un modo di gestire le eccezioni da manuale di best practice: Evitare di pubblicare “inavvertitamente” informazioni sensibili agli utenti finali con la segnalazione di errori Gestire le eccezioni attravers un contesto/wrapper opportunamente specializzato per la particolare situazione/eccezione Semplifcazione del codice da scrivere per aggiungere all’applicazione feature per la gestione delle eccezioni

38 Exception Handling Application Block
Il meccanismo e’ stato semplificato il piu’possibile per indirizzare problematiche di questo tipo dalla propria applicazione Definire policy di eccezione “Exception Policies” che lega una eccezione ad una particolare azione/funzione applicativa Exceptions di tipo ApplicationException andrebbero tracciate (logging) Eccezioni di tipo SqlClientException andrebbero intercettate (catch) e incapsulate (wrapped) in una eccezione di tipo DataLayerException e risollevata (re-thrown) Eccezioni di tipo SecurityException andrebbero intercettate e sostituite con una eccezione di tipo AccessDeniedException da risollevare (re-throw) Le azioni associate possono essere le seguenti Logging Incapsulamento di una eccezione in un’altra (rewrapping) Rimpiazzo di una eccezione con un’altra (replace) Creazione di azioni custom…

39 Exception Handling - Esempio
Try ' codice contenente l’errore che provoca eccezione Catch Ex As Exception If ExceptionPolicy.HandleException(ex, “DataLayer”) _ Then Throw End Try

40 Enterprise Library per .NET Framework 2.0
Caching Data Access Logging Plug-in Config Helpers & Design Instrumen- tation Object Builder Core Cryptography Security Exception Handling Optional Provider Dependency Block Dependency

41 Logging, obiettivi Log di attivita’ di business e operation verso varie destinazioni (DB,file ecc.) configurabili esternamente attraverso semplice file di configurazione Log di tipo tracing e’ importante per supportare attivita’ di debug in produzione Auditing per rendere piu’ efficace l’implementazione della security Gestione della destinazione, veicolazione e formattazione dei messaggi di eccezione Uso di filtri applicabili alla pipeline dei messaggi E’ indispensabile poter persistere messaggi di log su una vasta varieta’ di dispositivi di memorizzazione (DB, file, log di eventi ecc..)

42 Logging Application Block
Modello di log degli eventi semplificato Tipizzato, schema estendibile Basato su System.Diagnostics Basato sulla configurazione – e’ possibile decidere cosa includere o escludere a runtime E’ possibile utilizzare oggetti compatibili con il meccanismo di .NET basato su TraceListener: EventLog, Database, Text File, MSMQ, , WMI, … custom Classi tracer permettono di indirizzare in maniera specifica eventi incapsulati

43 Novita’ nella release Basato su feature della namespace System.Diagnostics come TraceListener, TraceSource e CorrelationManager Semplifica il codice di EntLib, abilita ad una migliore integrazione con le funzionalita’ core di System.Diagnostics Lo stesso LogEntry puo’ essere riutilizzato in molte categorie Maggiore flessibilita’ e controllo del routing degli eventi/ abilitazione/disabilitazione Filtri “pluggable” ed estendibili Possono essere interrogati tramite apposita API per evitare costosi messaggi di log

44 Esempi di log Dim log As LogEntry = New LogEntry
log.Message = “Your message here…” log.Priority = 1 log.EventId = 100 log.Categories.Add("UI") log.Categories.Add("Debug") Logger.Write(log) // O se preferite in una sola riga ... Customer cust = GetCustomer(123); // Log di una istanza customer – cust.ToString() effettua il dump dell’istanza Logger.Write(cust, category, priority);

45 Enterprise Library for .NET Framework 2.0
Caching Data Access Logging Plug-in Config Helpers & Design Instrumen- tation Object Builder Core Cryptography Security Exception Handling Optional Provider Dependency Block Dependency

46 Accesso ai dati – nuove esigenze
Semplice ed efficiente modo per operare con i database piu’ comuni Trasparenza (astrazione) durante lo sviluppo per molteplici tipologie di database Modi per astrarre istanze logiche di database rispetto ad implementazioni concrete/fisiche di istanze di database Modo semplice per validare e configurare informazioni per database attraverso le impostazioni (configuration settings)

47 Data Access Application Block
Semplifica l’accesso alle API utilizzate piu’ frequentemente di ADO.NET attraverso l’uso di pattern che inglobano metodologie di best-practice Aumentata consistenza Con le dovute accortezze del caso e’ possibile scrivere codice cross-database Maggiore facilita’ d’uso Invocazione di una SP con una sola riga Gestione del “lifetime” delle connessioni al database Lavorare con stringhe di connessione soft-coded in file di configurazione o specificate nel codice

48 Data Access - Esempi Public Function GetProductsInCategory(ByRef Category As Integer) As DataSet ' Crea un oggetto di accesso al Database utilizzando un nome logico ' Questa informazione e’ mappata all’interno del file di configurazione Dim db As Database = DatabaseFactory.CreateDatabase("Sales") ' Invocazione di una stored procedure con una sola riga! return db.ExecuteDataSet("GetProductsByCategory", Category) // Nota: connessione chiusa automaticamente da ExecuteDataSet End Function public Dataset GetProductsInCategory(string connectionString, int category) { // crea l’oggetto per Database direttamente dalla connectionstring SqlDatabase db = new SqlDatabase(connectionString); // Invocazione di una stored procedure con una sola riga! return db.ExecuteDataSet("GetProductsByCategory", category); // Nota: connessione chiusa automaticamente da ExecuteDataSet }

49 Nuovo in questa release
Utilizzo con o senza configurazione Sfrutta la sezione <connectionStrings> di .NET 2.0 Oppure, in alternativa, una propria connection string fornita API semplificata Usa il comando DbCommand di ADO.NET anzicche’ DBCommandWrapper Con provider ADO.NET 2.0 managed La classe GenericDatabase e’ compatibile con qualsiasi provider, incluso OLE-DB e ODBC (alcune funzionalita’ avanzate come il discovery dei parametri non sono disponibili) Utilizzare classi specializzate per db specifici per sfruttare tutta la API del particolare DB senza rinunciare al “plumbing” della classe GenericDatabase ed eventuali evoluzioni

50 Enterprise Library per .NET Framework 2.0
Caching Data Access Logging Plug-in Config Helpers & Design Instrumen- tation Object Builder Core Cryptography Security Exception Handling Optional Provider Dependency Block Dependency

51 Scenari di Caching Supponiamo di creare una applicazione smart client che usa informazioni parcheggiate in locale per operazioni offline Stiamo sviluppando una applicazione che deve usare dati che “sopravvivono” al restart della stessa applicazione Nota: la cache di ASP.NET (System.Web.Caching) puo’ essere utilizzata in molteplici tipologie di applicazioni e rappresenta un’ottima scelta per applicazioni che non devono persistere informazioni di cache nel tempo

52 Caching Application Block
Mette a disposizione una modalita’ di cache flessibile ed estensibile che puo’ essere utilizzata in molti layer applicativi Supporta tecnologie di storage basati su database, isolated storage ecc. permettendo la rilettura delle informazioni di cache anche al riavvio delle applicazioni Facile da usare Semplice da configurare, usando il tool di configurazione della Enterprise Library (Enterprise Library Configuration Tool) E’ Thread-safe Assicura che lo state della cache in-memory e di backup persistente (disco, db, isol. Storage) venga acceduto con tecniche di sincronizzazione

53 Enterprise Library per .NET Framework 2.0
Caching Data Access Logging Plug-in Config Helpers & Design Instrumen- tation Object Builder Core Cryptography Security Exception Handling Optional Provider Dependency Block Dependency

54 Scenari di crittografia
Abbiamo bisogno di cifrare dati usando chiavi simmetriche prima di salvare I dati in un database e decriptare al momento della lettura Abbiamo bisogno di cifrare informazioni (senza usare chiavi) sulla medesima macchina Abbiamo la necessita’ di ricavare un hash da una password da persistere in un database e confrontare tale hash con un valore di hash fornito da un utente senza persistere l’intera password

55 Cryptography Application Block
Rende le proprie applicazioni piu’ sicure Con un approccio semplificato permette di realizzare scenari di crittografazione Maggiore semplicita’ Permette di operare sia su stringhe che su byte (stream) CreateHash CompareHash EncryptSymmetric DecryptSymmetric Maggiore integrazione Supporta tutti gli algoritmi di cifratura “out of the box”, o i propri custom Supporta le DPAPI per cifratura “keyless” sulla stessa macchina (single machine) Algoritmi e chiavi possono essere gestite attraverso il solito tool di configurazione

56 Enterprise Library for .NET Framework 2.0
Caching Data Access Logging Plug-in Config Helpers & Design Instrumen- tation Object Builder Core Cryptography Security Exception Handling Optional Provider Dependency Block Dependency

57 Scenari di sicurezza Autorizzazione degli utenti
Utilizzando uno o piu’ meccanismi di sicurezza Abbiamo bisogno di fare cache di informazioni di autenticazione o autorizzazione per la durata di una sessione di logon Nota: le versioni precedenti della Enterprise Library Security Application Block supportava autenticazione, profili e ruoli. Queste feature vengono ora supportate attraverso le classi di Membership e Profile e pertanto sono state rimosse, come implementazione, dall’Application Block

58 Security Application Block + ASP.NET
Incapsula attivita’ di sicurezza comuni Deve rappresentare il modo comune per esigenze di sicurezza Riduce al minimo il codice necessario per la sicurezza Incapsula tecniche di best practice di prim’ordine per la sicurezza applicativa Authorization Rule Provider Authorization Factory IAuthorization Provider AzMan Authorization Provider Security Cache Factory ISecurity Cache Provider Caching Store Provider Caching Application Block Client Code ASP.NET ActiveDirectory Membership Provider Membership Membership Provider Sql Membership Provider Profile Profile Provider Sql Profile Provider

59 Migrazione da versioni precedenti
Ehem: Questa release NON e’ al 100% compatibile con la precedente release di Enterprise Library Il formato dei file di configurazione e’ cambiato e tutte le configurazioni vanno rifatte con l’apposito tool Le modifiche alla API sono poche e l’upgrade e’ veloce e semplice Eccezioni: Non esiste piu’ il Configuration Application Block  si usa System.Configuration Provider Authentication, Role e Profile nel Security Application Block  rimappano sui rispettivi provider di ASP.NET La guida di migrazione e’ inclusa nei documenti e negli esempi

60 Risorse Enterprise Library :
Iscrivetevi alla Enterprise Library Community: Blog del team di Enterprise Library:

61


Scaricare ppt "Architectural Patterns Enterprise Library for NET Framework 2.0:"

Presentazioni simili


Annunci Google