2. 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
3. New Naming Conventions
Windows Mobile Standard
(aka – Smartphone)
Non-touch platform designed for one handed
use (I do not agree with this)
• Both are great options for
Mobile Messaging
Windows Mobile Professional
(aka – Pocket PC)
Touch screen - enabled for flexible input
4. ModularityandFlexibilityNew 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
6. 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
7. • 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
8. .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
9. • 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
10. • 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
11. • 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
12. • 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
13. Lend Me Your Ear…
Private /
Public
APIs
Lifecycle &
Ecosystem
Persistent
Storage
Virtual
Memory
InstallDisplayPower
Code
Signing
Perf!
Security
Policies
14. • 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
15. 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
16. • 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
17. • 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
18. • 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
19. Screen Layout
• Do not try to create non-full screen forms
• Top strip
• Main Area
• Bottom strip
20.
21. 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
22. 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
23. Screen-Aware
• Size
• Orientation
• Resolution
• UI design per form factor
– What platform am I on?
• Patterns & Practices
– Mobile Client Software
Factory/Mobile Application Blocks
http://www.codeplex.com/smartclient /
http://mobile.codeplex.com/
Orientation-Aware control
24.
25. Demo – Form Basics
• Lifecycle of a
form (& app)
plus navigation
26. 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
27. 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
28. 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
29. Definitions
(thanks Wikipedia )
GPS is a satellite navigation systems that
provide autonomous geo-spatial positioning
with global coverage (one of …) thus allows
electronic receivers to determine their
location (longitude, latitude, and altitude) to
within a few meters using time signals
transmitted along a line of sight by radio
from satellites.
Take Care: Time is accurate but not corrected!
30. NMEA 0183 (NMEA for short) is a combined
electrical and data specification for communication
between marine electronic devices such as echo
sounder, sonars, anemometer, gyrocompass,
autopilot, GPS receivers and many other. It has
been defined by, and is controlled by, the U.S.-
based National Marine Electronics Association.
The standard uses a simple ASCII, serial
communications protocol that defines how data
is transmitted in a "sentence" from one "talker" to
one "listener" at a time.
31. Windows Mobile & GPS
GPS Intermediate Driver provides an
intermediate layer that abstracts the actual
GPS device from application developers.
This intermediate layer also abstracts
applications from GPS device
manufacturers. Ideally, this enables
application developers to write code that
works with any GPS hardware, and GPS
device manufacturers to produce hardware
that works with any application.
32. FakeGPS (what is, install etc)
• Fakes data received by the GPS APIs
– C:Program FilesWindows Mobile 6 SDKToolsGPS
• Reads NMEA data
– from Program FilesFakeGPSGPSFiles
Or you can do it the hard way:
http://www.bbits.co.uk/blog/archive/2006/07/14/12027.aspx
33. Windows Mobile & GPS
Programming
Did you know that you have all in SDK?
Out of the box and ready to use:
C:Program FilesWindows Mobile 6
SDKSamplesPocketPCCSGPS
GPS Sample Classes (http://msdn.microsoft.com/en-us/library/ms881362.aspx)
•Gps: The interface to the managed GPS API. use this
class to open, close, and query the device state, and to
query the position data from your GPS hardware.
•GpsPosition: Contains the GPS position data received
from the GPS hardware.
•GpsDevice: Contains the GPS device state data
received from the GPS hardware.
•Utils: Native memory allocation utilities.
34. Windows Communication Foundation
Store and Forward Messaging
Server
Exchange 2007
Exchange
Web
Services
Datacenter
within the
company
Corporate
Wi-Fi
network
Mobile
operator
network
35. The WCF subset supported by NetCF
Feature Desktop WCF Compact WCF
Bindings:
· BasicHttpBinding Yes Yes
· CustomBinding Yes Yes
· WindowsMobileMailBinding N/A Yes
· ExchangeWebServiceMailBinding Yes, via NetCF install Yes
Formatters:
· SoapFormatter Yes Yes
· BinaryFormatter Yes No
Encoders:
· TextMessageEncoder Yes Yes
· BinaryMessageEncodingBindingElement Yes No
· MTOMEncoder Yes No
· GzipEncoder Sample available Sample available
36. The WCF subset supported by NetCF cont
Feature Desktop WCF Compact WCF
Transports:
· HttpTransportBindingElement Yes Yes
· HttpsTransportBindingElement Yes Yes
· MailTransportBindingElement Yes, via NetCF install Yes
· MsmqTransportBindingElement Yes No
· TcpTransportBindingElement Yes No
· (other transports) Yes No
XmlDictionaryReader/Writer Yes
Yes; stub around
XmlTextReader/Writer
DataContractSerializer Yes
No; but can be wire-compatible with
DCS via XmlSerializer
Service proxy generation Yes; via SvcUtil.exe
Yes; via NetCFSvcUtil.exe, not
integrated into VS2008
· Non-HTTP transports in generated proxies Yes Not built-in
· Custom headers in generated proxies Yes Not built-in
37. The WCF subset supported by NetCF cont
Feature Desktop WCF Compact WCF
WS-Addressing Yes Yes
WS-Security message level security
· X.509 Yes Yes
· Username/password Yes No
· SecurityAlgorithmSuite.Basic256Rsa15 Yes Yes
· SecurityAlgorithmSuite.Basic256 Yes No
WS-ReliableMessaging Yes No
Patterns
· Service model Yes No
· Message layer programming Yes Yes
· Buffered messages Yes Yes
· Streaming messages Yes No
· Endpoint descriptions in .config files Yes No
Channel extensibility Yes Yes
Security channel extensibility Yes No
Source: http://blogs.msdn.com/andrewarnottms/archive/2007/08/21/The-WCF-
subset-supported-by-NetCF.aspx
38. • Mobile Application Blocks
http://mobile.codeplex.com/
• Power Toys for .NET Compact Framework 3.5
http://www.microsoft.com/download/en/details.asp
x?displaylang=en&id=13442
• NetCFSvcUtil
http://download.microsoft.com/download/6/2/0/62
05ED05-E435-44FC-AA82-
B763CA5F8B1A/NetCFSvcUtil.exe
• http://ronua.ro/CS/blogs/catalin/default.aspx
Tools&Resources