540 likes | 742 Views
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
E N D
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 CF.NET • Evolution of PDA • PDA (Personal Digital Assistant) • Windows CE 1996 • PocketPC 2002 (Current Version) • Previous Development : • Environment: Embedded Toolkit • Languages: VB, VC++
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
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
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
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#
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
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
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
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
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
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
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
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
Common CLR Features not included • Reflection Emit • Remoting • Serialization • Printing • COM Interoperability • Server side functionality • XPath/XSLT
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
MIT(Mobile Internet Toolkit) Visual Studio .NET .NET Framework Local Code Remote Web Pages Mobile Web Browser .NET CompactFramework
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
SDE (Smart Devices Extension) Visual Studio .NET .NET Framework Local Code Remote Web Pages Mobile Web Browser .NET CompactFramework
SDE (Smart Devices Extension) XML Web Services Visual Studio .NET SOAP Smart Device Extensions Local Code .NET Compact Framework .NET CompactFramework Device OS Windows
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
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
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
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
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
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
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
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
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
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
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
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
Design Considerations Key Factors to keep in mind: • Simplicity • Consistency • User Control • Feedback • Accessibility • Aesthetics
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
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.
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.
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.
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
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
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
Upgrading Porting Advice • Will port: • Core business logic • Rewrite: • Data Access code (ADO -> ADO.NET) • Forms (eVB 3.0 -> Windows.Forms) • COM component access