La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

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

Presentazioni simili


Presentazione sul tema: "Architectural Patterns Enterprise Library for NET Framework 2.0: Giuseppe Dimauro Microsoft MSDN Regional Director, Italy"— 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 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 Dove acquistare: Licenze individuali: 1 sviluppatore = 1 licenza 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 lItalia 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 limplementazione 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 duso e integrazione Originariamente progettato per.NET Framework 1.1. Primo rilascio a gennaio 2005, aggiornato giugno 2005

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

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 LAPI 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 Caching Security DataAccessLogging ExceptionHandling Enterprise Library for.NET Framework 2.0 Plug-in ConfigHelpers & Design Instrumen- tation Object Builder Cryptography Core Block Dependency Optional Provider Dependency

13 Caching Security DataAccessLogging ExceptionHandling Enterprise Library for.NET Framework 2.0 Plug-in ConfigHelpers & Design Instrumen- tation Object Builder Cryptography Core Block Dependency Optional Provider 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 dallapposita 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 Application Blocks or Custom Code IConfigurationSource SystemConfigurationSourceFileConfigurationSource SqlConfigurationSource app.config / web.config foo.config app.config / web.config Default ConfigurationSource = … System.Configuration File Watcher

21 Sorgenti di configurazione Attraverso luso 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 dallApplication Block

23 Esempi di sorgenti di configurazione // Use default source specified in the app.config / web.config file Database db1 = DatabaseFactory.CreateDatabase(Sales); // Use the specified source – you dont 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 Architettura Event-driven InstrumentationProviderClass(es) InstrumentationListenerClass(es) InstrumentationConfigurationSettings WMI PerfCounters EventLog Event ObjectBuilder Wires up Application or Block calls

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

29 Instrumentation - Esempio public class Database : IInstrumentationEventProvider { DbConnection OpenConnection() { // Do stuff // Do stuff instrumentationProvider.FireConnectionOpenedEvent(); instrumentationProvider.FireConnectionOpenedEvent(); } public object GetInstrumentationEventProvider() { public object GetInstrumentationEventProvider() { return instrumentationProvider; } return instrumentationProvider; }} [InstrumentationListener( typeof(DataInstrumentationListener), typeof(DataInstrumentationListenerBinder) )] public class DataInstrumentationProvider { public class DataInstrumentationProvider { [InstrumentationProvider("ConnectionOpene d")] public event EventHandler public event EventHandler connectionOpened; connectionOpened; public void FireConnectionOpenedEvent() { public void FireConnectionOpenedEvent() { connectionOpened(this, new EventArgs()); connectionOpened(this, new EventArgs());} internal class DataInstrumentationListener : InstrumentationListener { public DataInstrumentationListener(string instanceName, bool perfCountersEnabled, bool eventLogEnabled, bool wmiEnabled) : base(perf…, event…, wmi…) {} base(perf…, event…, wmi…) {} [InstrumentationConsumer( ConnectionOpened")] public void ConnectionOpened(object sender, EventArgs e) { if (PerformanceCountersEnabled) connectionOpenedCounter.Increment(); 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 loperazione: [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 allinterno 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 Core Application Block Factories Static Factory or façade Instance Provider Factory Enterprise Library Factory Factory Custom Block Objects Object Builder Strategies UserCode ConfigurationSource

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 LObject Builder non e coinvolto Linstrumentation non e automaticamente coinvolta ma puo essere aggiunta manualmente Esempio: Dim db As SqlDatabase = New SqlDatabase("server=(local)\SQLEXPRESS;database=EntLibQuic kStarts;Integrated Security=true")

36 Caching Security DataAccessLogging ExceptionHandling Enterprise Library per.NET Framework 2.0 Plug-in ConfigHelpers & Design Instrumen- tation Object Builder Cryptography Core Block Dependency Optional Provider Dependency

37 Exception Handling Obiettivi: Gestione delle eccezioni consistente in tutta lapplicazione 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 allapplicazione feature per la gestione delle eccezioni

38 Exception Handling Application Block Il meccanismo e stato semplificato il piupossibile 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 unaltra (rewrapping) Rimpiazzo di una eccezione con unaltra (replace) Creazione di azioni custom…

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

40 Caching Security DataAccessLogging ExceptionHandling Enterprise Library per.NET Framework 2.0 Plug-in ConfigHelpers & Design Instrumen- tation Object Builder Cryptography Core Block Dependency Optional Provider 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 limplementazione 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 dellistanza Logger.Write(cust, category, priority);

45 Caching Security DataAccessLogging ExceptionHandling Enterprise Library for.NET Framework 2.0 Plug-in ConfigHelpers & Design Instrumen- tation Object Builder Cryptography Core Block Dependency Optional Provider 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 laccesso alle API utilizzate piu frequentemente di ADO.NET attraverso luso di pattern che inglobano metodologie di best-practice Aumentata consistenza Con le dovute accortezze del caso e possibile scrivere codice cross-database Maggiore facilita duso 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 allinterno 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 loggetto 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 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 Caching Security DataAccessLogging ExceptionHandling Enterprise Library per.NET Framework 2.0 Plug-in ConfigHelpers & Design Instrumen- tation Object Builder Cryptography Core Block Dependency Optional Provider 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 unottima 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 Caching Security DataAccessLogging ExceptionHandling Enterprise Library per.NET Framework 2.0 Plug-in ConfigHelpers & Design Instrumen- tation Object Builder Cryptography Core Block Dependency Optional Provider 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 lintera 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 Caching Security DataAccessLogging ExceptionHandling Enterprise Library for.NET Framework 2.0 Plug-in ConfigHelpers & Design Instrumen- tation Object Builder Cryptography Core Block Dependency Optional Provider 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, dallApplication Block

58 ASP.NET 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 primordine per la sicurezza applicativa Client Code Security Application Block Membership Profile Membership Provider Profile Provider Authorization Factory Security Cache Factory IAuthorization Provider ISecurity Cache Provider Authorization Rule Provider Caching Store Provider AzMan Authorization Provider ActiveDirectory Membership Provider Sql Membership Provider Sql Profile Provider CachingApplicationBlock

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 lapposito tool Le modifiche alla API sono poche e lupgrade 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: Giuseppe Dimauro Microsoft MSDN Regional Director, Italy"

Presentazioni simili


Annunci Google