net compact framework a mostly straight path, but with some interesting curves richard kucia kucia...
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
[email protected]@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