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.
Scarica

Visual Studio Tools for Office: Developer Solutions Platform