AISEC 12 april 2012 Introduction to Windows Embedded Handheld programming


Published on

Published in: Mobile, Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

AISEC 12 april 2012 Introduction to Windows Embedded Handheld programming

  1. 1. Introduction to Windows Embedded Handheld programming Catalin Gheorghiu Solution Architect I Computer Solutions
  2. 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 us/meet/version-compare.mspx
  3. 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. 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
  5. 5. Windows Mobile Device Choice
  6. 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. 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. 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. 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. 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. 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. 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. 13. Lend Me Your Ear… Private / Public APIs Lifecycle & Ecosystem Persistent Storage Virtual Memory InstallDisplayPower Code Signing Perf! Security Policies
  14. 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. 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. 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. 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. 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. 19. Screen Layout • Do not try to create non-full screen forms • Top strip • Main Area • Bottom strip
  20. 20. 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
  21. 21. 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
  22. 22. Screen-Aware • Size • Orientation • Resolution • UI design per form factor – What platform am I on? • Patterns & Practices – Mobile Client Software Factory/Mobile Application Blocks / Orientation-Aware control
  23. 23. Demo – Form Basics • Lifecycle of a form (& app) plus navigation
  24. 24. 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
  25. 25. 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
  26. 26. 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
  27. 27. 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!
  28. 28. 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.
  29. 29. 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.
  30. 30. 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:
  31. 31. 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 ( •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.
  32. 32. Windows Communication Foundation Store and Forward Messaging Server Exchange 2007 Exchange Web Services Datacenter within the company Corporate Wi-Fi network Mobile operator network
  33. 33. 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
  34. 34. 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
  35. 35. 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: subset-supported-by-NetCF.aspx
  36. 36. • Mobile Application Blocks • Power Toys for .NET Compact Framework 3.5 x?displaylang=en&id=13442 • NetCFSvcUtil 05ED05-E435-44FC-AA82- B763CA5F8B1A/NetCFSvcUtil.exe • Tools&Resources
  37. 37. Demo(s)
  38. 38. Q&A
  39. 39. Thank you for your attention. Contact: •My Blog default.aspx •My Email