35
Visual Studio Tools for Visual Studio Tools for Office: Developer Office: Developer Solutions Platform Solutions Platform Fulvio Giaccari Fulvio Giaccari MCSD .NET / MCT MCSD .NET / MCT Responsabile Usergroup ShareOffice Responsabile Usergroup ShareOffice Blog: Blog: http://blog.shareoffice.it/webmaster http://blog.shareoffice.it/webmaster url: url: http://www.shareoffice.it http://www.shareoffice.it Email: [email protected] Email: [email protected]

Visual Studio Tools for Office: Developer Solutions Platform Fulvio Giaccari MCSD.NET / MCT Responsabile Usergroup ShareOffice Blog:

Embed Size (px)

Citation preview

Page 1: Visual Studio Tools for Office: Developer Solutions Platform Fulvio Giaccari MCSD.NET / MCT Responsabile Usergroup ShareOffice Blog:

Visual Studio Tools for Visual Studio Tools for Office: Developer Solutions Office: Developer Solutions PlatformPlatformFulvio GiaccariFulvio GiaccariMCSD .NET / MCTMCSD .NET / MCTResponsabile Usergroup ShareOfficeResponsabile Usergroup ShareOfficeBlog: Blog: http://blog.shareoffice.it/webmasterhttp://blog.shareoffice.it/webmasterurl: url: http://www.shareoffice.ithttp://www.shareoffice.itEmail: [email protected]: [email protected]

Page 2: Visual Studio Tools for Office: Developer Solutions Platform Fulvio Giaccari MCSD.NET / MCT Responsabile Usergroup ShareOffice Blog:

Session AgendaSession Agenda

Cached dataCached data

ServerDocumentServerDocument

DeploymentDeployment

SecuritySecurity

Page 3: Visual Studio Tools for Office: Developer Solutions Platform Fulvio Giaccari MCSD.NET / MCT Responsabile Usergroup ShareOffice Blog:

Document Data IslandDocument Data Island(introduzione Data Island)(introduzione Data Island)

Memorizza i dati all’interno del Memorizza i dati all’interno del documentodocumento

Perchè fare cache dei dati nel Perchè fare cache dei dati nel documento?documento?

Disponibili quando il client Disponibili quando il client lavora offlinelavora offline

Accessibile a processi lato Accessibile a processi lato serverserver

Continua …Continua …

Page 4: Visual Studio Tools for Office: Developer Solutions Platform Fulvio Giaccari MCSD.NET / MCT Responsabile Usergroup ShareOffice Blog:

Document Data IslandDocument Data Island(introduzione Data Island)(introduzione Data Island)

Supporto per il Data caching in Supporto per il Data caching in Visual Studio Tools for OfficeVisual Studio Tools for Office

I campi marcati con l’attributo I campi marcati con l’attributo CachedCached

I tipi possono implementare I tipi possono implementare ICachedType per specializzare la ICachedType per specializzare la modalità di serializzazionemodalità di serializzazione

La classe ServerDocument accede La classe ServerDocument accede alla cache senza utilizzare Microsoft alla cache senza utilizzare Microsoft Word o Microsoft ExcelWord o Microsoft Excel

Page 5: Visual Studio Tools for Office: Developer Solutions Platform Fulvio Giaccari MCSD.NET / MCT Responsabile Usergroup ShareOffice Blog:

Document Data IslandDocument Data IslandEsempio Data CacheEsempio Data Cache

[[Cached()] Cached()]

CustomerDataSet customerDataSet;CustomerDataSet customerDataSet;

voidvoid ThisDocument_Initialize(…) ThisDocument_Initialize(…)

{{

ifif (customerDataSet == (customerDataSet == nullnull) )

{ {

customerDataSet = new CustomerDataSet();customerDataSet = new CustomerDataSet();

dataAdapter.Fill(customerDataSet);dataAdapter.Fill(customerDataSet);

} }

list1.DataSource = customerDataSet;list1.DataSource = customerDataSet;

}}

Page 6: Visual Studio Tools for Office: Developer Solutions Platform Fulvio Giaccari MCSD.NET / MCT Responsabile Usergroup ShareOffice Blog:

Document Data CacheDocument Data Cache Requesting Data from ServerRequesting Data from Server

ASPX page

Data Island

User data

Server-side code can pre-populate elements before sending to client

Page 7: Visual Studio Tools for Office: Developer Solutions Platform Fulvio Giaccari MCSD.NET / MCT Responsabile Usergroup ShareOffice Blog:

ASPX page

Updated data

Document Data CacheDocument Data Cache Sending Data Back to ServerSending Data Back to Server

A VSTO 2005 enabled document is posted to a server and data is extracted and sent to corporate data sources

UpdatedData

Island

Page 8: Visual Studio Tools for Office: Developer Solutions Platform Fulvio Giaccari MCSD.NET / MCT Responsabile Usergroup ShareOffice Blog:

Introduzione Cached DataIntroduzione Cached Data

Fulvio GiaccariFulvio GiaccariMCSD .NET / MCTMCSD .NET / MCTEmail: [email protected]: [email protected]

Page 9: Visual Studio Tools for Office: Developer Solutions Platform Fulvio Giaccari MCSD.NET / MCT Responsabile Usergroup ShareOffice Blog:

Session AgendaSession Agenda

Cached dataCached data

ServerDocumentServerDocument

DeploymentDeployment

SecuritySecurity

Page 10: Visual Studio Tools for Office: Developer Solutions Platform Fulvio Giaccari MCSD.NET / MCT Responsabile Usergroup ShareOffice Blog:

ServerDocumentServerDocument

Provvede all’accesso dei dati Provvede all’accesso dei dati in cachein cache

Provvede all’accesso al Provvede all’accesso al manifesto dell’applicazionemanifesto dell’applicazione

Aggiunge personalizzazioniAggiunge personalizzazioni

Rimuove personalizzazioniRimuove personalizzazioni

Page 11: Visual Studio Tools for Office: Developer Solutions Platform Fulvio Giaccari MCSD.NET / MCT Responsabile Usergroup ShareOffice Blog:

ServerDocument Object ServerDocument Object ModelModelServerDocument (ExpenseReport)

CachedData

CachedDataHostItemCollection

CachedDataHostItem (Sheet1)

CachedDataItem (Employee)

CachedDataItem (Expenses)

CachedDataHostItem (Sheet2)

CachedDataHostItem (Sheet3)

CachedDataHostItem (ThisWorkbook)

Page 12: Visual Studio Tools for Office: Developer Solutions Platform Fulvio Giaccari MCSD.NET / MCT Responsabile Usergroup ShareOffice Blog:

Usare ServerDocumentUsare ServerDocumentApplicazione WebApplicazione Web

Fulvio GiaccariFulvio GiaccariMCSD .NET / MCTMCSD .NET / MCTEmail: [email protected]: [email protected]

Page 13: Visual Studio Tools for Office: Developer Solutions Platform Fulvio Giaccari MCSD.NET / MCT Responsabile Usergroup ShareOffice Blog:

Session AgendaSession Agenda

Cached dataCached data

ServerDocumentServerDocument

DeploymentDeployment

SecuritySecurity

Page 14: Visual Studio Tools for Office: Developer Solutions Platform Fulvio Giaccari MCSD.NET / MCT Responsabile Usergroup ShareOffice Blog:

DeploymentDeploymentManifest e ClickOnceManifest e ClickOnce

Utilizza la tecnologia ClickOnceUtilizza la tecnologia ClickOnceUso di un manifest (XML)Uso di un manifest (XML)

Rilasciata con la nuova versione di .NET Rilasciata con la nuova versione di .NET Framework e Visual Studio 2005Framework e Visual Studio 2005

Fornisce una descrizione completa Fornisce una descrizione completa dell’applicazionedell’applicazione

Indica quali DLL devono essere Indica quali DLL devono essere utilizzateutilizzate

Include assembly collegatiInclude assembly collegati

Descrive la posizione degli assemblyDescrive la posizione degli assembly

Non usato per un’installazione localeNon usato per un’installazione locale

Page 15: Visual Studio Tools for Office: Developer Solutions Platform Fulvio Giaccari MCSD.NET / MCT Responsabile Usergroup ShareOffice Blog:

DeploymentDeploymentAssociazione dei fileAssociazione dei file

Separazione tra il documento, il Separazione tra il documento, il codice e gli assemblycodice e gli assembly

Il codice è parte del progetto Visual Il codice è parte del progetto Visual StudioStudio

Solo l’assembly viene distribuito con il Solo l’assembly viene distribuito con il documentodocumento

L’Assembly è “collegato” al L’Assembly è “collegato” al documentodocumento

VSTO 2003: Custom propertiesVSTO 2003: Custom properties

VSTO 2005: Application manifest dentro VSTO 2005: Application manifest dentro il documentoil documento

L’ Application manifest punta al L’ Application manifest punta al manifest di deploymentmanifest di deployment

Page 16: Visual Studio Tools for Office: Developer Solutions Platform Fulvio Giaccari MCSD.NET / MCT Responsabile Usergroup ShareOffice Blog:

DeploymentDeploymentRequisiti del ClientRequisiti del Client

.NET Framework 2.0.NET Framework 2.0

Office Professional Edition 2003Office Professional Edition 2003o una versione standalone di Excel o una versione standalone di Excel 2003/Word 20032003/Word 2003

PIA(Primary Interop Assembly) sono PIA(Primary Interop Assembly) sono necessarie necessarie

installare Office fullinstallare Office full

selezionarle tramite il custom setupselezionarle tramite il custom setup

Runtime VSTO 2005Runtime VSTO 2005

Impostazioni delle .NET security Impostazioni delle .NET security policiespolicies

Page 17: Visual Studio Tools for Office: Developer Solutions Platform Fulvio Giaccari MCSD.NET / MCT Responsabile Usergroup ShareOffice Blog:

DeploymentDeploymentEsempio Application ManifestEsempio Application Manifest<assembly ...><assembly ...>

<assemblyIdentity name="Excel4.manifest"<assemblyIdentity name="Excel4.manifest"version="1.0.22"/>version="1.0.22"/>

<entryPoint name="Startup" dependencyName="Excel4"><entryPoint name="Startup" dependencyName="Excel4"><clrClassInvocation class="Sheet1"/><clrClassInvocation class="Sheet1"/>

</entryPoint></entryPoint><dependency name="Excel4"><dependency name="Excel4">

<dependentAssembly><dependentAssembly> <assemblyIdentity name="Excel4" <assemblyIdentity name="Excel4"

version="1.0.1"/>version="1.0.1"/></dependentAssembly></dependentAssembly><installFrom<installFrom codebase="http://deployweb/excel4.dll" />codebase="http://deployweb/excel4.dll" />

</dependency></dependency><installFrom<installFrom

codebase="http://deployweb/excel4.deploy"/>codebase="http://deployweb/excel4.deploy"/></assembly></assembly>

Page 18: Visual Studio Tools for Office: Developer Solutions Platform Fulvio Giaccari MCSD.NET / MCT Responsabile Usergroup ShareOffice Blog:

DeploymentDeploymentDeployment Manifest ExampleDeployment Manifest Example<assembly ...><assembly ...>

<assemblyIdentity <assemblyIdentity name="Excel4.deploy" name="Excel4.deploy" version="1.0.1"/>version="1.0.1"/>

<dependency><dependency><dependentAssembly><dependentAssembly>

<assemblyIdentity <assemblyIdentity name="Excel4.manifest"name="Excel4.manifest"version="1.0.22"/>version="1.0.22"/>

</dependentAssembly></dependentAssembly><installFrom<installFrom codebase="http://deployweb/Excel4.manifest"/>codebase="http://deployweb/Excel4.manifest"/>

</dependency></dependency></assembly></assembly>

Page 19: Visual Studio Tools for Office: Developer Solutions Platform Fulvio Giaccari MCSD.NET / MCT Responsabile Usergroup ShareOffice Blog:

Some.dll 1.1

Distribuzione Distribuzione Trovare gli AssemblyTrovare 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 20: Visual Studio Tools for Office: Developer Solutions Platform Fulvio Giaccari MCSD.NET / MCT Responsabile Usergroup ShareOffice Blog:

DeploymentDeploymentAggiornare il ManifestAggiornare il Manifest

ServerDocument ServerDocument doc =doc = new new

ServerDocumentServerDocument(("file.doc""file.doc"););

doc.AppManifest.DeployManifestPath =doc.AppManifest.DeployManifestPath =

““http://...http://..."";;

Page 21: Visual Studio Tools for Office: Developer Solutions Platform Fulvio Giaccari MCSD.NET / MCT Responsabile Usergroup ShareOffice Blog:

DeploymentDeploymentModello di distribuzioneModello di distribuzione

Local/NetworkLocal/Network

ProProFacile aggiornamento Facile aggiornamento degli assemblydegli assembly

L’utente può L’utente può modificarsi il modificarsi il documentodocumento

ControControL’aggiornamento del L’aggiornamento del documento richiede la documento richiede la ridistribuzioneridistribuzione

Page 22: Visual Studio Tools for Office: Developer Solutions Platform Fulvio Giaccari MCSD.NET / MCT Responsabile Usergroup ShareOffice Blog:

Session AgendaSession Agenda

Cached dataCached data

ServerDocumentServerDocument

DeploymentDeployment

SecuritySecurity

Page 23: Visual Studio Tools for Office: Developer Solutions Platform Fulvio Giaccari MCSD.NET / MCT Responsabile Usergroup ShareOffice Blog:

SicurezzaSicurezzaImplicazioni in VSTO 2005Implicazioni in VSTO 2005

E’ necessario dare full trust al documento E’ necessario dare full trust al documento e agli assembly e agli assembly

Il codice non girerà per defaultIl codice non girerà per default

L’ Evidence dei documenti tramite L’ Evidence dei documenti tramite LocationLocation

Attachments di una E-mail deve essere Attachments di una E-mail deve essere copiata sul desktop (la temp directory di copiata sul desktop (la temp directory di Outlook è in Internet Zone)Outlook è in Internet Zone)

L’Evidence degli assemblyL’Evidence degli assemblySigning: Authenticode o Strong NamingSigning: Authenticode o Strong NamingPosizione : URL Posizione : URL La Local Machine Zone non è sufficienteLa Local Machine Zone non è sufficiente

Page 24: Visual Studio Tools for Office: Developer Solutions Platform Fulvio Giaccari MCSD.NET / MCT Responsabile Usergroup ShareOffice Blog:

SicurezzaSicurezzaVisual Studio Tools for OfficeVisual Studio Tools for Office

Sicuro di DefaultSicuro di DefaultLa sicurezza è gestita dalla .NET La sicurezza è gestita dalla .NET Code Access SecurityCode Access Security

EvidenceEvidencePermissionsPermissions

Entrambi il codice e il documento Entrambi il codice e il documento devono avere full trustdevono avere full trust

Dovuto al fatto che VSTO chiama il Dovuto al fatto che VSTO chiama il modello ad oggetti di Office usando modello ad oggetti di Office usando InterOpInterOp

Page 25: Visual Studio Tools for Office: Developer Solutions Platform Fulvio Giaccari MCSD.NET / MCT Responsabile Usergroup ShareOffice Blog:

SicurezzaSicurezzaScenario FunzionanteScenario Funzionante

Page 26: Visual Studio Tools for Office: Developer Solutions Platform Fulvio Giaccari MCSD.NET / MCT Responsabile Usergroup ShareOffice Blog:

SicurezzaSicurezzaScenario ErratoScenario Errato

Page 27: Visual Studio Tools for Office: Developer Solutions Platform Fulvio Giaccari MCSD.NET / MCT Responsabile Usergroup ShareOffice Blog:

Code Access SecurityCode Access Security

EvidenceEvidence ~ of assembly identity ~ of assembly identity

Permission SetPermission Set ~ grants access to ~ grants access to particular resourcesparticular resources

Code GroupCode Group ~ binds a single ~ binds a single Permission Set with a single Permission Set with a single EvidenceEvidence

Policy Level Policy Level ~ a tree of Code Groups~ a tree of Code Groups

ToolsToolsMSCorCfgMSCorCfg

CASPolCASPol

APIAPI

Page 28: Visual Studio Tools for Office: Developer Solutions Platform Fulvio Giaccari MCSD.NET / MCT Responsabile Usergroup ShareOffice Blog:

Example of AppDomain Example of AppDomain policypolicy

Page 29: Visual Studio Tools for Office: Developer Solutions Platform Fulvio Giaccari MCSD.NET / MCT Responsabile Usergroup ShareOffice Blog:

VSTO Deployment OptionsVSTO Deployment OptionsLocationLocation CASCAS

DocumentDocument AssemblyAssembly DocumentDocument AssemblyAssemblyLocalLocal LocalLocal default default

FullTrustFullTrustexplicitexplicit FullTrust at FullTrust at user leveluser level

LocalLocal NetworkNetwork default default FullTrustFullTrust

explicitexplicit FullTrust at FullTrust at machine levelmachine level

NetworkNetwork NetworkNetwork explicitexplicit FullTrust at FullTrust at machine levelmachine level

explicitexplicit FullTrust at FullTrust at machine levelmachine level

LocalLocal WebWeb default default FullTrustFullTrust

explicitexplicit FullTrust at FullTrust at machine levelmachine level

Page 30: Visual Studio Tools for Office: Developer Solutions Platform Fulvio Giaccari MCSD.NET / MCT Responsabile Usergroup ShareOffice Blog:

Nothing CAS PolicyNothing CAS Policy

Page 31: Visual Studio Tools for Office: Developer Solutions Platform Fulvio Giaccari MCSD.NET / MCT Responsabile Usergroup ShareOffice Blog:

Execution CAS PolicyExecution CAS Policy

Page 32: Visual Studio Tools for Office: Developer Solutions Platform Fulvio Giaccari MCSD.NET / MCT Responsabile Usergroup ShareOffice Blog:

FullTrust CAS PolicyFullTrust CAS Policy

Page 33: Visual Studio Tools for Office: Developer Solutions Platform Fulvio Giaccari MCSD.NET / MCT Responsabile Usergroup ShareOffice Blog:

Visual Studio Tools for Visual Studio Tools for Office: Developer Solutions Office: Developer Solutions PlatformPlatformFulvio GiaccariFulvio GiaccariMCSD .NET / MCTMCSD .NET / MCTResponsabile Usergroup ShareOfficeResponsabile Usergroup ShareOfficeBlog: Blog: http://blog.shareoffice.it/webmasterhttp://blog.shareoffice.it/webmasterurl: url: http://www.shareoffice.ithttp://www.shareoffice.itEmail: [email protected]: [email protected]

Page 34: Visual Studio Tools for Office: Developer Solutions Platform Fulvio Giaccari MCSD.NET / MCT Responsabile Usergroup ShareOffice Blog:

Riferimenti ShareOffice.itRiferimenti ShareOffice.itURL: URL: http://www.shareoffice.itForum: Forum: http://forum.shareoffice.itBlog: Blog: http://blog.shareoffice.it

Email: [email protected]: [email protected]

Page 35: Visual Studio Tools for Office: Developer Solutions Platform Fulvio Giaccari MCSD.NET / MCT Responsabile Usergroup ShareOffice Blog:

© 2005 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.