Introduzione ai Visual Studio Tools For Office 2005 Fabio Santini [email protected]...

28
Introduzione ai Introduzione ai Visual Studio Tools For Visual Studio Tools For Office 2005 Office 2005 Fabio Santini Fabio Santini [email protected] [email protected] http://blogs.msdn.com/fabiosantini http://blogs.msdn.com/fabiosantini

Transcript of Introduzione ai Visual Studio Tools For Office 2005 Fabio Santini [email protected]...

Page 1: Introduzione ai Visual Studio Tools For Office 2005 Fabio Santini fsantini@microsoft.com fsantini@microsoft.com .

Introduzione ai Introduzione ai Visual Studio Tools For Office Visual Studio Tools For Office 20052005

Fabio SantiniFabio [email protected]@microsoft.comhttp://blogs.msdn.com/fabiosantinihttp://blogs.msdn.com/fabiosantini

Page 2: Introduzione ai Visual Studio Tools For Office 2005 Fabio Santini fsantini@microsoft.com fsantini@microsoft.com .

AgendaAgenda

Smart ClientSmart Client

IntroduzioneIntroduzione

Modello di programmazioneModello di programmazione

Host ControlsHost Controls

Action PaneAction Pane

Data BindingData Binding

InfopathInfopath

OutlookOutlook

Page 3: Introduzione ai Visual Studio Tools For Office 2005 Fabio Santini fsantini@microsoft.com fsantini@microsoft.com .

Caratteristiche di uno Smart ClientCaratteristiche di uno Smart Client

Risorse localiRisorse locali

Sfrutta tutti i vantaggi dei software locali (es. Office) Sfrutta tutti i vantaggi dei software locali (es. Office) e dell’ hardware (es. disk, memory, CPU, GPU, etc).e dell’ hardware (es. disk, memory, CPU, GPU, etc).

ConnessoConnesso

E’ in grado di accedere alle informazioni aziendali e E’ in grado di accedere alle informazioni aziendali e di partecipare ai processi di business quando è di partecipare ai processi di business quando è presente una connessionepresente una connessione

Capacità OfflineCapacità Offline

Fornisce alcune funzionalità anche quando la Fornisce alcune funzionalità anche quando la connettività non è presente o è il limitataconnettività non è presente o è il limitata

Page 4: Introduzione ai Visual Studio Tools For Office 2005 Fabio Santini fsantini@microsoft.com fsantini@microsoft.com .

Caratteristiche di uno Smart ClientCaratteristiche di uno Smart Client

Installazione e aggiornamento intelligentiInstallazione e aggiornamento intelligenti

Semplifica l’installazione e l’aggiornamento del Semplifica l’installazione e l’aggiornamento del software software

SicurezzaSicurezza

Garantisce un miglior livello di sicurezza Garantisce un miglior livello di sicurezza

Utilizzo dei dispositiviUtilizzo dei dispositivi

Le applicazioni possono utilizzare particolari Le applicazioni possono utilizzare particolari caratteristiche dei dispositivi su cui girano , come per caratteristiche dei dispositivi su cui girano , come per esempio il riconoscimento della voce o della scrittura esempio il riconoscimento della voce o della scrittura (Tablet PC, Pocket PC,etc)(Tablet PC, Pocket PC,etc)

Page 5: Introduzione ai Visual Studio Tools For Office 2005 Fabio Santini fsantini@microsoft.com fsantini@microsoft.com .

IntroduzioneIntroduzioneModelli di integrazione di OfficeModelli di integrazione di Office

““Integrazione Manuale”Integrazione Manuale”

Uso della clipboardUso della clipboard

Ole AutomationOle Automation

Uso di Office come un server COMUso di Office come un server COM

Integrazione a livello di applicazioneIntegrazione a livello di applicazione

Office add-insOffice add-ins

Integrazione Document-centricIntegrazione Document-centric

Il codice gira dentro OfficeIl codice gira dentro Office

Page 6: Introduzione ai Visual Studio Tools For Office 2005 Fabio Santini fsantini@microsoft.com fsantini@microsoft.com .

IntroduzioneIntroduzioneObiettivi di Visual Studio Tools for OfficeObiettivi di Visual Studio Tools for Office

SicuroSicuro

AffidabileAffidabile

Semplice da distribuire e da manutenereSemplice da distribuire e da manutenere

Semplice da aggiornareSemplice da aggiornare

Velocizza lo sviluppoVelocizza lo sviluppo

Permettere agli sviluppatori di usare Microsoft Office come una piattaforma di sviluppo di applicazioni utilizzando Visual Studio e il .NET Framework.

Page 7: Introduzione ai Visual Studio Tools For Office 2005 Fabio Santini fsantini@microsoft.com fsantini@microsoft.com .

IntroduzioneIntroduzioneCosa sono i Visual Studio Tools for Office?Cosa sono i Visual Studio Tools for Office?

Porta .NET dentro Microsoft Office 2003Porta .NET dentro Microsoft Office 2003

Il target sono gli sviluppatori professionistiIl target sono gli sviluppatori professionisti

Fornisce un modello code-behind per Fornisce un modello code-behind per sviluppare applicazioni document–centric sviluppare applicazioni document–centric utilizzando codice managedutilizzando codice managed

Tipi di progetto: Word,Excel,Outlook e InfopathTipi di progetto: Word,Excel,Outlook e Infopath

Visual Basic for Applications (VBA) era l’unica Visual Basic for Applications (VBA) era l’unica alternativaalternativa

NON sostituisce VBANON sostituisce VBA

Page 8: Introduzione ai Visual Studio Tools For Office 2005 Fabio Santini fsantini@microsoft.com fsantini@microsoft.com .

IntroduzioneIntroduzioneLa storia di Visual Studio Tools for OfficeLa storia di Visual Studio Tools for Office

La versione 2003 rilasciata October 2003La versione 2003 rilasciata October 2003

Tipi di progetto Visual Basic .NET e Visual Tipi di progetto Visual Basic .NET e Visual C#C#

Word document, Word template, e Excel Word document, Word template, e Excel workbookworkbook

Fornisce un framework inizialeFornisce un framework iniziale

SicurezzaSicurezza

IntegrazioneIntegrazione

Page 9: Introduzione ai Visual Studio Tools For Office 2005 Fabio Santini fsantini@microsoft.com fsantini@microsoft.com .

IntroduzioneIntroduzioneNovità nella versione 2005Novità nella versione 2005

Integrazione a design-timeIntegrazione a design-time

Word e Excel “hostati” all’interno dell’ IDEWord e Excel “hostati” all’interno dell’ IDE

Supporto per i controlli managedSupporto per i controlli managed

Migliorato il modello di programmazioneMigliorato il modello di programmazione

Progammazione delle visteProgammazione delle viste

Progammazione basata su SchemaProgammazione basata su Schema

Actions task pane (Gianluca)Actions task pane (Gianluca)

Nuove funzionalità di data caching (Fulvio)Nuove funzionalità di data caching (Fulvio)

““Isole di dati” accedibili lato serverIsole di dati” accedibili lato server

ClickOnce deployment (Fulvio)ClickOnce deployment (Fulvio)

Page 10: Introduzione ai Visual Studio Tools For Office 2005 Fabio Santini fsantini@microsoft.com fsantini@microsoft.com .

Introduzione a VSTO 2005Introduzione a VSTO 2005Introduzione a VSTO 2005Introduzione a VSTO 2005

Page 11: Introduzione ai Visual Studio Tools For Office 2005 Fabio Santini fsantini@microsoft.com fsantini@microsoft.com .

Microsoft.Office.Interop.Word vs Microsoft.Office.Interop.Word vs Microsoft.Office.Tools.WordMicrosoft.Office.Tools.Word

Il primo rappresenta il PIA (Primary Interop Il primo rappresenta il PIA (Primary Interop Assembly) per effettuare la comunicazione COM con Assembly) per effettuare la comunicazione COM con il modello ad oggetti di Wordil modello ad oggetti di Word

Lo stesso utilizzato per fare AutomationLo stesso utilizzato per fare Automation

Il secondo rappresenta le estensioni dei Visual Il secondo rappresenta le estensioni dei Visual Studio Tools per Office (Host)Studio Tools per Office (Host)

non implementano ma non implementano ma si comportano come si comportano come le le interfacceinterfacce

es. Document eredita da BindableComponent ma si es. Document eredita da BindableComponent ma si comporta come IDocumentcomporta come IDocument

Le classi Host aggregano gli oggetti sottostantiLe classi Host aggregano gli oggetti sottostanti

Page 12: Introduzione ai Visual Studio Tools For Office 2005 Fabio Santini fsantini@microsoft.com fsantini@microsoft.com .

Microsoft.Office.Interop.Word vs Microsoft.Office.Interop.Word vs Microsoft.Office.Tools.WordMicrosoft.Office.Tools.Word

Come funziona ?Come funziona ?

Chiamiamo CheckGrammar tramite l’oggetto Chiamiamo CheckGrammar tramite l’oggetto DocumentDocument

L’host controlla se internamente contiene già un L’host controlla se internamente contiene già un puntatore valido all’oggetto realepuntatore valido all’oggetto reale

Se no, chiama Word e si fa dare il puntatore Se no, chiama Word e si fa dare il puntatore all’oggetto corretto (ed effettua caching)all’oggetto corretto (ed effettua caching)

Chiama CheckGrammar sull’oggetto reale e ritorna il Chiama CheckGrammar sull’oggetto reale e ritorna il risultato al chiamanterisultato al chiamante

La maggior parte degli oggetti sono semplicemente La maggior parte degli oggetti sono semplicemente dei wrapper sulle componenti realidei wrapper sulle componenti reali

Funziona allo stesso modo per gli eventi e per i Funziona allo stesso modo per gli eventi e per i controlli (Host Controls)controlli (Host Controls)

Page 13: Introduzione ai Visual Studio Tools For Office 2005 Fabio Santini fsantini@microsoft.com fsantini@microsoft.com .

Microsoft.Office.Interop.Word vs Microsoft.Office.Interop.Word vs Microsoft.Office.Tools.WordMicrosoft.Office.Tools.Word

In alcuni casi è necessario accedere In alcuni casi è necessario accedere all’oggetto realeall’oggetto reale

es. Un metodo richiede in ingresso un es. Un metodo richiede in ingresso un oggetto di tipo Rangeoggetto di tipo Range

non possiamo passare il nostro oggetto non possiamo passare il nostro oggetto perchè l’host control non implementa Rangeperchè l’host control non implementa Range

utilizziamo la proprietà utilizziamo la proprietà InnerObjectInnerObject

this.OggettoNamedRange.InnerObjectthis.OggettoNamedRange.InnerObject

Page 14: Introduzione ai Visual Studio Tools For Office 2005 Fabio Santini fsantini@microsoft.com fsantini@microsoft.com .

Controlli Excel Controlli Excel

NamedRangeNamedRangeEstende gli oggetti Estende gli oggetti RangeRange e e NameName

ListObjectListObjectSimile al controllo DataGridSimile al controllo DataGridSi espande automaticamenteSi espande automaticamente

XmlMappedRangeXmlMappedRangeEspone lo schema presente nel documento Espone lo schema presente nel documento Data binding sui nodiData binding sui nodi

ChartChart

Page 15: Introduzione ai Visual Studio Tools For Office 2005 Fabio Santini fsantini@microsoft.com fsantini@microsoft.com .

Controlli WordControlli Word

BookmarkBookmark

XmlNode, XmlNodesXmlNode, XmlNodes

Espone lo schema presente nel documento Espone lo schema presente nel documento

Data binding sui nodiData binding sui nodi

Page 16: Introduzione ai Visual Studio Tools For Office 2005 Fabio Santini fsantini@microsoft.com fsantini@microsoft.com .

Host ControlsHost ControlsHost ControlsHost Controls

Page 17: Introduzione ai Visual Studio Tools For Office 2005 Fabio Santini fsantini@microsoft.com fsantini@microsoft.com .

Managed ControlsManaged ControlsPersonalizzare i documenti tramite ControlliPersonalizzare i documenti tramite Controlli

La collection Controls contiene i riferimenti La collection Controls contiene i riferimenti ai controlli statici e dinamiciai controlli statici e dinamici

Statici: aggiunti a design time – non si Statici: aggiunti a design time – non si possono cancellare a runtimepossono cancellare a runtime

Dinamici: aggiunti a runtimeDinamici: aggiunti a runtime

I controlli dinamici aggiungono una I controlli dinamici aggiungono una maggiore flessibilità ai documentimaggiore flessibilità ai documenti

Creare dinamicamente interfaccie UICreare dinamicamente interfaccie UI

Segue il modello Windows FormSegue il modello Windows Form

Page 18: Introduzione ai Visual Studio Tools For Office 2005 Fabio Santini fsantini@microsoft.com fsantini@microsoft.com .

Managed ControlsManaged ControlsHosting dei controlli managedHosting dei controlli managed

I controlli Managed sono “hostati” I controlli Managed sono “hostati” all’interno di un wrapper ActiveXall’interno di un wrapper ActiveX

Un placeholder viene mostrato nel Un placeholder viene mostrato nel documento se i controlli managed falliscono documento se i controlli managed falliscono il check di sicurezzail check di sicurezza

I controlli custom hanno più interfaccieI controlli custom hanno più interfaccie

Primaria: Windows Forms controlPrimaria: Windows Forms control

Estesa: ActiveX wrapper (_OLEObject)Estesa: ActiveX wrapper (_OLEObject)

Page 19: Introduzione ai Visual Studio Tools For Office 2005 Fabio Santini fsantini@microsoft.com fsantini@microsoft.com .

Managed ControlsManaged ControlsAggiungere un controllo dinamicamenteAggiungere un controllo dinamicamente

Metodo AddControl per controlli customMetodo AddControl per controlli custom

Parametri: istanza del controllo, posizione, e un Parametri: istanza del controllo, posizione, e un nome univoconome univoco

Ritorna una istanza di _OLEObjectRitorna una istanza di _OLEObjectMicrosoft.Office.Interop.Excel._OLEObject Microsoft.Office.Interop.Excel._OLEObject

Microsoft.Office.Interop.Word._OLEObject Microsoft.Office.Interop.Word._OLEObject

Nuovi metodi per aggiungere controlli dinamiciNuovi metodi per aggiungere controlli dinamici

AddButton, AddLabel, etc.AddButton, AddLabel, etc.

Accettano il nome del controllo e la posizioneAccettano il nome del controllo e la posizione

Ritornano un riferimento al custom controlRitornano un riferimento al custom controlControls.AddButton → Controls.AddButton → Microsoft.Office.Tools.Excel.Controls.ButtonMicrosoft.Office.Tools.Excel.Controls.Button

Page 20: Introduzione ai Visual Studio Tools For Office 2005 Fabio Santini fsantini@microsoft.com fsantini@microsoft.com .

Managed ControlsManaged ControlsEsempio di Custom ControlsEsempio di Custom Controls

usingusing Microsoft.Office.Interop; Microsoft.Office.Interop;

private voidprivate void AddDynamicControl() AddDynamicControl(){{

userControl1 customUserControl = userControl1 customUserControl = newnew userControl1(); userControl1();

ExcelExcel_OLEObject_OLEObject dynamicControl = dynamicControl = this.Controls.AddControl( this.Controls.AddControl(

customUserControl, Range1, customUserControl, Range1, "dynamic""dynamic"););

dynamicControl.Top = 100;dynamicControl.Top = 100;customUserControl.UniqueProperty = customUserControl.UniqueProperty = truetrue;;

}}

Page 21: Introduzione ai Visual Studio Tools For Office 2005 Fabio Santini fsantini@microsoft.com fsantini@microsoft.com .

Actions Pane (Gianluca)Actions Pane (Gianluca)VSTO permette agli sviluppatori di utilizzare il Task Pane di VSTO permette agli sviluppatori di utilizzare il Task Pane di Office attraverso il Document Actions PaneOffice attraverso il Document Actions Pane

Semplice come costruire uno UserControlSemplice come costruire uno UserControl

Gli sviluppatori posso costruire l’interfaccia grafica del Gli sviluppatori posso costruire l’interfaccia grafica del proprio Actions Pane direttamente nel designer delle proprio Actions Pane direttamente nel designer delle Windows FormsWindows Forms

ISmartDocument ----ISmartDocument ---- bye bye bye bye

Page 22: Introduzione ai Visual Studio Tools For Office 2005 Fabio Santini fsantini@microsoft.com fsantini@microsoft.com .

Data Binding in VSTO (Fulvio)Data Binding in VSTO (Fulvio)

Gli sviluppatori posso fare binding di Gli sviluppatori posso fare binding di una data source sugli Host Controlsuna data source sugli Host Controls

La finestra di Data Source permette di La finestra di Data Source permette di creare connessioni a database, Web creare connessioni a database, Web service, o oggetti di businessservice, o oggetti di business

E’ possibile fare binding di singoli E’ possibile fare binding di singoli elementi o di strutture complesse come elementi o di strutture complesse come tabelle o stored proceduretabelle o stored procedure

Page 23: Introduzione ai Visual Studio Tools For Office 2005 Fabio Santini fsantini@microsoft.com fsantini@microsoft.com .

XMLHTTPSOAPWSDLUDDI

BizTalk SQL

ERP SAP

XML

InfoPath 2003 Toolkit forInfoPath 2003 Toolkit forVisual Studio 2005Visual Studio 2005

Fornisce un sistema flessibile per Fornisce un sistema flessibile per recuperare informazioni (data recuperare informazioni (data entry)entry)

Fornisce un efficace modello per Fornisce un efficace modello per connettere le informazioni e i connettere le informazioni e i processi (Web service)processi (Web service)

Fornisce agli sviluppatori un nuovo Fornisce agli sviluppatori un nuovo modo di creare applicazioni Smart modo di creare applicazioni Smart Client per la gestione dei datiClient per la gestione dei dati

Page 24: Introduzione ai Visual Studio Tools For Office 2005 Fabio Santini fsantini@microsoft.com fsantini@microsoft.com .

Add-ins di OutlookAdd-ins di Outlook

Il runtime di VSTO supporta gli add-ins di OutlookIl runtime di VSTO supporta gli add-ins di Outlook

Fornisce uno shim supportatoFornisce uno shim supportato

More reliable add-in/host interactionMore reliable add-in/host interaction

Migliorata la sicurezza e il modello di distribuzioneMigliorata la sicurezza e il modello di distribuzione

Supporto Design-time in Visual StudioSupporto Design-time in Visual Studio

Template di progetto per gli add-ins di Outlook Template di progetto per gli add-ins di Outlook

Progetto di setup per gli add-ins di OutlookProgetto di setup per gli add-ins di Outlook

Debugging completo da Visual StudioDebugging completo da Visual Studio

Page 25: Introduzione ai Visual Studio Tools For Office 2005 Fabio Santini fsantini@microsoft.com fsantini@microsoft.com .

Session SummarySession SummaryVSTO è uno strumento per sviluppare soluzioni Smart VSTO è uno strumento per sviluppare soluzioni Smart Client con Office 2003Client con Office 2003

permette di sfruttare al massimo il .NET Framework permette di sfruttare al massimo il .NET Framework per realizzare applicazioni basate su documenti con per realizzare applicazioni basate su documenti con Excel, InfoPath e WordExcel, InfoPath e Word

permette di sviluppare managed add-ins per Outlookpermette di sviluppare managed add-ins per Outlook

Page 26: Introduzione ai Visual Studio Tools For Office 2005 Fabio Santini fsantini@microsoft.com fsantini@microsoft.com .

RiferimentiRiferimentiNewsgroups e web forumNewsgroups e web forum

microsoft.public.vsnet.vstools.officemicrosoft.public.vsnet.vstools.office

microsoft.public.officedevmicrosoft.public.officedev

microsoft.public.office.developermicrosoft.public.office.developer

http://forums.microsoft.com/msdn/ShowForum.aspx?http://forums.microsoft.com/msdn/ShowForum.aspx?ForumID=16ForumID=16

BlogsBlogs

Team blog: Team blog: http://blogs.msdn.com/vsto2http://blogs.msdn.com/vsto2

VSTO MVP Chris Kunicki’s blog: VSTO MVP Chris Kunicki’s blog: http://www.officezealot.com/VSTO/http://www.officezealot.com/VSTO/

Chat e WebcastChat e Webcast

http://www.microsoft.com/communities/default.mspxhttp://www.microsoft.com/communities/default.mspx

Page 27: Introduzione ai Visual Studio Tools For Office 2005 Fabio Santini fsantini@microsoft.com fsantini@microsoft.com .

RiferimentiRiferimenti

MSDNMSDN®® Developer Centers Developer Centers

Office Developer CenterOffice Developer Center http://msdn.microsoft.com/office/understandinhttp://msdn.microsoft.com/office/understanding/vsto/default.aspxg/vsto/default.aspx

Smart Client Developer CenterSmart Client Developer Center http://msdn.microsoft.com/smartclient/understhttp://msdn.microsoft.com/smartclient/understanding/vsto/default.aspxanding/vsto/default.aspx

VSTO su MSDNVSTO su MSDN

http://msdn2.microsoft.com/library/http://msdn2.microsoft.com/library/d2tx7z6d(en-us,vs.80).aspxd2tx7z6d(en-us,vs.80).aspx

Page 28: Introduzione ai Visual Studio Tools For Office 2005 Fabio Santini fsantini@microsoft.com fsantini@microsoft.com .

© 2004 Microsoft Corporation. All rights reserved.© 2004 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.THIS SUMMARY.Content created by 3 Leaf Solutions.Content created by 3 Leaf Solutions.