Late as usual!

mercoledì, gennaio 21, 2004

Appunti da Windows Revolutions

Seconda parte più tecnica e - almeno ci proviamo - meno parziale, delle note scritte a margine dell'omonimo seminario Microsoft. Tralasciando qualche parte introduttiva che probabilmente mi sono perso causa il solito ritardo, ecco di cosa si è parlato...

SQL Server Yukon di Silvano Coriani
Ottima presentazione, partiamo subito dal codice, è C# sul nuovo Visual Studio Whidbey: c'è un nuovo template di progetto SQL Server che permette il deploy del risultato su un server direttamente come binario .NET (assembly).
è l'occasione per capire le possibilità offerte dalla programmazione per attributi:
  • marcando come SqlProcedure il metodo di una classe, al caricamento dell'assembly SQL Server sa che tale metodo deve essere reso disponibile come stored procedure
  • c'è la possibilità di memorizzare oggetti .NET marcandoli con l'attributo Serializable, e qui risulta evidente l'equivalenza fra attributi a livello di classe ed interfacce marker in Java
  • con l'attributo PrinciplePermissionAttribute applicato ad un metodo lo si rende eseguibile solo con determinate credenziali (Windows) anche qui in modo non dissimile da java.security; alla violazione del vincolo viene poi visualizzato uno stack trace pari pari a Java: questo primo contatto con C# mi dice che potrei iniziare a programmarlo da subito solo dimenticandone il nome...
Si parla poi di una generica ottimizzazione ottenuta sfruttando la possibilità di eseguire il codice .NET direttamente sul database, in modo analogo al codice Java nella JVM embedded in Oracle8i.
Interessante invece la possibilità di sostituire i trigger all'interno di classi .NET memorizzate su database con i metodi accessor obbligatori per le property: nell'esempio presentato tale funzionalità permette di far scattare l'encryption di una stringa appena inserita. Segue un discorso su early/late binding delle istanze che purtroppo presentato così rapidamente mi risulta un po' fumoso.
Per non terrorizzare gli utenti delle versioni precedenti, Yukon integra al suo interno anche le funzionalità dei fu Enterprise Manager e Query Analyzer, e fornisce una serie di database di esempio, dal noto NorthWind ad altri di dimensioni superiori. Infine le API DBO e la coincidenza fra tipi TSQL e .NET permettono una pacifica convivenza con il modello solo relazionale del SQL Server vecchio stile.

Windows Longhorn di Gabriele Castellani
Longhorn è il nome in codice della nuova versione dell'OS client di Microsoft e a suo dire il salto da XP è paragonabile a quello da 3.11 a 95.
Ad un primo sguardo salta all'occhio il look metallizzato che fa un po' deja-vu...
Particolare importanza ha nel mondo Windows la compatibilità verso il basso, qui Longhorn conserva le API di XP, ma inverte l'implementazione: se prima le nuove API erano fornite dal .NET Framework sopra le precedenti, ora le vecchie sono uno strato emulato sopra le nuove (ribattezzate WinFX, sperando che con un nome del genere non facciano il botto :D).
Segue un diagramma a layers delle componenti principali dell'OS. Alla base troviamo i generici Fundamentals, sopra di essi allo stesso livello:
  • Avalon per l'interfaccia grafica
  • WinFS il nuovo file system
  • Indigo per la gestione di rete e comunicazioni
Indigo fornisce un'astrazione per i meccanismi di comunicazione fra componenti, ad esempio fra comunicazione locale (IPC) e remota (Web Services), sperabilmente con la flessibilità necessaria a gestire i vincoli tipici di un'applicazione distribuita, come disponibilità e diversa capacità di calcolo delle macchine coinvolte, bandwidth della rete e granularità dei dati trasferiti.
WinFS invece si presenta come soluzione alle crescenti necessità di archivazione dati associando ai file dei metadata personalizzabili e costruendo su questi degli indici come si trattasse di un vero e proprio database. Non a caso si dice che tale funzionalità sia stata implementata integrando il motore di SQL Server.
Gli effetti per l'utente sono i seguenti:
  • integrazione con i database delle applicazioni (ex. Outlook)
  • possibilità di raggruppare i file in base a criteri specifici
  • astrazione dalla posizione fisica dei file per favorire un approccio task based
  • ricerche tramite query nel linguaggio proprietario OPath
Tutto potenzialmente interessante, anche se ad onor del vero i metadata sono già presenti da tempo nell'HFS+ di Apple seppur con un livello di sofisticazione inferiore, dove vengono usati per gestire le icone e le associazioni documento-programma, e già lì creano non pochi problemi di interoperabilità con file system diversi.
Avalon rappresenta invece il consolidamento delle API DirectX e DirectShow e finalmente la GUI usa direttamente le funzioni 3D delle schede video, eliminando di fatto la necessità di mischiare aree 2D e 3D sullo schermo. I colori guadagnano sull'RGB anche l'alpha channel per la trasparenza, filmati e GUI viaggiano allo stesso frame rate... insomma realtà consolidate su Mac OS X con Quartz Extreme, ma per Microsoft grande innovazione! Una voce dal pubblico fa notare che anche su Linux tali funzionalità sono presenti da tempo, ma lo speaker se la cava con una risata...
L'interfaccia grafica delle applicazioni viene definita tramite un linguaggio XML chiamato XAML, in modo da separare interfaccia da codice come già in ASP.NET. Il collegamento viene effettuato in modo analogo tramite code behind e c'è possibilità di simulare l'applicazione di una skin mediante sostituzione a runtime del documento XAML. Anche qui c'è una similitudine con i NIB di Mac OS X, caricati anch'essi dinamicamente, anche se essendo bundle di risorse non ho capito fino in fondo quanto ci sia di XML al loro interno...

VisualSudio.NET Whidbey di Fabio Santini
Presentazione molto orientata al programmatore del nuovo Visual Studio, ciò non è affatto un male: sono subito chiari i vantaggi, di cui molti derivati da tanti IDE Java, anche se visti con una tale velocità di risposta del sistema anche cose già straviste sembrano stupefacenti. Ad esempio:
  • GUI builder con ridimensionamento automatico finestre (LayoutManager da Java 1.1!)
  • una galleria ricchissima di code snippets suddivisa per categorie
  • modifiche evidenziate sull'editor come in Eclipse
  • debug con edit & continue, presente anche in Java nelle JVM con supporto hotswap
  • popup con correzioni suggerite in presenza di eccezioni
  • refactoring vari
  • installazione remota via web stile Java WebStart
Per l'esperienza dello speaker, l'accento rimane comunque su VB e scherzosamente viene presentata una suddivisione in fazioni pro-VB e pro-C#! Risulta fra l'altro incredibile ragionare su quante cose abbiano potuto aggiungere a questo povero linguaggio: oveload operatori, template, using, clausole try-catch-finally... ormai è pressochè impossibile riconoscerlo!

Al termine vengono ricordate le date dei prossimi seminari gratuiti, sono stati un po' rimaneggiati dal seminario, questo è l'ultimo aggiornamento dal sito Microsoft:
Posta un commento