Date post: | 01-May-2015 |
Category: |
Documents |
Upload: | calogera-brunelli |
View: | 217 times |
Download: | 3 times |
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
AgendaAgenda
Smart ClientSmart Client
IntroduzioneIntroduzione
Modello di programmazioneModello di programmazione
Host ControlsHost Controls
Action PaneAction Pane
Data BindingData Binding
InfopathInfopath
OutlookOutlook
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
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)
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
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.
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
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
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)
Introduzione a VSTO 2005Introduzione a VSTO 2005Introduzione a VSTO 2005Introduzione a VSTO 2005
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
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)
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
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
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
Host ControlsHost ControlsHost ControlsHost Controls
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
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)
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
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;;
}}
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
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
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
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
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
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
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
© 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.