Upload
cynthia-day
View
212
Download
0
Embed Size (px)
Citation preview
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
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
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
Incr
easi
ng
Pro
du
ctiv
ity
Incr
easi
ng
Pro
du
ctiv
ity
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
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
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
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
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
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
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
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
Actions PaneContext-based display of information Actions PaneContext-based display of information
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.
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)
Microsoft Word Real Estate OfferMicrosoft Word Real Estate Offer
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
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
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
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)
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
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
CustomTaskPane and RibbonCustomTaskPane and Ribbon
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
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
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
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
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
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
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
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
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
The Windows Mobile Developer ExperienceThe Windows Mobile Developer Experience
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
Working with ControlsWorking with Controls
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