scoprirete che su office non si può solo contare ma anche sviluppare
TRANSCRIPT
![Page 1: Scoprirete che su Office non si può solo contare ma anche sviluppare](https://reader034.vdocuments.site/reader034/viewer/2022051820/5542eb4b497959361e8b7a31/html5/thumbnails/1.jpg)
Scoprirete che su Office non si può solo contare ma anche sviluppare
![Page 2: Scoprirete che su Office non si può solo contare ma anche sviluppare](https://reader034.vdocuments.site/reader034/viewer/2022051820/5542eb4b497959361e8b7a31/html5/thumbnails/2.jpg)
Fabio [email protected]://blogs.msdn.com/fabiosantinihttp://playmobil.sts.winisp.net/default.aspxDeveloper & Platform Evangelism
Advanced Visual Studio Tool for Office 2005
![Page 3: Scoprirete che su Office non si può solo contare ma anche sviluppare](https://reader034.vdocuments.site/reader034/viewer/2022051820/5542eb4b497959361e8b7a31/html5/thumbnails/3.jpg)
AgendaTask PaneDocument Data IslandManaged ControlsDeploymentSecurity
![Page 4: Scoprirete che su Office non si può solo contare ma anche sviluppare](https://reader034.vdocuments.site/reader034/viewer/2022051820/5542eb4b497959361e8b7a31/html5/thumbnails/4.jpg)
IntroduzioneActionsPane
Fornisce un modello di programmazione in codice managed per il “Document Actions task pane”
Fondato sulle Windows FormsWindows Forms Designer
Contenitore per user controlsUn passo oltre lo SmartDoc SDK
L’interfaccia ISmartDocument implementata dietro le quinteIl mapping di uno schema XML non è più richiesto
![Page 5: Scoprirete che su Office non si può solo contare ma anche sviluppare](https://reader034.vdocuments.site/reader034/viewer/2022051820/5542eb4b497959361e8b7a31/html5/thumbnails/5.jpg)
Introduzione Benefici
Integrazione della UI con Word e ExcelControlli Windows Forms disponibili
Completamente .NET codeUtilizzo degli User controlsSviluppo riutilizzando tutte le conoscenze
Forte integrazione con Microsoft Visual Studio® 2005Sviluppo semplificatoUso del Data binding con i dati del documento
![Page 6: Scoprirete che su Office non si può solo contare ma anche sviluppare](https://reader034.vdocuments.site/reader034/viewer/2022051820/5542eb4b497959361e8b7a31/html5/thumbnails/6.jpg)
User Controls e ActionsPaneIntroduzione
UserControl disponibili in progetti Word e ExcelSemplici da creare
Simili alle Windows FormsUtilizzo completo dei controlli della toolbox
Facile da usare
Dim MyUserControl As New UserControl1
Private Sub ThisDocument_Initialize( _ ByVal sender As Object, _ ByVal e As System.EventArgs) Handles Me.Initialize
Me.ActionsPane.Controls.Add(MyUserControl)End Sub
![Page 7: Scoprirete che su Office non si può solo contare ma anche sviluppare](https://reader034.vdocuments.site/reader034/viewer/2022051820/5542eb4b497959361e8b7a31/html5/thumbnails/7.jpg)
Scenario di utilizzoGestione fatture
Gestire fatture collegate a databaseTecnologie utilizzate
Microsoft Excel – gestione dei calcoliXML Web service— gestione della comunicazioneSQL Server— database
ActionsPane di esempioMenu CustomDrop-down list per i datiI dati recuperati in realtime
![Page 8: Scoprirete che su Office non si può solo contare ma anche sviluppare](https://reader034.vdocuments.site/reader034/viewer/2022051820/5542eb4b497959361e8b7a31/html5/thumbnails/8.jpg)
Aggiungere uno User Controls al ActionsPane
![Page 9: Scoprirete che su Office non si può solo contare ma anche sviluppare](https://reader034.vdocuments.site/reader034/viewer/2022051820/5542eb4b497959361e8b7a31/html5/thumbnails/9.jpg)
ActionsPane Runtime ManipulationUsage and Benefits
Gestione dell’interfaccia graficaPosizioneDimensioneVisibilità
Preferenze di utilizzoImplementato con poco codice
![Page 10: Scoprirete che su Office non si può solo contare ma anche sviluppare](https://reader034.vdocuments.site/reader034/viewer/2022051820/5542eb4b497959361e8b7a31/html5/thumbnails/10.jpg)
Docking a destra per default Proprietà Anchor
Recupera o imposta a quale lato deve essere ancorato il containerI controlli posso ridimensionarsi con l’Actions paneValore:
AnchorStyles.NoneAnchorStyles.TopAnchorStyles.BottomAnchorStyles.LeftAnchorStyles.Right
ActionsPane Runtime ManipulationDocking and Anchoring
![Page 11: Scoprirete che su Office non si può solo contare ma anche sviluppare](https://reader034.vdocuments.site/reader034/viewer/2022051820/5542eb4b497959361e8b7a31/html5/thumbnails/11.jpg)
Posizionare più user controlOrdine
Valori:StackStyle.NoneStackStyle.FromTopStackStyle.FromBottomStackStyle.FromLeftStackStyle.FromRight
Esempio:
Actions Pane Run-time ManipulationPosizionamento
Actions PaneActions Pane
User Control 2User Control 2User Control 1User Control 1
User Control 1User Control 1
User Control 2User Control 2
Actions PaneActions Pane
(Default)(Default)StackStyle.NoneStackStyle.None
Me.ActionsPane.Controls.Add(MyUserControl)Me.ActionsPane.StackOrder = Microsoft.Office.Tools _ .ActionsPane.StackStyle.FromLeft
![Page 12: Scoprirete che su Office non si può solo contare ma anche sviluppare](https://reader034.vdocuments.site/reader034/viewer/2022051820/5542eb4b497959361e8b7a31/html5/thumbnails/12.jpg)
Actions Pane Run-Time Manipulation
![Page 13: Scoprirete che su Office non si può solo contare ma anche sviluppare](https://reader034.vdocuments.site/reader034/viewer/2022051820/5542eb4b497959361e8b7a31/html5/thumbnails/13.jpg)
L’ ActionsPane può essere usato per fornire informazioni basate sul contesto dell’utente e sulla posizione corrente all’interno del documentoUtilizzare uno Schema XML per fornire la strutturaShow/Hide dei controlli in risposta agli eventi ContextEnter/ContextLeave
ActionsPane Runtime ManipulationSmart Document ?
![Page 14: Scoprirete che su Office non si può solo contare ma anche sviluppare](https://reader034.vdocuments.site/reader034/viewer/2022051820/5542eb4b497959361e8b7a31/html5/thumbnails/14.jpg)
Smart Document con VSTO 2.0
![Page 15: Scoprirete che su Office non si può solo contare ma anche sviluppare](https://reader034.vdocuments.site/reader034/viewer/2022051820/5542eb4b497959361e8b7a31/html5/thumbnails/15.jpg)
Document Data IslandIntroduzione alle Data Island
Memorizza i dati all’interno del documentoPerchè fare cache dei dati nel documento?
Disponibili quando il client lavora offlineAccessibile a processi lato serverMemorizzare configurazioni
Supporto per il Data caching in Visual Studio Tools for Office
I campi marcati con l’attributo CachedI tipi possono implementare ICachedType per specializzare la modalità di serializzazioneLa classe ServerDocument class accede alla cache senza utilizzare Microsoft Word o Microsoft Excel
![Page 16: Scoprirete che su Office non si può solo contare ma anche sviluppare](https://reader034.vdocuments.site/reader034/viewer/2022051820/5542eb4b497959361e8b7a31/html5/thumbnails/16.jpg)
Document Data Island Esempio di Caching Data
[Cached()] CustomerDataSet customerDataSet;
void ThisDocument_Initialize(…) {
if (customerDataSet == null) {
customerDataSet = new CustomerDataSet(); dataAdapter.Fill(customerDataSet);
}
list1.DataSource = customerDataSet;}
![Page 17: Scoprirete che su Office non si può solo contare ma anche sviluppare](https://reader034.vdocuments.site/reader034/viewer/2022051820/5542eb4b497959361e8b7a31/html5/thumbnails/17.jpg)
Document Data IslandData richiesti dal Server
ASPX page
Data Island
User data
![Page 18: Scoprirete che su Office non si può solo contare ma anche sviluppare](https://reader034.vdocuments.site/reader034/viewer/2022051820/5542eb4b497959361e8b7a31/html5/thumbnails/18.jpg)
ASPX page
Updated data
Document Data Island Data inviati al Server
UpdatedData
Cache
![Page 19: Scoprirete che su Office non si può solo contare ma anche sviluppare](https://reader034.vdocuments.site/reader034/viewer/2022051820/5542eb4b497959361e8b7a31/html5/thumbnails/19.jpg)
Data Caching
![Page 20: Scoprirete che su Office non si può solo contare ma anche sviluppare](https://reader034.vdocuments.site/reader034/viewer/2022051820/5542eb4b497959361e8b7a31/html5/thumbnails/20.jpg)
Document Data Cache Utilizzare la classe ServerDocument
private void GetData(){
string user = Request.ServerVariables("AUTH_USER");
ExpensesDataset dsExpenses = new ExpensesDataset();
ExpensesDataAdapter.Fill(dsExpenses, user);ServerDocument doc = new
ServerDocument("expenses.xls");CachedDataItem cdi = doc.CachedData.
HostItems("ExpensesWorksheet"). CachedData("Expenses")
cdi.SerializeDataInstance(dsExpenses);doc.Save();doc.Close();Response.Write(doc);
}
![Page 21: Scoprirete che su Office non si può solo contare ma anche sviluppare](https://reader034.vdocuments.site/reader034/viewer/2022051820/5542eb4b497959361e8b7a31/html5/thumbnails/21.jpg)
Data Caching
![Page 22: Scoprirete che su Office non si può solo contare ma anche sviluppare](https://reader034.vdocuments.site/reader034/viewer/2022051820/5542eb4b497959361e8b7a31/html5/thumbnails/22.jpg)
Managed ControlsPersonalizzare 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 runtimeDinamici: aggiunti a runtime
I controlli dinamici aggiungono una maggiore flessibilità ai documenti
Creare dinamicamente interfaccie UISegue il modello Windows Form
![Page 23: Scoprirete che su Office non si può solo contare ma anche sviluppare](https://reader034.vdocuments.site/reader034/viewer/2022051820/5542eb4b497959361e8b7a31/html5/thumbnails/23.jpg)
Managed ControlsHosting 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ù interfacciePrimaria: Windows Forms controlEstesa: ActiveX wrapper (_OLEObject)
![Page 24: Scoprirete che su Office non si può solo contare ma anche sviluppare](https://reader034.vdocuments.site/reader034/viewer/2022051820/5542eb4b497959361e8b7a31/html5/thumbnails/24.jpg)
Managed ControlsAggiungere un controllo dinamicamente
Metodo AddControl per controlli customParametri: istanza del controllo, posizione, e un nome univocoRitorna 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 posizioneRitornano un riferimento al custom control
Controls.AddButton → Microsoft.Office.Tools.Excel.Controls.Button
![Page 25: Scoprirete che su Office non si può solo contare ma anche sviluppare](https://reader034.vdocuments.site/reader034/viewer/2022051820/5542eb4b497959361e8b7a31/html5/thumbnails/25.jpg)
Managed ControlsEsempio di Custom Controlsusing Microsoft.Office.Interop;
private void AddDynamicControl(){
userControl1 customUserControl = new userControl1();
Excel_OLEObject dynamicControl = this.Controls.AddControl(
customUserControl, Range1, "dynamic");
// Set coordinates through the Excel._OLEObject, // not through the Windows Forms control.
dynamicControl.Top = 100;customUserControl.UniqueProperty = true;
}
![Page 26: Scoprirete che su Office non si può solo contare ma anche sviluppare](https://reader034.vdocuments.site/reader034/viewer/2022051820/5542eb4b497959361e8b7a31/html5/thumbnails/26.jpg)
Using Dynamic Controls
![Page 27: Scoprirete che su Office non si può solo contare ma anche sviluppare](https://reader034.vdocuments.site/reader034/viewer/2022051820/5542eb4b497959361e8b7a31/html5/thumbnails/27.jpg)
DistribuzioneManifest e ClickOnce
Utilizza la tecnologia ClickOnceUso di un manifest (XML)Rilasciata con la nuova versione di .NET Framework e Visual Studio 2005
Fornisce una descrizione completa dell’applicazione
Indica quali DLL devono essere utilizzateInclude assembly collegatiDescrive la posizione degli assemblyNon usato per un’installazione locale
![Page 28: Scoprirete che su Office non si può solo contare ma anche sviluppare](https://reader034.vdocuments.site/reader034/viewer/2022051820/5542eb4b497959361e8b7a31/html5/thumbnails/28.jpg)
DistribuzioneAssociazione dei file
Separazione tra il documento, il codice e gli assembly
Il codice è parte del progetto Visual StudioSolo l’assembly viene distribuito con il documento
L’Assembly è “collegato” al documentoVSTO 2003: Custom propertiesVSTO 2005: Application manifest dentro il documentoL’ Application manifest punta al manifest di deployment
![Page 29: Scoprirete che su Office non si può solo contare ma anche sviluppare](https://reader034.vdocuments.site/reader034/viewer/2022051820/5542eb4b497959361e8b7a31/html5/thumbnails/29.jpg)
DistribuzioneRequisiti del Client
.NET Framework 2.0Office Professional Edition 2003
o una versione standalone di Excel 2003/Word 2003PIAs sono necessarie
installare Office full selezionarle tramite il custom setup
Runtime VSTO 2005Impostazioni delle .NET security policies
![Page 30: Scoprirete che su Office non si può solo contare ma anche sviluppare](https://reader034.vdocuments.site/reader034/viewer/2022051820/5542eb4b497959361e8b7a31/html5/thumbnails/30.jpg)
DistribuzioneEsempio di Application Manifest<assembly ...>
<assemblyIdentity name="Excel4.manifest"version="1.0.22"/>
<entryPoint name="Startup" dependencyName="Excel4"><clrClassInvocation class="Sheet1"/>
</entryPoint><dependency name="Excel4">
<dependentAssembly> <assemblyIdentity name="Excel4" version="1.0.1"/></dependentAssembly><installFrom codebase="http://deployweb/excel4.dll" />
</dependency><installFrom
codebase="http://deployweb/excel4.deploy"/></assembly>
![Page 31: Scoprirete che su Office non si può solo contare ma anche sviluppare](https://reader034.vdocuments.site/reader034/viewer/2022051820/5542eb4b497959361e8b7a31/html5/thumbnails/31.jpg)
Distribuzione Deployment Manifest Example<assembly ...>
<assemblyIdentity name="Excel4.deploy" version="1.0.1"/>
<dependency><dependentAssembly>
<assemblyIdentity name="Excel4.manifest"version="1.0.22"/>
</dependentAssembly><installFrom codebase="http://deployweb/Excel4.manifest"/>
</dependency></assembly>
![Page 32: Scoprirete che su Office non si può solo contare ma anche sviluppare](https://reader034.vdocuments.site/reader034/viewer/2022051820/5542eb4b497959361e8b7a31/html5/thumbnails/32.jpg)
Some.dll 1.1
Distribuzione Trovare gli Assembly
Some.xls
manifest.xml
<manifest><deploy url=http://…/deploy.xmlversion=“1.0”/>
<manifest> . . .curVersion=”1.1” . . .</manifest>
Deploy.xml
Some.dll 1.0
<manifest><deploy url=http:…/deploy.xml version=“1.0”/> . . .
<manifest><deploy url=http:…/deploy.xml version=“1.1”/><assembly Name=“Some.dll” updateURL= http:../1.1/Some.dll
<manifest><deploy url=http:…/deploy.xml version=“1.1”/><assembly Name=“Some.dll” updateURL= http:../1.1/Some.dll
![Page 33: Scoprirete che su Office non si può solo contare ma anche sviluppare](https://reader034.vdocuments.site/reader034/viewer/2022051820/5542eb4b497959361e8b7a31/html5/thumbnails/33.jpg)
DistribuzioneAggiornare il Manifest
E’ possibile cambiare ogno parte dell’Application Manifest
ServerDocument doc = new ServerDocument("file.doc");doc.AppManifest.DeployManifestPath = “http://...";
![Page 34: Scoprirete che su Office non si può solo contare ma anche sviluppare](https://reader034.vdocuments.site/reader034/viewer/2022051820/5542eb4b497959361e8b7a31/html5/thumbnails/34.jpg)
Local/NetworkPro
Facile aggiornamento degli assemblyL’utente può modificarsi il documento
ControL’aggiornamento del documento richiede la ridistribuzione
Network/NetworkPro
Facile aggiornamento degli assemblyFacile aggiornamento del documento
ControGli utenti condividono un unica copia del documento
DistribuzioneDeployment Models
![Page 35: Scoprirete che su Office non si può solo contare ma anche sviluppare](https://reader034.vdocuments.site/reader034/viewer/2022051820/5542eb4b497959361e8b7a31/html5/thumbnails/35.jpg)
SicurezzaVisual Studio Tools for Office
Secure by defaultLa sicurezza è gestita dalla .NET Code Access Security
EvidencePermissions
Entrambi il codice e il documento devono avere full trust
Dovuto al fatto che VSTO chiama il modello ad oggetti di Office usando InterOp
![Page 36: Scoprirete che su Office non si può solo contare ma anche sviluppare](https://reader034.vdocuments.site/reader034/viewer/2022051820/5542eb4b497959361e8b7a31/html5/thumbnails/36.jpg)
SicurezzaScenario positivo
![Page 37: Scoprirete che su Office non si può solo contare ma anche sviluppare](https://reader034.vdocuments.site/reader034/viewer/2022051820/5542eb4b497959361e8b7a31/html5/thumbnails/37.jpg)
SicurezzaScenario negativo
![Page 38: Scoprirete che su Office non si può solo contare ma anche sviluppare](https://reader034.vdocuments.site/reader034/viewer/2022051820/5542eb4b497959361e8b7a31/html5/thumbnails/38.jpg)
SummaryLe Data island forniscono isole di dati all’interno del documentoL’uso di Managed controls permettono lo sviluppo di soluzioni completeI Manifest forniscono un modello di distribuzione flessibileLe policy di sicurezza di .NET assicurano l’esecuzione del codiceL’uso di XML permette una modellazione dei dati all’interno del documento
![Page 39: Scoprirete che su Office non si può solo contare ma anche sviluppare](https://reader034.vdocuments.site/reader034/viewer/2022051820/5542eb4b497959361e8b7a31/html5/thumbnails/39.jpg)
© 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 SUMMARY.This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.Content created by 3 Leaf Solutions.Content created by 3 Leaf Solutions.