Upload
marlene-abrams
View
106
Download
2
Tags:
Embed Size (px)
Citation preview
Jens HäupelJens Häupel.NET Technologieberater.NET TechnologieberaterDeveloper Platform & Strategy GroupDeveloper Platform & Strategy GroupMicrosoft Deutschland GmbHMicrosoft Deutschland GmbHhttp://blogs.msdn.com/jenshahttp://blogs.msdn.com/jensha
VVisualisual SStudiotudio TToolsools fürfür OOfficeffice 2.0 2.0
Integration in Office 2003Integration in Office 2003
Zu viele FrontendsZu viele Frontends
SiebelSiebel
SAPSAP
Microsoft CRMMicrosoft CRM
Any ERPAny ERP
SpeziallösungenSpeziallösungenAny CRMAny CRM
AdressverwaltungenAdressverwaltungen
SQL ServerSQL Server
Office-Integration hat VorteileOffice-Integration hat Vorteile
Rad nicht neu erfindenRad nicht neu erfinden Schnellere Entwicklung Schnellere Entwicklung
Viele kennen es gut genugViele kennen es gut genug Keine teure Einarbeitungszeit Keine teure Einarbeitungszeit
Oft nicht alle Funktionen des speziellen Oft nicht alle Funktionen des speziellen Frontends benötigtFrontends benötigt
One-stop shoppingOne-stop shopping Kein Screen Hopping Kein Screen Hopping 'Smarte Dokumente' 'Smarte Dokumente'
Wieso also nicht?Wieso also nicht?
VVisualisual SStudiotudio T Toolsools fürfür OOfficeffice 2.0 2.0
Integration in Visual StudioIntegration in Visual Studio
Kaskadierte Office Menus View Controls per Drag&Drop aus der Toolbox
Property Window Support
Word und Excel als Designer
Integration in Visual StudioIntegration in Visual Studio
Integration in Visual StudioIntegration in Visual Studio
Höhere Produktivität durch IDE IntegrationHöhere Produktivität durch IDE Integration Vorteile von Managed CodeVorteile von Managed Code
gemeinsame Klassenbibliotheken für alle gemeinsame Klassenbibliotheken für alle SprachenSprachen
Kompatibles TypsystemKompatibles Typsystem Gemeinsame LaufzeitumgebungGemeinsame Laufzeitumgebung Code Access SecurityCode Access Security Code-Vererbung (auch zw. Sprachen)Code-Vererbung (auch zw. Sprachen) ……
Erweiterung mit ViewControlsErweiterung mit ViewControls
Erweiterungen von vorhandenen Excel-bzw. Erweiterungen von vorhandenen Excel-bzw. Word-ObjektenWord-Objekten
Bookmark, NamedRange, ListObject, Bookmark, NamedRange, ListObject, XmlMappedRange, Chart ControlXmlMappedRange, Chart Control
Properties und EventsProperties und Events
The end of scanning the entire workbook!The end of scanning the entire workbook!
Erweiterung mit .NET ControlsErweiterung mit .NET Controls
Word / Excel als Host für Managed ControlsWord / Excel als Host für Managed Controls Komplettes Komplettes
EventingEventing Databinding Databinding
BindingSourceBindingSource TableAdapterTableAdapter DataSetDataSet BindingNavigatorBindingNavigator
Wrapper-Objekt wird Wrapper-Objekt wird automatisch generiertautomatisch generiert
Databinding mit View ControlsDatabinding mit View Controls
Die ActionsPaneDie ActionsPane
Anpaßbarer Bereich mit vielfältigen Anpaßbarer Bereich mit vielfältigen Möglichkeiten Möglichkeiten
Vieles out-of-the-boxVieles out-of-the-box Shared WorkspaceShared Workspace XML SourceXML Source Research PaneResearch Pane ……
VSTO bietet.NET Code Modell VSTO bietet.NET Code Modell für die Aufgabenleistefür die Aufgabenleiste Managed ControlsManaged Controls
Die ActionsPaneDie ActionsPane
Basiert auf Windows Forms Basiert auf Windows Forms Designer-UnterstützungDesigner-Unterstützung Container für Custom Container für Custom
User ControlsUser Controls ISmartDocument nicht nötigISmartDocument nicht nötig Kein XML Schema Mapping Kein XML Schema Mapping
erforderlicherforderlich Interaktion mit View Controls Interaktion mit View Controls
und/oder Objektmodellund/oder Objektmodell
Integration in die ActionsPaneIntegration in die ActionsPane
RechnungsüberprüfungRechnungsüberprüfung Verwendete TechnologienVerwendete Technologien
Microsoft ExcelMicrosoft Excel XML Web service – Datentransfer vom/zum XML Web service – Datentransfer vom/zum
ServerServer SQL Server – Speichert RechnungsdatenSQL Server – Speichert Rechnungsdaten
Beispiel für ActionsPaneBeispiel für ActionsPane Angepaßtes MenüAngepaßtes Menü Datengebundene Drop-Datengebundene Drop- Down-ListeDown-Liste Real-Time DatenReal-Time Daten
User Controls in der ActionsPaneUser Controls in der ActionsPane
SmartTags in VSTO SmartTags in VSTO
SmartTags in VSTOSmartTags in VSTO
Sehr einfaches und intuitives InterfaceSehr einfaches und intuitives Interface Kaspelt die COM-Interfaces ISMartTagAction Kaspelt die COM-Interfaces ISMartTagAction
bzw. ISmartTagRecognizerbzw. ISmartTagRecognizer Für spezifische DokumenteFür spezifische Dokumente
Aggressivere Erkennungsmechanismen möglichAggressivere Erkennungsmechanismen möglich
Für Dokumente, die auf einer bestimmten Für Dokumente, die auf einer bestimmten Vorlage basierenVorlage basieren Allgemeinere Erkennung, GruppierungAllgemeinere Erkennung, Gruppierung
VSTO 2.0 - Smart TagsVSTO 2.0 - Smart Tags
Office-Dokumente und ServerOffice-Dokumente und Server
Was ist, wenn ein Server-Prozeß ein Office-Was ist, wenn ein Server-Prozeß ein Office-Dokument erzeugen/verändern muß?Dokument erzeugen/verändern muß?
Office ist eine Client-Anwendung!Office ist eine Client-Anwendung! Account hat möglicherweise keinen DesktopAccount hat möglicherweise keinen Desktop Vor dem Server sitzt keiner!Vor dem Server sitzt keiner!
WordProcessingML / SpreadsheetMLWordProcessingML / SpreadsheetML Erweiterung von XMLErweiterung von XML Voll formatierte DokumenteVoll formatierte Dokumente
Oder …Oder …
Data IslandsData Islands
Office-Dokumente können nun Office-Dokumente können nun sog. "Dateninseln" enthalten sog. "Dateninseln" enthalten
Speicherort für XML Daten im Speicherort für XML Daten im Office-DokumentOffice-Dokument
Extra-Stream im OLE Structured StorageExtra-Stream im OLE Structured Storage Zugriff darauf Zugriff darauf ohneohne Office-Instanz ! Office-Instanz ! Einfache Erzeugung durch Einfache Erzeugung durch Cached()Cached()-Attribut -Attribut
bzw. bzw. CacheInDocumentCacheInDocument Property Property
Data Islands - EinsatzgebieteData Islands - Einsatzgebiete
Erlaubt automatisierte serverseitige Erlaubt automatisierte serverseitige Verarbeitung der DatenVerarbeitung der Daten
z.B. für Konfigurations-Infos bzw. in Offline-z.B. für Konfigurations-Infos bzw. in Offline-SzenarienSzenarien
Client-Server-SzenarioClient-Server-Szenario Synchronisierung, wenn onlineSynchronisierung, wenn online Personalisierte Vorbelegung von Daten beim Personalisierte Vorbelegung von Daten beim
Öffnen von DateienÖffnen von Dateien
DataIsland
ServerServerCodeCode
Server Client
DatabasesDatabases CorporateCorporateSystemsSystems
Bill's Daten
URL RequestCreateExpense.aspxCreateExpense.aspx
FunktionsweiseFunktionsweise
DataIsland
ServerServerCodeCode
Server Client
DatabasesDatabases CorporateCorporateSystemsSystems
Bill's Daten
CreateExpense.aspxCreateExpense.aspx
Bill's Daten
FunktionsweiseFunktionsweise
ServerServerCodeCode
Server Client
DatabasesDatabases CorporateCorporateSystemsSystems
Bill's Daten
CreateExpense.aspxCreateExpense.aspx
DataIsland
Bill's Daten
DataIsland
Bill's Daten
FunktionsweiseFunktionsweise
ServerServerCodeCode
Server Client
DatabasesDatabases CorporateCorporateSystemsSystems
Bill's Daten
CreateExpense.aspxCreateExpense.aspx
DataIsland
Bill's Daten
FunktionsweiseFunktionsweise
DataIsland
ServerServerCodeCode
Server Client
DatabasesDatabases CorporateCorporateSystemsSystems
CreateExpense.aspxCreateExpense.aspx
Bill's aktualisierte
Daten
Bill's Daten
FunktionsweiseFunktionsweise
ServerServerCodeCode
Server Client
DatabasesDatabases CorporateCorporateSystemsSystems
CreateExpense.aspxCreateExpense.aspx
DataIsland
Bill's aktualisierte
Daten
DataIsland
Bill's aktualisierte
Daten
Bill's Daten
FunktionsweiseFunktionsweise
ServerServerCodeCode
Server Client
DatabasesDatabases CorporateCorporateSystemsSystems
CreateExpense.aspxCreateExpense.aspx
DataIsland
Bill's aktualisierte
Daten
Bill's Daten
FunktionsweiseFunktionsweise
ServerServerCodeCode
Server Client
DatabasesDatabases CorporateCorporateSystemsSystems
CreateExpense.aspxCreateExpense.aspx
DataIsland
Bill's aktualisierte
Daten
Bill's aktualisierte
Daten
FunktionsweiseFunktionsweise
Komplexere DatenKomplexere Daten Auch Datasets passen auf die InselAuch Datasets passen auf die Insel Datasets sind einfach (de)serialisierbarDatasets sind einfach (de)serialisierbar
ds.ReadXmlSchema()ds.ReadXmlSchema() ds.ReadXml(ds.ReadXml(), ds.WriteXml()), ds.WriteXml()
CacheInDocument PropertyCacheInDocument Property Instanz muß Public seinInstanz muß Public sein
Outlook-IntegrationOutlook-IntegrationChancen und MöglichkeitenChancen und Möglichkeiten
Viele Benutzer “leben” in OutlookViele Benutzer “leben” in Outlook eMails / Aufgaben oft integraler Bestandteil eMails / Aufgaben oft integraler Bestandteil
von typischen Business-Prozessen bzw. von typischen Business-Prozessen bzw. Document WorkflowsDocument Workflows
Wunsch nach einem Front-End für viele Wunsch nach einem Front-End für viele Back-End-SystemeBack-End-Systeme
Weniger Training und erweiterte Weniger Training und erweiterte Möglichkeiten wg. bekanntem Office UIMöglichkeiten wg. bekanntem Office UI
““natürliche” Abläufenatürliche” Abläufe
Mögliche VSTO Outlook SzenarienMögliche VSTO Outlook Szenarien
Line of Business AnwendungenLine of Business Anwendungen ERP, CRM, etc.ERP, CRM, etc.
Collaboration & Workflow LösungenCollaboration & Workflow Lösungen Reisekosten, Business Travel Lösungen, etc.Reisekosten, Business Travel Lösungen, etc.
Digital Content IntegrationDigital Content Integration Zugriff auf BibliotheksdatenZugriff auf Bibliotheksdaten
Utilities & ToolsUtilities & Tools Integration von mobilen ServicesIntegration von mobilen Services
Verfügbarkeit von Flügen direkt aus KalenderVerfügbarkeit von Flügen direkt aus Kalender
Die VSTO Outlook Add-In LösungDie VSTO Outlook Add-In Lösung
Verwendet bestehende VSTO Runtime Verwendet bestehende VSTO Runtime ServicesServices AppDomain IsolationAppDomain Isolation Separate Security ConfigurationSeparate Security Configuration Disconnect Disconnect Unload Unload Manifest-basierte UpdatesManifest-basierte Updates
Starkes Sicherheits-ModellStarkes Sicherheits-Modell Visual Studio ProjektvorlageVisual Studio Projektvorlage Snippets, Code Samples, WhitepapersSnippets, Code Samples, Whitepapers
VSTO Add-In ArchitekturVSTO Add-In ArchitekturManagedUnmanaged
Office (Outlook)
Host Application
DefaultDomain
VSTO Runtime
AppDomain Provider
SecurityManager
Add-in Domain #N
Managed Add-in
Add-in Domain #3
Managed Add-in
Add-in Domain #2
Managed Add-in
AddinLoader.dll
Addin Loader
IDTExtensibility2 proxy
AddinLoader.dll
Addin Loader
IDTExtensibility2 proxy
AddinLoader.dll
Addin Loader
IDTExtensibility2 proxy
Deployment von VSTO-LösungenDeployment von VSTO-Lösungen
MSI PackagesMSI Packages Assembly + Dokument werden lokal installiertAssembly + Dokument werden lokal installiert
Netzwerk-DeploymentNetzwerk-Deployment Assembly Deployment über Assembly Deployment über FTP, UNC, HTTP, FTP, UNC, HTTP,
SharePointSharePoint Versionierte AssembliesVersionierte Assemblies Download in lokalen Cache (User Profile)Download in lokalen Cache (User Profile)
UpdatesUpdates Zentral bereitgestellt vom Admin Zentral bereitgestellt vom Admin Automatisches Prüfen + Download bei Automatisches Prüfen + Download bei
VerwendungVerwendung
Sicherheit Sicherheit
.NET Code Access Security.NET Code Access Security Ausführung in der SandboxAusführung in der Sandbox Basiert aufBasiert auf
PfadPfad HashHash Strong NameStrong Name Digitale Signatur (Trusted Publisher Modell)Digitale Signatur (Trusted Publisher Modell)
Angewandt auf AssemblyAngewandt auf Assembly User muß nicht Admin sein, um VSTO-User muß nicht Admin sein, um VSTO-
Lösungen verwenden zu könnenLösungen verwenden zu können
ZusammenfassungZusammenfassung
VSTO 2.0 schafft vielfältige Integrations-VSTO 2.0 schafft vielfältige Integrations-möglichkeiten für Officemöglichkeiten für Office
Kein neues Tool, sondern Visual StudioKein neues Tool, sondern Visual Studio Managed Controls und WinForms Designer Managed Controls und WinForms Designer
SupportSupport Professioneller: Code-behind-Modell bedeutet Professioneller: Code-behind-Modell bedeutet
Trennung von Logik und OberflächeTrennung von Logik und Oberfläche Adressiert den professionellen EntwicklerAdressiert den professionellen Entwickler Dokument-zentrisch (XL, WD) bzw. Aplikations-Dokument-zentrisch (XL, WD) bzw. Aplikations-
zentrisch (OL)zentrisch (OL) Office als Host für Smart Client SolutionsOffice als Host für Smart Client Solutions