Introduzione ai
Visual Studio Tools For Office
2005
Fabio Santini
[email protected]
http://blogs.msdn.com/fabiosantini
Agenda
Smart Client
Introduzione
Modello di programmazione
Host Controls
Action Pane
Data Binding
Infopath
Outlook
Caratteristiche di uno Smart Client
Risorse locali
Sfrutta tutti i vantaggi dei software locali (es. Office) e
dell’ hardware (es. disk, memory, CPU, GPU, etc).
Connesso
E’ in grado di accedere alle informazioni aziendali e
di partecipare ai processi di business quando è
presente una connessione
Capacità Offline
Fornisce alcune funzionalità anche quando la
connettività non è presente o è il limitata
Caratteristiche di uno Smart Client
Installazione e aggiornamento intelligenti
Semplifica l’installazione e l’aggiornamento del
software
Sicurezza
Garantisce un miglior livello di sicurezza
Utilizzo dei dispositivi
Le applicazioni possono utilizzare particolari
caratteristiche dei dispositivi su cui girano , come per
esempio il riconoscimento della voce o della scrittura
(Tablet PC, Pocket PC,etc)
Introduzione
Modelli di integrazione di Office
“Integrazione Manuale”
Uso della clipboard
Ole Automation
Uso di Office come un server COM
Integrazione a livello di applicazione
Office add-ins
Integrazione Document-centric
Il codice gira dentro Office
Introduzione
Obiettivi di Visual Studio Tools for Office
Permettere agli sviluppatori di usare Microsoft Office
come una piattaforma di sviluppo di applicazioni
utilizzando Visual Studio e il .NET Framework.
Sicuro
Affidabile
Semplice da distribuire e da manutenere
Semplice da aggiornare
Velocizza lo sviluppo
Introduzione
Cosa sono i Visual Studio Tools for Office?
Porta .NET dentro Microsoft Office 2003
Il target sono gli sviluppatori professionisti
Fornisce un modello code-behind per
sviluppare applicazioni document–centric
utilizzando codice managed
Tipi di progetto: Word,Excel,Outlook e Infopath
Visual Basic for Applications (VBA) era l’unica
alternativa
NON sostituisce VBA
Introduzione
La storia di Visual Studio Tools for Office
La versione 2003 rilasciata October 2003
Tipi di progetto Visual Basic .NET e Visual
C#
Word document, Word template, e Excel
workbook
Fornisce un framework iniziale
Sicurezza
Integrazione
Introduzione
Novità nella versione 2005
Integrazione a design-time
Word e Excel “hostati” all’interno dell’ IDE
Supporto per i controlli managed
Migliorato il modello di programmazione
Progammazione delle viste
Progammazione basata su Schema
Actions task pane (Gianluca)
Nuove funzionalità di data caching (Fulvio)
“Isole di dati” accedibili lato server
ClickOnce deployment (Fulvio)
Introduzione a VSTO 2005
Microsoft.Office.Interop.Word vs
Microsoft.Office.Tools.Word
Il primo rappresenta il PIA (Primary Interop
Assembly) per effettuare la comunicazione COM con
il modello ad oggetti di Word
Lo stesso utilizzato per fare Automation
Il secondo rappresenta le estensioni dei Visual
Studio Tools per Office (Host)
non implementano ma si comportano come le
interfacce
es. Document eredita da BindableComponent ma si
comporta come IDocument
Le classi Host aggregano gli oggetti sottostanti
Microsoft.Office.Interop.Word vs
Microsoft.Office.Tools.Word
Come funziona ?
Chiamiamo CheckGrammar tramite l’oggetto
Document
L’host controlla se internamente contiene già un
puntatore valido all’oggetto reale
Se no, chiama Word e si fa dare il puntatore
all’oggetto corretto (ed effettua caching)
Chiama CheckGrammar sull’oggetto reale e ritorna il
risultato al chiamante
La maggior parte degli oggetti sono semplicemente
dei wrapper sulle componenti reali
Funziona allo stesso modo per gli eventi e per i
controlli (Host Controls)
Microsoft.Office.Interop.Word vs
Microsoft.Office.Tools.Word
In alcuni casi è necessario accedere
all’oggetto reale
es. Un metodo richiede in ingresso un
oggetto di tipo Range
non possiamo passare il nostro oggetto
perchè l’host control non implementa Range
utilizziamo la proprietà InnerObject
this.OggettoNamedRange.InnerObject
Controlli Excel
NamedRange
Estende gli oggetti Range e Name
ListObject
Simile al controllo DataGrid
Si espande automaticamente
XmlMappedRange
Espone lo schema presente nel documento
Data binding sui nodi
Chart
Controlli Word
Bookmark
XmlNode, XmlNodes
Espone lo schema presente nel documento
Data binding sui nodi
Host Controls
Managed Controls
Personalizzare i documenti tramite Controlli
La collection Controls contiene i riferimenti
ai controlli statici e dinamici
Statici: aggiunti a design time – non si
possono cancellare a runtime
Dinamici: aggiunti a runtime
I controlli dinamici aggiungono una
maggiore flessibilità ai documenti
Creare dinamicamente interfaccie UI
Segue il modello Windows Form
Managed Controls
Hosting dei controlli managed
I controlli Managed sono “hostati”
all’interno di un wrapper ActiveX
Un placeholder viene mostrato nel
documento se i controlli managed falliscono
il check di sicurezza
I controlli custom hanno più interfaccie
Primaria: Windows Forms control
Estesa: ActiveX wrapper (_OLEObject)
Managed Controls
Aggiungere un controllo dinamicamente
Metodo AddControl per controlli custom
Parametri: istanza del controllo, posizione, e un
nome univoco
Ritorna una istanza di _OLEObject
Microsoft.Office.Interop.Excel._OLEObject
Microsoft.Office.Interop.Word._OLEObject
Nuovi metodi per aggiungere controlli dinamici
AddButton, AddLabel, etc.
Accettano il nome del controllo e la posizione
Ritornano un riferimento al custom control
Controls.AddButton →
Microsoft.Office.Tools.Excel.Controls.Button
Managed Controls
Esempio di Custom Controls
using Microsoft.Office.Interop;
private void AddDynamicControl()
{
userControl1 customUserControl =
new userControl1();
Excel_OLEObject dynamicControl =
this.Controls.AddControl(
customUserControl, Range1, "dynamic");
dynamicControl.Top = 100;
customUserControl.UniqueProperty = true;
}
Actions Pane (Gianluca)
VSTO permette agli sviluppatori di utilizzare il Task Pane di
Office attraverso il Document Actions Pane
Semplice come costruire uno UserControl
Gli sviluppatori posso costruire l’interfaccia grafica del
proprio Actions Pane direttamente nel designer delle
Windows Forms
ISmartDocument ---- bye bye 
Data Binding in VSTO (Fulvio)
Gli sviluppatori posso fare binding di
una data source sugli Host Controls
La finestra di Data Source permette di
creare connessioni a database, Web
service, o oggetti di business
E’ possibile fare binding di singoli
elementi o di strutture complesse come
tabelle o stored procedure
InfoPath 2003 Toolkit for
Visual Studio 2005
XML
Fornisce un sistema flessibile per
recuperare informazioni (data
entry)
Fornisce un efficace modello per
connettere le informazioni e i
processi (Web service)
Fornisce agli sviluppatori un nuovo
modo di creare applicazioni Smart
Client per la gestione dei dati
XML
HTTP
SOAP
WSDL
UDDI
BizTalk
SQL
ERP
SAP
Add-ins di Outlook
Il runtime di VSTO supporta gli add-ins di Outlook
Fornisce uno shim supportato
More reliable add-in/host interaction
Migliorata la sicurezza e il modello di distribuzione
Supporto Design-time in Visual Studio
Template di progetto per gli add-ins di Outlook
Progetto di setup per gli add-ins di Outlook
Debugging completo da Visual Studio
Session Summary
VSTO è uno strumento per sviluppare soluzioni Smart
Client con Office 2003
permette di sfruttare al massimo il .NET Framework
per realizzare applicazioni basate su documenti con
Excel, InfoPath e Word
permette di sviluppare managed add-ins per Outlook
Riferimenti
Newsgroups e web forum
microsoft.public.vsnet.vstools.office
microsoft.public.officedev
microsoft.public.office.developer
http://forums.microsoft.com/msdn/ShowForum.aspx?
ForumID=16
Blogs
Team blog: http://blogs.msdn.com/vsto2
VSTO MVP Chris Kunicki’s blog:
http://www.officezealot.com/VSTO/
Chat e Webcast
http://www.microsoft.com/communities/default.mspx
Riferimenti
MSDN® Developer Centers
Office Developer Center
http://msdn.microsoft.com/office/understandin
g/vsto/default.aspx
Smart Client Developer Center
http://msdn.microsoft.com/smartclient/underst
anding/vsto/default.aspx
VSTO su MSDN
http://msdn2.microsoft.com/library/d2tx7z6d(
en-us,vs.80).aspx
© 2004 Microsoft Corporation. All rights reserved.
This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN
THIS SUMMARY.
Content created by 3 Leaf Solutions.
Scarica

Programming with VSTO - Center