visual studio tools for office: developer solutions platform fulvio giaccari mcsd.net / mct...
Post on 02-May-2015
214 Views
Preview:
TRANSCRIPT
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: webmaster@shareoffice.itEmail: webmaster@shareoffice.it
Session AgendaSession Agenda
Cached dataCached data
ServerDocumentServerDocument
DeploymentDeployment
SecuritySecurity
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 …
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
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;
}}
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
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
Introduzione Cached DataIntroduzione Cached Data
Fulvio GiaccariFulvio GiaccariMCSD .NET / MCTMCSD .NET / MCTEmail: webmaster@shareoffice.itEmail: webmaster@shareoffice.it
Session AgendaSession Agenda
Cached dataCached data
ServerDocumentServerDocument
DeploymentDeployment
SecuritySecurity
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
ServerDocument Object ServerDocument Object ModelModelServerDocument (ExpenseReport)
CachedData
CachedDataHostItemCollection
CachedDataHostItem (Sheet1)
CachedDataItem (Employee)
CachedDataItem (Expenses)
CachedDataHostItem (Sheet2)
CachedDataHostItem (Sheet3)
CachedDataHostItem (ThisWorkbook)
Usare ServerDocumentUsare ServerDocumentApplicazione WebApplicazione Web
Fulvio GiaccariFulvio GiaccariMCSD .NET / MCTMCSD .NET / MCTEmail: webmaster@shareoffice.itEmail: webmaster@shareoffice.it
Session AgendaSession Agenda
Cached dataCached data
ServerDocumentServerDocument
DeploymentDeployment
SecuritySecurity
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
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
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
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>
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>
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
DeploymentDeploymentAggiornare il ManifestAggiornare il Manifest
ServerDocument ServerDocument doc =doc = new new
ServerDocumentServerDocument(("file.doc""file.doc"););
doc.AppManifest.DeployManifestPath =doc.AppManifest.DeployManifestPath =
““http://...http://..."";;
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
Session AgendaSession Agenda
Cached dataCached data
ServerDocumentServerDocument
DeploymentDeployment
SecuritySecurity
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
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
SicurezzaSicurezzaScenario FunzionanteScenario Funzionante
SicurezzaSicurezzaScenario ErratoScenario Errato
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
Example of AppDomain Example of AppDomain policypolicy
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
Nothing CAS PolicyNothing CAS Policy
Execution CAS PolicyExecution CAS Policy
FullTrust CAS PolicyFullTrust CAS Policy
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: webmaster@shareoffice.itEmail: webmaster@shareoffice.it
Riferimenti ShareOffice.itRiferimenti ShareOffice.itURL: URL: http://www.shareoffice.itForum: Forum: http://forum.shareoffice.itBlog: Blog: http://blog.shareoffice.it
Email: webmaster@shareoffice.itEmail: webmaster@shareoffice.it
© 2005 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
top related