[TechEd 2004] Rete wireless: era davvero così scadente?

Raffaele sostiene che la rete wireless sia stata tutt'altro che impeccabile: ma siamo sicuri che tutti coloro che lamentavano problemi non lo facessero per ricorrere al supporto tecnico? :-D

[TechEd 2004] Finale con botto

Prologo: giovedi 1/7/2004, ore 19 (in pratica, l'altro ieri). Sono al Community Lounge quando Christian Nagel (Microsoft Regional Director, MVP C#, speaker al TechEd e membro del team ThinkTecture... bel pedigree, non trovate?) si avvicina e mi dice: "Andrea, abbiamo un problema con la sessione BOF011: manca l'host (in pratica, il relatore, N.d.A.), te la senti?" Superati, nell'ordine: nodo in gola, aumento della sudorazione e attacco di panico, rispondo: "Certo, non c'è problema. Quando?" La risposta è: "Domani alle 12". Nuovo attacco di panico :-) ma ormai la parola è data.

Venerdi (oggi), ore 11:00. Mentre guardo i minuti scorrere, rifletto su ciò che sto per fare. Penso che è una opportunità eccezionale, (forse) irripetibile, che non capita tutti i giorni di avere un ruolo attivo in una conferenza con + di 5000 partecipanti (paganti)... E a questo punto ridefinisco totalmente il concetto di "ansia per cause professionali", affidandomi ad una veloce preghierina al Mago Herrera: in fondo, se ha fatto vincere scudetto e Coppa Campioni all'Inter può anche riuscire (da lassù) a non farmi fare una figura barbina. Alla fin fine arrivano le 12... Si inizia! Argomento: ".NET Coding Standards". 75 per parlare di: naming conventions, CLS, interoperabilità e di tool quali: FxCop, NUnit, NAnt e le corrispondenti controparti che troveremo in Whidbey (riuscirò mai a chiamarlo "Visual Studio 2005"?). Finita la sessione, scopro che avevo tenuto il cellulare acceso: se avesse suonato credo sarei stato colto da una irrefrenabile vergogna... Beh, non rimane che attendere l'esito del feedback espresso dai partecipanti per sapere se sono riuscito a limitare i danni. Che esperienza, ragazzi!

[TechEd 2004] Parlando di Aspect Oriented Programming

L'ultima sessione che ho seguito è stata la BOF013, intitolata "Aspect-Oriented Programming and .NET": il tema trattato è sicuramente interessante, e batte un terreno ancora quasi inesplorato dalla piattaforma .NET; sostanzialmente, gli "aspetti" forniscono la possibillità di definire del codice "genericamente utile" (logging, tracing, security, ...) in modo indipendente dal contesto di utilizzo, al fine di poterlo poi applicare in maniera poco invasiva al codice applicativo (i puristi della AOP mi perdonino la brutalità della definizzione). Il pensiero di molti di voi sarà sicuramente corso alle classi attributo: ebbene, esse non necessariamente rappresentano un esempio di AOP poichè è tipicamente un agente esterno (es: XmlSerializer) ad eseguire il codice in funzione degli attributi rilevati mediante l'uso delle tecniche di Reflection. AOP permette invece di "iniettare" direttamente il codice sottointeso dall'attributo. Esistono alcuni progetti indipendenti da Microsoft (e tipicamente a codice aperto) per dotare C# di capacità AOP, ma quello che mi è chiaro è che non esiste ancora una strategia architetturale ritenuta "ottimale" per farlo. Tra le tecniche usate, esiste quella della espansione "macro-like" (alla AspectJ, per intenderci), che lavora processando il codice prima che sia compilato, in modo da iniettare nel nostro sorgente anche il codice sottointeso dagli aspetti: è una strategia funzionale, ma che rende arduo il debugging, poichè i numeri di riga del codice applicativo non coincidono con quelli del codice effettivamente in esecuzione. La seconda strategia prevede l'uso dei ContextAttribute di .NET, che permettono di effettuare la interception dell'accesso ai membri esposti da un oggetto a runtime: questo è un approccio "a la MTS/COM+", e se ne temono gli impatti in termini di performance. Infine, l'ultima ipotesi risiede nell'uso delle capacità di Emitting di codice da parte di CodeDom per iniettare il codice degli aspetti: il vantaggio di questa tecnica è di poter lavorare sia a tempo di compilazione (come la prima strategia mostrata), sia a runtime. Permane comunque la difficoltà di adattare i tool (in primis il debugger) a disposizione per poter gestire questi scenari. E Microsoft che dice? La percezione è che stia osservando il fermento attorno ad AOP, in attesa di decidere se supportare ufficialmente questo modello. Se son rose...

Technorati Tags:

[TechEd 2004] Creare Web Services ad alte prestazioni

Christian Weyer (relatore della sessione) inizia dove Clemens ha terminato ieri: creare Web Services ad alte prestazioni significa innanzitutto abbandonare l'idea che essi implementino un mapping di RPC su HTTP. Anche se la funzionalità "Add Web reference" di Visual Studio può fare pensare che referenziare un WS sia semplicemente dire al CLR: "beh, raggiungi questo assembly tramite http", questo approccio è decisamente sbagliato, e dare la falsa convinzione che si stia invece usando degli oggetti. I Web Services sono basati su messaggi, ed è opportuno progettarne la struttura prima di inziare la codifica: ritrovarsi a piazzare attributi XmlIgnore solo per "correggere" le strutture da restituire al client (e magari evitare problemi di versioning) è un chiaro indice di errata progettazione. Dovremmo inoltre ridurre al minimo necessario il numero di invocazione di web method, inviando i dati necessari al server nella forma più aggregata a disposizione. Aggiungete la "classica" affermazione: "i WS sono una facciata, e non una applicazione. L'applicazione deve essere indipendente e disaccoppiata" ed avrete l'ennesima best practice in materia; nulla di nuovo, insomma, ma certe cose non si ripetono mai abbastanza :-)

[TechEd 2004] Tutta, ma proprio tutta la tecnologia MS a TechEd

E' proprio vero che a TechEd Microsoft mostra tutte le caratteristiche della propria piattaforma, bugs (Bunny) compresi! :-)

«luglio»
domlunmarmergiovensab
27282930123
45678910
11121314151617
18192021222324
25262728293031
1234567