Visual Studio Tools for Office: Developer Solutions Platform Fulvio Giaccari MCSD .NET / MCT Responsabile Usergroup ShareOffice Blog: http://blog.shareoffice.it/webmaster url: http://www.shareoffice.it Email: [email protected] Session Agenda Cached data ServerDocument Deployment Security Document Data Island (introduzione Data Island) Memorizza i dati all’interno del documento Perchè fare cache dei dati nel documento? Disponibili quando il client lavora offline Accessibile a processi lato server Continua … Document Data Island (introduzione Data Island) Supporto per il Data caching in Visual Studio Tools for Office I campi marcati con l’attributo Cached I tipi possono implementare ICachedType per specializzare la modalità di serializzazione La classe ServerDocument accede alla cache senza utilizzare Microsoft Word o Microsoft Excel Document Data Island Esempio Data Cache [Cached()] CustomerDataSet customerDataSet; void ThisDocument_Initialize(…) { if (customerDataSet == null) { customerDataSet = new CustomerDataSet(); dataAdapter.Fill(customerDataSet); } list1.DataSource = customerDataSet; } Document Data Cache Requesting Data from Server ASPX page Data Island User data Server-side code can pre-populate elements before sending to client Document Data Cache Sending Data Back to Server ASPX page Updated Data Island Updated data A VSTO 2005 enabled document is posted to a server and data is extracted and sent to corporate data sources Introduzione Cached Data Fulvio Giaccari MCSD .NET / MCT Email: [email protected] Session Agenda Cached data ServerDocument Deployment Security ServerDocument Provvede all’accesso dei dati in cache Provvede all’accesso al manifesto dell’applicazione Aggiunge personalizzazioni Rimuove personalizzazioni ServerDocument Object Model ServerDocument (ExpenseReport) CachedData CachedDataHostItemCollection CachedDataHostItem (Sheet1) CachedDataItem (Employee) CachedDataItem (Expenses) CachedDataHostItem (Sheet2) CachedDataHostItem (Sheet3) CachedDataHostItem (ThisWorkbook) Usare ServerDocument Applicazione Web Fulvio Giaccari MCSD .NET / MCT Email: [email protected] Session Agenda Cached data ServerDocument Deployment Security Deployment 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 dell’applicazione Indica quali DLL devono essere utilizzate Include assembly collegati Descrive la posizione degli assembly Non usato per un’installazione locale Deployment Associazione dei file Separazione tra il documento, il codice e gli assembly Il codice è parte del progetto Visual Studio Solo l’assembly viene distribuito con il documento L’Assembly è “collegato” al documento VSTO 2003: Custom properties VSTO 2005: Application manifest dentro il documento L’ Application manifest punta al manifest di deployment Deployment Requisiti del Client .NET Framework 2.0 Office Professional Edition 2003 o una versione standalone di Excel 2003/Word 2003 PIA(Primary Interop Assembly) sono necessarie installare Office full selezionarle tramite il custom setup Runtime VSTO 2005 Impostazioni delle .NET security policies Deployment Esempio 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> Deployment 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> Distribuzione Trovare gli Assembly Some.xls Deploy.xml <manifest> . . . curVersion=”1.1” . . . </manifest> manifest.xml <manifest> <deploy url=http://…/deploy.xml version=“1.0”/> Some.dll 1.0 <manifest> <deploy url=http:…/deploy.xml version=“1.0”/> . . . Some.dll 1.1 <manifest> <deploy url=http:…/deploy.xml version=“1.1”/> <assembly Name=“Some.dll” updateURL= http:../1.1/Some.dll Deployment Aggiornare il Manifest ServerDocument doc = new ServerDocument("file.doc"); doc.AppManifest.DeployManifestPath = “http://..."; Deployment Modello di distribuzione Local/Network Pro Facile aggiornamento degli assembly L’utente può modificarsi il documento Contro L’aggiornamento del documento richiede la ridistribuzione Session Agenda Cached data ServerDocument Deployment Security Sicurezza Implicazioni in VSTO 2005 E’ necessario dare full trust al documento e agli assembly Il codice non girerà per default L’ Evidence dei documenti tramite Location Attachments di una E-mail deve essere copiata sul desktop (la temp directory di Outlook è in Internet Zone) L’Evidence degli assembly Signing: Authenticode o Strong Naming Posizione : URL La Local Machine Zone non è sufficiente Sicurezza Visual Studio Tools for Office Sicuro di 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 Sicurezza Scenario Funzionante Sicurezza Scenario Errato Code Access Security Evidence ~ of assembly identity Permission Set ~ grants access to particular resources Code Group ~ binds a single Permission Set with a single Evidence Policy Level ~ a tree of Code Groups Tools MSCorCfg CASPol API Example of AppDomain policy VSTO Deployment Options Location CAS Document Assembly Document Assembly Local Local default FullTrust explicit FullTrust at user level Local Network default FullTrust explicit FullTrust at machine level Network Network explicit FullTrust at machine level explicit FullTrust at machine level Local Web default FullTrust explicit FullTrust at machine level Nothing CAS Policy Execution CAS Policy FullTrust CAS Policy Visual Studio Tools for Office: Developer Solutions Platform Fulvio Giaccari MCSD .NET / MCT Responsabile Usergroup ShareOffice Blog: http://blog.shareoffice.it/webmaster url: http://www.shareoffice.it Email: [email protected] Riferimenti ShareOffice.it URL: http://www.shareoffice.it Forum: http://forum.shareoffice.it Blog: http://blog.shareoffice.it Email: [email protected] © 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.