Mobile Applications…..
Vision Vision In 1975 A computer on every desk and in every home
Vision Today Empower people through great software any time, any place, and on any device
Mobility Group Empower people through intelligent mobile communication devices and software solutions
Mobile Growth • In 2002, 80-100 million cellular phones on the Internet. (CNet) • By 2002, handhelds will start outselling PCs (Forrester) • By 2003, 150 million wireless networked devices (Dataquest) • By 2003, more people interacting with the Web via wireless devices than traditional PCs (multiple analysts quoted by BBC News)
Devices
What is PocketPC • Improved UI • Improved software – Pocket Office – Internet Explorer – Windows Media Player – Terminal Services – Better Security • Corporate Network Access – Network Browse • Better Connectivity • Hardware – ARM Standardization – FLASH ROM in all devices
Current Mobile Development Approaches
Client App.
Web App
• App on device
• Offline options
• Device specific
• Richest UI
• Fewer devices
• Harder to deploy
• App on Server
• Online only
• Runs in browser
• Less UI choice
• Many devices
• Easy to deploy
Mobile Development Tools WinCE Handheld PC PocketPC SmartPhone
Embedded Tools
eVC++ eVB
WindowsCE PocketPC +Phone Edition
Visual Studio.NET
C# VB.NET
Mobile Internet Toolkit
Visual Studio.NET
C# VB.NET
Mobile Development Tools
WinCE Handheld PC PocketPC SmartPhone
Embedded Tools
eVC++ eVB
WindowsCE PocketPC +Phone Edition
Visual Studio.NET
C# VB.NET
Mobile Internet Toolkit
Visual Studio.NET
C# VB.NET
Design Goals • Target mobile and embedded devices • Portable subset of .NET Framework – No new ‘compact’ namespaces – Visual Basic® and C# compiler support in V.1
• Leverage Visual Studio .NET – Run managed .EXEs and .DLLs directly – Debug with Visual Studio .NET
Creating A PocketPC Project VS.NET •
Templates for devices in New Project dialog – Template sets device and project type
•
Template types – Templates for Windows CE .NET and Pocket PC applications
•
Default set of references that are appropriate for your platform
What’s in SDE? • •
Smart Device Extensions (SDE) integrates into Visual Studio .NET Enables Visual Studio to support rich device development – – –
•
Visual Basic .NET and Visual C# .NET Remote debugging Emulation
Targets the .NET Compact Framework – –
XML, Web Services and ADO.NET Rich Forms and Drawing
Windows Form Designer • • • •
Same rapid development as the desktop Only shows controls and properties available on the device Generates C# or VB code for all of the controls in the designer Extensible for 3rd party controls
Supported Controls •
Supported controls Button CheckBox ComboBox ContextMenu DomainUpDown FileOpenDialog
•
HScrollBar ImageList Label ListBox ListView FileSaveDialog
MainMenu NumericUpDown Panel PictureBox ProgressBar RadioButton
StatusBar TabControl TextBox Timer ToolBar VScrollBar
Currently Unsupported controls GroupBox TreeView
DataGrid RichTextBox
PocketPC Specific Controls Print Controls
• Unavailable controls CheckedListBox ColorDialog ErrorProvider
HelpProvider LinkLabel NotifyIcon
ToolTip Splitter FontDialog
Supported Class Libraries System.Web Services Description
UI HtmlControls
Discovery
WebControls
System.WinForms Design
ComponentModel
System.Drawing
Protocols Caching
Security
Drawing2D
Printing
Configuration
SessionState
Imaging
Text
System.Data
System.Xml
ADO.NET
SqlClient
XmlDocument
Serialization
Design
SqlServerCe
Xslt/XPath
Reader/writers
Runtime InteropServices
System Collections
IO
Configuration
Security
Net
ServiceProcess
Text
Reflection
Diagnostics
Remoting
Globalization
Resources
Threading
Serialization
F5 Deploy • • • •
Same user experience as desktop Compiles application for device Output Window used for deployment messages Visual Studio deploys the framework to device if needed
Debugging • •
Same user experience as desktop Supported features include – – – – –
•
On-device debugging Breakpoints Multi-language debugging Call Stack, Watch windows Command window – Immediate
Multiple device transports –
TCP/IP, IrDA, USB, Bluetooth, Serial …
Emulation • • • • •
Robust, accurate device emulation Runs Windows® CE operating system on Windows XP Emulates localized versions of the operating system Emulates any Windows CE image Supports device skins
.NET CLR Common Features •
Verifiable type safe execution –
•
Garbage Collection –
• • •
No uninitialized variables, unsafe casts bad array indexing, bad pointer math No ref-counting, no leaks
JIT compilation Error handling with exceptions Common type system –
Call, inherit, and source-level debug across different languages
.NET Framework Features Not Supported in the Compact Version
• ASP .NET • COM Interop – P/Invoke enables calls to Win32 DLLs – No support for writing a COM object
• Remoting – (but Client Web Services is fully supported)
• Generic serialization • Install-time JIT (nGen)
Other Differences • Class libraries are a subset (about 25%) • Different size and scalability characteristics • Compact Additions – IrDA support – SQL Server CE managed classes – PocketPC controls
.NET Compact Framework Platform • .NET Framework for smart devices • Optimized for resource economy • Compatible: – Same programming model – Same binary file format
• Exposes device-specific features • Device, CPU, OS independent – Platform Abstraction Layer (PAL)
• Enable rich client Web Services and line of business applications • Target devices without being a device specialist
Which Tool – When? • In general, use the Smart Device Extensions for Visual Studio: – To target the Pocket PC, Pocket PC 2002, or any Windows CE .NET-based device. – When you need to integrate XML Web services. – To allow the same code to run on many different devices.
Resources • General Microsoft Mobile information – www.microsoft.com/mobile/
• Development resources, including free SDK download – www.microsoft.com/mobile/developer/
• Microsoft Partner Program information and sign-up – www.microsoft.com/mobile/partners/
.NET Compact Framework Benefits • Enables a range of truly mobile applications – – – – – –
Small amounts of code for real apps Easy Deployment via PC, IR or Web Great UI Smart local web service aggregation Offline/online data through ADO.NET & SQL CE Transparent connection state
• Single binary deployment for all PocketPC & Windows CE .NET CPUs – Just-in-Time compiler provides close-to-native rather than interpreted performance
• .NET Framework compatibility
Questions?