Visutal Studio Tools for Office 2007. Mgr. Michal Neuwirth ISV Technical Readiness Microsoft s.r.o. Agenda. VSTO 2005 SE Add-ins RibbonX Podokno úloh (Task pane) Open XML Další vlastnosti a scénáře Outlook Architektura. VSTO 3.0. Designery pro tvorbu UI
Mgr. Michal Neuwirth ISV Technical Readiness Microsoft s.r.o.
Agenda VSTO 2005 SE Add-ins RibbonX Podokno úloh (Task pane) Open XML Další vlastnosti a scénáře Outlook Architektura
VSTO 3.0 Designery pro tvorbu UI Microsoft Office Excel User-Defined funkce Podpora pro Workflow & Microsoft SharePoint Podpora mobilních zařízení VSTO 2005 SE Add-ins na úrovni aplikací Podpora pro vlastní podokno úloh, ribbon prvky Podokno úloh na úrovni aplikací VSTO 2005 Vlastní ActionsPane - na úrovni dokumentů Host Controls Cached Data v dokumentech Zpracování na straně serveru Add-in pro Outlook 2003 Nasazení a aktualizace založené na manifestech VSTO 2003 Code-behind na úrovni dokumentů Propojení Office a managed světů Striktní bezpečnostní model
VSTO 2005 SE Umožňuje vytvářet vlastní řešení pro Microsoft Office 2007 Microsoft Office 2003 Doplněk pro Microsoft Visual Studio 2005 Professional Edition Microsoft Visual Studio Team System edice Visual Studio Tools for Microsoft Office VSTO 2005 SE Runtime Obsahuje kompletně VSTO 2005 runtime VSTO 2005 vlastní webcasthttp://download.microsoft.com/download/0/7/7/0774EFF4-6E1D-483C-B5B7-B9A56AC18370/VS2005_OFFICE.zip Download zdarma http://msdn.microsoft.com/office/tool/vsto/2005SE
Office 2003 Podpora Add-ins na úrovni aplikace pro Microsoft Office Excel 2003 Outlook 2003 PowerPoint 2003 Visio 2003 Word 2003
Office 2007
Primary Interop Assemblies Office 2007 COM API PIA .NET Solution Office 2003 PIA dostupné jako download Office 2007 PIAs nadále mechanismus pro psaní managed kódu pro Office InfoPath má již vlastní managed OM Kompatibilita s Office 2003 Managed aplikace pro Office 2003 poběží bez rekompilace pro Office 2007 PIA je dispozici jako redistribuční balíček
Host Controls První generace .NET objektů rozšiřujících model Office Bookmark XmlNode Range List Chart
Windows Forms Controls Lze použít Windows ovládací prvky pro dokumenty Wordu a Excelu Embedded do ActiveX kontejneru vytvořeného VSTO
Databinding Postaveno nad ADO .NET Práce s daty, která jsou zobrazena poté ve Wordu a Excelu Bez znalosti OM Office Datové zdroje: Web Service Databáze DataSet Vlastní objekty
Nasazení VSTO 2005 řešení Propojení mezi dokumentem a .NET assembly je zajištěno pomocí 2 vlastností ukazujících na manifesty Manifest může být součástí dokumentu Nebo separátně uložený pomocí ClickOnce Office 2003 a 2007 vyžadují full trust Word/ExcelDocument AssemblyLocation & Name Manifest
Architektura VSTO Assembly Data Island Webové služby Schémata Klient VSTO Runtime LOB data .NET Framework MS Office Professional 2003 a výše Deployment Server Windows Klient
Požadavky na klienta Office 2003 Professional či standalone aplikace Excel, InfoPath, Outlook, Word Office 2007 všechny edice .NET Framework 2.0 VSTO 2005 SE runtime Office primary interop assemblies (PIAs)
Bezpečnost VSTO využívá .NET Code Access Security Je vyžadován Full-trust Defaultně jsou .NET office aplikace zakázané Povolit politikou Podepsat Visual Studio nastavuje každému office projektu automaticky full-trust
Agenda VSTO 2005 SE Add-ins RibbonX Podokno úloh (Task pane) Open XML Další vlastnosti a scénáře Outlook Architektura
VSTO Add-Ins VSTO 2005 přinesl nový loader ‘OTKLoadr’ Loader je podepsán společností Microsoft Podpora pro „shim“ Vytváření vlastních „managed“ add-ins Podpora během vývoje pro návrh čiinstalaci VSTO 2005 obsahuje pouze Outlook add-ins VSTO 2005 SEobsahuje add-ins pro většinu aplikací pro Office 2003 a Office 2007
SharedAdd-ins COM add-in Pokud chceme vytvořit Add-in pro více aplikací najednou Pokud neexistuje Managed Add-in Funguje takto Nahrávají se do DefaultDomain Sdílení security kontextu Jeden může „sundat“ další Využívá rozhraní Extensibility.IDTExtensibility2 Lze vytvořit vlastní proxy třídu („shim“) Visual Studio COM ShimWizard
Shared Add-in
demo
Managed Add-in Framework Zajišťuje tvorbu managed add-ins pro většinu aplikací Vytvořen shim managed add-in (COM wrapper) Public Class ThisAddIn Private Sub ThisAddIn_Startup(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Startup End Sub Private Sub ThisAddIn_Shutdown(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Shutdown End Sub End Class
Managed Add-in
demo
Agenda VSTO 2005 SE Add-ins RibbonX Podokno úloh (Task pane) Open XML Další vlastnosti a scénáře Outlook Architektura
Současná řešení XLM WordBasic CommandBars (‘96) WLL, XLL XLA, PPA, Word global templates Attached Toolbars ve Wordua Excelu …. Stále funkční!!!
Současná řešení Vlastní tlačítka ve Formatting Toolbaru Vlastní Menu Vlastní Toolbar
Word 2003 Možnost připojit toolbary k dokumentům Otevřené dokumenty zobrazují pouze své připojené toolbary Toolbary vytvořené kódem jsou přístupné všem dokumentům
Excel 2003 Připojené toolbary k dokumentům Všechny změny v prostředí se „kumulují“ v Excel toolbaru
Excel po otevření několika desítek dokumentů s připojenými toolbary…..
Prvek Ribbon Nové uživatelské rozhraní v Office 2007 Úpravy pomocí XML modelu VSTO 2005 SE podporuje úpravy pro Excel 2007, Outlook 2007, PowerPoint 2007, Word 2007 Ribbon Ovládací prvek Záložka Skupina
Stávající řešení
Možnosti přizpůsobení Přidat vlastní záložky Vložení vlastní skupiny do existujících záložek Přidání položky do File Menu Přidání položky do stávajících kontextových záložek
Objekty mimo RibbonX Mini Toolbar Right-click (kontextová) menu Status Bar
Ovládací prvky Tabs Groups Buttons Labels ToggleButtons Menus SplitButtons CheckBoxes
Ovládací prvky EditBoxes DialogBoxLaunchers DropDowns ComboBoxes Galleries MS Office 2003: msoControlButton, msoControlEdit, msoControlPopup, msoControlComboBox, msoControlDropdown
RibbonX projekty COM VBA VSTO Pro aplikaci Instalace na úrovni aplikaceJe pořád vidět Word Global Template Excel Add-in (.xlam) PPT Add-in (.ppam) VytvořeníVSTOřešení pro celou aplikaci Prodokument Instalace na úrovni celé aplikace Zobrazuje se dle zobrazených dokumentů Word, Excel, PowerPoint dokumenty Access databáze Vytvoření VSTO řešení pro dokumenty
Ribbon na úrovni aplikace COM add-in který nahraje ribbon XML za běhu aplikace VSTO 2005 Shared Add-In projekt ImplementaceIRibbonExtensibilityinterface Návrat RibbonX XML v metodě GetCustomUI() VSTO 2005 SE Managed Add-in či shared Add-in přidání prvku Ribbon support do projektu Odkomentovat část TODO Přidání callback funkcí na zpracování událostí getImage, onAction, getEnabled, getPressed, …
XML Schéma Ribbon, tab, group, box Kontejnery Model „najdi nebo vytvoř“ id, idMso Definice vlastního id či odkaz na standardní objekt insertAfterMso, insertBeforeMso Způsob vkládání mezi standardní objekty image, imageMso Definice vlastního obrázku či odkaz na standardní obrázek getImage, onAction, getEnabled, getVisible Nejdůležitější CallBack funkce
Můj první Ribbon
demo
startFromScratch <ribbon startFromScratch=“true”> Schová všechny Ribbon záložky Modifikace Office menu Zůstane pouze položka New, Open, Save, Options a Exit <command idMso=“Save” onAction=“runMyCode” /> Zachytíme stisk tlačítka Save <button id=“x” imageMso=“Save” label=“Imposter!” /> Vytvoříme vlastní tlačítko Save
<startFromScratch/>
demo
Dynamická aktualizace Přidání ovládacích prvků je možné pouze pomocí XML Nejsou žádné API pro tyto operace Vlastnostijsou přístupné pomocí CallBack funkcí Galerie a dynamická menu Lze dynamicky „plnit“ ovládacími prvky
Agenda VSTO 2005 SE Add-ins RibbonX Podokno úloh (Task pane) Open XML Další vlastnosti a scénáře Outlook Architektura
Podokno úloh Actions Pane Asociován se specifickým Word či Excel dokumentem Alternativa ke „SmartDocuments“ Task Pane Stejné jako Actions Pane ale určen pro celou aplikaci
Podokno úloh dokumentu Propojení mezi podoknem úloh a dokumentem Vytvořit XML schéma dokumentu a připojit ho k dokumentu Zpracování událostí enter/leave prvků bookmarks/xmlnode Zpracování událostí enter/leave dokumentu Ovládací prvky Windows Forms Vlastní ovládací prvky Přidávání prvků Me.ActionsPane.Controls.Add(myControl) Podpora pro vytváření podokna úloh v módu návrhu Již žádné ISmartDocumentinterface VSTO 2005
Podokno úloh aplikace Podokno úloh nezávislé na dokumentu Dvě komponenty Ovládací prvek pro zobrazení vlastních informací InfoPath, WinForms Nativní či managed Add-in pro vytvoření a zobrazení podokna úloh VSTO 2005 SE
SdílenýAdd-In
MDI a SDI
SDIpodokno úloh Vytvoření standardního ovládacího VS 2005 prvku V metodě ThisAddIn_Startup()zadat: CustomTaskPanes.Add(myUserControl, “My Taskpane”)
SDI podokno úloh
demo
MDI podokno úloh Vytvoření „wrapperu“ pro dokumentové okno, který zpracovává události a zajišťuje obnovení podokna úloh Vytvoření instance wrapperu v události vytváření okna – NewDocument, DocumentOpen atd. Asociovat podokno úloh v okně během inicializace wrapperu Držet si v Add-inu seznam všech instancí wrapperu Odebrání podokna úloh při zavření okna a zrušení instance odpovídajícího wrapperu
Ribbon<==> podokno úloh Vytvoření vlastního podokna úloh V XML vytvoření CallBack funkce onAction() getPressed() Implementace CallBack funkcí onAction() – zapnutí/vypnutí podokna úloh getPressed() – vrací stav ovládacího prvku Zpřístupnit metodu InvalidateControl() V metodě VisibleChanged() uvnitř podokna úloh volat InvalidateControl()
MDI podoknoúlohInterakce s Ribbon prvkemInvalidate()
demo
Agenda VSTO 2005 SE Add-ins RibbonX Podokno úloh (Task pane) Open XML Další vlastnosti a scénáře Outlook Architektura
Dotaznik. docx Architektura Office Open XML Pohled uživatele: jeden Office “soubor”
Dotaznik. docx Dotaznik. docx Architektura Office Open XML Pohled uživatele: jeden Office “soubor” Pohled vývojáře: modulárnísoubor
Dotaznik. docx Dotaznik. docx Architektura Office Open XML Pohled uživatele: jeden Office “soubor” Balíček Pohled vývojáře: modulárnísoubor
Dotaznik. docx Dotaznik. docx [content types].xml Architektura Office Open XML Pohled uživatele: jeden Office “soubor” Balíček Pohled vývojáře: modulárnísoubor
Části dokumentu Dotaznik. docx word / xl /ppt Dotaznik. docx [content types].xml Architektura Office Open XML Pohled uživatele: jeden Office “soubor” Balíček Pohled vývojáře: modulárnísoubor
Dokument, Aplikace, uživatelské vlastnosti dokumentu docProps Části dokumentu Dotaznik. docx word / xl /ppt Dotaznik. docx [content types].xml Architektura Office Open XML Pohled uživatele: jeden Office “soubor” Balíček Pohled vývojáře: modulárnísoubor
Vztahy _rels Dokument, Aplikace, uživatelské vlastnosti dokumentu docProps Části dokumentu Dotaznik. docx word / xl /ppt Dotaznik. docx [content types].xml Architektura Office Open XML Pohled uživatele: jeden Office “soubor” Balíček Pohled vývojáře: modulárnísoubor
Vztahy Uživatelská XML makra, … _rels custom fld Dokument, Aplikace, uživatelské vlastnosti dokumentu docProps Části dokumentu Dotaznik. docx word / xl /ppt Dotaznik. docx [content types].xml Architektura Office Open XML Pohled uživatele: jeden Office “soubor” Balíček Pohled vývojáře: modulárnísoubor
Základní komponenty Balíček ZIP kontejner Část balíčku Souboryv ZIPu Většina jsou XML soubory Dají se vložit i binární soubory Typy obsahu každá část má typ obsahu (text, jpg,...) Vztahy libovolná část, která referencuje jinou, či hraje roli v provázání dokumentů
Struktura balíčku
demo
Přínosy Lepší interoperabilita Publikovaná (ECMA) specifikace formátu Meziplatformní interoperabilita Čeká se na ISO standard Nové integrační scénáře Vhodné pro integraci dokumentů a LOB systémů Práce na straně serveru bez použití Office API či dokonce Office aplikací Ochrana privátních informácí Lze určité části označit za důvěrné a při předání dokumentu je odstranit
Možnosti pro vývojáře Tvorba řešení na práci s Office soubory bez Office API System.IO.Packaging Office Open XML formáty používají Open Packaging Conventions Přístup/údržba částí a vztahů v souboru Stará se o funkcionalitu ZIPování na všech úrovní Základní XML programování XPath – Navigace v obsahu XML DOM – Manipulace s obsahem
Generování dokumentu Prezentační vrstva Vrstva obch.logiky Vrstva služeb Webový klientTlustý klient ASP.NETAplik.WebServicesDávkovýproces
Generování dokumentu Prezentační vrstva Vrstva obch.logiky Vrstva služeb Webový klientTlustý klient ASP.NETAplik.WebServicesDávkovýproces
Generování dokumentu Prezentační vrstva Vrstva obch.logiky Vrstva služeb Webový klientTlustý klient ASP.NETAplik.WebServicesDávkovýproces .NET Packaging API
Generování dokumentu Prezentační vrstva Vrstva obch.logiky Vrstva služeb Webový klientTlustý klient ASP.NETAplik.WebServicesDávkovýproces .NETPackaging API
System.IO.Packaging Přidávání častí dokumentu Načítání a úprava obsahu Tvorba nových vztahů Důležité třídy Package PackagePart PackageRelationship
System.IO.Packaging Otevření balíčku using (Package package = Package.Open(packagePath, FileMode.Open,FileAccess.ReadWrite)) { Uri uriPartTarget = new Uri("/word/styles1.xml", UriKind.Relative); PackagePart newPackagePart = package.CreatePart(uriPartTarget, "application/vnd.ms-word.styles+xml"); using (FileStream fileStream = new FileStream(stylePath, FileMode.Open, FileAccess.Read)) { CopyStream(fileStream, newPackagePart.GetStream()); } }
System.IO.Packaging Otevření balíčku Přístup k části dokumentu (GetPart) using (Package package = Package.Open(packagePath, FileMode.Open,FileAccess.ReadWrite)) { Uri uriPartTarget = new Uri("/word/styles1.xml", UriKind.Relative); PackagePart newPackagePart = package.CreatePart(uriPartTarget, "application/vnd.ms-word.styles+xml"); using (FileStream fileStream = new FileStream(stylePath, FileMode.Open, FileAccess.Read)) { CopyStream(fileStream, newPackagePart.GetStream()); } }
System.IO.Packaging Otevření balíčku Přístup k části dokumentu (GetPart) Vytvoření části dokumentu (CreatePart) using (Package package = Package.Open(packagePath, FileMode.Open,FileAccess.ReadWrite)) { Uri uriPartTarget = new Uri("/word/styles1.xml", UriKind.Relative); PackagePart newPackagePart = package.CreatePart(uriPartTarget, "application/vnd.ms-word.styles+xml"); using (FileStream fileStream = new FileStream(stylePath, FileMode.Open, FileAccess.Read)) { CopyStream(fileStream, newPackagePart.GetStream()); } }
System.IO.Packaging Otevření balíčku Přístup k části dokumentu (GetPart) Vytvoření části dokumentu (CreatePart) Přidání obsahu do části dokumentu using (Package package = Package.Open(packagePath, FileMode.Open,FileAccess.ReadWrite)) { Uri uriPartTarget = new Uri("/word/styles1.xml", UriKind.Relative); PackagePart newPackagePart = package.CreatePart(uriPartTarget, "application/vnd.ms-word.styles+xml"); using (FileStream fileStream = new FileStream(stylePath, FileMode.Open, FileAccess.Read)) { CopyStream(fileStream, newPackagePart.GetStream()); } }
Agenda VSTO 2005 SE Add-ins RibbonX Podokno úloh (Task pane) Open XML Další vlastnosti a scénáře Architektura
Doc/Template Doc Parts VBA XML Externí aplikace Office XML Data Store Vlastní definovaná XML datalze uložit do separátní částidokumentů XML lze uložit jako Document properties WSS meta-data Custom XML (s/bezXML schéma) Externí aplikace mohou číst/zapisovat tato data
Manuální práce s XML Manuální přidání
Document CustomXMLParts CustomXMLPart CustomXMLParts VBA či .NET Operace Přidání nového CustomXMLPart Load() - nahrání externího XML souboru LoadXML()– nahrání XML řetězce Delete() Práce s XML DOM
XML Parts v Excelu
demo
XML Schéma Novinka vOffice 2003 Připojené XML schéma k dokumentu či šabloně Namapování regionů v dokumentu ke schématu Získávání dat od uživatele Save as XML – pouze data Nutné pro SmartDocuments K dispozici pro Word a Excel 2007
Content ControlsWord 2007 Tvorba XML schématu v prostředí vytvářením struktury dokumentu Prvky nemají vliv na layout dokumentu Prvky lze vkládat do skupin a s těmi poté pracovat Prvky lze namapovat na XML data Mohou být použity pomocí v rámci document parts Prvky se vkládají z ToolBoxu na Developer záložce Množství nastavení pro jednotlivé prvky Pro prázdné prvky lze nastavit řetězcové placeholdery
Document ContentControls ContentControl ContentControls VBA či .NET Operace Dynamicky přidávat content controls Inicializace a naplnění prvků Změna obsahu Zpracování událostí
Word Content Controls
demo
Presentation Maker
demo
Visio Diagram
demo
Formuláře pro Word
demo
Agenda VSTO 2005 SE Add-ins RibbonX Podokno úloh (Task pane) Open XML Další vlastnosti a scénáře Outlook Architektura
Objektový model Rozšíření existujícího modelu, nevzniká nový model Stávající řešení fungují beze změn Spojení existujících APIs (CDO, ECEs) do jednohoOutlook OM Plná podpora CDO, ExMAPI, ECEsz managed kódu „Trusted Add-in“zůstává primární technologie pro úpravy outlook prostředí a formulářové regiony
Outlook API Outlook 2000/2002/2003 Outlook 2007 Outlook OM Outlook OM CDO CDO Rozšířený Outlook “12” OM ECE ECE Extended MAPI ExMAPI MAPI Providers MAPI Providers
Nový OOM Umožňuje vytvářet řešení proti jedné sadě API funkcí (Outlook Object Model) ECE část: Rozšířený model pro zpracování událostí pro vytváření položek, zobrazování v panelu náhledu, v inspectorpanelech či editace CDO část: Ekvivalentní objekty a metody pro AddressBook, DeliverNow, Stores, Fields, HiddenMessages Odstraňuje separátní bezpečnostní model pro CDO 1.21
Bezpečnost --- Bezpečnostní dotazy matou uživatele, frustrují vývojáře a přinášejí „problémy“ IT odborníkům CDO bezpečnost není integrována s bezpečnostním Add-in modelem Vývojáři se „uchylují“ k řešením třetích stran Cross-process aplikace jsou vždy untrustedpro Outlook OM Guard
Bezpečnost řešení Instalované Add-iny mají bezpečný přístup do OOM Zpřístupnění x-process aplikací pomocí bezpečného proxy COM-Addinu
Výkonnost --- Enumerace velkých kolekcí v OOM není výkonnostně zoptimalizovaná Pro rychlost se používá CDO/ExMAPI, které přinášejí další problémy (stav, nasazení, bezpečnost) Vyhledávání je pomalé jak v UI tak programově
Výkonnost řešení Tabulka poskytuje read-only řádky pro rychlé enumerace, vyhledávání a řazení Využívají se kontextové indexery pro vyhledávání dle prefixu či podřetězců
Formuláře --- Vlastní formuláře nepodporují témata Problémy s kešováním formulářů Interpretovaný VBScript kód běží mimo formuláře, těžké na vývoj a údržbu Těžké „klonování“ standardních formulářů kvůli nedostatku ovládacích prvků Rozšíření stávajících formulářů je složité Není integrace s Add-in modelem
Formuláře řešení Podpora rozšiřování stávajících formulářů Adjoining a separátní regiony pro vlastní i standardní formuláře Form Regions se vytvářejí pomocíOutlook Forms Designeru Formuláře jsou implementovány jako Add-iny Nasazení pomocí Windows registry
Ovládací prvky Nové ovládací prvky Category Strip aButton Contact Photo Electronic Business Card Preview Scheduling Free/Busy InfoBar Date and Time Picker Check, Option, Edit, Label, Frame (MSForms) Ovládací prvky podporují témata Podpora událostí u ovládacích prvků
Custom Task Pane
Custom Task Pane (CTP) Možno vytvářet pro Outlook Inspector neboExplorer okna Dokovatelné na strany nebo dolů Možnost zobrazit více CTP Vytvořeny jako ActiveX nebo Ovládací prvek pro Winforms Add-in musí implement Office.ICustomTaskPaneConsumer
Command UI Stávající CommandBarkód je zobrazen v záložce Add-ins v Inspector okně Menu Commands -> Menu Commands skupina Toolbar Commands ->Toolbar Commands skupina Custom Toolbar -> Custom Toolbars skupina Preferovaný způsob je rozšíření prvku Ribbon
Application Modifikace kontextových menu pro přidání vlastních říkazů Application ItemLoadpro práci s položkami Události pro kustomizaci Context Menu Accounts/Account Categories/Category ExchangeMailboxServerVersion, ExchangeMailboxServer, AutoDiscoveryURL Stores/Store, DefaultStore SendAndReceive
PropertyAccessor Přístup k MAPI vlastnostemúložišť či složek které nejsou k dispozici v OOM Poskytuje operace set/get k vlastnostem tříd Store, Attachment, AddressEntry, Folder či Item-level Poskytuje přístup k low-level údajům Binární vlastnosti vráceny jako pole bajtů Datumy vráceny jako UTC namísto Local Time
ExchangeUser Rozšíření AddressEntry GetContact GetExchangeUser GetExchangeDistributionList GetMemberOfList ExchangeUservlastnosti .FirstName, .LastName, .JobTitle, .Department, .PrimarySmtpAddress..... PodporujePropertyAccessor pro vlastní vlastnosti Session.SelectNamesDialogzobrazujeOutlook Address Book dialog
Enhanced Events Application_ItemLoadpro odchycení/zpracování Nahrání položky do Reading Pane In-cell editace v rámci View Události pro práci s přílohami na úrovni položek Události složek Folder_BeforeItemRemove Folder_BeforeFolderRemove Události úložišť Stores_AddStore Stores_BeforeStoreRemove
StorageItem K dispozici přesFolder.GetStorage Přístup k existujícím skrytým zprávám vytvořených pomocí CDO/ExMAPI Lze získat pomocíSubject, MessageClass čiEntryID Pomocí Attachments.Add, Body, UserProperties čiPropertyAccessorukládat data z add-inůdo StorageItem StorageItem.Savepro persistentní uložení dat
Pravidla Postaveno nad Store objektem Session.DefaultStore.GetRules() Implementuje nejčastěji používaná pravidla, akce a podmínky Statické kolekce RuleActions RuleConditionsa RuleExceptConditions
Outlook RibbonVlastní formulářePráce s úložištěm
demo
Agenda VSTO 2005 SE Add-ins RibbonX Podokno úloh (Task pane) Open XML Další vlastnosti a scénáře Architektura
VSTO Design-time Stack Excel, Word Excel, InfoPath, Outlook, PowerPoint, Visio, Word, (Access, Project) Excel, Outlook, PowerPoint, Word, (Access) Excel, Outlook, PowerPoint, Word, (Access) SharePoint Office IDE Hosting Outlook Workflow Document Solutions Add-ins Ribbon Ribbon XML Form Regions Project Templates Item Wizards Visual Studio
VSTO Design-time Adapters Excel Visual Studio Design Time Adaptor Addin (VSTOExcelAdaptor.dll) Word Visual Studio Design Time Adaptor Addin (VSTOWordAdaptor.dll)
VSTO Runtime Stack Office Client Host Managed/ Unmanaged Host Doc-Level Solution App-Level Add-in VSTO Runtime Doc Task Pane Host Item Control Windows Forms Controls Custom Ribbon Custom Task Pane Custom Form Region Common VSTO Runtime AppDomain Management Security Enforcement Deployment and Updating .NET CLR Managed Add-in Framework (MAF) ClickOnce
VSTO Runtime Host Item Controls Microsoft.Office.Tools.Excel.ListObject Microsoft.Office.Tools.Word.Bookmark .... Windows Forms Controls Microsoft.Office.Tools.Excel.Controls.Button Microsoft.Office.Tools.Word.Controls.ComboBox ..... Specielní ovládací prvky Document Task Pane App-level Custom Task Pane Custom form region
VSTO Control Hosting Custom Windows Forms UserControl VSTO Invisible ActiveX Control Office Task Pane Window
Doc-Level Host Item Controls Excel Internal Behavior Exposed COM Object Model Excel. ListObject PIA Representation Microsoft.Office. Interop.Excel. ListObject VSTO Functional Wrapper Microsoft.Office. Tools.Excel. ListObject
VSTO Add-ins Excel Internal Behavior Exposed COM Object Model Excel. Application PIA Representation Microsoft.Office. Interop.Excel. Application Microsoft. Office. Tools.AddIn
Office Interfaces Nové interfaces VSTO Podporuje RequestService Hosting controls
VSTO Verze VSTO 2003 aplikace použijí v1 runtime VSTO 2005 aplikace použijí v2 runtime VSTO 2007 aplikace použijí v3runtime Runtime vyšší verze obsahuje runtime nižších verzí
Zdroje Office Developer Centerhttp://msdn.microsoft.com/office/tool/vsto/default.aspx Hands-on Labs for VSTO 2005 http://www.microsoft.com/downloads/details.aspx?FamilyID=f2323aaf-fe87-4203-9ed8-72466566e105&displaylang=en WebCasty (česky) http://download.microsoft.com/download/0/7/7/0774EFF4-6E1D-483C-B5B7-B9A56AC18370/VS2005_OFFICE.zip http://download.microsoft.com/download/2/6/2/2625C8DA-14F0-499C-ADD6-370E1503D15D/VSTO01.zip
Nástroje ke stažení Download VSTO 2005 SEhttp://www.microsoft.com/downloads/details.aspx?familyid=5e86cab3-6fd6-4955-b979-e1676db6b3cb&displaylang=en COM Shim Wizard downloadhttp://www.microsoft.com/downloads/details.aspx?familyid=300a6cdb-84dd-4c62-b3bd-e79194d83494&displaylang=en
Blogy John R. Durant http://blogs.msdn.com/johnrdurant Eric Carter http://blogs.msdn.com/eric_carter/ Peter Torr http://weblogs.asp.net/ptorr/ Eric Lippert http://blogs.msdn.com/EricLippert Paul Stubbs http://weblogs.asp.net/pstubbs VSTO 2005 Team Blog http://weblogs.asp.net/vsto2
Odkaz na Office UI Licence Jak získat zdarma licence na Intelektuální vlastnictví společnosti Microsoft opravňující vytvářet aplikace se vzhledem a funkčností Office 2007 aplikací. http://msdn2.microsoft.com/en-us/office/aa973809.aspx
Závěr Vývoj vlastních RibbonX prvků Vývoj sdílených Add-inů Podokno úloh nezávislé na dokumentech jak pro SDI tak i MDI prostředí Dynamická tvorba Open XML dokumentů