Microsoft Office Overview Open XML Formats, Extensible UI, InfoPath and Forms Services, Workflow and...

48
Microsoft Office Microsoft Office Overview Overview Open XML Formats, Extensible UI, Open XML Formats, Extensible UI, InfoPath and Forms Services, Workflow InfoPath and Forms Services, Workflow and Sharepoint and Sharepoint Dave Glover Dave Glover http://blogs.msdn.com/dglover

Transcript of Microsoft Office Overview Open XML Formats, Extensible UI, InfoPath and Forms Services, Workflow and...

Microsoft Office Overview Microsoft Office Overview Open XML Formats, Extensible UI, InfoPath and Open XML Formats, Extensible UI, InfoPath and Forms Services, Workflow and SharepointForms Services, Workflow and Sharepoint

Microsoft Office Overview Microsoft Office Overview Open XML Formats, Extensible UI, InfoPath and Open XML Formats, Extensible UI, InfoPath and Forms Services, Workflow and SharepointForms Services, Workflow and Sharepoint

Dave GloverDave Gloverhttp://blogs.msdn.com/dglover

AgendaAgenda

Office XML FormatsOffice XML Formats

Office Ribbon ExtensibilityOffice Ribbon Extensibility

Infopath FormsInfopath Forms

Sharepoint WorkflowSharepoint Workflow

Office Open XML FormatsOffice Open XML FormatsOffice Open XML FormatsOffice Open XML Formats

User view: single Office “file”User view: single Office “file”

Questionaire.docxFile ContainerFile Container

Document PropertiesDocument Properties

CommentsComments

ChartsCharts

Embedded code / macrosEmbedded code / macros

Images, video, soundImages, video, sound

Custom-defined XMLCustom-defined XML

WordML / SpreadsheetML, etc.WordML / SpreadsheetML, etc.Document PartsDocument Parts

Most parts are XMLMost parts are XML

Each XML part is a discreet, Each XML part is a discreet, compressed componentcompressed component

Can add, extract and modify individual parts Can add, extract and modify individual parts using any Zip implementationusing any Zip implementation

Corruption or absence of any part would not Corruption or absence of any part would not prohibit the file from being openedprohibit the file from being opened

Developer view: modular fileDeveloper view: modular file

Open XML Formats Open XML Formats ArchitectureArchitecture

Benefits Of Open XML SolutionsBenefits Of Open XML Solutions

No longer need to automate client No longer need to automate client applications to open and modify filesapplications to open and modify files

Unsupported solution on serverUnsupported solution on server

Clients not designed for this scenarioClients not designed for this scenario

ReliabilityReliabilityAccess directly the parts you needAccess directly the parts you need

Avoid corruptionAvoid corruption

TransparencyTransparencyDirect access to your data!Direct access to your data!

Tools for Accessing Data In Tools for Accessing Data In Office Open XML filesOffice Open XML files

XML EditingXML EditingNotepad?Notepad?

System.XML makes this easierSystem.XML makes this easier

ZIP ManipulationZIP ManipulationCompressed Folders in WindowsCompressed Folders in Windows

Third-Party Zip LibrariesThird-Party Zip Libraries

Microsoft’s Packaging API’s (.NET Fx 3.0)Microsoft’s Packaging API’s (.NET Fx 3.0)

Office Open XML Resource KitOffice Open XML Resource KitCode Snippets Code Snippets

C# and VB.NETC# and VB.NEThttp://www.microsoft.com/downloads/details.aspx?familyid=8d46c01f-e3f6-4069-869d-90b8b096b556&displaylang=en

Validation LibraryValidation LibraryParses a file and reports on schema, relationship errors and Parses a file and reports on schema, relationship errors and warnings warnings

Serialization/Deserialization LibrarySerialization/Deserialization LibraryFlattens package into a single file for ease of development in simple Flattens package into a single file for ease of development in simple construction scenarios construction scenarios

Open XML FormatOpen XML Format

Custom XML Controls and Custom XML Controls and Word Content Control KitWord Content Control Kit

Open XML FormatOpen XML Format

Custom XML Controls and Custom XML Controls and Word Content Control KitWord Content Control Kit

System.IO.PackagingSystem.IO.Packaging

Part of Windows Presentation FoundationsPart of Windows Presentation Foundations

Ships with Vista Ships with Vista

Requires .NET 2.0Requires .NET 2.0

Enables package manipulation forEnables package manipulation forOffice Open XML File FormatsOffice Open XML File Formats

XML Paper Specification FilesXML Paper Specification Files

Any (ECMA) Open Packaging Convention filesAny (ECMA) Open Packaging Convention files

System.IO.Packaging.System.IO.Packaging.PackagPackagee

PackagePackage class provides class provides methods to create, methods to create, enumerate and delete enumerate and delete the following entitiesthe following entities

PackagePackage

Package RelationshipsPackage Relationships

PackagePropertiesPackageProperties

PartsParts

CollectionsCollections

StreamsStreamsPack

ag

e R

ela

tionsh

ips

Pack

ag

e R

ela

tionsh

ips

Core PropertiesCore Properties

Common Package Common Package PartsParts

ThumbnailThumbnail

Digital SignaturesDigital Signatures

officeDocumentofficeDocument

XML PartXML Part

XML PartXML Part

Specific Format Specific Format PartsParts

Etc…Etc…

Part

Rels

Part

Rels

XML PartXML Part

Part

Rels

Part

Rels

ResourcesResources

OpenXMLDeveloper.orgOpenXMLDeveloper.org

msdn.microsoft.com/officemsdn.microsoft.com/office

Kevin Boske’s BlogKevin Boske’s Bloghttp://blogs.msdn.com/kevinboskehttp://blogs.msdn.com/kevinboske

Brian’s BlogBrian’s Bloghttp://blogs.msdn.com/brian_jones

XPS Blog:XPS Blog:http://blogs.msdn.com/xpshttp://blogs.msdn.com/xps

Office Ribbon ExtensibilityOffice Ribbon ExtensibilityOffice Ribbon ExtensibilityOffice Ribbon Extensibility

The Fluent User InterfaceThe Fluent User Interface

Microsoft Office Access, Microsoft Office Microsoft Office Access, Microsoft Office Excel, Microsoft Office Outlook, Microsoft Excel, Microsoft Office Outlook, Microsoft Office PowerPoint, Microsoft Office WordOffice PowerPoint, Microsoft Office Word

“The Fluent Ribbon”

Ribbon Extensibility - Ribbon Extensibility - “RibbonX”“RibbonX”Developers can modify the Fluent RibbonDevelopers can modify the Fluent Ribbon

For example: remove tabs, add a tab, add For example: remove tabs, add a tab, add a groupa group

Custom GroupCustom Group

Custom Custom TabTab

Existing SolutionsExisting Solutions

XLMXLM

WordBasicWordBasic

CommandBars (‘96)CommandBars (‘96)

WLL, XLLWLL, XLL

XLA, PPA, Word global templatesXLA, PPA, Word global templates

In Excel, “Init Menus” registry keyIn Excel, “Init Menus” registry key

Attached Toolbars in Word & ExcelAttached Toolbars in Word & Excel

Other technologiesOther technologies

And it all still works!And it all still works!

Existing SolutionsExisting Solutions

Custom MenuCustom MenuCustom ButtonsCustom Buttonson Formatting Toolbaron Formatting Toolbar

Custom ToolbarsCustom Toolbars

Mapping Existing SolutionsMapping Existing Solutions

If your code added If your code added a…a… it appears in…it appears in…

Control to a built-in menuControl to a built-in menu the 'Menu Commands' groupthe 'Menu Commands' group

Control to a built-in toolbarControl to a built-in toolbar the 'Toolbar Commands' the 'Toolbar Commands' groupgroup

Custom toolbarCustom toolbar the ‘Custom Toolbars’ groupthe ‘Custom Toolbars’ group

… … on the Add-Ins Tabon the Add-Ins Tab

Excel, after you open a few hundred workbooks with attached toolbars…

RibbonX…RibbonX…

Is a consistent, XML-based developer Is a consistent, XML-based developer model model for Microsoft Office UIfor Microsoft Office UI

Produces well-behaved solutions by defaultProduces well-behaved solutions by default

Exposes new control typesExposes new control types

Targets specific developer & customer Targets specific developer & customer scenariosscenarios

RibbonX BasicsRibbonX Basics

Add your own tabsAdd your own tabs

Add to built-in tabsAdd to built-in tabs

Add to the Microsoft Add to the Microsoft Office menuOffice menu

Add to built-in Add to built-in contextual tabscontextual tabs

Remove tabs, Remove tabs, groups, controlsgroups, controls

RibbonX ControlsRibbonX Controls

TabsTabs

Groups Groups

ButtonsButtons

MenusMenus

SplitButtons SplitButtons

ToggleButtonsToggleButtons

LabelsLabels

CheckBoxesCheckBoxes

RibbonX ControlsRibbonX Controls

EditBoxesEditBoxes

DialogBoxLaunchersDialogBoxLaunchers

DropDownsDropDowns

ComboBoxesComboBoxes

GalleriesGalleries

Only five controls in Only five controls in Microsoft Office 2003:Microsoft Office 2003:

msoControlButton, msoControlButton, msoControlEdit, msoControlEdit, msoControlPopup, msoControlPopup, msoControlComboBox, msoControlComboBox, msoControlDropdownmsoControlDropdown

RibbonX MarkupRibbonX Markup

Declarative XMLDeclarative XML

Easy to understand, localize, generateEasy to understand, localize, generate

Separates UI from your business logicSeparates UI from your business logic

Gets applied to UI at add-in or document Gets applied to UI at add-in or document loadload

<tab idMso=“TabHome”><tab idMso=“TabHome”><group id=“myGroup” label=“My Group”><group id=“myGroup” label=“My Group”>

<button id=“hw” label=“Hello World!” <button id=“hw” label=“Hello World!” onAction=“myHelloFunc” />onAction=“myHelloFunc” />

</group></group></tab></tab>

<tab idMso=“TabHome”><tab idMso=“TabHome”><group id=“myGroup” label=“My Group”><group id=“myGroup” label=“My Group”>

<button id=“hw” label=“Hello World!” <button id=“hw” label=“Hello World!” onAction=“myHelloFunc” />onAction=“myHelloFunc” />

</group></group></tab></tab>

Doc.Doc.LevelLevel

App.App.LevelLevel

RibbonX Solution SpaceRibbonX Solution Space

Installed at app-level,

UIalways visible

Write a VSTO app-

level solution

Word Global Template

Excel Add-in (.xlam)

PPT Add-in (.ppam)

Installed at app-level,

displays UI based on doc

properties

Write a VSTO

doc-based solution

Word, Excel,

PowerPointdocument

AccessDatabase

COMCOM VBAVBA VSTOVSTO

Hello World Hello World DocumentDocumentHello World Hello World DocumentDocument

Features Targeting Features Targeting DevelopersDevelopers

StartFromScratchStartFromScratch

Global repurposingGlobal repurposing

Referencing built-in controls and imagesReferencing built-in controls and images

<ribbon startFromScratch=“true”><!– hides the main tabs -->

<command idMso=“Save” onAction=“runMyCode” /><!- takes over the built-in save action -->

<button id=“x” imageMso=“Save” label=“Imposter!” /><!- “steals” the image of the Save button -->

Licensing rights to build Office 2007 UI (ribbon) Licensing rights to build Office 2007 UI (ribbon) into 3rd party applicationsinto 3rd party applications

120-page design guidelines document published120-page design guidelines document publishedLicense is royalty-freeLicense is royalty-freeEasy to sign up (Web site click-through acceptance)Easy to sign up (Web site click-through acceptance)Some small set of exclusions (direct competitors)Some small set of exclusions (direct competitors)

Large community of licenseesLarge community of licenseesApproximately 35 early adopters helped shape the Approximately 35 early adopters helped shape the license terms license terms and guidelines, hundreds have signed upand guidelines, hundreds have signed up

ResourcesResourcesWeb site: Web site: http://msdn.microsoft.com/officeui Design guidelines and click-through license available Design guidelines and click-through license available therethereSpecific questions should go to: Specific questions should go to: [email protected]

All Singing and All Singing and Dancing Ribbon Dancing Ribbon DemoDemo

All Singing and All Singing and Dancing Ribbon Dancing Ribbon DemoDemoDemoRxDemoRx

Infopath 2007Infopath 2007Infopath 2007Infopath 2007

InfoPath Form Template DesignInfoPath Form Template Design

Declarative design surfaceDeclarative design surface

New featuresNew featuresImportImport existing Word/Excel forms into InfoPath existing Word/Excel forms into InfoPath 20072007

Create Create form template partsform template parts for re-use across for re-use across formsforms

Use Use logic inspectorlogic inspector to help debug declarative to help debug declarative business rulesbusiness rules

Use Use design checkerdesign checker to design for the targeted to design for the targeted environment and run compatibility checksenvironment and run compatibility checks

Template Parts and Logic Template Parts and Logic InspectorInspector

Template PartsTemplate PartsAllowAllow

Re-use of parts across multiple formsRe-use of parts across multiple forms

Multiple developers to work in parallelMultiple developers to work in parallel

Support all form features Support all form features exceptexcept code codeFormatting & control properties; data connections; rules, validation, Formatting & control properties; data connections; rules, validation, conditional formatting, calculationsconditional formatting, calculations

Logic InspectorLogic InspectorInspect and debug the form thru a single, read-only view of Inspect and debug the form thru a single, read-only view of all your form logicall your form logic

Rules, calculations, validation, eventsRules, calculations, validation, events

Caveat: conditional formatting not reportedCaveat: conditional formatting not reported

InfoPath Business LogicInfoPath Business Logic

Most Form Development Does Not Need Code

XSD, Web Service, Database

Sch

ema

C#VB .NET

Cod

e

Dec

lara

tive Rules

FormulasData Validation

Data ConnectionsConditional Formatting

Template Parts and Logic Template Parts and Logic InspectorInspectorTemplate Parts and Logic Template Parts and Logic InspectorInspector

Design Once OverviewDesign Once OverviewOne form for rich client and browserOne form for rich client and browser

Shared featuresShared featuresControlsControls

Business LogicBusiness Logic

Data ConnectionsData Connections

Digital SignaturesDigital Signatures

Managed Code Object ModelManaged Code Object Model

Design Checker: rich client-only featuresDesign Checker: rich client-only featuresA pure subset of InfoPath features is available for browser-A pure subset of InfoPath features is available for browser-enabled formsenabled forms

Compatibility errors and warnings can be seen in the Designer Compatibility errors and warnings can be seen in the Designer or on the server during the publish stepor on the server during the publish step

Smart InvocationSmart InvocationOpen in rich client, if available. Open in rich client, if available. - Links in document libraries, Web pages, email, etc.- Links in document libraries, Web pages, email, etc.

Special URL parameters to force opening in browserSpecial URL parameters to force opening in browser

Mobile Browser FormsMobile Browser FormsBrowser forms in Browser forms in a mobile devicea mobile device

Scenario: Scenario: Warehouse Warehouse employeesemployees

Form rendering Form rendering optimized for optimized for mobile devicesmobile devices

Fine PrintFine Print

Operating system and browser neutralOperating system and browser neutral

Device must support HTML, xHTML, or cHTMLDevice must support HTML, xHTML, or cHTML

WSSWSS

Publishing, Opening, and FillingPublishing, Opening, and Filling

Rendering Rendering ValidationValidation

Execute calculationsExecute calculationsExecute rulesExecute rules

Editing actionsEditing actions

ValidationValidationExecute calculationsExecute calculationsExecute rulesExecute rulesEditing actionsEditing actions(All using script)(All using script)

DownloadDownloadXSN, XMLXSN, XML

Publish XSNPublish XSN

Download Download script andscript anddata arraydata array

Office “12” serversOffice “12” servers

XSNXSN

ASPXASPX

Replay event logReplay event log

XSN, XML loadedXSN, XML loadedBusiness logicBusiness logic

executionexecution

XSN, XML loadedXSN, XML loadedBusiness logicBusiness logic

executionexecution

Form

s C

apabili

ties

Form

s C

apabili

ties

Generate and render Generate and render HTML HTML (using script)(using script)

Return updated Return updated data arraydata array

GenerateGenerate

InfoPath ClientInfoPath Client Browser

Postback event log Postback event log via XMLHTTPvia XMLHTTP

InfoPath Designer

Take offline as neededTake offline as needed

Design Once for Rich and Design Once for Rich and Browser FormsBrowser FormsDesign Once for Rich and Design Once for Rich and Browser FormsBrowser Forms

Visual Studio IntegrationVisual Studio IntegrationWrite Code in Your Favorite IDE Write Code in Your Favorite IDE

1.1. Visual Studio Tools for Applications (VSTA)Visual Studio Tools for Applications (VSTA)Out of the box developmentOut of the box development

Lowers the bar for forms with managed codeLowers the bar for forms with managed code

Compatible with Visual Studio Tools for OfficeCompatible with Visual Studio Tools for Office

2.2. Visual Studio Tools for Office (VSTO)Visual Studio Tools for Office (VSTO)Embedded designer for professional devsEmbedded designer for professional devs

One IDE for all your projects: workflow, etc. One IDE for all your projects: workflow, etc.

Integrated toolbox, project wizard, etc.Integrated toolbox, project wizard, etc.

Integrating Forms Into Web Integrating Forms Into Web SitesSitesBuild custom UI, provide additional functionality on Build custom UI, provide additional functionality on

the pagethe page

1.1. Add a link with query params to open form in Add a link with query params to open form in its own browser windowits own browser window

2.2. Embed form as a control in aspx pageEmbed form as a control in aspx page

Using the form controlUsing the form controlPlacing other chrome and controls around the Placing other chrome and controls around the formformDynamically loading formsDynamically loading formsChanging the data in the formChanging the data in the formGetting the data from the formGetting the data from the formAfter the form has been submitted…After the form has been submitted…

ASPX page needs to run on the server where ASPX page needs to run on the server where InfoPath Forms Services is availableInfoPath Forms Services is available

Windows Forms & ActiveX Windows Forms & ActiveX Control Control Host InfoPath Forms in Your AppHost InfoPath Forms in Your App

Managed and unmanaged InfoPath controlManaged and unmanaged InfoPath control

Examples: Examples: Property editor in an Office app (Word, Excel, Powerpoint)Property editor in an Office app (Word, Excel, Powerpoint)

Workflow dialogsWorkflow dialogs

Custom app for specific tasks that also hosts formsCustom app for specific tasks that also hosts forms

AutomateAutomateOM and events for host/control interactionOM and events for host/control interaction

IOLECommandTarget for full control of editing actionsIOLECommandTarget for full control of editing actions

CaveatsCaveatsActiveX will not load in browsers (security)ActiveX will not load in browsers (security)

No ink entry, Information Rights ManagementNo ink entry, Information Rights Management

Integrating InfoPath Browser Forms in a Windows Applications

Integrating InfoPath Browser Forms in a Windows Applications

Sharepoint 2007 and Sharepoint 2007 and WorkflowWorkflowSharepoint 2007 and Sharepoint 2007 and WorkflowWorkflow

Office Workflow VisionOffice Workflow Vision

Facilitate human processes by attaching businessFacilitate human processes by attaching businesslogic to items and documents in Windows logic to items and documents in Windows SharePoint Services, while providing context and SharePoint Services, while providing context and tracking progresstracking progress

Empower information workers using Office ServerEmpower information workers using Office Serverwith out-of-the-box solutions and self-service tools with out-of-the-box solutions and self-service tools to support a broad range of routing and tracking to support a broad range of routing and tracking scenarios without IT involvementscenarios without IT involvement

Empower organizations to build a broad range of Empower organizations to build a broad range of sophisticated workflow solutions that take sophisticated workflow solutions that take advantageadvantageof the full functionality of the Windows Workflow of the full functionality of the Windows Workflow Foundation (WF) platform and integrate into the Foundation (WF) platform and integrate into the SharePoint and Office experiencesSharePoint and Office experiences

Workflow Authoring Workflow Authoring ScenariosScenarios

Visual Studio andWorkflow SDK

Out-of-the-BoxSolutions(with customization)

SharePoint Designer Workflow

Routing and ApprovalRouting and ApprovalReview – ApprovalReview – ApprovalSignature collectionSignature collectionEast Asian workflowEast Asian workflow

Stru

ctured

Ad

Ho

cOffice Server FeaturesOffice Server FeaturesList ModerationList Moderation

Publishing ProcessPublishing ProcessDocument ExpirationDocument Expiration

Tracking ApplicationsTracking ApplicationsIssue trackingIssue tracking

LOBLOBIntegrationIntegration

Custom Form ActionsCustom Form ActionsEmail NotificationEmail Notification

Exception HandlingException Handling

Document ProcessesDocument ProcessesSpec Review Spec Review

Weekly Status ReportWeekly Status Report

Custom Tracking AppsCustom Tracking AppsService RequestsService Requests

Asset TrackingAsset Tracking

IndustryIndustryspecific processesspecific processes

Purchase ordersPurchase ordersProduct lifecycle mgmtProduct lifecycle mgmt

Designing WorkflowsDesigning WorkflowsIn SharePoint DesignerIn SharePoint DesignerDesigning WorkflowsDesigning WorkflowsIn SharePoint DesignerIn SharePoint Designer

Windows Workflow Windows Workflow FoundationFoundation

Common workflow technology for Microsoft Common workflow technology for Microsoft products, ISVs and customer solutionsproducts, ISVs and customer solutions

A framework to build on – not a server or A framework to build on – not a server or applicationapplication

Key featuresKey featuresUnified model for human and system workflowUnified model for human and system workflow

Extensible activity frameworkExtensible activity framework

Allows workflows to run in any application or serverAllows workflows to run in any application or server

Visual designer for graphical and code-based authoringVisual designer for graphical and code-based authoring

AvailabilityAvailabilityIncluded in WinFX – powers Office “12” workflowIncluded in WinFX – powers Office “12” workflow

Extensible framework and tools for building workflow into Windows applications

Windows Workflow Windows Workflow FoundationFoundationKey ConceptsKey Concepts

WorkflowsWorkflows are a set of activities are a set of activities

ActivitiesActivities are the building blocks are the building blocks

WorkflowsWorkflows run within a Host Process: run within a Host Process: Any application or serverAny application or server

DevelopersDevelopers can build their own can build their ownCustom Activity LibrariesCustom Activity Libraries

ComponentsComponents

Base Activity LibraryBase Activity Library: Out-of-box: Out-of-boxactivities and base for custom activities and base for custom activitiesactivities

Runtime EngineRuntime Engine: Workflow execution: Workflow executionand state managementand state management

Runtime ServicesRuntime Services: Hosting flexibility: Hosting flexibilityand communicationand communication

Visual DesignerVisual Designer: Graphical: Graphicaland code-based constructionand code-based construction Host Process

WindowsWorkflow Foundation

Runtime Engine

A Workflow

An Activity

Runtime Services

Base Activity Library

Custom Activity Library

Visual Designer

Designing WorkflowsDesigning WorkflowsIn Visual Studio 2005In Visual Studio 2005Designing WorkflowsDesigning WorkflowsIn Visual Studio 2005In Visual Studio 2005

AgendaAgenda

Office XML FormatsOffice XML Formats

Office Ribbon ExtensibilityOffice Ribbon Extensibility

Infopath FormsInfopath Forms

Sharepoint WorkflowSharepoint Workflow