Document 7547520

Download Report

Transcript Document 7547520

Beginning Compact Framework
Mohammad Faridi
(faridianslip)
Umer Faruq
June 2003
Agenda






Introduction to Compact Framework
Compact Framework
Smart Device Extensions
Data Access
Design Considerations
Upgrading
Introduction to Compact
Framework
June 2003
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#
eMbedded
Visual C 3.0
Native Code
eMbedded
Visual Basic
3.0
X
Managed
Code
eMbedded
Visual C 4.0
SDE
X
X (Not based
on .NET)
X
X
X
Pocket PC or
Pocket PC
2002
X
Smartphone
2002
X
Embedded
Devices
X
X
X
COM
Development
X
X (Cannot
create
ActiveX)
X
Driver
Development
X
X
Debug
Drivers
X
X
X
Compact Framework
June 2003
CF.NET and .NET Framework
User Experiences &
Solutions
Clients
Tools
XML Web
Services
Authentication SMS
Subscriber DB MMS
Personalization Billing
Voice Calls
Data Calls
etc…
Infrastructure Servers
A large number of devices…
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 and
code transfer
Size/functionality
Provide critical mass
needed for “real apps”
.NET Compact
Framework
CF.NET Design Goals

Portable and small .NET CLR for devices
–

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
–

Enable Visual Basic® and C#
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
.NET Framework Components
System.Web
System.WinForms
Services
Description
Discovery
Protocols
UI
HtmlControls
WebControls
Caching
Configuration
Security
SessionState
Design
System.Drawing
Drawing2D
Imaging
System.Data
ADO.NET
Design
ComponentModel
SqlClient
Printing
Text
System.Xml
XmlDocument
Xslt/XPath
Serialization
Reader/Writers
System
Collections
Security
Text
Globalization
IO
Net
Reflection
Resources
Configuration
ServiceProcess
Diagnostics
Threading
Runtime
InteropServices
Remoting
Serialization
CF.NET Framework Components
System.Web
System.WinForms
Services
Description
Discovery
Protocols
UI
HtmlControls
WebControls
Caching
Configuration
Security
SessionState
Design
System.Drawing
Drawing2D
Imaging
System.Data
ADO.NET
Design
ComponentModel
Printing
Text
System.Xml
SqlClient
SqlServerCe
XmlDocument
Xslt/XPath
Serialization
Reader/Writers
System
Collections
Security
Text
Globalization
IO
Net
Reflection
Resources
Configuration
ServiceProcess
Diagnostics
Threading
Runtime
InteropServices
Remoting
Serialization
Common CLR Features

Compact Framework supports all the core CLR features
–
–
Exceptions
Constructors and Finalizers

–
–
Remote Debugging
App Domains

–
IDisposable
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 Devices Extension
June 2003
Smart Device Extensions and MIT
Development Platform Overview
Visual Studio .NET
.NET Framework
Server-side
Web Apps
Remote Web Pages
Mobile Web
Browser
Local Code
.NET Compact
Framework
Client-side
Rich Apps
MIT
(Mobile Internet Toolkit)
Visual Studio .NET
.NET Framework
Remote Web Pages
Mobile Web
Browser
Local Code
.NET Compact
Framework
MIT
(Mobile Internet Toolkit)
XML Web Services
Visual Studio .NET
SOAP
VB
C++
C#
Web Services
Perl Python
…
User Interface
Mobile Web Pages
ASP.NET, Mobile Internet Toolkit
Data and XML
Base Framework
Common Language Runtime (CLR)
Windows
Mobile Web
Browser
Device OS
SDE
(Smart Devices Extension)
Visual Studio .NET
.NET Framework
Remote Web Pages
Mobile Web
Browser
Local Code
.NET Compact
Framework
SDE
(Smart Devices Extension)
XML Web Services
Visual Studio .NET
Smart Device Extensions
SOAP
Local Code
.NET Compact Framework
.NET Compact
Framework
Windows
Device OS
SDE versus MIT

MIT
–

Advantage



–
SDE
–
Support a broad range of
devices
Browser access
MIT handles the device
differences
Advantage



Disadvantage



Doesn’t work offline
No local processing power
Limited user interface

–
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: Intro to the CF environment



Use Windows Forms Designer
Drag-and-drop, propertybased
Rich subset of desktop
controls
–
User Interface controls


–
Data Entry
Display
Formatting & RAD controls


Organizational controls
Helper controls
SDE Controls:
Data Entry
 Check Box
 Combo Box
 Command Button
 Domain Up/Down
 List Box
 Numeric Up/Down
 Radio Button
 Text Box
 Track Bar
Controls Not Supported
 Checked List Box
 DateTime Picker
A Subset of Desktop Controls
Display
 Label
 Picture Box
 Progress Bar
 Status Bar
Organizational
 List View
 Panel
 Tab Control


Group Box
Month Calendar
Helper
 Context Menu
 Scroll Bars
 Image List
 Main Menu
 Open & Save File
Dialogs
 Timer
 Tool Bar

Splitter
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)
–

Running RAM needs
–

~1.5 MB
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
June 2003
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
DataSet
Disconnected cache object
DataAdapter
Serializes to and from DataSet
DataReader
Forward-only reader with
typing
DataParameter
Command
Transaction
Connection
Used for parameterized
commands
Configures commands sent to
source
Configures transactions on
connection
Opens ‘pipeline’ to data source
Data Access: Direct DB Access
Windows
Forms
ADO.NET
ADO.NET
SQL Server
Data Provider
.NET Compact
Framework
Windows
Server
Cons
Pros
–
–
Rich query into a large data
source
Access to entire data
source; device queries for
and uses what’s relevant
–
–
–
Must be constantly
connected
Not scalable on server;
classic “two tier” design
No synchronization model
for typical dynamic data
Data Access: SQLCE
Windows
Forms
ADO.NET
SQL CE
.NET Compact
Framework
Replication
(HTTP)
Pros
–
–
–
–
SQL Server
SQL CE
Very robust local store
Complex SQL querying
Advanced/performant
synchronization
Utilizes HTTP
Windows
Server
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
June 2003
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
June 2003
Upgrading eVB to VB.NET

No Implicit Late Binding
–

Forms object model different
–

Windows.Forms vs. eVB 3.0 Forms
ADOCE superceded by ADO.NET
–

E.g., No Variants, No CreateObject()
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
Upgrading


New applications? VS.NET
Existing applications?
–
–
In maintenance mode? Keep as eVB 3.0
Adding significant features? VB.NET
Agenda






Introduction to Compact Framework
Compact Framework
Smart Device Extensions
Data Access
Design Considerations
Upgrading
Demos
June 2003
Questions?
June 2003