Innovazioni della parte client

Introduzione

Parlando di applicazioni di produttività individuale impera spesso la filosofia del "good enough".

Quante volte abbiamo sentito dire frasi come "tutte le versioni di office sono uguali" oppure "per l'uso che ne faccio, è sufficiente avere qualunque versione di Office!"?

Ma tutte le versioni di office sono veramente uguali? Ma Microsoft Office System 2007 si differenzia veramente dalle versioni precedenti?

Nei prossimi 3 articoli proverò ad analizzare i principali aspetti di innovazione che propone la versione 2007.

Chissà che questo non aiuti a sfatare un po' di questi luoghi comuni?

Microsoft Office System come piattaforma per sviluppare applicazioni di business

La strategia di microsoft per la piattaforma Office system si può forse riassumere in 2 elementi di rilievo:

  • Trasformare Office da un insieme di strumenti di produttività individuale ad uno strumento integrato di collaborazione collettiva.
  • Trasformare Office da un insieme di applicazioni rigide ed indipendenti in una piattaforma distribuita su cui sviluppare applicazioni di business.

Nei paragrafi che seguono vedremo che questo è avvenuto:

  • Migliorando la parte client per semplificarne l'utilizzo, la personalizzazione ed integrazione con sistemi esterni.
  • Costruendo una piattaforma modulare e scalabile di componenti server per la gestione di contenuti, collaboration, e business intelligence.
  • Realizzando gli strumenti per la itegrazione e sviluppo di dati ed applicazioni di business.

Overview delle Innovazioni dalla parte client

La figura illustrata di seguito propone una sintesi delle innovazioni principali introdotte dalla parte client della piattaforma Office system 2007:

Alcuni elementi, comuni a tutte le applicazioni includono: User interface, il Nuovo file format, la Ribbon, gli application pane, il modello di estensibilità tramite add-ins.

La User Interface

la user interface è più intuitiva per gli utenti poco esperti e più efficiente per gli utenti esperti. Per esempio, i comandi + comuni hanno maggiore visibilità ed i comandi di formattazione agiscono in anteprima, prima di essere selezionati.

Di seguito mostro solo due esempi di questo: le antemprime dinamiche ed i enhanced tooltips per poi focalizzarmi sulle novità per lo sviluppo di applicazioni.

Con le antemprime dinamiche le applicazioni office mostrano l'effetto di un comando prima ancora della sua selezione. Nell'esempio mostrato in figura, Word mostra in anteprima l'effetto della applicazione di un formato all'immagine prima della sua selezione, nel pannello dei formati. Questo è più intuitivo poichè gli utenti possono comprendere meglio l'effetto del comando di formattazione ed è più efficiente poichè il confronto e la scelta dei formati può avvenire molto più velocemente.

Gli enhanced tooltips sono generati da office ogni volta che l'utente sofferma il mouse su un comando.

I tooltip contengono informazioni contestuali, anche di tipo grafico, sul significato del comando e, quando è disponibile, indicano la combinazione per eseguire il comando mediante la tastiera (gli shortcut keys).

La figura di seguito mostra gli enhanced tips rispettivamente per il comando insert caption e pase special.

Nuovo file format

Il nuovo Office System utilizza il formato standard "Open XML Format".

Il nuovo formato è più compatto perchè usa compressione GZIP, è più espressivo poiché può contenere informazioni strutturate; è più robusto poiché, se si corrompe una parte del documento, non tutte le informazioni sono compromesse infine, il nuovo formato è più sicuro poichè le informazioni riservate, le revisioni e le proprietà del documento possono essere gestite in modo separato e possono essere rimosse automaticamente (document sanitization).

Il formato è un Open Standard e pertanto permette interoperabilità e può essere acceduto senza bisongo di Office.

La immagine riportata di seguito descrive la struttura di un documento Word:

Il contenuto del documento può essere acceduto semplicemente come illustrato in figura:

Le Packaging API di .Net Framework 3.0 permettono di accedere ad un file OpenXML Format, le sue cartelle ed i file XML contenuti in esso.

In questo modo è possibile ottenere alcune informazioni come le proprietà del documento, commenti, schemi e dati WordML; per esempio, la figura di seguito mostra il file core.xml nella cartella docProps che contiene i metadati del documento (le properties):

Il nuovo Open XML Object Model disponibile con l'Microsoft SDK for Open XML Formats offre un object model di più alto livello rispetto alle packaging API e permette di accedere in modo più semplice ai contenuti veri e propri di documenti e spreadsheets. La figura ripostata di seguito illustra l'Open XML Object Model.

I documenti OpenXml Format possono ospitare dati XML di tipo custom. Pertanto una applicazione all'interno di Word o Excel può accedere a fonti dati o servizi esterni e salvare nel documento stesso le informazioni di business ottenute da essi.

I dati custom possono essere visualizzati nel documento tramite data binding.

Poichè il formato è basato su XML, informazioni sensibili possono essere criptate o rimosse automaticamente.

Grazie ad la Microsoft Office Compatibility Pack, i files nel nuovo formato, possono essere utilizzati, pur con funzioni limitate, anche dalle vecchie versioni di office (Office 2000, XP e 2003).

Ribbon

Menu e toolbar della vecchia User interface sono state rimpiazzate da una nuova barra di comandi di nome ribbon.

La Ribbon è utilizzata Access 2007, Excel 2007, PowerPoint 2007, Word 2007 ed è anche utilizzata in Outlook 2007, durante l'editing di un outlook item

I comandi sulla ribbon sono distribuiti su alcuni Tab e divisi per Gruppi.

Ai comandi più importanti sono associate immagini più evidenti.

Ribbon, Tab e gruppi possono essere personalizzati in modo dichiarativo tramite piccoli file XML o Application Add-Ins.

Le soluzioni esistenti personalizzavano menù e toolbars tramite il command bars object model. Pur essendo molto flessibile il command bar object model aveva alcuni importanti limiti architetturali; In particolare, il command bar object model offre un limitato supporto al versioning e, forse più importante, non mantiene memoria della associazione tra gli add-in e le personalizzazioni da essi generate.

Per questi motivi le personalizzazioni realizzate con il modello esistente sono relegate ad un particolare Add-Ins tab, dove office mantiene un gruppo menu commands ed un gruppo custom toolbars.

Per aggiungere un tab alla ribbon è sufficiente inserire un file XML, nel documento, come illustrato in figura:

Il file XML delle personalizzazioni deve essere associato al documento modificando il file .rels come illustrato in figura:

La personalizzazione nell'esempio, aggiunge alla ribbon il tab "Hello World Tab", il gruppo "Hello World Group", ed il bottone "Hello World" come illustrato in figura:

I controlli possono essere aggiunti anche a tab e gruppi esistenti; oltre i controlli di tipo Button è possibile aggiungere EditBoxes, Menus, ComboBoxes, DropDowns, SplitButtons, ToggleButtons, Labels, CheckBoxes e Galleries Le funzioni associate ai controlli possono essere sviluppate con VBA e .Net.

L'attributo startFromScratch="true" applicato al nodo ribbon nasconde tab e gruppi built in prima di applicare le personalizzazioni e permette di realizzare una ribbon completamente custom. Immagini e label per i controlli ed elementi per galleries e comboboxes possono essere generati dinamicamente specificando nel file XML i nomi delle funzioni per ottenerli.

Application Add-Ins

Visual Studio 2005 Tools for Office (VSTO 2005) permette di sviluppare personalizzazioni Document (e Template) level ed application level per office 2003 che possono essere anche utilizzate con Office 2007. Per Office 2007, VSTO 2005 non offre un supporto specifico ma permette personalizzazioni, come quelle per la ribbon, che si realizzano per implementazione di interfacce.

La personalizzazione di Office 2007 può avvenire con Visual Studio 2005 Tools for Office Second Edition (VSTO 2005 SE, anche Microsoft Visual Studio 2005 Tools for the 2007 Microsoft Office System) e con Visual Studio 2008 Tools for Office (VSTO v3), ora disponibile in versione Beta2 e che sarà rilasciato con Visual Studio 2008, il 27 febbraio 2008.

VSTOv3 introduce una nuova architettura che permette la esecuzione degli add-in in modo isolato, in AppDomain separati, con un modello di sicurezza basato su Code Access Security (CAS) che permette di specificare il tipo di operazioni ad essi permesse.

VSTO v3 permette di sviluppare graficamente document task panes, application panes, personalizzazioni della ribbon ed il loro setup che può avvenire con deployment automatico, tramite la tecnologia clickonce.

Lo schema di seguito illustra la architettura di un Add-in che accede ad informazioni di business tramite web services, memorizza dati locali al documento ed è scaricato automaricamente da un deployment server centralizzato.

Le personalizzazioni possono essere sviluppate a livello document/template ed a livello application per Office 2003 e 2007.

VSTO 2005 SE ha anticipato alcune delle funzioni della nuova architettura e, già ora, permette di sviluppare personalizzazioni application level per le principali applicazioni office 2003 e 2007 con un supporto non grafico per la personalizzazione della ribbon.

La figura di seguito mostra un document template, all'interno di Visual Studio 2008.

I placeholder all'interno del document template, sono degli host controls che specializzano il comportamento dei normali controlli delle applicazioni office per abilitare le funzioni di data binding, properties ed eventi aggiuntivi etc.

Il binding di un host control ad un campo di una DataTable avviene secondo il modello .Net con la seguente istruzione:

contentControl.DataBindings.Add("text", myDataset.myTable, "column");

I controlli di office e le loro proprietà sono comunque accessibili,da codice, tramite l'object model.

Office controls ed host controls supportano le properties LockContents e LockContentControl che ne regolano la modifica e cancellazione e supportano eventi di validazione e notifica del cambiamento.

In questo modo, i documenti di office possono essere veramente utilizzati con funzioni di data entry per le applicazioni, oltre che per semplice reporting.

Nella figura di seguito gli host controls sono legati alle colonne di una Datatable contenente l'elenco dei customers del database AdventureWorks.

L'esempio mostra anche un Document Task Pane con gli stessi dati.

Un Document Task Pane è semplice windows forms UserControl, aggiunto alla collection ActionPane.Controls del documento con la seguente istruzione:

this.ActionsPane.Controls.Add(customerPane);

Oltre i controlli di office e gli host controls, i documenti e panes di office possono ospitare Windows forms controls; Trascinamdo un Windows forms control in un documento, VSTO introduce nel documento un apposito ActiveX control dedicato ad ospitare il controllo Winform.

Per questo motivo è comunque raccomandabile limitare l'utilizzo dei controlli Winform alle funzioni che non sono realizzabili mediante controlli nativi.

La immagine di seguito mostra un controllo winform all'interno di un documento word:

Abbiamo visto che VSTOv3 offre anche un supporto grafico alla personalizzazione della ribbon.

La immagine di seguito mostra il Ribbon Visual Designer che permette di definire graficamente gruppi e comandi da includere in un Custom Tab o un Office Standard Tab.

Conclusioni

Con la versione 2007 office system ha introdotto innovazioni che nigliorano sensibilemnte la possibilità di sviluppo di applicazioni con la parte client di office:

  • Il formato OpenXML può ospitare dati di business strutturati (es. oggetti serializzati, dataset, XML) che possono essere acceduti senza bisogno istanziare le applicazioni client.
  • La Ribbon permette facilmente di inserire tab, gruppi e comandi o modificare quelli esistenti in modo dichiarativo (senza programmare).
  • Visual Studio Tools for Office ha migliorato il modello di esecuzione degli add-in ed ha reso semplice personalizzazioni a livello documento/template ed applicazione.
  • Visual Studio Tools for Office estende le capacità dei controlli di Office supportando DataBinding a dati di business ed un modello di eventi ricco.

Questo rende sempre più semplice utilizzare Office come parte delle proprie applicazioni di business, anche con funzioni di data entry oltre che per un tradizionale ruolo di reporting e visualizzazione.

Office System 2007, tuttavia, non è limitato alle sole applicazioni client ma include una parte server detta Microsoft Office System Server 2007 (MOSS 2007). MOSS 2007 è una piattaforma applicativa basata su Windows Sharepoint Services di Windows Server 2003 con funzioni di collaboration, content e document management, che si propone di integrare le applicazioni client, di produttività individuale, con le applicazioni di business vere e proprie.

Nei prossimi 2 articoli vedremo insieme le caratteristiche più interessanti di Windows Sharepoint Services e MOSS 2007.

Riferimenti

Ti interessa approfondire questi ed altri aspetti delle novità introdotte da Office System e Visual Studio Tools for office?

Ecco alcuni spunti per approfondimento:

Articoli

Articoli made in italy

Web Sites:

Virtual Labs

Blogs:

Testi

Workshop Material

Altre Risorse