Developing Applications with Visual Studio 2005 (part 1) Marcus Perryman
Agenda Show me the ‘shiny’ Mobile Platform Developing for Mobile Visual Studio 2005 Compact Framework
Sample fill color Latest devices… Sample fill color HTC Universal Palm Treo 700w MDA III/XDA IIs HP iPaq hw6500Symbol MC50Garmin JasJar C600 Motorola Q T Mobile SDAE-Ten P300iMate Jam Samsung i300 SDA II
Mobility platforms Smartphone Information consumption Primarily data viewing Integrated phone with PDA Interoperability with Exchange.NET Compact Framework ASP.NET mobile controls Notebook PC Complex document authoring, editing and reading Keyboard centric at the desk Keyboard and mouse input methods Full.NET framework available Windows CE + Windows Mobile Windows XP Tablet PC Complex document authoring, editing and active reading Note taking and ink annotating Keyboard centric at the desk, pen & keyboard away from the desk Keyboard, mouse plus pen, ink, and speech input methods Full.NET framework preinstalled Pocket PC Phone Information consumption View and enter data Integrated with phone Interoperability with Office, Exchange and SQL Server.NET Compact Framework ASP.NET mobile controls Windows CE Smart Personal Objects One-way network Information consumption
Momentum Continues To Build… Source: Gartner Dataquest (Dec. 2003) PC Shipments Unit Shipments (M) Mobile Device Shipments For Mobile Devices: Mobile device adoption continues to grow Growing Pocket PC market share 57% in EMEA (Q – IDC) Smartphones – 2 of top 3 handset manufacturers now launched 42 OEMs World Wide and 92 Mobile Operators partners For Mobile Applications: $5.8 billion market for ISVs by 2006 $5.8 billion market for ISVs by 2006 (source: Forrester, 2002) Customers demand more mobile applications Customers demand more mobile applications (source: Handango, 2003) Mobile Operators report monthly ARPU increases of 25% on Windows Mobile-based devices Mobile Operators report monthly ARPU increases of 25% on Windows Mobile-based devices 700 applications added to Mobile Application Catalog since launch of Mobile2Market program last year 700 applications added to Mobile Application Catalog since launch of Mobile2Market program last year 58% want more Personal productivity apps 58% want more Business and professional apps 54% want more Games 44% want more Utilities
History to now! 1996: Handheld PC (Pegasus) Windows CE 1.0 Cut down version of Windows million units sold Monochrome 1997: Handheld PC (Mercury) Windows CE 2.0 VGA (Colour) MS Office Apps 2000: Pocket PC 2000 (Rapier) Handheld PC (Galileo) Windows CE 3.0 First Pocket PC (Palm-Sized PC) Compaq iPAQ (HTC) Simplified Windows UI 2001: Pocket PC 2002 (Merlin) Windows CE 3.0 New Shell Windows Media Player 2002: Pocket PC 2002 Phone Edition O2 XDA 2002: Smartphone 2002 (Stinger) Orange SPV (HTC Canary) 2003: Windows Mobile 2003 (Ozone) Windows CE 4.x Re-branded to Windows Mobile 2003 Connectivity WiFi Bluetooth.NET Compact Framework Windows Media Player : Windows Mobile 2003 Second Edition 2005: Windows Mobile 5.0
Software Platforms Vertical Handhelds VoIP Phones Thin Clients Medical Devices Set-top Boxes Consumer Electronics In-vehicle Navigation Industrial Automation Retail POS/Kiosk ATM Advanced STB LOB Thin Clients Test and Measurement Office Automation Home Media Gateways Medical Systems Pocket PC Smartphone Portable Media Center Common Device Usage Scenarios Integrated Application And Service Experience Platform
Pocket PC devices Typical specifications: Processor 300MHz – 624MHz RAM 32Mb – 128Mb Up to 10Gb via CompactFlash Up to 4.0Gb via SD ROM 24 – 128 Mb PDA form factor Non-volatile flash storage (Windows Mobile 5.0) Touch screen with stylus input.NET Compact Framework in ROM Office Mobile, Internet Explorer and Media Player Connectivity via Bluetooth, IrDA and WiFi Phone Edition devices add GSM, GPRS and 3G
Smartphone devices Typical specifications: Processor 132MHz – 206MHz RAM 16Mb – 32Mb Up to 4.0Gb via SD ROM 32 – 128 Mb Phone form factor Non-volatile flash storage Rigid screen (keypad input).NET Compact Framework in ROM Pocket Outlook, Internet Explorer, Media Player, SMS and MMS Connectivity via Bluetooth and IrDA Quad-band GSM, GPRS and 3G
Windows CE Hard real-time pre-emptive multitasking kernel Interprocess communication (IPC), sync objects Memory mapped files, message queues and fibres Virtual memory with hardware access protection Installable ISRs, multimedia timers, DMA APIs More flexibility for drivers and applications Componentised Tuneable for resource constrained devices Specialised through Platform Builder Pocket PC and Smartphone are specialisations
Mobile application approaches Microsoft mobile development Local Code Mobile Web Pages Software Platform (Pocket PC, Smartphone, etc.) Mobile Web Browser ASP.NET (Mobile Controls).NET Compact Framework and Native APIs
Mobile application approaches Microsoft mobile development Smart Device Programmability Local Code Software Platform (Pocket PC, Smartphone, etc.) Mobile Web Browser.NET Compact Framework and Native APIs
Compact Framework design goals Target mobile and embedded devices Portable subset of.NET Framework No new ‘compact’ namespaces C# and Visual Basic.NET compiler support Leverage Visual Studio.NET Run managed.EXEs and.DLLs directly Debug with Visual Studio.NET Peacefully co-exist with host OS Run on native threads, P/Invoke to native code
Compact CLR common features Verifiable type safe execution No uninitialised variables, unsafe casts, bad array indexing or bad pointer arithmetic Garbage collection No reference counting and no leaks JIT compilation Error handling with exceptions Common type system Call, inherit, and source-level debug across different languages
Compact CLR differences No install-time JIT (nGen) No reflection emit No remoting Client web services are fully supported COM Interop Runtime Callable Wrapper (RCW) CLR hosting not available – no managed COM objects No Code Access Security Subsets of other areas of functionality
Compact Framework Sizes: CF v1.0: 1.5MB in ROM CF v2.0:2.5MB in ROM / comp. RAM Runtime: ~1MB required for first application
Performance Improvements Since V1 Pocket PC 2003, XScale 400MHz V1V1 SP2V2 Method Calls ( Calls/sec) 3.7M8.1M Virtual Calls ( Calls/sec) 2.4M5.6M Simple P/Invoke ( Calls/sec) 733K1.7M Primes (to 1500) (iterations/sec) GC Small (8 bytes) (Bytes/sec) 1M7.5M GC Array (100 int’s) ( Bytes/sec) 25M112M XML Text Reader 200KB (seconds) DataSet (static data) 4 tables, 1000 records (seconds) DataSet (ReadXml) 3 tables, 100 records (seconds) Bigger is better Smaller is better
Technologies: Windows Mobile 2003Window Mobile 5.0 EVC 3.0Runs, no debug or deploy EVC 4.0 application YesRuns, no debug or deploy VS CF 1.0 YesRuns, no debug or deploy VS CF 1.0 YesYes + extra libraries VS CF 2.0 Yes + language features Yes + extra libraries + language features
Technologies: Windows Mobile 2003Window Mobile 5.0 VS CF 1.0 Standard CF 1.0Libraries: Configuration Status Forms PocketOutlook Telephony VS CF 2.0 Language features: Generics, Anonymous methods Itterators Partial types COM interop, perf etc Libraries, language + DirectX SQL Mobile
Development for Windows Mobile 5.0 Visual Studio single development tool for Windows Mobile 5.0 development Supports build, deploy, debug across NET CF 1.0, 2.0 and native code for 2003 devices upward Integrates device development completely to Visual Studio development environment Managed and native development in one place Intellisense Remote Tools Extensible through SDK model: Libraries, header files, emulator images:
Language Support.NET Compact Framework 2.0 New language features make you more productive Generics Anonymous methods Iterators Partial Types
Compatibility And Performance.NET Compact Framework 2.0 Compatibility with full.NET Framework Classes Interoperability, Protocols Compatibility with 1.0 Side by side Application compatibility Performance Enhancements Unified JIT Improved string handling XmlTextReader and XmlTextWriter.NETCF 1.0 (ROM) (ROM).NETCF 2.0
New with Visual Studio 2005 True ARM emulator with higher fidelity Same executable/CAB for device and emulator Realistic device performance Direct3D and GAPI support New debugger Brand new architecture rewritten from line 0 Optimized for USB 2.0 performance New designers Improved UI designers (docking and anchoring) Data designers (drag, drop, bind SQL to forms) Improved CAB designer support (new project type)
Device emulators Visual Studio 2005 includes Windows Mobile 2003 SE emulators as standard Windows Mobile 5.0 emulators available via SDK
Pocket PC screen sizes (support for and.18 dot pitch)
Pocket PC screen sizes
Smartphone screen sizes
DEMO Visual Studio 2005 Device Development
Questions?
© Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.