1 / 54

Beginning Compact Framework

Beginning Compact Framework. Mohammad Faridi (faridianslip) Umer Faruq. Agenda. Introduction to Compact Framework Compact Framework Smart Device Extensions Data Access Design Considerations Upgrading. Introduction to Compact Framework. Introduction to CF.NET. Evolution of PDA

bianca
Télécharger la présentation

Beginning Compact Framework

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Beginning Compact Framework Mohammad Faridi (faridianslip) Umer Faruq

  2. Agenda • Introduction to Compact Framework • Compact Framework • Smart Device Extensions • Data Access • Design Considerations • Upgrading

  3. Introduction to Compact Framework

  4. Introduction to CF.NET • Evolution of PDA • PDA (Personal Digital Assistant) • Windows CE 1996 • PocketPC 2002 (Current Version) • Previous Development : • Environment: Embedded Toolkit • Languages: VB, VC++

  5. Introduction to CF.NET • eVC • Native Code • Targets SmartPhone • Drivers for the Pocket PC/CE • Applications run natively • Games using high-speed graphics • COM Servers or ActiveX Controls

  6. Introduction to CF.NET • eVB • Resulting pcode is interpreted at runtime • Based on VB Scripting rather than VB • Build Enterprise Apps that consist mainly of ActiveX and COM Controls • RAD prototypes • Create Utilities

  7. Introduction to CF.NET • What is Compact Framework ? • A subset of the .NET Framework designed to run on devices with limited capabilities (Window CE) but without targeting specific hardware

  8. Introduction to CF.NET • Compact Framework • Managed Code • Write once, deploy to multiple devices • OOP • XML Web Services • ADO.NET • Apps that work Connected or Disconnected • VB.NET or C#

  9. Compact Framework

  10. CF.NET and .NET Framework Clients User Experiences & Solutions Tools XML Web Services Authentication SMS Voice CallsSubscriber DB MMS Data CallsPersonalization Billing etc… Infrastructure Servers

  11. A large number of devices…

  12. Making Applications Truly Mobile • Mobility involves more than just being wireless • Truly mobile applications go anywhere • Data useful when offline • State of connectedness transparent to user and/or application

  13. CF.NET Design Goals • Compatibility • Strict compatibility with .NET Framework • Subset functionality • Subsetting for devices • Give the developer a known target • Enable skills andcode transfer • Size/functionality • Provide critical mass needed for “real apps” .NET Compact Framework

  14. CF.NET Design Goals • Portable and small .NET CLR for devices • Enable Visual Basic® and C# • Leverage Visual Studio® .NET • Run managed .EXEs and .DLLs directly • Debug with Visual Studio .NET • Enable rich client Web Services and line of business applications on devices • Class libraries for forms, drawing, storage, net, data, XML • Peacefully co-exist with host OS • Run on native threads, P/Invoke to call native code

  15. Compact Framework • Lightweight version of .NET Framework • Designed for resource-constrained devices • Compatible with VS.NET, C#, VB.NET • Runs applications securely on-device • High performance JIT compiler • Guarantees robustness and security • Highly interactive, offline, and networked experiences • Makes it easy to consume web services • Tuned for size and performance

  16. System.Web System.WinForms Services UI Design ComponentModel Description HtmlControls Discovery WebControls System.Drawing Protocols Caching Security Drawing2D Printing Text Configuration SessionState Imaging System.Data System.Xml ADO.NET SqlClient XmlDocument Serialization Reader/Writers Design Xslt/XPath System Collections IO Configuration Runtime InteropServices Security Net ServiceProcess Remoting Text Reflection Diagnostics Serialization Globalization Resources Threading .NET Framework Components

  17. System.Web System.WinForms Services UI Design ComponentModel Description HtmlControls Discovery WebControls System.Drawing Protocols Caching Security Drawing2D Printing Text Configuration SessionState Imaging System.Data System.Xml ADO.NET SqlClient XmlDocument Serialization Reader/Writers Design SqlServerCe Xslt/XPath System Collections IO Configuration Runtime InteropServices Security Net ServiceProcess Remoting Text Reflection Diagnostics Serialization Globalization Resources Threading CF.NET Framework Components

  18. Common CLR Features • 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

  19. Common CLR Features not included • Reflection Emit • Remoting • Serialization • Printing • COM Interoperability • Server side functionality • XPath/XSLT

  20. Smart Devices Extension

  21. Smart Device Extensions and MITDevelopment Platform Overview Visual Studio .NET .NET Framework Server-side Web Apps Client-sideRich Apps Local Code Remote Web Pages Mobile Web Browser .NET CompactFramework

  22. MIT(Mobile Internet Toolkit) Visual Studio .NET .NET Framework Local Code Remote Web Pages Mobile Web Browser .NET CompactFramework

  23. MIT(Mobile Internet Toolkit) XML Web Services Visual Studio .NET SOAP VB C++ C# Perl Python … Mobile Web Pages Web Services User Interface ASP.NET, Mobile Internet Toolkit Data and XML Mobile Web Browser Base Framework Common Language Runtime (CLR) Device OS Windows

  24. SDE (Smart Devices Extension) Visual Studio .NET .NET Framework Local Code Remote Web Pages Mobile Web Browser .NET CompactFramework

  25. SDE (Smart Devices Extension) XML Web Services Visual Studio .NET SOAP Smart Device Extensions Local Code .NET Compact Framework .NET CompactFramework Device OS Windows

  26. MIT Advantage Support a broad range of devices Browser access MIT handles the device differences Disadvantage Doesn’t work offline No local processing power Limited user interface SDE 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 SDE versus MIT

  27. SDE: Intro to the CF environment • Use Windows Forms Designer • Drag-and-drop, property-based • Rich subset of desktop controls • User Interface controls • Data Entry • Display • Formatting & RAD controls • Organizational controls • Helper controls

  28. SDE Controls: A Subset of Desktop Controls Data Entry • Check Box • Combo Box • Command Button • Domain Up/Down • List Box • Numeric Up/Down • Radio Button • Text Box • Track Bar Display • Label • Picture Box • Progress Bar • Status Bar Helper • Context Menu • Scroll Bars • Image List • Main Menu • Open & Save File Dialogs • Timer • Tool Bar Organizational • List View • Panel • Tab Control • Splitter Controls Not Supported • Checked List Box • DateTime Picker • Group Box • Month Calendar

  29. SDE: Application Deployment • Application install uses Windows CE installer technology • Visual Studio will auto-generate simple CAB files for device Installer • Include application and dependant references • Does not include the runtime or SQL-CE • Application Install will check for the runtime when installing • Temporary files are kept if user wants to customize the cab file contents

  30. SDE: Framework Size • Framework size (RAM or ROM) • ~1.5 MB • Running RAM needs • 0.5 MB+ (depends on app) • Typical application sizes • 5 - 100 KB • Apps often smaller due to use of platform features in the framework

  31. SDE: Emulation • Robust, accurate device emulation • Runs Windows® CE/PocketPC 2002 operating system on Windows XP • Emulates localized versions of the operating system • Can add images created in Platform Builder • Configurable in Device Settings in Tools Options • Configure RAM availability • Map PC hardware to the emulator

  32. Data Access

  33. Data Access: Included Data Providers • Providers included with .NET CF • System.Data.SqlClient • System.Data.SqlServerCe • Custom Data Providers • Follow interfaces to provide connection to custom data sources • Developer creates custom code translating remote structure to DataSet

  34. Data Access: ADO.NET Disconnected cache object DataSet Serializes to and from DataSet DataAdapter Forward-only reader with typing DataReader Used for parameterized commands DataParameter Configures commands sent to source Command Configures transactions on connection Transaction Connection Opens ‘pipeline’ to data source

  35. Data Access: Direct DB Access Windows Forms SQL Server ADO.NET Data Provider ADO.NET .NET Compact Framework Windows Server Cons • Must be constantly connected • Not scalable on server; classic “two tier” design • No synchronization model for typical dynamic data Pros • Rich query into a large data source • Access to entire data source; device queries for and uses what’s relevant

  36. Data Access: SQLCE Windows Forms SQL Server ADO.NET SQL CE Replication (HTTP) SQL CE .NET Compact Framework Windows Server Pros • Very robust local store • Complex SQL querying • Advanced/performant synchronization • Utilizes HTTP Cons • Server configuration required • Engine footprint on device

  37. Data Access: DataSets • In-memory cache of a relational database • Aggregating multiple sources • Reading and writing XML • Remoted between tiers with XML Web Services • Foundation for consistent data model from server tiers, desktop applications and now devices

  38. Supported XML Classes • XmlTextReader and XmlTextWriter • Forward-only parsers of XML data • Better performance, no in-memory caching • Low memory requirements • XmlDocument • Parse entire document • In memory traversal • Higher memory requirements; more functionality

  39. Design Considerations

  40. Design Considerations Key Factors to keep in mind: • Simplicity • Consistency • User Control • Feedback • Accessibility • Aesthetics

  41. Design Considerations: Simplicity • Show the most frequently used controls directly on the interface • Hide secondary controls in menus • Automate as many processes as you can • Show only relevant data • Group related tasks • Allow users to navigate to data by selecting options • Reduce the amount of data entry users must perform • Reduce number of steps needed to complete a task

  42. Design Considerations: Consistency • Reuse existing user interface concepts and design guidelines. • Use controls, such as scroll bars, that behave similarly regardless of context. • Extend existing concepts to cover new situations. • Design a new control or concept if you cannot extend your solution.

  43. Design Considerations: User Control • Allow users to complete tasks in fewer steps. • Provide ways for users to customize your application. • Give users the opportunity to reverse or continue their actions despite non-critical errors.

  44. Design Considerations: Feedback • Users need and should receive clear and immediate feedback on their actions. Such feedback can enhance the presentation of written and graphical information. • Two types of Feedback are: • Visual Feedback achieved through: • Messages • Animation • Audio Feedback achieved through: • A piece of music or voice message. • Alert messages.

  45. Design Considerations: Accessibility • To improve accessibility, give higher priority to these factors: • Tasks that affect large numbers of users • Frequently performed tasks • Accommodate a wide variety of user needs • Make your application predictable and consistent • Screen enlargers and screen magnifiers • On-screen keyboards that use a pointing device or a switch

  46. Design Considerations: Aesthetics • Select interface elements carefully • Create a tidy appearance • Establish a design strategy and style convention before you begin development • Respect user settings and preferences • Select the fewest elements needed to communicate information

  47. Upgrading

  48. Upgrading eVB to VB.NET • No Implicit Late Binding • E.g., No Variants, No CreateObject() • Forms object model different • Windows.Forms vs. eVB 3.0 Forms • ADOCE superceded by ADO.NET • Programming models differ significantly • No ActiveX controls/components

  49. Upgrading Porting Advice • Will port: • Core business logic • Rewrite: • Data Access code (ADO -> ADO.NET) • Forms (eVB 3.0 -> Windows.Forms) • COM component access

More Related