Title: PocketPC Application Development 1
1PocketPC Application Development 1
2Reference
- Windows Mobile Developer Center
http//msdn2.microsoft.com/en-us/windowsmobile/d
efault.aspx - Includes developer tools and technical resources,
such as white papers, training videos, samples
and more.
3Introduction
- Java 2 Platform, Micro Edition (J2ME) is
supported by most mobile phone vendor. - However, with mobile commerce growing into a
multibillion-dollar industry, Microsoft is also
interested in the mobile application development.
- Microsoft's latest mobile commerce offering is
the .Net Compact Framework (.Net CF) which
targets for both PocketPC and smart phone.
4A Typical PocketPC
5PocketPC - Direct Connect to PC
6.NET CF Design Goals
- Target mobile and embedded devices
- Portable subset of .NET Framework
- No new compact namespaces
- Visual Basic .NET and C compiler
- Leverage Visual Studio .NET
- Run managed .EXEs and .DLLs directly
- Debug with Visual Studio .NET
- Peacefully co-exist with host OS
- call native code
7Rich Client vs. Thin Client
8Rich Client vs. Thin Client
- Thin Client
- Advantage
- Support a broad range of devices
- Browser access
- Device differences not important
- Disadvantage
- Doesnt work offline
- No local processing power
- Limited user interface
- Rich Client
- Advantage
- The best way to do online and offline
- Takes full advantage of Pocket PC
- Excellent integration with SQL Server CE
- Powerful local processing and rich graphics,
multimedia - Disadvantage
- Limited device support
9Core Microsoft Smart Device Technologies
- Windows Mobile Devices
- Different form factors (Pocket PC and Smartphone)
to suit different application types and usability
patterns
- .NET Compact Framework
- RAD for devices
- Leverage existing .NET development skills to
target devices
10Development Environment Tools
Onscreen Device Emulators
ActiveSync 4.5 or later
SQL Server 2005 Mobile Edition
11.NET Compact Framework Development Platform
- Jan 2008
- Microsoft Visual Studio 2005/2008, Standard
Edition or above (Express Editions are not
supported). - Windows Mobile 6 Professional/Standard Software
Development Kits - ActiveSync 4.5
- .NET Compact Framework v2 SP2
- SQL Server 2005 Mobile Edition
12Development ToolsVisual Studio 2005
- Enhanced project wizard
- Target Pocket PC or Smartphone
- Enhanced designers
- Emulator support
- Based on ARM processor
- Save multiple states
- CAB and Setup projects
- Integrated device and emulatordebugging
- Remote tools
- Process viewer, file viewer, heap walker, and
more
13Visual Studio 2005
- To develop WM 6 applications, you need to
download and install the Windows Mobile 6 SDKs
for Pocket PC and Smartphone
14Windows Mobile 6 SDK
- Two versions Professional and Standard for
different target platforms. - Windows Mobile 6 Standard SDK
- for smartphone development
- Windows Mobile 6 Standard (176x220 pixels - 96
dpi) - Windows Mobile 6 Standard Landscape QVGA (240x320
pixels - 131 dpi) - Windows Mobile 6 Standard QVGA (320x240 pixels -
131 dpi)
15Windows Mobile 6 SDK
- Windows Mobile 6 Professional SDK
- for PocketPC application development
- Windows Mobile 6 Classic (240x320 pixels - 96
dpi) - Windows Mobile 6 Professional (240x320 pixels -
96 dpi) - Windows Mobile 6 Professional Square (240x240
pixels - 96 dpi) - Windows Mobile 6 Professional Square QVGA
(320x320 pixels - 128 dpi) - Windows Mobile 6 Professional Square VGA
(480x480 pixels - 192 dpi) - Windows Mobile 6 Professional VGA (480x640
pixels - 192 dpi)
16What is the .NET CF?
- Essentially, the .NET CF is an extended subset
of the .NET Framework - Subset Some non-essential classes are not
included - Extended Functionality specific to the Windows
Mobile platform - High-level goal Extend the .NET developer
platform to the Windows Mobile device platform
17Supported in .NET CF
- Common Base Classes
- IO, collections, reflection, math, drawing
- Connectivity
- Networking, HTTP classes, calling XML Web
services - Data Access
- ADO.NET, SQL Server CE, SQL Server
- XML
- XmlDocument, XmlReader/Writer
- Windows Forms
18.NET vs .NET CF
- No ASP.NET
- No support for writing COM/ActiveX objects
- Class libraries are a subset (about 25)
- Different size and scalability characteristics
- Compact Additions
- IrDA support
- SQL Server CE managed classes
- Device-specific controls
19Framework Size
- Framework size
- 1.35MB (ROM) on Windows CE .NET Device
- Running RAM needs
- 1 MB (depends on app)
- Typical application sizes
- 5 - 100 KB
- Apps often smaller due to use of platform
features (i.e. libraries) in the framework
20Developing the User Interface
- Three device categories within the Windows Mobile
platform - Standard (Smartphone)
- Classic (Pocket PC)
- Professional (Pocket PC Phone Edition)
- Smartphone does not support stylus entry
- T9 input and key navigation
- Screen layouts for Smartphone need special care
21Developing the User Interface
- Limited Screen Real Estate
- Pocket PC, Phone Edition
- VGA 480 x 640
- QVGA (Most Common) 240 x 320
- Smartphone (Smaller Screen)
- QVGA 320 x 240
- Standard (Most Common) 170 x 220
- UIs should be designed and tested for usability
- Use the features of the .NET Framework!
- Standard controls optimized for mobile devices
- Create custom controls that you can re-use across
projects
22User Interfaces on the latest platform
- Windows Mobile 6
- Supports
- Landscape and portrait orientations
- HiDPI resolution (VGA)
- Developers need to make sure their applications
are orientation- and resolution-aware - For more information
- MSDN Mobile and Embedded Developer Center
- http//msdn.microsoft.com/mobility
23Data and Communication
- Smart Device Applications need data
- Web Services
- Applications can communicate with services
provider with no modification to servers - SQL Server CE
- Provides rich, robust, secure data source for
smart devices - Rich control over synchronization with back end
SQL Server
24Accessing Data from a Smart Device
HTTPS
IIS Server
External Web Services
Other Internal Systems
Pocket PC
Access SQL Server through IIS, using SQL Server
CE ISAPI filter
SQL Server Database
25Basic Data Types
- Base data types are the same as the desktop
- Formatting
- StringBuilder
- More efficient when string length changes
- Arrays
- Value types (Int16, Int32, Int64, UInt16, etc.)
- Floats and doubles
- Collections
- Classes for storing sets of objects
- Arraylists and Hashtables
26Windows Forms Support
- Layout
- Manual positioning
- Drawing
- Polygons, lines, arcs, ellipses, rectangles
- JPEG, BMP images
- Text and images
- TrueType bitmap fonts on Mobile
- Most desktop controls
- Designer support
27Rich Controls
Pocket PC
28DateTimePicker
29DocumentList
30Picture Selection Dialog
31Notification Bubble
32UserControl
- Easily build and reuse your own custom controls
- Well integrated into design time experience
33More Controls
- MonthCalendar
- LinkLabel
- Help
- WebBrowser
- DataContainer
- New on Smartphone
- Datagrid
- Textbox IME switching
- Enable multiple menu items on left softkey
34Screen OrientationWhat is it?
Landscape
Square
Portrait
35Screen OrientationNo awareness
Landscape
Portrait
36Screen OrientationDesign considerations
- User can rotate at runtime
- Three main strategies
- Resize content
- Relayout content
- Change content
37Screen OrientationApplication UI
Technique 1 Resize your content
38Screen OrientationApplication UI
Technique 2 Relayout your content
39Screen OrientationApplication UI
Technique 3 Change your content
40Screen OrientationApplication UI
Technique 3 Change your content
41Simple Solution - Resize
- Using the anchor property to control the layout
- Other methods may need to determine the screen
orientation (by comparing width and height) and
recompute the location and size of controls.
42Screen ResolutionWhat is it?
96 DPI
131 DPI
43Screen ResolutionDesign considerations
- Physical screen size stays the same
- Pixel size gets smaller
- Keep text BIG and readable
- Keep tap targets easy to hit
- Consistent user experience
44Screen ResolutionBitmaps and icons
- Scaling up bitmaps at runtime looks clunky
- Scaling them down is even worse
- Pixels drop out
- SolutionBuild bitmaps and icons for each DPI
you support
45Screen ResolutionCurrent support table
46Softkeys
Smartphone
Pocket PC
- New for Pocket PC
- Well-tested and well-loved on phones
- Why? One-handed navigation
- Brings Pocket PC and Smartphone closer together
47PocketPC vs J2ME
- Due to its strong cross-platform capability and
network connectivity, J2ME is best for consumer
use. - e.g. Booking Movie Ticket, Games, On-line Stock
Quote etc. - Pocket PC is more suitable for business use.
- e.g. Food ordering system, Field sales system,
etc. - Why? Give at least 3 reasons.
48J2ME vs .NET CF