net compact framework a mostly straight path, but with some interesting curves richard kucia kucia...

Post on 27-Mar-2015

214 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

.Net Compact Framework.Net Compact Framework

A Mostly Straight Path, but A Mostly Straight Path, but with Some Interesting Curveswith Some Interesting Curves

Richard KuciaRichard Kucia

Kucia AssociatesKucia Associates

440-892-3838440-892-3838

rjkucia@att.netrjkucia@att.net2003.09.09

AgendaAgenda

What is the .Net Compact Framework?What is the .Net Compact Framework?

Developing in a Compact WorldDeveloping in a Compact World

Inclusions and ExclusionsInclusions and Exclusions

ExamplesExamples

What is the .Net CF?What is the .Net CF?

Target: Mobile DevicesTarget: Mobile Devices

The Same Framework – but “optimized”The Same Framework – but “optimized”

Integrated into VS.Net 2003Integrated into VS.Net 2003

Formerly: “Smart Device Extensions”Formerly: “Smart Device Extensions”

.NET CF Design Goals.NET CF Design Goals

Portable and small .NET CLR for devicesPortable and small .NET CLR for devices– Enable Visual Basic® and C# Enable Visual Basic® and C#

Leverage Visual Studio® .NETLeverage Visual Studio® .NET– Run managed .EXEs and .DLLs directlyRun managed .EXEs and .DLLs directly– Debug with Visual Studio .NETDebug with Visual Studio .NET

Enable rich client Web Services and line of Enable rich client Web Services and line of business applications on devicesbusiness applications on devices– Class libs for forms, drawing, storage, net, data access, Class libs for forms, drawing, storage, net, data access,

XMLXML

Peacefully co-exist with host OSPeacefully co-exist with host OS– Run on native threads, P/Invoke to call native codeRun on native threads, P/Invoke to call native code

Target: Mobile DevicesTarget: Mobile Devices

Compaq, HP, Dell, Toshiba, …Compaq, HP, Dell, Toshiba, …

PocketPC 2000, 2002PocketPC 2000, 2002

Windows Mobile (aka PPC 2003)Windows Mobile (aka PPC 2003)– .Net CF in ROM!.Net CF in ROM!

Windows CEWindows CE

SmartPhoneSmartPhone

No Palm/HandspringNo Palm/Handspring

The Framework – “Optimized”The Framework – “Optimized”

20mb 20mb 1.5mb 1.5mb

True subset – no breaking changesTrue subset – no breaking changes

Same languages, same code, same MSILSame languages, same code, same MSIL

Multiple target CPUsMultiple target CPUs

How Rich is the Working How Rich is the Working Environment?Environment?

CLRCLR

JITJIT

Garbage CollectionGarbage Collection

Type safety; exceptionsType safety; exceptions

ThreadingThreading

Windows OS (PInvoke)Windows OS (PInvoke)

SQL Server CE including SQL Server CE including replicationreplication

ActiveSyncActiveSync

Remote ViewerRemote Viewer

Web ServicesWeb Services

Sockets/StreamsSockets/Streams

ADO.NetADO.Net

GraphicsGraphics

.NET Framework.NET Framework

SystemSystem

System.DataSystem.Data System.XmlSystem.Xml

System.WebSystem.Web

GlobalizationGlobalization

TextText

SecuritySecurity

CollectionsCollections

ResourcesResources

ReflectionReflection

NetNet

IOIO

ThreadingThreading

DiagnosticsDiagnostics

ServiceProcessServiceProcess

ConfigurationConfiguration

DesignDesign

ADO.NETADO.NET SqlClientSqlClient

Xslt/XPathXslt/XPath

XmlDocumentXmlDocument

RuntimeRuntimeInteropServicesInteropServices

RemotingRemoting

SerializationSerialization

SerializationSerialization

ConfigurationConfiguration SessionStateSessionState

CachingCaching SecuritySecurity

ServicesServicesDescriptionDescription

DiscoveryDiscovery

ProtocolsProtocols

UIUIHtmlControlsHtmlControls

WebControlsWebControls

System.DrawingSystem.Drawing

ImagingImaging

Drawing2DDrawing2D

TextText

PrintingPrinting

System.WinFormsSystem.WinForms

DesignDesign ComponentModelComponentModel

Reader/WritersReader/Writers

.NET Compact Framework.NET Compact Framework

SystemSystem

System.DataSystem.Data System.XmlSystem.Xml

System.WebSystem.Web

GlobalizationGlobalization

TextText

SecuritySecurity

CollectionsCollections

ResourcesResources

ReflectionReflection

NetNet

IOIO

ThreadingThreading

DiagnosticsDiagnostics

ServiceProcessServiceProcess

ConfigurationConfiguration

DesignDesign

ADO.NETADO.NET

SqlServerCeSqlServerCe

SqlClientSqlClient

Xslt/XPathXslt/XPath

XmlDocumentXmlDocument

RuntimeRuntimeInteropServicesInteropServices

RemotingRemoting

SerializationSerialization

SerializationSerialization

ConfigurationConfiguration SessionStateSessionState

CachingCaching SecuritySecurity

ServicesServicesDescriptionDescription

DiscoveryDiscovery

ProtocolsProtocols

UIUIHtmlControlsHtmlControls

WebControlsWebControls

System.DrawingSystem.Drawing

ImagingImaging

Drawing2DDrawing2D

TextText

PrintingPrinting

System.WinFormsSystem.WinForms

DesignDesign ComponentModelComponentModel

Reader/WritersReader/Writers

AgendaAgenda

What is the .Net Compact Framework?What is the .Net Compact Framework?

Developing in a Compact WorldDeveloping in a Compact World

Inclusions and ExclusionsInclusions and Exclusions

ExamplesExamples

Developing in a Compact WorldDeveloping in a Compact World

VS.Net 2003 installation optionVS.Net 2003 installation option

C#, VB.NetC#, VB.Net

True on-device debuggingTrue on-device debugging– If you can get it connected…If you can get it connected…

EmulatorEmulator

DeploymentDeployment

Developing in a Compact World Developing in a Compact World VS.NET IntegrationVS.NET Integration

Templates for devices in New Project dialogTemplates for devices in New Project dialog– Template sets device and project typeTemplate sets device and project type

Template typesTemplate types– Pocket PC ApplicationPocket PC Application– Pocket PC Class LibraryPocket PC Class Library– Pocket PC Control LibraryPocket PC Control Library– Windows CE .NET Application Windows CE .NET Application – Mobile Phone ApplicationMobile Phone Application

Default set of references that are appropriate Default set of references that are appropriate for your platformfor your platform

Developing in a Compact WorldDeveloping in a Compact WorldOverview of ControlsOverview of Controls

Use Windows Forms DesignerUse Windows Forms Designer

Drag-and-drop, property-basedDrag-and-drop, property-based

Rich subset of desktop controlsRich subset of desktop controls– User Interface controlsUser Interface controls

Data EntryData Entry

DisplayDisplay

– Formatting & RAD controlsFormatting & RAD controlsOrganizational controlsOrganizational controls

Helper controlsHelper controls

Data EntryData Entry

Check BoxCheck Box

Combo BoxCombo Box

Command ButtonCommand Button

Domain Up/DownDomain Up/Down

List BoxList Box

Numeric Up/DownNumeric Up/Down

Radio ButtonRadio Button

Text BoxText Box

Track BarTrack Bar

DisplayDisplay

LabelLabel

Picture BoxPicture Box

Progress BarProgress Bar

Status BarStatus Bar

HelperHelper

Context MenuContext Menu

Scroll BarsScroll Bars

Image ListImage List

Main MenuMain Menu

Open & Save File Open & Save File DialogsDialogs

TimerTimer

Tool BarTool Bar

Organizational Organizational List ViewList ViewPanelPanelTab ControlTab ControlTree ViewTree View

Developing in a Compact WorldDeveloping in a Compact WorldSubset of Desktop ControlsSubset of Desktop Controls

Controls Controls NotNot Supported SupportedChecked List BoxChecked List BoxData GridData GridDateTime PickerDateTime Picker

Group BoxGroup BoxMonth CalendarMonth Calendar

SplitterSplitter

Developing in a Compact WorldDeveloping in a Compact WorldCustomizing Emulator SettingsCustomizing Emulator Settings

Fully Functional PocketPC 2002 OS EmulatorFully Functional PocketPC 2002 OS Emulator

Options to change device configurations and connectivityOptions to change device configurations and connectivity– Resolution & Color DepthResolution & Color Depth– MemoryMemory– COM & LPT ports!COM & LPT ports!

Developing in a Compact WorldDeveloping in a Compact WorldDeploymentDeployment

Same user experience as desktopSame user experience as desktop

Compiles application for deviceCompiles application for device

Output Window used for deployment Output Window used for deployment messagesmessages

Visual Studio deploys the framework to Visual Studio deploys the framework to device if neededdevice if needed

AgendaAgenda

What is the .Net Compact Framework?What is the .Net Compact Framework?

Developing in a Compact WorldDeveloping in a Compact World

Inclusions and ExclusionsInclusions and Exclusions

ExamplesExamples

.NET Compact Framework.NET Compact FrameworkWhat’s Different?What’s Different?

Specific performance issuesSpecific performance issues– XMLXML– Form loadingForm loading– SQL Server CESQL Server CE

Emphasis on File SizeEmphasis on File Size

Emphasis on Memory FootprintEmphasis on Memory Footprint

.NET Compact Framework.NET Compact FrameworkWhat’s Different?What’s Different?

Controls unimplementedControls unimplemented

Control properties removedControl properties removed

Control properties unimplementedControl properties unimplemented

Method overloads removedMethod overloads removed

No Console or Debug objectsNo Console or Debug objects

No Serial Port supportNo Serial Port support

.NET Compact Framework.NET Compact FrameworkWhat’s Different?What’s Different?

Form-factor and GUI guideline issuesForm-factor and GUI guideline issues

No MDI applicationsNo MDI applications

No ActiveX controls in formsNo ActiveX controls in forms

Applications that don’t really closeApplications that don’t really close

Open/Save dialog for “\My Documents”Open/Save dialog for “\My Documents”

No file system (C:/?)No file system (C:/?)

.resx file format.resx file format

.NET Compact Framework.NET Compact FrameworkWhat’s Different?What’s Different?

Can’t deploy to subdirectoriesCan’t deploy to subdirectories

No Merge modulesNo Merge modules

““My Company” .cab filesMy Company” .cab files

No pre-compiling (NGen)No pre-compiling (NGen)

.NET Compact Framework.NET Compact FrameworkWhat’s Different?What’s Different?

No designer for custom controlsNo designer for custom controls

No support for Pocket AccessNo support for Pocket Access

No support for Pocket OfficeNo support for Pocket Office

Expensive licensing for SQL Server CEExpensive licensing for SQL Server CE

.NET Compact Framework.NET Compact FrameworkWhat’s Different?What’s Different?

Debugging: remarkable yet frustratingDebugging: remarkable yet frustrating

Single-in, step-thruSingle-in, step-thru

CommandCommand

WatchWatch

BreakpointBreakpoint

No Console or Debug objectsNo Console or Debug objects

No “set next instruction to execute”No “set next instruction to execute”

.NET Compact Framework.NET Compact FrameworkWhat’s Different?What’s Different?

Reflection EmitReflection Emit

Remoting Remoting

SerializationSerialization

Code DomCode Dom

PrintingPrinting

COM InteroperabilityCOM Interoperability

Server side functionalityServer side functionality

XPath/XSLTXPath/XSLT

AgendaAgenda

What is the .Net Compact Framework?What is the .Net Compact Framework?

Developing in a Compact WorldDeveloping in a Compact World

Inclusions and ExclusionsInclusions and Exclusions

ExamplesExamples

For More Information…For More Information…

MSDN Web site at MSDN Web site at – msdn.microsoft.commsdn.microsoft.com

How-To ResourcesHow-To ResourcesSimple, Step-By-Step ProceduresSimple, Step-By-Step Procedures

Embedded Development How-To ResourcesEmbedded Development How-To ResourcesGeneral How-To Resources General How-To Resources integration How-To Resources integration How-To Resources JScript .NET How-To Resources JScript .NET How-To Resources .NET Development How-To Resources .NET Development How-To Resources office Development Resources office Development Resources Security How-To Resources Security How-To Resources Visual BasicVisual Basic®® .NET How-To Resources .NET How-To Resources Visual C#Visual C#®® .NET How-To Resources .NET How-To Resources Visual StudioVisual Studio®® .NET How-To Resources .NET How-To Resources Web Development How-To Resources (ASP, IIS, XML) Web Development How-To Resources (ASP, IIS, XML) Web Services How-To Resources Web Services How-To Resources Windows Development How-To Resources Windows Development How-To Resources

http://msdn.microsoft.com/howtohttp://msdn.microsoft.com/howto

MSDN WebcastsMSDN WebcastsInteractive, Live Online EventInteractive, Live Online Event

Interactive, Synchronous, Live Online EventInteractive, Synchronous, Live Online EventDiscuss the Hottest Topics from MicrosoftDiscuss the Hottest Topics from MicrosoftOpen and Free For The General PublicOpen and Free For The General PublicTakes Place Every TuesdaysTakes Place Every Tuesdays

http://www.microsoft.com/usa/webcastshttp://www.microsoft.com/usa/webcasts

MS PressMS PressEssential Resources for DevelopersEssential Resources for Developers

Microsoft® Visual Studio® .NET is here!Microsoft® Visual Studio® .NET is here!This is your chance to start building the next big This is your chance to start building the next big

thing. Develop your .NET skills, increase your thing. Develop your .NET skills, increase your productivity with .NET Books from Microsoft Press®productivity with .NET Books from Microsoft Press®

www.microsoft.com/mspresswww.microsoft.com/mspress

TrainingTrainingTraining Resources for DevelopersTraining Resources for Developers

Course Title: Course Title: Developing Smart Device Applications with Developing Smart Device Applications with the .NET Compact Frameworkthe .NET Compact Framework– Course Number: Course Number: 25562556– Availability: 9/2002Availability: 9/2002– Detailed Syllabus: Detailed Syllabus: www.microsoft.com/www.microsoft.com/traincerttraincert

To locate a training provider for this course, please accessTo locate a training provider for this course, please access

www.microsoft.com/traincert Microsoft Certified Technical Education Centers Microsoft Certified Technical Education Centers

are Microsoft’s premier partners for training servicesare Microsoft’s premier partners for training services

SpecificationsSpecificationsTRS Series Rotary with

Planetary GearTLS Series Linear

top related