2. Agenda
Windows Mobile Platform Overview
Quick Recap on Visual Studio 2005
and what new in Visual 2008
Why Windows Mobile?
Some issues facing the mobile developer
UI and user input challenges
Q&A
3. New Product Families
Pocket PC
Smartphone
Pocket PC Phone Edition
Windows Mobile 6 .1 Classic
Windows Mobile 6 .1 Standard
Windows Mobile 6 .1 Professional
Microsoft Windows Mobile 5.0 Microsoft Windows Mobile 6.1
http://www.microsoft.com/windowsmobile/en-
us/meet/version-compare.mspx
4. Windows Mobile Standard
(aka – Smartphone)
Non-touch platform designed for one
handed use (I do not agree with this)
New Naming Conventions
Windows Mobile Professional
(aka – Pocket PC)
Touch screen - enabled for flexible input
Both are great options for
Mobile Messaging
5. Modularity and Flexibility
New Product Family
Standard Pro Classic
Platform
Basic platform and applications, including:
Microsoft Office Outlook Mobile
Internet Explorer Mobile
Media Player Mobile
ActiveSync
Touch screen UI
Windows Mobile Update
Windows Mobile Marketplace
IP Telephony
Applications
Office Mobile
Window Live Mobile
Voice Command 1.6
Remote Desktop Mobile
7. Windows Mobile 6 Devices
Based on Windows Embedded CE and
supports the .NET Compact Framework
Windows Mobile 6 devices include more
software in ROM
.NET Compact Framework 2.0 SP1
SQL Server 2005 Compact Edition 3.1
AJAX application capabilities
8. Top 10 Enterprise Features of Windows Mobile 6.1
1. Mobile Messaging enhancements
2. Office Mobile
3. Enhanced security capabilities
4. Increased calendaring capabilities
5. Internet Explorer browser enhancements
6. Windows Mobile update
7. Remote Desktop mobile
8. Microsoft Windows Mobile Device Center 2008
9. Mobile document access
10.Internet connection sharing
9. Top 6 Features of Windows Mobile 6.5
1. Windows Mobile Widgets
2. New Today Screen/ Start Menu /Lock Screen
3. Enhanced ergonomics (contacts/messaging/mail)
Build with finger operation in mind.
4. Pocket Internet Explorer 6 browser
5. MyPhone Sync service
6. Windows Marketplace for Mobile
10. Tools for Device Developers
Embedded
Visual
Tools 3.0
Microsoft
eMbedded
Visual
C++ 4.0
Visual Studio
.NET 2003
Visual Studio
2005
Visual Studio
2008
eVB
WindowsCE30
eVC 3.0
Managed and Native!
Desktop Parity, Designers, Data
Device Emulator 1.0 and 2.0*
.NET CF Framework 1.0 and 2.0
Microsoft Windows CE 5.0 and
6.0
Smartphone and Pocket PC
2003, Windows Mobile 5.0*
Windows Mobile 6*
Native and Managed
Device Emulator 3.0
Security Aware IDE / Unit Testing
Windows CE 5.0 and CE 6.0
Windows Mobile 2003 Smartphone**
and Pocket PC (**Native Only)
Windows Mobile:
•5.0 Smartphone and Pocket PC
•6 Professional* and Standard*
•6.1 Professional*And Standard*
•6.5 Professional*And Standard*
.NET Compact Framework 2.0
and 3.5
Managed Only
Windows CE 4.2
.NET Compact
Framework 1.0
Smartphone and
Pocket PC 2003
Native Only
Windows CE 4.0 5.0
Smartphone and PPC
2003
X86 Emulator
*Do Not Ship in the box, Install independently
11. Parity with desktop development experiences
WYSWYG designers with skins support
Windows Mobile 2003 SDKs in the Box
Native code development
Migration from eMbedded Visual C++
MFC 8.0 / ATL / Win32
.NET Compact Framework 1.0 and 2.0
Microsoft SQL Server 2005 Mobile Edition
Data designer support
Setup project (CAB)
Microsoft Device Emulator 1.0
VS 2005 Device Development
Features
12. Added 15 MFC classes
Device Emulator 2.0 (Standalone Release)
Numerous bug fixes
Better eMbedded Visual C++ 4.0 Migration Support
Ability to work with SQL Server 2005 Compact
Edition
Updated the Native Compilers and Remote
Tools
Ability to support Windows CE 6.0-based SDKs
Support for Windows Mobile 6 SDKs
Visual Studio 2005 SP1
13. Version 2.0 now available
Updated for Windows Embedded CE 6.0 and
Windows Mobile 6 release
Ships with the SDK or download standalone
In-place update of previous version
Enhancements
Average 40% gain in performance
Support for Windows Vista
Numerous bug fixes
Battery emulation
Notification LED in skin
Device Emulator 2.0
14. Visual Studio 2008 Enhancements
Unit Testing for Devices
Device Configuration Manager
Device Certificate Manager
Device Emulator Version 3.0
Windows Mobile 5.0 SDK is in-the-box
.NET Compact Framework 2.0 SP1 and 3.5
Updated Native Compilers and MFC Libraries
Managed CoreCon Framework
15. Windows Communication Foundation support
(over email)
Support for LINQ (XML, Objects and Dataset)
New Tool - CLR Profiler
Compression Support
Client side certificates
Sound APIs
Windows Forms enhancements
Managed debugger fixes
.NET Compact Framework 3.5
Addressing key developer issues
16. .NET Compact Framework
~30% of the surface area in ~10% of the size
CopyGround-up rewrite Snapshot & Modify
System.Windows.
Forms
System.Net
System.IO
System.Resources
System.Threading
System.Xml
System.Data
System.Messaging
System.Text.
RegularExpressions
Microsoft.VisualBasic
System.ServiceModel
System.Collections
System.Collections.
Generic
System.Cryptography
System.IO.Ports
System.String
System.Text
System.Globalization
Microsoft.Win32.
Registry
System.Web.Services
System.Drawing
Microsoft.DirectX.
Direct3DMobile
Execution Engine,
JIT, GC, Loader,
Assembly Cache
Microsoft.
ServiceModel.
Channels.
MailTransport
~90%
scope of
.NET
Framework
17. Unit testing support for managed device
applications
Same experience as unit testing for desktop
applications
Integrates seamlessly with Team System and
Team Foundation Server
Lets you easily test your application across
various device configurations
Support for Test Execution from Command Line
Unit Testing for Devices
18. Device security configuration
Understand and manage device security
settings
Export security setting
Create custom security setting
Manage certificates on the device
View certificates on the device
Add or remove certificates to/from the device
Security Aware IDE
19. Build on top of existing core connectivity
framework
Internally used by our own tools (e.g., unit
testing)
Makes it easy to build your own remote
tools
Add reference to:
Microsoft.Smartdevice.Connectivity.dll
Managed Core Connectivity
Framework
20. Enhancements
Automation support
Access to interfaces via Visual Basic
Script
Made it easy to add custom images in
the Device Emulator Manager
XML config file to configure emulator
instances
Device Emulator 3.0
21. Windows Mobile SDK Components
Documentation
Sample Code
Emulator images & skin files
Native development items
Tools
22. Lend Me Your Ear…
Private /
Public
APIs
Lifecycle &
Ecosystem
Persistent
Storage
Virtual
Memory
InstallDisplayPower
Code
Signing
Perf!
Security
Policies
23. Platform updates driven by mobile ecosystem
Updates are aligned with OEM
Support is a partnership between Microsoft,
OEM, and Mobile Operator
Lifecycle and Ecosystem
Mobile Operator
OEM/ODM
Microsoft
24. Mobile UI Challenges
Screen
Size, orientation, resolution, layout
Input
SIP, keyboard, dedicated buttons, stylus
User Interaction
Standing up on a moving bus
Understand System.Windows.Forms
Compactness
Form and Control classes
25. Windows Mobile 2003 SE changed everything
o VGA, Square Screen, Landscape…
CE Subsystem 4.21 and higher are aware; 4.20
and lower use emulation layer.
HI_RES_AWARE resource can override
Emulation is practical—not beautiful
Display Assumptions - history
26. Apps that ―assume‖ anything about the screen
size of a device will have problems
Are you ready for high-res, square screen,
and landscape?
Video frame buffers may be non-linear
(direct access)
Emulation may mask some issues
Display Assumptions
27. Don’t assume anything
Test on different devices/emulators
Upgrading to .NET Compact Framework 2.0 in Visual
Studio 2005 makes you aware by default:
this.AutoScaleDimensions = new
System.Drawing.SizeF(96F, 96F);
this.AutoScaleMode =
System.Windows.Forms.AutoScaleMode.Dpi;
Take advantage or docking and anchoring and state info
(DisplayRotation) for simple needs
Display Assumptions - tips
28. Screen Layout
Do not try to create non-full screen forms
Top strip
Main Area
Bottom strip
29.
30. Screen to Form
Top strip
Don’t hide the title bar
Use the same title in owned forms
Bottom strip
Don’t use a toolbar control
Don’t use more than two menus
Don’t hide the bottom strip
Main Area
Place tappable controls near the bottom
TextBoxes or anything requiring the SIP,
near the top
31. Form Basics
Startup
Hiding vs. Closing
Form Navigation
Application Termination
By User
By platform (!)
• Application.Run
• MinimizeBox
• Show vs. ShowDialog
• Remote Process Viewer
• Running Programs List
• MobileDevice.Hibernate
34. Demo – Form Basics
Lifecycle of a
form (& app)
plus navigation
35. Handling Input
Keyboard
SIP
Respond to Show/Hide
Dedicated Buttons
Stylus or Finger
Tap
Tap and Hold
Typically for context menus
Don’t use this!
• InputPanel
• HardwareButton
• Tap events
• Click, MouseDown, MouseMove,
MouseUp
36. Single-Handed Operation
Design your app so it can be keyboard
driven
Soft keys, D-Pad
Automatically, you are in a good place for
Smartphone
Besides previous advice...
...make it finger driven
37. Learn from Smartphone Model
Entirely Keyboard driven
D-Pad (Left, Right, Up, Down, Enter)
Good use of Soft Keys are crucial
Controls are stacked
Label, LinkLabel, CheckBox, ComboBox, TextBox,
DateTimePicker
TabIndex, TabStop
...or full screen
ListView, TreeView, DataGrid