Compartilhar via


Visual Studio Tool for Office 2005

L'altra notte ho preparato una presentazione sui Visual Studio Tools for Office per l'Office Developer Days.
La nuova versione dei VSTO è decisamente molto interessante, per tanti aspetti primo fra tutti l'integrazione con Visual Studio 2005. A parte la possibilità di lavorare utilizzando solo Visual Studio 2005 e vedere "hostati" al suo interno Word ed Excel, sono state aggiunte alcune funzionalità molto interessanti. Una delle più importanti secondo me è il data caching.

Immaginiamo di creare una soluzione che permetta agli utenti di compilare un documento reperendo qualche informazione da un database o da un webservice. Facciamo quindi una componente .NET che invoca il webservice e recupera questa informazioni (normalmente dei Dataset). A questo punto la componente .NET ha la possibilità di utilizzare questi dati per esempio per riempire delle celle di Excel o delle tabelle di Word. Scrivere una soluzione di questo tipo è molto semplice con VSTO ma richiede che l'utente utilizzi il documento sempre con una connettività presente. Di fatto non può utilizzare la soluzione in modalità offline. Per questo motivo è stato aggiunto il motore di caching dei VSTO.

In pratica basta decorare la classe .NET che utilizziamo per contenere i dati (es.Dataset) con l'attrivuto <Cached()>. Questo vuol dire che dopo aver recuperare i dati dal server questi vengono immagazzinati all'interno del documento office che se li porta dietro. Posso quindi aprire la soluzione in modalità offline e avere comunque i dati a disposizione. E posso anche una volta connesso utilizzare questi dati, cambiati dall'utente, per aggiornare la base dati. Questo meccanismo mi permette di scindere in modo netto i dati applicativi dalla loro rappresentazione grafica. Ma non è finita. Attraverso una classe che si chiama ServerDocument posso accedere alla cache di un documento senza aver installato Office. Ideale per una elaborazione dei documenti lato server. Potete scaricare le slide e il codice di esempio qui.

Comments