Upload
dustin-murphy
View
214
Download
0
Tags:
Embed Size (px)
Citation preview
CLI205CLI205
Basic Considerations For Basic Considerations For Mobile PC Application Mobile PC Application DevelopmentDevelopment
Tablet and Mobile PC Tablet and Mobile PC Technical EvangelistTechnical [email protected] [email protected] Microsoft CorporationMicrosoft Corporation
MManagementanagementTToolsools
CCommunicationsommunications& & MMessagingessaging
Device Update Agent
Software Update Services
Live Communications Server
Exchange Server
Internet Security and Acceleration Server
Speech Server
Image Update
LLocation ocation SServiceservices
MMultimediaultimedia
MapPoint
DirectX
Windows Media
Visual Studio 2005DDevelopment evelopment TToolsools
MFC 8.0, ATL 8.0
Win32NNativeative
MManagedanaged
SServer erver SSideide
LLightweightightweight
RRelationalelationalSQL Server 2005 Express EditionEDB
DDa
taata
PPro
gra
mm
ing
ro
gra
mm
ing
MM
od
el
od
el
DDevice evice BBuilding uilding TToolsools
HHardware/ardware/DDriversrivers
Windows XP DDK
Windows Embedded Studio
Platform Builder
OEM/IHV SuppliedBSP
(ARM, SH4, MIPS)OEM Hardware and Standard Drivers
Standard PC Hardware and Drivers
SQL Server 2005SQL Server 2005 Mobile Edition
ASP.NET Mobile Controls ASP.NET
.NET Compact Framework .NET Framework
Microsoft Operations Manager
Systems Management Server
AgendaAgenda
Mobile PC MarketMobile PC Market
Mobile PC Platform Mobile PC Platform More available, more places, settingsMore available, more places, settings
Current Mobile API’s in XPCurrent Mobile API’s in XPNetwork AwarenessNetwork Awareness
Power AwarenessPower Awareness
Data SynchronizationData Synchronization
Pen and InkPen and Ink
DisplayDisplay
Q&AQ&A
Mobile Platform ChoicesMobile Platform Choices
SmartphoneSmartphone
(-)(-) Functionality Functionality (+)(+)
Windows MobileWindows Mobile
Mobile/Tablet PCMobile/Tablet PC
Pocket PC PhonePocket PC Phone
Smart Smart Personal Personal ObjectsObjects
(+)
(+)
P
orta
bilit
y
Por
tabi
lity
(
-)(-)
The Market Goes MobileThe Market Goes Mobile
““Notebook PCs, with a compound average Notebook PCs, with a compound average growth rate of 15% worldwide through growth rate of 15% worldwide through 2008, will outsell 2008, will outsell desktopdesktop PCs as business PCs as business and consumer users upgrade or and consumer users upgrade or complement their desktop PCs.”complement their desktop PCs.”
Strategy Analytics 8-03Strategy Analytics 8-03
U.S. PC Unit Shipments – U.S. PC Unit Shipments – Total PCsTotal PCs
0
5,000
10,000
15,000
20,000
25,000
30,000
35,000
40,000
2004 2005 2006 2007 2008
Portables
Desktops
Source: IDC, 2004Source: IDC, 2004
U.S. PC Unit Shipments – U.S. PC Unit Shipments – GrowthGrowth
-5
0
5
10
15
20
25
30
35
2004 2005 2006 2007 2008
Portables
Desktops
Source: IDC, 2004Source: IDC, 2004
Growing Mobile WorkforceGrowing Mobile Workforce
91.8 million to 104.5 million91.8 million to 104.5 million
13 million new mobile workers in the 13 million new mobile workers in the U.S. from 2002 and 2006U.S. from 2002 and 2006
Growing mobile workforce Growing mobile workforce Embrace a variety of hardware, software, Embrace a variety of hardware, software, and services technologiesand services technologies
Want to work more efficiently in a wide Want to work more efficiently in a wide variety of locations variety of locations
Home Users Are Buying Home Users Are Buying More And More Mobile PCsMore And More Mobile PCs
Wireless networks are easy Wireless networks are easy and affordableand affordable
Moveable from room to roomMoveable from room to room
Couch form factorCouch form factor
Less obtrusive then desktopLess obtrusive then desktop
Media Center PC Companion DeviceMedia Center PC Companion Device
Mobile PC OpportunityMobile PC Opportunity
Faster growth than desktopsFaster growth than desktops
Faster rate of innovation than desktopsFaster rate of innovation than desktops
Mobile ecosystem maturingMobile ecosystem maturingCustomer demand for real-time Customer demand for real-time informationinformation
Wireless hotspotsWireless hotspots
WWAN accessWWAN access
Create application that meet the needs Create application that meet the needs of the mobile customerof the mobile customer
Microsoft is meeting these demands with the Mobile Microsoft is meeting these demands with the Mobile Product GroupProduct Group
Creating and utilizing all of the mobile pieces of the OS for the Creating and utilizing all of the mobile pieces of the OS for the end user and developerend user and developer
Mobile PC Development CenterMobile PC Development Centerhttp://msdn.microsoft.com/mobilepchttp://msdn.microsoft.com/mobilepc
Educating developers on how to create great mobile Educating developers on how to create great mobile applications on XPapplications on XP
Even better application on LonghornEven better application on Longhorn
Intel is meeting these demands with their Mobilized Intel is meeting these demands with their Mobilized Computing InitiativeComputing Initiative
http://http://www.mobilizedcomputing.comwww.mobilizedcomputing.com
Great tools and SDK for Mobile PC DevelopersGreat tools and SDK for Mobile PC Developers
Microsoft and IntelMicrosoft and Intel
Windows Client VisionWindows Client Vision
Make Windows computers Make Windows computers more more valuablevaluable to to more people,more people, more hoursmore hours of of the day by the day by enabling them to use enabling them to use computers in computers in newnew physical and physical and social settingssocial settings
Mobile PC Platform AreasMobile PC Platform Areas
More Available More Settings More Places
PowerPowerHandling
standby/resumeScaling functionality on
DC
Network Network Network Location
Awareness
SynchronizationSynchManager
Online/Offline Data
Richer OutputAux displays
Alternate InputsPen/InkSpeech
DisplayMulti-monitor
High DPI Support
CollaborationPeer 2 Peer
VoIPMessenger/RTC
Media & Entertainment
Windows Media Windows for Portable
Devices (WPD)
More Available – PowerMore Available – Power
ScenerioScenerioAllow the mobile user to complete the tasks Allow the mobile user to complete the tasks with minimal interruption and awareness of with minimal interruption and awareness of battery status battery status
Features of a Power Aware ApplicationFeatures of a Power Aware ApplicationApplications notified of power status and Applications notified of power status and scale accordinglyscale accordingly
Increased battery life on portable computers = Increased battery life on portable computers = more productivitymore productivity
PDA-like system availability and responsiveness.PDA-like system availability and responsiveness.
Simplified power schemes – improved user Simplified power schemes – improved user experienceexperience
What can you do as a dev…What can you do as a dev…
Be aware of the system power statusBe aware of the system power statusHandle power notifications properlyHandle power notifications properly
Be aware of device power statesBe aware of device power states
Use CPU and other resources Use CPU and other resources efficientlyefficiently
Scale application functionalityScale application functionality
Keep the computer awake when the Keep the computer awake when the CPU is idleCPU is idle
Respond to device change eventsRespond to device change events
On NowOn Now Power Management Power Management
Since Windows 98Since Windows 98System and individual devices can System and individual devices can hibernate and wake up very quicklyhibernate and wake up very quicklyApplications should be prepare by:Applications should be prepare by:
Closing all file and device handlesClosing all file and device handlesSaving local copies of files or working dataSaving local copies of files or working dataTurn on/off polling – causes system to Turn on/off polling – causes system to wake upwake up
Application should not expect user Application should not expect user inputinputSeamless transitionsSeamless transitions
Power API’s – Current InfoPower API’s – Current Info
Available since Windows 98Available since Windows 98
bool GetPowerStatus(SystemPowerStatus s)bool GetPowerStatus(SystemPowerStatus s)Query to current power status of systemQuery to current power status of system
Current power sourceCurrent power source
Battery statusBattery status
Charging statusCharging status
Percentage remainingPercentage remaining
Use this information to make smarter Use this information to make smarter applicationsapplications
Power API’s - NotificationsPower API’s - Notifications
Applications can respond to power Applications can respond to power change eventschange events
Two methods currently availableTwo methods currently availablePowerChangedEventPowerChangedEvent
.NET Framework.NET Framework
WM_POWERBROADCASTWM_POWERBROADCASTWindows procedureWindows procedure
WM_POWERBROADCASTWM_POWERBROADCAST
PBT_APMBATTERYLOWPBT_APMBATTERYLOW
PBT_APMOEMEVENTPBT_APMOEMEVENT
PBT_APMPOWERSTATUSCHANGEPBT_APMPOWERSTATUSCHANGE
PBT_APMQUERYSUSPENDPBT_APMQUERYSUSPEND
PBT_APMSUSPENDPBT_APMSUSPEND
PBT_APMQUERYSUSPENDFAILEDPBT_APMQUERYSUSPENDFAILED
PBT_APMRESUMEAUTOMATICPBT_APMRESUMEAUTOMATIC
PBT_APMRESUMECRITICALPBT_APMRESUMECRITICAL
PBT_APMRESUMESUSPENDPBT_APMRESUMESUSPEND
Power Aware SamplePower Aware Sample
More Available – NetworkMore Available – NetworkScenario Overview Scenario Overview
Users work when and where they want with Users work when and where they want with
smart, high-performing and secure smart, high-performing and secure networked applications networked applications
FeaturesFeaturesApplication require zero-configuration for Application require zero-configuration for networkingnetworkingUsers are equally as productive on and Users are equally as productive on and offlineofflineConnect, collaborate and share information Connect, collaborate and share information with others easilywith others easilyConfidence that connection and data is Confidence that connection and data is securesecure
What can you do as a dev…What can you do as a dev…Detect network changes and react Detect network changes and react transparentlytransparently
Handle abrupt network disconnectionHandle abrupt network disconnection
Test in different network environments Test in different network environments
Scale application featuresScale application features
Handle long network delaysHandle long network delays
Have the ability to be used off lineHave the ability to be used off line
Give clear feedback to usersGive clear feedback to users
Network API’s – Get StatusNetwork API’s – Get Status
Currently two methods of getting Currently two methods of getting Network InformationNetwork Information
SENS API for general network informationSENS API for general network information
Windows Sockets 2.0 API for more detailsWindows Sockets 2.0 API for more detailsWSALookupStartup()WSALookupStartup()
Initialize WinSockInitialize WinSock
WSALookupServiceBegin()WSALookupServiceBegin()Initiate the client queryInitiate the client query
WSALookupServiceNext()WSALookupServiceNext()Enumerate networksEnumerate networks
WSACleanup() WSACleanup() Cleanup and Close WinSockCleanup and Close WinSock
Network API’s – NotificationsNetwork API’s – NotificationsRegister to receive information when Register to receive information when network change events occurnetwork change events occur
WSANSPIoctl (WSACompletion)WSANSPIoctl (WSACompletion)SIO_NSP_NOTIFY_CHANGE for change SIO_NSP_NOTIFY_CHANGE for change notificationsnotifications
Call with WSACompletion structureCall with WSACompletion structureNSP_NOTIFY_HWND to get notified via your NSP_NOTIFY_HWND to get notified via your windows procedure windows procedure
Requires wrapper in managed codeRequires wrapper in managed code
Network Aware SampleNetwork Aware Sample
More Available – DataMore Available – Data
Scenario Overview Scenario Overview Mobile user seamlessly move from online to Mobile user seamlessly move from online to offline staying in sync and more productive offline staying in sync and more productive
FeaturesFeaturesArchitecture that consider both local and Architecture that consider both local and remote dataremote data
Application that handle conflict resolution with Application that handle conflict resolution with minimal user impactminimal user impact
Equally as productive user experience in Equally as productive user experience in airplanes, hotels, coffeeshops and client locationsairplanes, hotels, coffeeshops and client locations
Sync ManagerSync Manager
Allows mobile users to synchronize content Allows mobile users to synchronize content with computers and devices with computers and devices
Consistent synchronization experience for Consistent synchronization experience for applicationsapplications
Common Status / Progress UICommon Status / Progress UI
Conflict Store / Conflict UIConflict Store / Conflict UI
Allows for SchedulingAllows for SchedulingTime-based and Event-basedTime-based and Event-based
Sync Manager UI framework allows for Sync Manager UI framework allows for simple plug-in interfacesimple plug-in interface
Sync Manager User InterfaceSync Manager User Interface
Longhorn Sync ManagerLonghorn Sync Manager
ISyncMgrSynchronizeISyncMgrSynchronizePrimary interface to communicate with Primary interface to communicate with handlershandlers
Key Methods:Key Methods:Initialize()Initialize()
PrepareForSync()PrepareForSync()
Synchronize()Synchronize()
GetItemObject()GetItemObject()
ShowProperties()ShowProperties()
SetItemStatus()SetItemStatus()
Sync Manager SampleSync Manager Sample
More Settings – Pen and InkMore Settings – Pen and InkWindows XP Tablet PC EditionWindows XP Tablet PC Edition
Tablet PC Development Kit 1.7Tablet PC Development Kit 1.7
Development CenterDevelopment Centerhttp://msdn.microsoft.com/tabletpc http://msdn.microsoft.com/tabletpc
Easy to add ink controls to your applicationEasy to add ink controls to your application
Consider the Tablet PC user in your design Consider the Tablet PC user in your design and testingand testing
Pen Enabled InterfacesPen Enabled Interfaces
Portrait versus LandscapePortrait versus Landscape
Left and right handinessLeft and right handiness
Enable computing in more placesEnable computing in more places
Tablet PC SampleTablet PC Sample
More Settings – DisplayMore Settings – DisplayGuidelines for Multiple monitorsGuidelines for Multiple monitors
Handle an arbitrarily large Handle an arbitrarily large coordinate spacecoordinate space
Display the window on the Display the window on the primary monitorprimary monitor
Preserve the last used window settingsPreserve the last used window settings
Always check the system settingsAlways check the system settings
Use Screen.Workingarea.BoundsUse Screen.Workingarea.Bounds
Call To ActionCall To Action
Keep mobility in mind when Keep mobility in mind when designing applicationsdesigning applications
In designIn design
In developmentIn development
In testIn test
You understand the needs of the You understand the needs of the mobile pc user better then desktop mobile pc user better then desktop developersdevelopers
Focus on perfecting the basics – these Focus on perfecting the basics – these will impact your application behaviorwill impact your application behavior
SummarySummary
Growing Mobile PC FutureGrowing Mobile PC Future
Mobile PC PlatformMobile PC PlatformMore AvailableMore Available
More SettingsMore Settings
More PlacesMore Places
Mobile PC ApplicationsMobile PC ApplicationsPower AwarenessPower Awareness
Network AwarenessNetwork Awareness
Data AwarenessData Awareness
Display AwarenessDisplay Awareness
Mobile PC Developer CenterMobile PC Developer Centerhttp://msdn.microsoft.com/mobilepchttp://msdn.microsoft.com/mobilepc
The latest technical articlesThe latest technical articles
DownloadsDownloads
Developer resourcesDeveloper resources
Regular columnsRegular columns
..
NewsgroupsNewsgroups
Featured partnersFeatured partners
and more…and more…
MEDC Mobile PC TalksMEDC Mobile PC Talks
CLI204 – Tablet PC Development OverviewCLI204 – Tablet PC Development OverviewSpeaker – Dave HaleSpeaker – Dave Hale
Time – Tuesday 5/10 11:00 AMTime – Tuesday 5/10 11:00 AM
CLI208 – Anywhere Access to DataCLI208 – Anywhere Access to DataSpeaker – Markus EggerSpeaker – Markus Egger
Time – Tuesday 5/10 3:00 PMTime – Tuesday 5/10 3:00 PM
CLI324 - Advanced Tablet PC Development TopicsCLI324 - Advanced Tablet PC Development TopicsSpeaker – Todd LandstadSpeaker – Todd Landstad
Time – Wednesday 5/11 8:00 AMTime – Wednesday 5/11 8:00 AM
CLI325 - In Depth - Ink Data ManagementCLI325 - In Depth - Ink Data ManagementSpeaker – Stefan WickSpeaker – Stefan Wick
Time – Wednesday 5/11 9:30 AMTime – Wednesday 5/11 9:30 AM
CLI329 - Network AwarenessCLI329 - Network AwarenessSpeaker – Dr. Neil RoodynSpeaker – Dr. Neil Roodyn
Time – Thursday 5/12 8:00 AMTime – Thursday 5/12 8:00 AM
Mobile Hands On Labs Mobile Hands On Labs Building Network-Aware Mobile PC ApplicationsBuilding Network-Aware Mobile PC Applications
Build a network-aware application using the Windows Build a network-aware application using the Windows Network Location Awareness (NLA) APINetwork Location Awareness (NLA) API
Building Power-Aware Mobile PC ApplicationsBuilding Power-Aware Mobile PC ApplicationsLearn how to tune your applications to save power, extend Learn how to tune your applications to save power, extend battery life, and enhance the user's mobile PC experiencebattery life, and enhance the user's mobile PC experience
Building Managed Applications with Microsoft Building Managed Applications with Microsoft Windows XP Tablet PC SDK Windows XP Tablet PC SDK
Create a cool Tablet application using the Windows XP Create a cool Tablet application using the Windows XP Tablet PC Edition SDK 1.7Tablet PC Edition SDK 1.7
Cool gifts for completing the labsCool gifts for completing the labs
While at MEDC 2005…While at MEDC 2005…Fill outFill out an evaluation for this session an evaluation for this session
Randomly selected instant Randomly selected instant WINWIN prizes! prizes!
Use Use real technology in a labreal technology in a lab Instructor led Instructor led Reef E/FReef E/F & & Breakers LBreakers L
Self-paced Self-paced Reef B/CReef B/C
VisitVisit the Microsoft Product Pavilion the Microsoft Product Pavilion
in the Exhibit Hall in the Exhibit Hall Shorelines BShorelines B
After The Conference…After The Conference…
DevelopDevelop
BuildBuild
InstallInstall
BuildBuild
JoinJoin
InstallInstall
EnterEnter
JoinJoin
Full-featured trial versions of Windows CE Full-featured trial versions of Windows CE and/or Windows XP Embeddedand/or Windows XP Embedded
Cool stuff & tell us about it: Cool stuff & tell us about it: msdn.microsoft.com/embedded/community msdn.microsoft.com/embedded/community
Windows Embedded Partner Program:Windows Embedded Partner Program:www.mswep.com www.mswep.com
Windows Mobile 5.0 Eval Kit including Windows Mobile 5.0 Eval Kit including Visual Studio 2005 Beta 2Visual Studio 2005 Beta 2
Mobile2Market Contest and win up to $25000: Mobile2Market Contest and win up to $25000: mobile2marketcontest.com mobile2marketcontest.com
Microsoft Solutions Partner Program:Microsoft Solutions Partner Program:partner.microsoft.com partner.microsoft.com
Tools & ResourcesTools & Resources
msdn.microsoft.com/msdn.microsoft.com/ embeddedembedded
microsoft.public.microsoft.public. windowsxp.embeddedwindowsxp.embedded windowsce.platbuilderwindowsce.platbuilder windowsce.embedded.vcwindowsce.embedded.vc
blogs.msdn.com/blogs.msdn.com/ mikehallmikehall
Windows CE 5.0 Eval KitWindows CE 5.0 Eval KitWindows XP Embedded Eval KitWindows XP Embedded Eval Kit
msdn.microsoft.com/msdn.microsoft.com/ mobilitymobility
microsoft.public.microsoft.public. pocketpc.developer pocketpc.developer smartphone.developer smartphone.developer dotnet.framework.compactframeworkdotnet.framework.compactframework
blogs.msdn.com/blogs.msdn.com/ windowsmobilewindowsmobile vsdteamvsdteam netcfteamnetcfteam
Windows Mobile 5.0 Eval KitWindows Mobile 5.0 Eval Kit
WebsitesWebsites
NewsgroupsNewsgroups
BlogsBlogs
ToolsTools
BuildBuild DevelopDevelop
© 2005 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.