AOP targato Microsoft?

Elementare Watson.. basta usare l'Enterprise Library 3 smile_omg.

Proprio così. E' dalla versione 2 dell'EntLib che cerco di usarla, di sfruttarla, di studiarla. Ho provato ad approfondirla e proporla più di un anno fa all'interno di un progetto: volevo usare sia il Data che il Cache Application Block (a dir la verità anche il Log), maggiormente come facade, come semplificazione dello sviluppo per gestire argomenti non così semplici (la cache sui dati e l'accesso ai dati specialmente per i prog più junior). Però usarla semplicemente come facade era riduttivo, molto meglio sfruttare un Application Block come Aspetto (o funzionalità trasversale al sistema).

Con la nuova versione (Enterprise Library 3) ci sono state molte novità e per me, una delle più importanti, ma meno considerata, è stata l'aggiunta di un nuovo Application Block: il Policy Injection Application Block. Direi che il nome la dice già lunga..

Alle volte maledico la mia abitudine ad avere tante finestre aperte contemporaneamente sulla macchina e mai nessuna a pieno schermo.. Eh si, perchè quello che per me dovrebbe essere/diventare il vero cuore dell'EntLib, quello che coordina e gestisce tutti gli altri, essendo l'ultimo arrivato l'hanno ficcato in fondo alla documentazione.. smile_thinking Ma dimmi te, perdermi le cose per uno scroll !!!smile_confused

Tornando alla EntLib...

Il Policy Injection Application Block (d'ora in poi lo chiamo PIAB altrimenti perdo 6 post solo per scrivere il nome) aiuta nella separazione della logica di business dai "cross cutting concerns" alias Aspetti, ovvero tutte quelle funzionalità che interessano tutti, o quasi, gli oggetti/attori che compongono il nostro sistema, dando la possibilità di definire in maniera dichiarativa le policies e i metodi/oggetti su cui agire.

In poche parole il PIAB, ci permette di definire del codice che verrà eseguito prima e dopo i componenti delle nostre applicazioni, secondo uno schema come il seguente:

 

Come si può vedere, ogni policies ha una pipeline, una serie di handlers che puntano ad altrettanti metodi/oggetti che contengono l'implementazione della policy e che verranno eseguiti prima (o dopo) il metodo/oggetto su cui si è deciso di applicare l'aspetto.

Questo, a grandissime linee, il funzionamento del PIAB che andrò sicuramente ad approfondire.. smile_wink

 

Print | posted on mercoledì 10 ottobre 2007 16:24