Title: Introduction to Devoloping Disconnected Devices Applications
1Introduction to DevolopingDisconnected Devices
Applications
- Malek Kemmou
- CEO Arrabeta
- kemmou_at_kemmou.com
2xmlContainer.Render()
- ltSpeakergt
- ltBiogt
- ltPgt CEO Arrabeta (consulting firm based in
Casablanca Morocco) ltBR/gt - Newtelligence Alliance Partner lt/Pgt
- ltPgt Senior Consultant and Senior Trainer ltBR/gt
- Solutions Architecture, integration,
interoperability lt/Pgt - ltPgt Microsoft Regional Director for Middle East
and Africa lt/Pgt - ltPgt Ineta MEA Speaker Bureau lt/Pgt
- ltPgt Speaker at many conferences and events
(TechEd, NDC, MDC, DevDays, DevEssentials ) lt/Pgt - lt/Biogt
- lt/Speakergt
3Microsoft Regional Directors
- http//www.microsoft.com/rd
- 140 experts from all around the world
- Speaking at PDC 2004
- Clemens Vasters (Germany)
- Stephen Forte (New York)
- Farhan Mohammad (Minesota)
- Goksin Bakir (Turkey)
- Malek Kemmou (Morocco)
- Ahmad Badr (Egypt)
- Hossam Khalifa (Egypt)
4Mobility Track
- Mobile Web Development with Microsoft Visual
Studio .NET - Developing Compact Framework Applications for
PocketPC and Smartphone - Developing PocketPC Applications for a
Semi-Connected Environment - Building Localized/Globalized Applications for
Windows Mobile Devices (Goksin Bakir) - Developing Performing Mobile Applications with
the .Net Compact Framework
5Agenda
- Mobile Devices Today
- Compact Framework
- Developing for devices without noticing the
difference - First encounters with device specifics
- God damn PInvoke
- Future the Whidbey device tools
6Mobile Devices today
- Windows Mobile 2003
- Compact Framework in ROM or supported
- PocketPC
- PocketPC Phone Edition
- SmartPhone
- Other Windows CE devices (mini-Tablets, special
input card readers / bar code / ,
accessibility devices, GPS, Radios etc.) - Non Windows devices
- All kinds of phones, black berries, palm, etc.
7More Devices tomorrow
- SPOT Small Portable Object Technology
- Meet Stan and Ollie
- Stan Analog/digital Radio, frequency agile,
burst receiver - Ollie ARM
- Usage
- Watches, alarm clocks, radio receivers,
refrigerator, stove, etc.
Stan
Ollie
8A semi connected world
- Cost
- Placing a phone call (or a Wifi connection)
- Bandwidth
- GSM is 14.4 kbs, GPRS 28.8kbs
- Infrastructure
- The worker up in the mountain, the sailor out in
the ocean - Power shortage, network downtime
9.Net for devices overview Development Platform
Visual Studio .NET
.NET Framework
Server-side Web Apps
Client-sideRich Apps
Local Code
Remote Web Pages
Mobile Web Browser
.NET CompactFramework
10Developing for disconnection
- Applications need to run on the device
- Small footprint programming
- Low memory
- Low performance
- No hard disk
- Device specifics
- Platform targets (CPU an OS)
- Various form factors
- Various functionnality (telephony, connectivity,
phonebook / contacts, etc)
11I Wish I Could
- Have a RAD environment
- Abstraction of device specifics
- Develop once, deploy everywhere
- Use familiar programming and object models
12.NET For Devices
- Taking the .NET platform to devices
- .NET Compact Framework
- APIs are subset of full .NET Framework class
libraries - Creating .NET tools for devices
- Visual Studio .NET 2003 integrated device support
- Key bets
- Scale .NET down to devices
- Best of connected and disconnected
- Enable great developer productivity
- Creating web applications for mobile devices
- ASP.NET Mobile Controls
13.NET for Devices.NET Framework
OleDB, odbc, Oracle
14.NET for Devices.NET Compact Framework
SqlServerCe
15.NET for DevicesCommon CLR Features
- .NET Compact Framework supports all the core CLR
features - Exceptions
- Constructors and Finalizers
- IDisposable
- Remote Debugging
- App Domains
- Applications can start another application domain
in-process - P/Invoke
16.NET for DevicesWhat isnt included?
- Reflection Emit
- Remoting
- Serialization (Accessing the XMLSerializer)
- Code Dom
- Printing
- COM Interoperability
- Server side functionality
- XPath/XSLT
17Demo
- Am I really coding for a PocketPC ?
18Smartphone Support Visual Studio .NET 2003
- Forms designer
- Emulation environment
- Rich debugging experience
- .NET Compact Framework 1.0
- Feature of every Smartphone 2003 device
- Built in support for XML Web Services, Windows
Forms, XML, ADO.NET and more - Supports subset of controls
- Integration with native security model
- Additional command-line tools
- CAB creation, configuration, code signing
19Smartphone Roadmap
- Smartphone 2002
- eMbedded Visual C 3.0
- Windows Mobile for Smartphone 2003
- Add-In for Visual Studio .NET 2003 in Smartphone
SDK (VB.NET C) - eMbedded Visual C 4.2
- Future Generation
- Visual Studio 2005 (VB.NET, C C)
- .NET Compact Framework 2.0
20Demo
21What About Device Specific Functionality !
- Telephony
- SMS Messaging
- Accessing PIM Data
- Accessing the SIM card
- BlueTooth
- Printer drivers
22P/Invoking the genie
- Telephony
- P/Invoke to RequestMakeCall or PhoneMakeCall
- SMS Messaging
- P/Invoke to messaging APIs for sending
- Receiving requires a native component to receive
the message then pass it out of process to
managed application - Accessing PIM Data
- P/Invoke to Pocket Outlook Object Model
- Accessing the SIM card
- P/Invoke to native SIM Toolkit APIs
23Demo
- Making a phone call,
- Sending SMS messages
24After my 3 wishes
- How do I deal with ActiveX components
- Drivers (Printer etc.)
- What about embeded components
- P/Invoke is too heavy, too inelegant
- Can I simply have COM-Interop (wrapping)
- What about games and graphics
25Tomorrows mobile dev
- Introducing
- Visual Studio 2005
- For devices
26GamingVisual Studio 2005
- Direct3D Mobile Managed Interfaces!
- Low level 3D API, based on Direct3D 8
- Floating point and fixed point
- Hardware vendors to provide D3DM drivers
optimized mobile hardware - Supports multiple architectures pure software,
pure hardware or software/hardware mix - Enables rapid development of high performance 2D
and 3D applications - Games, Image processing, Visualization
27Windows FormsVisual Studio 2005
- Windows Forms Designer
- Smartphone look and feel
- Docking Anchoring
- AutoScale
- Skin Feature
- User Control
- New Controls
- WebBrowser
- DataGrid
- Notifications
- DateTimePicker
- Keypad support
- Keypad events on common controls
- TabIndex TabStop
28Accessing Phone FeaturesVisual Studio 2005
- Pocket Outlook APIs
- Tasks, Contacts, Calendar, Email and SMS
- Configuration Management APIs
- Configure device settings with XML
- Profiles, Themes, Dialing Settings and more
- Telephony APIs
- Easily place or end calls from managed code
- Access to call logs, radio state and call state
- COM Interop
- Runtime Callable Wrappers (RCW) provide proxies
for native COM objects - Integrated into the Visual Studio Whidbey shell
29Pocket OutlookVisual Studio 2005
Imports Microsoft.WindowsMobile.PocketOutlook '
Display users contacts in a ListBox Dim
myItemStore As New ItemStore Dim ContactsListBox
As System.Windows.Forms.ListBox ContactsListBox.Da
taSource myItemStore.Contacts.Items ContactsList
Box.DisplayMember "FileAs" ' Modify the
currently selected contact in the ListBox Dim c
As Contact CType(ContactsListBox.SelectedItem,
Contact) c.CompanyName Microsoft c.Title
Program Manager ' Save the contact c.Update()
30TelephonyVisual Studio 205
using Microsoft.WindowsMobile.PocketOutlook using
Microsoft.WindowsMobile.Telephony Phone
myPhone new Phone() // If the radio is on,
make the call if (myPhone.RadioState
Available) VoiceCall c new
VoiceCall("2065555555", true)
c.Talk() // Display call information from
Call Log // Use Pocket Outlook APIs to display
contact Info foreach (VoiceCall vc in
myPhone.CallLog.AllVoiceCalls)
MessageBox.Show("Call 0 1",
vc.Contact.FirstName, c.Number)
31Summary
- Framework and tools enable end-to-end creation of
PocketPC and Smartphone applications - Visual Studio .NET 2003
- .NET Compact Framework 1.0
- Windows Mobile for Smartphone 2003 SDK
- Visual Studio Whidbey
- .NET Compact Framework Whidbey
- Integrated Smartphone support
- More managed APIs
- Direct 3D Mobile
- Rapid application development
- Better performance
32Call to Action
- If you havent yet, start developing .Net Compact
Framework Applications today - Prepare for tomorrows applications today
- Use existing P/Invoke tools and libraries
- Start testing and experimenting with Visual
Studio 2005
33Questions ?
- http//www.malekkemmou.ma
- kemmou_at_kemmou.com