Marco Russo

.NET, Business Intelligence e dintorni

News

Windows Developer Conference 2012

Torino Technologies Grou

Corsi

Libri

Miei blog in inglese

Archives

October 2003 - Posts

CLI306 - Data binding con Avalon
Una delle caratteristiche di Avalon è la possibilità di definire entità di interfaccia utente che possiedono "nativamente" il concetto di Data Binding. Tale binding può essere bidirezionale: il concetto, in generale, è di associare una proprietà di un oggetto (interfaccia utente) con una proprietà diversa di un altro oggetto (fonte dati, o altro oggetto di interfaccia utente), nel senso che qualsiasi modifica va a modificare la proprietà della controparte.
Ci sono alcuni aspetti che non mi sono chiari: dovrò fare delle prove per capire se l'aggiornamento di alcune entità è provocato dalla "rilettura" di proprietà della fonte dati che potrebbero essere state modificate a fronte di una modifica precedente, o se invece ogni rendering dell'interfaccia utente provoca la rilettura delle proprietà "collegate" con il data binding. Ci sono parecchie implicazioni di performance rispetto all'implementazione che poi le proprietà devono avere.
Un accenno interessante è la possibilità di collegare una fonte dati ADO.NET (qui in particolare si parla di Sql Server) per effettuare un aggiornamento anche asincrono. Se questo significa che si può fare a meno di preoccuparsi dei problemi di sincronizzazione rispetto ai thread di interfaccia utente... questo è da vedere. Nella demo di Don Box e Chris Anderson di questa mattina era necessario sincronizzare come si fa per Windows Forms anche con Avalon, ma non è detto che debba essere così definitivamente (visto il nuovo motore grafico alcuni problemi che esistono per Windows Forms potrebbero sparire, visto che non c'è più un legame così stretto con Win32...).
La conclusione è di usare Windows Forms fino a che Avalon non sarà disponibile: il binding di Windows Forms (IBindingList) è supportato anche da Avalon.
DAT408 - Costruire un client Analysis Services (in Yukon)
Sessione incentrata su ADOMD.NET usato in C#. A differenza di quanto avviene con Analysis Services 2000, mi sembra che il modello di ADOMD.NET supporti tutti i metadati senza dover ricorrere a una lettura dello schema attraverso una connessione "relazionale" come avviene con Analysis Services 2000.
Delle nuove funzionalità di Yukon, le più significative sono la possibilità di generare dei cubi basati su più tabelle dei fatti, di poter raggruppare le misure e di poter definire i Key Performance Indicator (KPI), che consentono di esprimere valori relazionati con obiettivi (es. budget) definendo a livello di metadati quale deve essere la visualizzazione da fare in termini di interfaccia utente (per esempio un termometro piuttosto che una freccia, e così via).
L'espressione associata allo stato è diversa da quella associata al valore del KPI così come del suo obiettivo (goal); analogamente esiste un'espressione per generare un valore di trend. Tutti questi valori sono espressioni MDX; il risultato è utilizzato per selezionare il tipo di elemento grafico da visualizzare, secondo la modalità selezionata precedentemente.
Da notare infine la possibilità di definire query MDX parametriche attraverso ADOMD.NET. Purtroppo non ci sono demo sulla parte di Data Mining, di cui viene citata la presenza di molti nuovi algoritmi. Non c'è neanche una sessione dedicata all'argomento. Domani andrò in pellegrinaggio all'Ask the Experts dedicato...
Blog dal team di sviluppo di Yukon
Da non perdere per chi vuole saperne di più su Yukon: http://yukonblog.sqlteam.com/.
Link: http://yukonblog.sqlteam.com/
Aperto Longhorn Developer Center (e altri link su MSDN)
Da oggi è aperto il Longhorn Developer Center su MSDN.
Gli articoli già presenti sono gli stessi forniti in un'edizione cartacea speciale di MSDN Magazine ai partecipanti di PDC.
Ma attenzione: ci sono altri link freschi freschi:
Novità da PDC
Visual Studio .NET 2003 for Enterprise Customer

Link: http://msdn.microsoft.com/longhorn/
ARCL02 - Individuare errori con FxCop
FxCop è in grado di trovare molti errori rispetto a regole/convenzioni di programmazione definiti all'interno dello stesso FxCop ma anche estendibili.
Questa sessione presenta come FxCop possa trovare anche bug più "sottili", come il non rispettare il pattern implementativo di una proprietà che restituisce un singleton.
Altro tema affrontato è quello dell'evoluzione nel tempo delle API del Framework. Uno dei problemi è l'interfaccia ISerializable, che non consente di modificare molto la classe mantenendo la compatibilità. E' qualcosa che viene risolto da Whidbey, ma che non risolve i problemi per i componenti che devono essere compatibili con .NET 1.0 e 1.1.
Test importanti da effettuare per un'applicazione:
  • Serializzazione
  • COM Interop
  • Locale (funzioni di conversione che devono andare anche con impostazioni internazionali diverse)
  • Utenti NT (l'applicazione deve funzionare correttamente anche con un utente che non è amministratore locale della macchina)
  • Usare DateTime.UtcNow invece di DateTime.Now per confrontare due date (se si cambia il fuso orario o entra in vigore l'ora legale, la differenza tra due letture viene erroneamente falsata).
Autocritica di Microsoft su errori fatti in .NET 1.0 e/o 1.1. Nomi delle classi non molto comprensibili (come StreamWriter), restituire il tempo col fuso orario locale per DateTime (vedi problema segnalato nell'elenco precedente), altre cose che si possono vedere anche nelle slide.
Comprare su Amazon con Longhorn
Amazon ha presentato un client alternativo al Web basato su Longhorn. Usando i Web Service esistenti, l'applicazione offre all'utente un'esperienza completamente diversa dal Web per comprare su Amazon. La grafica e l'animazione la fa da padrone. Qualcuno potrebbe pensare che con Flash si potrebbe fare qualcosa di analogo, e magari è vero, non sono esperto di Flash. Sicuramente, però, i servizi di gestione dei dati in locale (è evidente che c'è una forte cache locale dei dati) sono determinanti per le prestazioni, non so quanto ci siano servizi di questo tipo su Flash.
L'aspetto più importante, però, è un altro: Amazon fa leva sull'infrastruttura esistente, che usa i Web Service in modo pervasivo per accedere a tutte le informazioni disponibili: non solo consultazione del catalogo, ma anche track order, carrello, ecc. - in altre parole, la demo è una demo ma l'infrastruttura esistente consente di realizzarla. Con tutta la grafica vista, l'unico dubbio che ho sono le prestazioni in uno scenario reale di connettività Internet, ma stiamo vedendo pezzi di futuro, dove si assume una banda media disponibile maggiore di quella attuale.
Nuovi editor per il futuro da Adobe
Interessante demo di Adobe per un editor di interfaccia utente in grado di sfruttare le capacità offerte da Longhorn. Il problema evidente è che in un mondo vettoriale tutte le modalità di editing a cui siamo abituati non sono più adeguate.
Ci vuole qualcosa di nuovo, ci stanno lavorando e... avete presente gli effetti che si vedono alla televisione (anzi, al cinema) quando qualcuno visualizza dei dati con interfacce utente molto dinamiche e animate dove anche gli elementi statici arrivano sul video come in una presentazione di PowerPoint? Bene, la definizioen di questa interfaccia che genera il codice relativo per Avalon è un mondo nuovo. Il tutto funziona (ok, è una demo). Dire che è impressionante è diminutivo.
Keynote di Jim Allchin
L'erede di Win32 si chiama WinFX. Costruito sul Framework che fornisce compatibilità col passato... ma ormai è ufficiale: Win32 è (sarà) legacy!
Attenzione, non si tratta di Win64 rinominato, ma proprio di qualcosa di nuovo.
Forse, per descrivere quello che succede, è utile fare un parallelo: .NET sta a COM come WinFX sta a Win32. Si cambiano le fondamenta per avere una base più solida, ampia e coerente per costruire soluzioni che sfruttano meglio le capacità dell'hardware e i servizi evoluti che la piattaforma mette a disposizione.
Funzionalità principali offerte dai servizi di base:
  • ClickOnce
  • No reboots
  • Software Update Services
  • Reboot veloce attraverso memoria non volatile (basterà un hard disk o ci vorrà nuovo hardware?)
  • Verifica driver, monitor dell'hardware
  • Capacità di sfruttare meglio l'hardware (specie schede grafiche 3D e alta risoluzione
  • Security: c'è una slide con una ventina di punti (non scendo in dettagli ora)
Sulla Security Jim Allchin ha detto che con LongHorn sarà sfruttata la capacità di sfruttare la capacità del processore di marcare come "non eseguibile" una pagina di memoria. In effetti questo sarebbe possibile anche ora, ma è il sistema operativo a non supportare questa capacità, non è colpa dei processori attuali (come mi è sembrato di capire dalle parole di Allchin).
Avvertenza: Microsoft non ha mai distribuito del codice in stato così embrionale. Le prestazioni sono assolutamente basse. Tanto per mettere in guardia sul non fare assunzioni su come sarà il prodotto finale (a parità di hardware).
L'interfaccia utente ha un modello unificato di presentazione. Applicazioni Web, Desktop e Media (termine usato per applicazioni come animazioni, grafica, media, credo includa anche i giochi), che supporta una modalità di programmazione dichiarativa (di questo parlerò approfonditamente in altri post).
Il modello grafico è vettoriale e non più basato su bitmap: questo spiega come si affronta la gestione di monitor ad alta densità senza rendere "minuscoli" i font e le finestre visualizzate.
Il linguaggio di programmazione dichiarativa per l'interfaccia utente è XAML (è un nome in codice, potete scommetterci che lo cambieranno una o due volte).
Per spiegare Avalon intervengono Don Box e Chris Anderson. Usando EMACS Don Box parte da zero a scrivere un programma C#. Sicuramente qualcuno posterà il codice (cercherò più avanti). Notizia: il compilatore C# farà parte dell'installazione di Windows (e non più solo del SDK). Insieme al compilatore C# c'è anche MsBuild (sistema di build basato su XML).
Ma torniamo al modello vettoriale: nella demo presentata in pochi minuti si crea un programma "desktop" con un modello molto simile al code-behind di ASP.NET; il risultato finale è una finestra con una text box, un pulsante e un po' di testo statico, tutto ruotato di circa 10 gradi sopra uno sfondo con delle nuvole in movimento sul bitmap di sfondo di default di Windows XP. Considerando che l'applicazione è stata scritta da Don Box senza usare un editor grafico e vedendo le capacità di "riadattamento" native rispetto alla dimensione della finestra "native" nei servizi di sistema, si comprende come questa sia la base per costruire un paradigma piuttosto innovativo di programmazione su client avanzati.
Passiamo a WinFS: non si tratta solo di uno storage di memorizzazione, ma di un insieme di servizi sopra di esso come gli Information Agent e la Sincronizzazione.
Nota di colore: anche Jim Allchin (su richiesta di Don Box, evidentemente preparata) si mette alla tastiera e... per sfidare Don usa VI invece di EMACS!
La demo su WinFS permette di vedere come sia facile accedere ai servizi di ricerca, sfruttando anche i metadati associati ai documenti (come per esempio il nome dell'autore), ma non si va ovviamente molto a fondo su quello che c'è dietro le quinte.
L'argomento successivo è
Indigo
: presentati come web service avanzati, rappresentano i servizi di comunicazione di Windows. Sembra sempre più chiaro che Indigo sia legato più a Longhorn che a Whidbey. Sempre sotto il cappello di Indigo è presentato il namespace Collaboration, per fornire servizi peer-to-peer e di comunicazione coi "contatti" sotto varie forme (anche su questo argomento sarà il caso di approfondire con calma più avanti).
La demo di Indigo la posso riassumere in quattro parole: Remoting non ha futuro. La comunicazione anche all'interno della stessa macchina avviene con Indigo, che centralizza e unifica tutti i servizi di comunicazione.
La chiusura della keynote presenta un po' di scadenze:
  • prima metà 2004: Windows XP SP2, TabletPC Lonestar (una nuova versione)
  • seconda metà 2004: Longhorn Beta 1, Windows XP for AMD-64
Questo significa che la technical preview distribuita oggi vivrà quasi un anno. Sembra un tempo molto lungo, e a questo punto direi che pensare a Longhorn prima del 2006 diventa assolutamente irrealistico. Però possiamo aspettarci un lungo cammino nello sviluppo, dove il feedback degli sviluppatori che proveranno Longhorn sarà determinante per realizzare un prodotto ancora migliore. Come al solito, vedremo.
KeyNote Bill Gates
La keynote di Bill Gates si apre con la domanda su cosa c'è dopo le varie ondate "tecnologiche" (PC, client/server, Web) che abbiamo vissuto in questi anni.
La parte iniziale è incentrata sui problemi di security e affidabilità che per Microsoft sono diventate priorità assolute.
Link interessante: Bill ha fatto vedere dei dati su Quality Engineering provenienti da http://winqual.microsoft.com (che è un servizio sfruttabile anche per le proprie applicazioni, in teoria).
Una previsione del PC disponibile nel 2006 descrive specifiche come CPU a 4-6GHz (con 2 CPU), più di 2Gb di RAM, più di 1Gb di Hard Disk, GPU 3 volte più veloci delle attuali. La previsione di connettività a 1Gb è un po' meno condivisibile (sappiamo quanto c'è voluto per passare da 10Mb a 100Mb nelle aziende, mentre quella di 54Mbps per al wireless è più verosimile, vista la diffusione tutto sommato ancora limitata che abbiamo oggi (parlo per l'Italia, ovviamente).
Dopo un po' di considerazioni generali, finalmente si parla di Longhorn: sarà il rilascio più importante del decennio, che avrà un impatto paragonabile solo a quello avuto da Windows 95 (probabilmente maggiore, mi permetto di aggiungere). I nuovi servizi saranno: Avalon (presentazione), WinFs (dati) e Indigo (comunicazione), tutto basato sui Fundamentals (i servizi di base del sistema operativo).
Finalmente si arriva alla prima presentazione di Longhorn. Il primo impatto sono le presentazioni abitando su tutte le finestre un livello di trasparenza (con effetti di ombre sulle finestre sovrapposte che danno una buona idea di tridimensionalità. Incredibilmente funziona anche un'applicazione DOS (Visicalc). La parte destra dello scherma è usata per presentare informazioni e notifiche varie.
WinFS consente di avere i documenti "sparsi" in posti diversi (non ci si basa sull'avere tutto su una sola directory), così le ricerche possono essere molto più performanti. L'aspetto interessante è la possibilità di aggiungere dei metadati alle informazioni (documenti), con cui effettuare ricerche e raggruppamenti più flessibili. Ma la cosa più importante mi sembra il fatto che alcuni servizi, come la gestione dei Contatti e di tutte le informazioni correlate, sono ora parte della "piattaforma" (possiamo continuare a chiamarlo sistema operativo?) e non più di applicazioni specifiche, come Outlook.
Il futuro oggi
Prima dei miei post che riassumono la mattinata vissuta a PDC, un breve commento personale.
Oggi abbiamo visto il futuro. Forse mi aspettavo qualcosa di ancora più spettacolare ma... se considero le implicazioni di ciò che ho visto e immagino questa come la base di un nuovo modo di intendere l'interfaccia utente e in generale l'esperienza di interazione con un computer... insomma, in altre parole, considerando che questo è solo l'inizio, bene, l'inizio promette bene.
Una delle cose più importanti è comprendere come l'evoluzione debba essere unita alla semplicità, d'uso e di sviluppo, che ci porta verso nuovi paradigmi di programmazione. Certe semplificazioni, ogni tanto, mi/ci fanno storcere il naso, perché tentano di mascherare una complessità comunque esistente e con cui, presto o tardi, ci si trova a dover fare i conti. Ma quando la semplificazione riesce, consente di fare un salto qualitativo, perché consente di ignorare alcuni dettagli sottostanti senza per questo dover scendere a troppi compromessi rispetto a flessibilità, prestazioni e funzionalità.
Solo il tempo ci dirà se la strada è quella giusta, ma le condizioni esistono. Come è stato per il passaggio dalla programmazione "a menu" a quella "a eventi". Come è stato per il passaggio dall'interfaccia a carattere a quella grafica. Come è stato per il passaggio da un mondo a 16 bit mono-tasking a quello a 32 bit multi-tasking. Oggi siamo di fronte al passaggio dalla programmazione bitmap a quella vettoriale. Non è il primo tentativo. Potrebbe non essere l'ultimo. Sicuramente, fino a oggi, è il più importante. Sarà difficile tornare indietro.
Il futuro è ancora distante ma è anche a portata di mano.
Software community PDC
Questo è un messaggio di servizio per chi è a PDC: il software che si può scaricare su http://pdcvibe non funziona bene se usate un utente che non è amministratore locale della macchina.
Ho già segnalato il problema, per ora il workaround è quello di installare l'applicazione come amministratore (o con un utente abilitato a installare sw sul PC) e sempre come amministratore bisogna modificare i diritti della directory C:\Documents and Settings\All Users\Application Data\Microsoft\PDC2003, abilitando scrittura e modifica su directory e cartelle/files interni.
Visio SDK
Ho appena visto la presentazione di Visio SDK: uscirà nei primi mesi del 2004 e consente di sviluppare soluzioni basate sul motore grafico di Visio. Una specie di Office Web Component (OWC), per chi li conosce, perché il client usa un ActiveX. Come per gli OWC. è previsto un viewer che non ha funzionalità interattive ma solo di visualizzazione.
Questo significa che si può realizzare una soluzione di gestione di informazioni basate su un quadro sinottico facile da disegnare e da gestire come modello a oggetti, che non richiede licenze sul client (usando il viewer). A domanda, pare che si possa usare il componente per generare dei bitmap da mandare al client (soluzione ASP.NET, per esempio), anche se non ho capito bene se poi il componente di Visio si può installare e usare sul server (sempre che ciò abbia un senso, magari tecnicamente si può fare ma dal punto di vista della scalabilità potrebbero esserci grossi problemi).
Altro scenario interessante è l'uso di questo componente per realizzare la visualizzazione di informazioni di Business Intelligence (OLAP) sofisticate. Esempi di questo tipo compariranno nelle prossime settimane su MSDN (non hanno fatto in tempo a far vedere la demo durante la sessione).
Longhorn a 1900x1600 in plenaria
Sto vedendo come usare Visio ( o meglio il suo motore grafico) in un'applicazione Windows Forms.
Ma l'attesa per Longhorn aumenta: domani la keynote di Bill Gates proietterà Longhorn su schermi a 1900x1600, per dimostrare la capacità di gestire schermi ad alta densità. L'alta risoluzione arriva sui PC, senza dover rifare le applicazioni per trarne vantaggio. Ancora poche ore e vedremo se ne vale la pena...
Microsoft e Borland sempre più vicine
Fatti:
1) Borland è uno degli sponsor di PDC.
2) Jeremy Mazner, di Microsoft, farà demo di Longhorn alla Borland Conferece della settimana prossima, durante una keynote.

Considerazione/domanda: c'è dietro qualcosa in più di una semplice collaborazione commerciale?
Blog su Longhornblogs.com
Ho aperto un blog in inglese su Longhornblogs.com completamente dedicato a Longhorn. Cercherò comunque di postare le corrispondenti informazioni in italiano su questo blog.
More Posts « Previous page - Next page »