Visual Studio Tools for Office: Developer Solutions Platform Fulvio Giaccari MCSD.NET / MCT Responsabile Usergroup ShareOffice Blog: url:
Session Agenda Cached data ServerDocumentDeploymentSecurity
Document Data Island (introduzione 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 Continua …
Document Data Island (introduzione Data Island) 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 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(); customerDataSet = new CustomerDataSet(); dataAdapter.Fill(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
ASPX page Updated data Document Data Cache Sending Data Back to Server A VSTO 2005 enabled document is posted to a server and data is extracted and sent to corporate data sources Updated Data Island
Introduzione Cached Data Fulvio Giaccari MCSD.NET / MCT
Session Agenda Cached data ServerDocumentDeploymentSecurity
ServerDocument Provvede allaccesso dei dati in cache Provvede allaccesso al manifesto dellapplicazione Aggiunge personalizzazioni Rimuove personalizzazioni
ServerDocument Object Model
Usare ServerDocument Applicazione Web Fulvio Giaccari MCSD.NET / MCT
Session Agenda Cached data ServerDocumentDeploymentSecurity
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 dellapplicazione Indica quali DLL devono essere utilizzate Include assembly collegati Descrive la posizione degli assembly Non usato per uninstallazione locale
Deployment 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
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 <assemblyIdentity name="Excel4.manifest" version="1.0.22"/> <dependentAssembly> </dependentAssembly><installFrom codebase=" /> codebase=" /></dependency><installFromcodebase="
Deployment Deployment Manifest Example <assemblyIdentityname="Excel4.deploy"version="1.0.1"/><dependency><dependentAssembly><assemblyIdentityname="Excel4.manifest"version="1.0.22"/></dependentAssembly><installFrom codebase=" codebase="
Some.dll 1.1 Distribuzione Trovare gli Assembly Some.xls manifest.xml <deploy url= version=1.0/>... curVersion= Deploy.xml Some.dll 1.0 <deploy url= version=1.0/>... <deploy url= version=1.1/> <assembly Name=Some.dll updateURL= <deploy url= version=1.1/> <assembly Name=Some.dll updateURL=
Deployment Aggiornare il Manifest ServerDocument doc = new ServerDocument("file.doc"); ServerDocument("file.doc"); doc.AppManifest.DeployManifestPath =
Deployment Modello di distribuzione Local/NetworkPro Facile aggiornamento degli assembly Lutente può modificarsi il documento Contro Laggiornamento del documento richiede la ridistribuzione
Session Agenda Cached data ServerDocumentDeploymentSecurity
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 deve essere copiata sul desktop (la temp directory di Outlook è in Internet Zone) LEvidence 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 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
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 ToolsMSCorCfgCASPolAPI
VSTO security policy No code runs by default Zone evidence is ignored VSTO sets AppDomain security policy Enterprise, Machine and User are joined All code and Zone based code groups are modified to Nothing Office PIAs are special and trusted by its strong name Assembly MUST be granted FullTrust from all 4 levels. Use caspol –rsg to troubleshoot
Example of AppDomain policy
VSTO Deployment Options LocationCAS DocumentAssemblyDocumentAssembly LocalLocal default FullTrust explicit FullTrust at user level LocalNetwork default FullTrust explicit FullTrust at machine level NetworkNetwork LocalWeb 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: url:
Riferimenti ShareOffice.it URL: Forum: Blog:
© 2005 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.