38
Smart Client Development Using Visual Studio Tools for Office and Windows Mobile Todd Apley Todd Apley Software Design Eng/Test Software Design Eng/Test Lead Lead [email protected] [email protected]

Smart Client Development Using Visual Studio Tools for Office and Windows Mobile Todd Apley Software Design Eng/Test Lead [email protected]

Embed Size (px)

Citation preview

Page 1: Smart Client Development Using Visual Studio Tools for Office and Windows Mobile Todd Apley Software Design Eng/Test Lead toddap@microsoft.com

Smart Client Development Using Visual Studio Tools for Office and Windows Mobile

Smart Client Development Using Visual Studio Tools for Office and Windows Mobile

Todd ApleyTodd ApleySoftware Design Eng/Test LeadSoftware Design Eng/Test [email protected]@microsoft.com

Page 2: Smart Client Development Using Visual Studio Tools for Office and Windows Mobile Todd Apley Software Design Eng/Test Lead toddap@microsoft.com

AgendaAgenda

Understanding Smart ClientsUnderstanding Smart Clients

Building Smart Clients Using OfficeBuilding Smart Clients Using Office

Building Smart Clients for Mobile Building Smart Clients for Mobile DevicesDevices

Page 3: Smart Client Development Using Visual Studio Tools for Office and Windows Mobile Todd Apley Software Design Eng/Test Lead toddap@microsoft.com

Smart clients are easily deployed and managed client applications Smart clients are easily deployed and managed client applications that provide an adaptive and interactive experience by leveragingthat provide an adaptive and interactive experience by leveraging

local resources and intelligently connecting to distributed data sources. local resources and intelligently connecting to distributed data sources.

Web Services &Offline/Online

support

DeviceAdaptability

Tough toDeploy

HeavyFootprint

DLL Hell

NetworkDependency

Poor UserExperience

Rich UIComplex

To Develop

Rich UserExperience

DeveloperProductivity

Responsive

BroadReach

Easy ChangeManagement

Ease ofDeployment

Page 4: Smart Client Development Using Visual Studio Tools for Office and Windows Mobile Todd Apley Software Design Eng/Test Lead toddap@microsoft.com

Incr

easi

ng

Pro

du

ctiv

ity

Incr

easi

ng

Pro

du

ctiv

ity

Page 5: Smart Client Development Using Visual Studio Tools for Office and Windows Mobile Todd Apley Software Design Eng/Test Lead toddap@microsoft.com

AgendaAgenda

Understanding Smart ClientsUnderstanding Smart Clients

Building Smart Clients Using OfficeBuilding Smart Clients Using Office

Building Smart Clients for Mobile Building Smart Clients for Mobile DevicesDevices

Page 6: Smart Client Development Using Visual Studio Tools for Office and Windows Mobile Todd Apley Software Design Eng/Test Lead toddap@microsoft.com

Bedrock of features to leverageBedrock of features to leverageRich user experience provided by Office applicationsRich user experience provided by Office applications

XML schemas provide custom business structureXML schemas provide custom business structure

Actions task pane and Smart Tags enable contextual UIsActions task pane and Smart Tags enable contextual UIs

Online / Offline capableOnline / Offline capable

Broadly used by knowledge workers Broadly used by knowledge workers Familiar authoring and formatting of business documentsFamiliar authoring and formatting of business documents

Analysis and calculation of business dataAnalysis and calculation of business data

Information sharing and collaborationInformation sharing and collaboration

Capitalize on the benefits of the Office platformCapitalize on the benefits of the Office platformPower of Office platform investmentsPower of Office platform investments

Improved end-user productivity and reduced data errorsImproved end-user productivity and reduced data errors

Substantially reduce end-user training costs Substantially reduce end-user training costs

Smart Clients on Office

Page 7: Smart Client Development Using Visual Studio Tools for Office and Windows Mobile Todd Apley Software Design Eng/Test Lead toddap@microsoft.com

Microsoft’s strategic tool for Microsoft’s strategic tool for developing Office solutions:developing Office solutions:

Microsoft Excel 2003*Microsoft Excel 2003*

Microsoft Word 2003*Microsoft Word 2003*

Microsoft InfoPath 2003Microsoft InfoPath 2003

Microsoft Outlook 2003 Add-in SupportMicrosoft Outlook 2003 Add-in Support

Targeted at the professional developerTargeted at the professional developerVisual Basic 2005Visual Basic 2005

Visual C#Visual C#

Visual Studio 2005 Tools for the Microsoft Office System (VSTO)

* Microsoft Office System Professional Edition * Microsoft Office System Professional Edition or Excel 2003 or Word 2003 standalone versionsor Excel 2003 or Word 2003 standalone versions

Todd Apley
What is the deal with outlook addin (how is this different than other apps?)
Page 8: Smart Client Development Using Visual Studio Tools for Office and Windows Mobile Todd Apley Software Design Eng/Test Lead toddap@microsoft.com
Todd Apley
What's with this slide?
Page 9: Smart Client Development Using Visual Studio Tools for Office and Windows Mobile Todd Apley Software Design Eng/Test Lead toddap@microsoft.com

Reasons for using VSTO vs. VBAReasons for using VSTO vs. VBA

VBA* is a 1990’s TechnologyVBA* is a 1990’s TechnologySubset syntax = limited functionality & flexibilitySubset syntax = limited functionality & flexibilityCode in document = no source code/version controlCode in document = no source code/version controlCasual security model = high potential security riskCasual security model = high potential security riskAccess to limited controls within Office applicationsAccess to limited controls within Office applications

Visual Studio Tools for Office Visual Studio Tools for Office is 100% .NETis 100% .NET

Complete syntax (Professional languages)Complete syntax (Professional languages)Choice of Visual Basic .NET or C#Choice of Visual Basic .NET or C#

Code Behind = mainstream source code controlCode Behind = mainstream source code control““Publish” deployment for easier version controlPublish” deployment for easier version control.NET Security model = robust security enforced.NET Security model = robust security enforcedComplete access to managed controlsComplete access to managed controls

* There are no pending plans to retire VBA at this time

Page 10: Smart Client Development Using Visual Studio Tools for Office and Windows Mobile Todd Apley Software Design Eng/Test Lead toddap@microsoft.com

Major focus on dev. productivityMajor focus on dev. productivityIntegrated design-time experienceIntegrated design-time experience(Excel & Word right in the IDE)(Excel & Word right in the IDE)

Full access to the .NET Framework, Web Full access to the .NET Framework, Web services, ADO .NET, integrated debuggingservices, ADO .NET, integrated debuggingSupport for managed controls Support for managed controls (MS and third-party)(MS and third-party)

First class “Hosted” controlsFirst class “Hosted” controls

Managed Document Actions Pane & Smart Managed Document Actions Pane & Smart TagsTags

Schema-based programming modelSchema-based programming model

CLR-based security model CLR-based security model

New data caching capabilitiesNew data caching capabilities

Data island accessible in a server environmentData island accessible in a server environment

Improved online publish deployment modelImproved online publish deployment model

Todd Apley
Describe this a bit more to me.
Todd Apley
What is this?
Todd Apley
Is publishing any good?
Page 11: Smart Client Development Using Visual Studio Tools for Office and Windows Mobile Todd Apley Software Design Eng/Test Lead toddap@microsoft.com

Excel/Word Designers

HostedControls

Windows Forms controls

PublishDeployment

Visual Studio 2005 Tools for OfficeIntegrated Design-time Experience

Visual Studio 2005 Tools for OfficeIntegrated Design-time Experience

Todd Apley
Did you want a VB deal here?
Page 12: Smart Client Development Using Visual Studio Tools for Office and Windows Mobile Todd Apley Software Design Eng/Test Lead toddap@microsoft.com

Visual Studio 2005 Tools for Office Schema-Based Programming ModelVisual Studio 2005 Tools for Office Schema-Based Programming Model

Direct programmatic access to XML Direct programmatic access to XML NodesNodes

XMLNode instances created for each XMLNode instances created for each schema elementschema element

Access XmlNode instances, instead of UI Access XmlNode instances, instead of UI elementselements

Data binding supportData binding support

Event modelEvent modelContextEnter/ContextLeaveContextEnter/ContextLeave

AfterInsert/BeforeDeleteAfterInsert/BeforeDelete

BidRequestRequestDateNode.Text = NowBidRequestRequestDateNode.Text = Now

Page 13: Smart Client Development Using Visual Studio Tools for Office and Windows Mobile Todd Apley Software Design Eng/Test Lead toddap@microsoft.com

Managed ControlsWindows Forms ControlsManaged ControlsWindows Forms Controls

Managed Windows Forms Controls Managed Windows Forms Controls are availableare available

On the document or worksheet surfaceOn the document or worksheet surface

On a Windows FormOn a Windows Form

On the Actions PaneOn the Actions Pane

Simply drag-drop from the Simply drag-drop from the Toolbox onto the designer surface Toolbox onto the designer surface of your choiceof your choice

May be dynamically May be dynamically added/removed at runtimeadded/removed at runtime

Third-party/Custom .NET user Third-party/Custom .NET user controls supportedcontrols supported

Page 14: Smart Client Development Using Visual Studio Tools for Office and Windows Mobile Todd Apley Software Design Eng/Test Lead toddap@microsoft.com

Actions PaneContext-based display of information Actions PaneContext-based display of information

Page 15: Smart Client Development Using Visual Studio Tools for Office and Windows Mobile Todd Apley Software Design Eng/Test Lead toddap@microsoft.com

Actions PaneAn OverviewActions PaneAn Overview

Simplifies the developer experienceSimplifies the developer experience

Simplified object modelSimplified object model

Eliminates the need for XML Eliminates the need for XML expansion packs and XML mappingsexpansion packs and XML mappings

Provides support for managed Provides support for managed controlscontrols

Actions panes are an enhancement to the Smart Document feature introduced in

Office 2003.

Todd Apley
What is this?
Page 16: Smart Client Development Using Visual Studio Tools for Office and Windows Mobile Todd Apley Software Design Eng/Test Lead toddap@microsoft.com

Visual Studio 2005 Tools for Office Managed Document Actions Task Pane

Visual Studio 2005 Tools for Office Managed Document Actions Task PaneLayout UI with Windows Forms Designer Layout UI with Windows Forms Designer

(UserControls)(UserControls)

Add to document with a single line of code!Add to document with a single line of code!

ISmartDocument implementation provided ISmartDocument implementation provided under the coversunder the covers

Does not require mapping of XML SchemaDoes not require mapping of XML Schema

Dim ctrl as new MyUserControl()Dim ctrl as new MyUserControl()

ActionsPane.Controls.Add(ctrl)ActionsPane.Controls.Add(ctrl)

Todd Apley
What does this mean?
Page 17: Smart Client Development Using Visual Studio Tools for Office and Windows Mobile Todd Apley Software Design Eng/Test Lead toddap@microsoft.com

Microsoft Word Real Estate OfferMicrosoft Word Real Estate Offer

Todd Apley
What do demo in this app?
Page 18: Smart Client Development Using Visual Studio Tools for Office and Windows Mobile Todd Apley Software Design Eng/Test Lead toddap@microsoft.com

Motivations for Enabling Outlook Extensibility in VSTOMotivations for Enabling Outlook Extensibility in VSTO

A lot of people “live” in OutlookA lot of people “live” in Outlook

Email and tasks part of typical Email and tasks part of typical business process and document business process and document workflowworkflow

Desire for single interface for multiple Desire for single interface for multiple back-end systemsback-end systems

Reduced training and expanded Reduced training and expanded access as a result of familiar Office UIaccess as a result of familiar Office UI

Page 19: Smart Client Development Using Visual Studio Tools for Office and Windows Mobile Todd Apley Software Design Eng/Test Lead toddap@microsoft.com

Visual Studio 2005 Tools for OfficeOutlook Add-ins

Visual Studio 2005 Tools for OfficeOutlook Add-ins

Project template for Outlook Add-insProject template for Outlook Add-ins

Add-in loader component Add-in loader component

Snippets & samples for common dev Snippets & samples for common dev taskstasks

.NET Framework, Web services, .NET Framework, Web services, ADO .NET, integrated debuggingADO .NET, integrated debugging

Todd Apley
Are these demoable?
Page 20: Smart Client Development Using Visual Studio Tools for Office and Windows Mobile Todd Apley Software Design Eng/Test Lead toddap@microsoft.com

Possible VSTO Outlook ScenariosPossible VSTO Outlook Scenarios

Line of Business ApplicationsLine of Business Applications

Collaboration & Workflow Collaboration & Workflow SolutionsSolutions

Digital Content IntegrationDigital Content Integration

Calendar Integration SolutionsCalendar Integration Solutions

Utilities & ToolsUtilities & Tools

Todd Apley
Go over all these items. I'm confused on examples of them.
Page 21: Smart Client Development Using Visual Studio Tools for Office and Windows Mobile Todd Apley Software Design Eng/Test Lead toddap@microsoft.com
Page 22: Smart Client Development Using Visual Studio Tools for Office and Windows Mobile Todd Apley Software Design Eng/Test Lead toddap@microsoft.com

Visual Studio 2005 Tools for the Microsoft Office System Version 3 (Coded named Orcas)

Visual Studio 2005 Tools for the Microsoft Office System Version 3 (Coded named Orcas)

Page 23: Smart Client Development Using Visual Studio Tools for Office and Windows Mobile Todd Apley Software Design Eng/Test Lead toddap@microsoft.com

Ribbon ExtensibilityRibbon Extensibility

Menus / toolbars are goneMenus / toolbars are gone

New extensibility modelNew extensibility modelTargeted same behavior across applicationsTargeted same behavior across applications

Declarative markup with new controlsDeclarative markup with new controls

U.I. definitions are additiveU.I. definitions are additive

Definitions fixed at load timeDefinitions fixed at load time

Document-level or application-levelDocument-level or application-level

TabTab

ChunkChunkRibbonRibbon

Todd Apley
Unclear what all this iss...
Page 24: Smart Client Development Using Visual Studio Tools for Office and Windows Mobile Todd Apley Software Design Eng/Test Lead toddap@microsoft.com

VSTO ‘v3’ - OverviewVSTO ‘v3’ - OverviewStrategic platform infrastructure (WinFx, MAF)Strategic platform infrastructure (WinFx, MAF)Doc-level solutionsDoc-level solutions

Word, Excel, InfoPath: 2003 onwardsWord, Excel, InfoPath: 2003 onwardsManaged controls on the document surfaceManaged controls on the document surfaceDoc-level ActionsPaneDoc-level ActionsPaneServerDocument – manipulate documents without ServerDocument – manipulate documents without automating Officeautomating OfficeWord content control supportWord content control support

App-level add-insApp-level add-insAppdomain isolationAppdomain isolationRemote updateabilityRemote updateabilityAll Office appsAll Office appsApp-level custom ActionsPaneApp-level custom ActionsPaneRibbon customizationRibbon customizationSupport for legacy “shared” add-insSupport for legacy “shared” add-ins

Highly-streamlined developer experienceHighly-streamlined developer experienceNew designers: ribbon, ActionsPane, OutlookNew designers: ribbon, ActionsPane, OutlookClickOnce deployment and securityClickOnce deployment and security

Todd Apley
What is this?
Todd Apley
Need to go over entire slide with Jay
Page 25: Smart Client Development Using Visual Studio Tools for Office and Windows Mobile Todd Apley Software Design Eng/Test Lead toddap@microsoft.com

CustomTaskPane and RibbonCustomTaskPane and Ribbon

Page 26: Smart Client Development Using Visual Studio Tools for Office and Windows Mobile Todd Apley Software Design Eng/Test Lead toddap@microsoft.com

SummarySummaryOffice development is more Office development is more approachable, discoverable, richer, approachable, discoverable, richer, and robustand robustData binding makes your life easierData binding makes your life easierHosted and managed controls provide Hosted and managed controls provide greater design flexibilitygreater design flexibilityOffline and server features extend the Offline and server features extend the reach of Office application reach of Office application developmentdevelopmentVSTO 2005 ships with:VSTO 2005 ships with:

Microsoft Visual Studio Tools for the Microsoft Office Microsoft Visual Studio Tools for the Microsoft Office System 2005System 2005Microsoft Visual Studio Team SystemsMicrosoft Visual Studio Team Systems

VSTO Version 3.0 in developmentVSTO Version 3.0 in development

Todd Apley
Did we demo this?
Page 27: Smart Client Development Using Visual Studio Tools for Office and Windows Mobile Todd Apley Software Design Eng/Test Lead toddap@microsoft.com

AgendaAgenda

Understanding Smart ClientsUnderstanding Smart Clients

Building Smart Clients Using OfficeBuilding Smart Clients Using Office

Building Smart Clients for Mobile Building Smart Clients for Mobile DevicesDevices

Page 28: Smart Client Development Using Visual Studio Tools for Office and Windows Mobile Todd Apley Software Design Eng/Test Lead toddap@microsoft.com

OutlineOutline

Developing Windows Mobile Developing Windows Mobile ApplicationsApplications

Devices and the Windows Mobile Devices and the Windows Mobile platformplatform

Getting started with device developmentGetting started with device development

User interface and controlsUser interface and controls

Windows Mobile 5.0Windows Mobile 5.0Common device tasksCommon device tasks

State and Notifications BrokerState and Notifications Broker

Page 29: Smart Client Development Using Visual Studio Tools for Office and Windows Mobile Todd Apley Software Design Eng/Test Lead toddap@microsoft.com

Windows Mobile DevicesWindows Mobile Devices

Windows Mobile provides a variety of Windows Mobile provides a variety of device typesdevice types

Pocket PC Pocket PC

SmartphoneSmartphone

Pocket PC Phone EditionPocket PC Phone Edition

Todd Apley
What are these 3 types.
Todd Apley
What's the diff between pocketPC and Phone editiion, etc...
Page 30: Smart Client Development Using Visual Studio Tools for Office and Windows Mobile Todd Apley Software Design Eng/Test Lead toddap@microsoft.com

The Windows Mobile PlatformThe Windows Mobile Platform

Windows MobileWindows MobileCommon Win32 platform across device Common Win32 platform across device typestypes

Mobile versions of productivity toolsMobile versions of productivity toolsExcel Mobile, Word Mobile, Pocket OutlookExcel Mobile, Word Mobile, Pocket Outlook

Simplified access to device extensionsSimplified access to device extensionsCamera, GPS, PhoneCamera, GPS, Phone

Page 31: Smart Client Development Using Visual Studio Tools for Office and Windows Mobile Todd Apley Software Design Eng/Test Lead toddap@microsoft.com

Developing for Windows MobileDeveloping for Windows Mobile

.NET Compact Framework 2.0.NET Compact Framework 2.0Leverage desktop .NET Framework skills Leverage desktop .NET Framework skills

Optimized for smart devicesOptimized for smart devicesProvides 28% of the coverage in 8% of the sizeProvides 28% of the coverage in 8% of the size

Full support for VB 2005 and C# language Full support for VB 2005 and C# language featuresfeatures

Visual Studio 2005Visual Studio 2005Development experience consistent with Development experience consistent with desktopdesktop

Automated application deploymentAutomated application deployment

Integrated device debuggingIntegrated device debugging

EmulatorsEmulatorsDevelop and debug applications without a Develop and debug applications without a devicedevice

Emulator Manager provides centralized controlEmulator Manager provides centralized control

Page 32: Smart Client Development Using Visual Studio Tools for Office and Windows Mobile Todd Apley Software Design Eng/Test Lead toddap@microsoft.com

Windows Mobile 5.0 ToolsWindows Mobile 5.0 ToolsVisual Studio 2005 is the single development tool Visual Studio 2005 is the single development tool for Windows Mobile 5.0 developmentfor Windows Mobile 5.0 development

Supports build, deploy, debug across .NET Compact Supports build, deploy, debug across .NET Compact Framework 1.0/2.0 and native code for Windows Mobile Framework 1.0/2.0 and native code for Windows Mobile 2003 devices upward2003 devices upward

Integrates device development completely to Integrates device development completely to Visual Studio development environmentVisual Studio development environment

Managed and native development in one placeManaged and native development in one place

IntelliSenseIntelliSense

Remote ToolsRemote Tools

eVC3, eVC4, and VS .NET 2003eVC3, eVC4, and VS .NET 2003Applications will still runApplications will still run

Cannot debug or deploy direct to Windows Mobile 5.0Cannot debug or deploy direct to Windows Mobile 5.0

Should be used for maintenance of apps for pre-2003 Should be used for maintenance of apps for pre-2003 devicesdevices

Todd Apley
What is this?
Todd Apley
What is Windows Mobile 5.0 btw?
Page 33: Smart Client Development Using Visual Studio Tools for Office and Windows Mobile Todd Apley Software Design Eng/Test Lead toddap@microsoft.com

New Features in VS 2005New Features in VS 2005True ARM emulator with higher fidelity experienceTrue ARM emulator with higher fidelity experience

Same executable/CAB for device and emulatorSame executable/CAB for device and emulatorRealistic device performanceRealistic device performanceDirect3D and GAPI supportDirect3D and GAPI supportActiveSync, Shared Folders, Rich Display, More Serial PortsActiveSync, Shared Folders, Rich Display, More Serial Ports

New debuggerNew debuggerBrand new architecture rewritten from line 0Brand new architecture rewritten from line 0Optimized for USB 2.0 performanceOptimized for USB 2.0 performanceAttach to and debug a running processAttach to and debug a running processAttach to multiple processes on multiple devicesAttach to multiple processes on multiple devices

New designersNew designersImproved UI designers (docking and anchoring)Improved UI designers (docking and anchoring)Data designers (drag, drop and bind SQL to forms)Data designers (drag, drop and bind SQL to forms)Improved CAB designer support (new project type)Improved CAB designer support (new project type)

Multiplatform supportMultiplatform supportTarget multiple devices and platforms with a variety of Target multiple devices and platforms with a variety of languages--all within a single projectlanguages--all within a single project

Todd Apley
What is GAPI?
Page 34: Smart Client Development Using Visual Studio Tools for Office and Windows Mobile Todd Apley Software Design Eng/Test Lead toddap@microsoft.com

Windows Mobile 5.0 Managed APIsWindows Mobile 5.0 Managed APIs

Focus on simplifying device Focus on simplifying device developmentdevelopment

Encapsulate common device tasksEncapsulate common device tasksGlobal Positioning System interactionGlobal Positioning System interaction

Camera and picture managementCamera and picture management

3-D Graphics and multimedia support3-D Graphics and multimedia support

State and Notifications Broker (SNAPI)State and Notifications Broker (SNAPI)Common repository for device informationCommon repository for device information

Phone state, battery life, what song is playingPhone state, battery life, what song is playing

Sends notifications of changes in device stateSends notifications of changes in device stateNetwork availability, arrival of phone callNetwork availability, arrival of phone call

Arrival of SMS/email messageArrival of SMS/email message

Page 35: Smart Client Development Using Visual Studio Tools for Office and Windows Mobile Todd Apley Software Design Eng/Test Lead toddap@microsoft.com

The Windows Mobile Developer ExperienceThe Windows Mobile Developer Experience

Page 36: Smart Client Development Using Visual Studio Tools for Office and Windows Mobile Todd Apley Software Design Eng/Test Lead toddap@microsoft.com

User Interface BasicsUser Interface Basics

UI created with same form-based model as UI created with same form-based model as desktopdesktop

Most desktop controls availableMost desktop controls available

Consistent properties supportConsistent properties support

Consistent event modelConsistent event model

Device specific controls addedDevice specific controls addedInputPanelInputPanel

NotificationNotification

DocumentListDocumentList

Page 37: Smart Client Development Using Visual Studio Tools for Office and Windows Mobile Todd Apley Software Design Eng/Test Lead toddap@microsoft.com

Working with ControlsWorking with Controls

Page 38: Smart Client Development Using Visual Studio Tools for Office and Windows Mobile Todd Apley Software Design Eng/Test Lead toddap@microsoft.com

SummarySummary

Smart Clients allow developers to Smart Clients allow developers to take advantage of all of the resources take advantage of all of the resources available on the machineavailable on the machine

Developers with Windows Forms or Developers with Windows Forms or ASP .NET development skills can ASP .NET development skills can leverage these to create applications leverage these to create applications for Office or Mobile devicesfor Office or Mobile devices