La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Scoprirete che su Office non si può solo contare ma anche sviluppare.

Presentazioni simili


Presentazione sul tema: "Scoprirete che su Office non si può solo contare ma anche sviluppare."— Transcript della presentazione:

1 Scoprirete che su Office non si può solo contare ma anche sviluppare

2 Fabio Santini fsantini@microsoft.com http://blogs.msdn.com/fabiosantini http://playmobil.sts.winisp.net/default.aspx Developer & Platform Evangelism Advanced Visual Studio Tool for Office 2005

3 Agenda Task Pane Document Data Island Managed Controls Deployment Security

4 Introduzione ActionsPane Fornisce un modello di programmazione in codice managed per il Document Actions task pane Fondato sulle Windows Forms Windows Forms Designer Contenitore per user controls Un passo oltre lo SmartDoc SDK Linterfaccia ISmartDocument implementata dietro le quinte Il mapping di uno schema XML non è più richiesto

5 Introduzione Benefici Integrazione della UI con Word e Excel Controlli Windows Forms disponibili Completamente.NET code Utilizzo degli User controls Sviluppo riutilizzando tutte le conoscenze Forte integrazione con Microsoft Visual Studio® 2005 Sviluppo semplificato Uso del Data binding con i dati del documento

6 User Controls e ActionsPane Introduzione UserControl disponibili in progetti Word e Excel Semplici da creare Simili alle Windows Forms Utilizzo 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

7 Scenario di utilizzo Gestione fatture Gestire fatture collegate a database Tecnologie utilizzate Microsoft Excel – gestione dei calcoli XML Web service gestione della comunicazione SQL Server database ActionsPane di esempio Menu Custom Drop-down list per i dati I dati recuperati in realtime

8 Aggiungere uno User Controls al ActionsPane

9 ActionsPane Runtime Manipulation Usage and Benefits Gestione dellinterfaccia grafica Posizione Dimensione Visibilità Preferenze di utilizzo Implementato con poco codice

10 Docking a destra per default Proprietà Anchor Recupera o imposta a quale lato deve essere ancorato il container I controlli posso ridimensionarsi con lActions pane Valore: AnchorStyles.None AnchorStyles.Top AnchorStyles.Bottom AnchorStyles.Left AnchorStyles.Right ActionsPane Runtime Manipulation Docking and Anchoring

11 Posizionare più user control Ordine Valori: StackStyle.None StackStyle.FromTop StackStyle.FromBottom StackStyle.FromLeft StackStyle.FromRight Esempio: Actions Pane Run-time Manipulation Posizionamento Actions Pane User Control 2 User Control 1 User Control 2 Actions Pane (Default)StackStyle.None Me.ActionsPane.Controls.Add(MyUserControl) Me.ActionsPane.StackOrder = Microsoft.Office.Tools _.ActionsPane.StackStyle.FromLeft

12 Actions Pane Run-Time Manipulation

13 L ActionsPane può essere usato per fornire informazioni basate sul contesto dellutente e sulla posizione corrente allinterno del documento Utilizzare uno Schema XML per fornire la struttura Show/Hide dei controlli in risposta agli eventi ContextEnter/ContextLeave ActionsPane Runtime Manipulation Smart Document ?

14 Smart Document con VSTO 2.0

15 Document Data Island Introduzione alle Data Island Memorizza i dati allinterno del documento Perchè fare cache dei dati nel documento? Disponibili quando il client lavora offline Accessibile a processi lato server Memorizzare configurazioni Supporto per il Data caching in Visual Studio Tools for Office I campi marcati con lattributo Cached I tipi possono implementare ICachedType per specializzare la modalità di serializzazione La classe ServerDocument class accede alla cache senza utilizzare Microsoft Word o Microsoft Excel

16 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; }

17 Document Data Island Data richiesti dal Server ASPX page Data Island User data

18 ASPX page Updated data Document Data Island Data inviati al Server Updated Data Cache

19 Data Caching

20 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); }

21 Data Caching

22 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

23 Managed Controls Hosting dei controlli managed I controlli Managed sono hostati allinterno 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)

24 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

25 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"); // Set coordinates through the Excel._OLEObject, // not through the Windows Forms control. dynamicControl.Top = 100; customUserControl.UniqueProperty = true; }

26 Using Dynamic Controls

27 Distribuzione Manifest e ClickOnce Utilizza la tecnologia ClickOnce Uso di un manifest (XML) Rilasciata con la nuova versione di.NET Framework e Visual Studio 2005 Fornisce una descrizione completa dellapplicazione Indica quali DLL devono essere utilizzate Include assembly collegati Descrive la posizione degli assembly Non usato per uninstallazione locale

28 Distribuzione Associazione dei file Separazione tra il documento, il codice e gli assembly Il codice è parte del progetto Visual Studio Solo lassembly viene distribuito con il documento LAssembly è collegato al documento VSTO 2003: Custom properties VSTO 2005: Application manifest dentro il documento L Application manifest punta al manifest di deployment

29 Distribuzione Requisiti del Client.NET Framework 2.0 Office Professional Edition 2003 o una versione standalone di Excel 2003/Word 2003 PIAs sono necessarie installare Office full selezionarle tramite il custom setup Runtime VSTO 2005 Impostazioni delle.NET security policies

30 Distribuzione Esempio di Application Manifest <assemblyIdentity name="Excel4.manifest" version="1.0.22"/> <installFrom codebase="http://deployweb/excel4.dll" /> <installFrom codebase="http://deployweb/excel4.deploy"/>

31 Distribuzione Deployment Manifest Example <assemblyIdentity name="Excel4.deploy" version="1.0.1"/> <assemblyIdentity name="Excel4.manifest" version="1.0.22"/> <installFrom codebase="http://deployweb/Excel4.manifest"/>

32 Some.dll 1.1 Distribuzione Trovare gli Assembly Some.xls manifest.xml <deploy url=http://…/deploy.xmlhttp://…/deploy.xml version=1.0/>... curVersion=1.1... Deploy.xml Some.dll 1.0 <deploy url=http:…/deploy.xmlhttp:…/deploy.xml version=1.0/>... <deploy url=http:…/deploy.xmlhttp:…/deploy.xml version=1.1/> <assembly Name=Some.dll updateURL= http:../1.1/Some.dll <deploy url=http:…/deploy.xmlhttp:…/deploy.xml version=1.1/> <assembly Name=Some.dll updateURL= http:../1.1/Some.dll

33 Distribuzione Aggiornare il Manifest E possibile cambiare ogno parte dellApplication Manifest ServerDocument doc = new ServerDocument("file.doc"); doc.AppManifest.DeployManifestPath = http://...";

34 Local/Network Pro Facile aggiornamento degli assembly Lutente può modificarsi il documento Contro Laggiornamento del documento richiede la ridistribuzione Network/Network Pro Facile aggiornamento degli assembly Facile aggiornamento del documento Contro Gli utenti condividono un unica copia del documento Distribuzione Deployment Models

35 Sicurezza Visual Studio Tools for Office Secure by default La sicurezza è gestita dalla.NET Code Access Security Evidence Permissions Entrambi il codice e il documento devono avere full trust Dovuto al fatto che VSTO chiama il modello ad oggetti di Office usando InterOp

36 Sicurezza Scenario positivo

37 Sicurezza Scenario negativo

38 Summary Le Data island forniscono isole di dati allinterno del documento Luso di Managed controls permettono lo sviluppo di soluzioni complete I Manifest forniscono un modello di distribuzione flessibile Le policy di sicurezza di.NET assicurano lesecuzione del codice Luso di XML permette una modellazione dei dati allinterno del documento

39 © 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.


Scaricare ppt "Scoprirete che su Office non si può solo contare ma anche sviluppare."

Presentazioni simili


Annunci Google