Herzlich willkommen!Herzlich willkommen!
Visual Studio, Visual Studio, Windows Embedded & Co.Windows Embedded & Co.
Alexander Wechsler Alexander Wechsler (mailto:[email protected])(mailto:[email protected])Frank Prengel Frank Prengel (http://blogs.msdn.com/frankpr)(http://blogs.msdn.com/frankpr)
Visual Studio 2005 & Co.Visual Studio 2005 & Co.App Development forApp Development forWindows CE DevicesWindows CE Devices
Frank PrengelFrank PrengelEmbedded Developer EvangelistEmbedded Developer EvangelistMicrosoft GermanyMicrosoft Germanyhttp://blogs.msdn.com/frankprhttp://blogs.msdn.com/frankpr
What is Windows CE?What is Windows CE?Microsoft’s Embedded Operating SystemMicrosoft’s Embedded Operating System
… … designed for “small” devicesdesigned for “small” devices
Virtual Memory, MultithreadedVirtual Memory, Multithreaded
Completely 32 bitCompletely 32 bit
Real-time performanceReal-time performance
Uses a subset of the Win32 APIUses a subset of the Win32 APIWin32 defined by Windows XPWin32 defined by Windows XP
Legacy APIs removedLegacy APIs removed
Less of a subset every versionLess of a subset every version
Over 2,000 functionsOver 2,000 functions
What is Windows CE?What is Windows CE?
Componentizable Componentizable OEMs define what parts of the OS to useOEMs define what parts of the OS to useOver 500 components availableOver 500 components available
Multiple CPU architectures supportedMultiple CPU architectures supportedSH4, MIPs, x86, ARMSH4, MIPs, x86, ARMOS is CPU agnosticOS is CPU agnosticNot dependent on x86 compatible PCsNot dependent on x86 compatible PCs
Not dependent on PC memory mapNot dependent on PC memory mapNot dependent on specific PC hardwareNot dependent on specific PC hardware
OEM HardwareOEM Hardware
Embedded ShellEmbedded Shell
ApplicationsApplicationsApplicationsApplications
WIN32 APIsCOREDLL, WINSOCK, OLE, COMMCTRL, COMMDLG, WININET, TAPI
WIN32 APIsCOREDLL, WINSOCK, OLE, COMMCTRL, COMMDLG, WININET, TAPI
Windows CE Shell ServicesWindows CE Shell Services
Remote ConnectivityRemote Connectivity
KernelLibraryKernelLibrary
IrDAIrDA
GWESGWES Device ManagerDevice
Manager
File System
Manager
File System
Manager TCP/IPTCP/IP
OALBootloader
OALBootloader DriversDrivers Device
driversDevice drivers File driversFile drivers
MicrosoftMicrosoftMicrosoftMicrosoft OEMOEMOEMOEM ISV, OEMISV, OEMISV, OEMISV, OEM
Windows CE ArchitectureWindows CE Architecture
Windows CE Shared Source ProgramWindows CE Shared Source Program
Shared Source PublicShared Source PublicAccess to over 2.5 M lines of source codeAccess to over 2.5 M lines of source code
Ability to create commercial derivatives Ability to create commercial derivatives
Available in all versions of Windows CE Available in all versions of Windows CE worldwideworldwide
Academic edition for courseware creationAcademic edition for courseware creation
Shared Source PremiumShared Source PremiumMore source availableMore source available
Ability to create commercial derivativesAbility to create commercial derivatives
Limited accessLimited access
Available only in eligible countries Available only in eligible countries
CORECORE PROPRO PRO PLUSPRO PLUS
AVI FilterAVI FilterActiveSync (Inbox Sync and Pocket Outlook Database ActiveSync (Inbox Sync and Pocket Outlook Database Sync) Sync) Microsoft Excel ViewerMicrosoft Excel Viewer
Bluetooth GatewayBluetooth Gateway AV Renderer SampleAV Renderer Sample Microsoft Image ViewerMicrosoft Image Viewer
Digital Rights Management (DRM)Digital Rights Management (DRM) AYGShell API SetAYGShell API Set Microsoft PDF ViewerMicrosoft PDF Viewer
DRM license acquisition OCX DRM license acquisition OCX Bluetooth LAP and Configuration UtilityBluetooth LAP and Configuration Utility Microsoft PowerPoint ViewerMicrosoft PowerPoint Viewer
Embedded Database (EDB)Embedded Database (EDB) File Server (10 connection limit)File Server (10 connection limit) Microsoft Word Viewer Microsoft Word Viewer
File Server (2 connection limit) File Server (2 connection limit) Help Help * Includes all components plus viewers above * Includes all components plus viewers above
JscriptJscript Internet Explorer (full browser and Pocket IE) Internet Explorer (full browser and Pocket IE)
VBScriptVBScript Inbox Inbox
Windows Error Reporting Windows Error Reporting Pocket Outlook Object Model API Pocket Outlook Object Model API
*All existing Core components *All existing Core components RAS/PPTP ServerRAS/PPTP Server
Remote Desktop Protocol (RDP) Remote Desktop Protocol (RDP)
Standard SDK for Windows CE (AYG) Standard SDK for Windows CE (AYG)
Streaming Media PlaybackStreaming Media Playback
Transcriber Handwriting Recognition Engine and Transcriber Handwriting Recognition Engine and ApplicationApplication
Windows Messenger Windows Messenger
Windows Media Player (WMP) applicationWindows Media Player (WMP) application
Windows Thin Client ShellWindows Thin Client Shell
WMA,WMV, and MP3 Streaming (via WMP)WMA,WMV, and MP3 Streaming (via WMP)
WordPad WordPad
Licencing Windows CE 5.0Licencing Windows CE 5.0
Platform Builder
Configuration
Build
Download
Device UnderDevelopment
Device Emulation
Debug
BSP(OAL, Boot Loader, Drivers)
Export SDK
Embedded Visual C++
Visual Studio 2005
Standard SDK
Developing a CE 5.0 DeviceDeveloping a CE 5.0 Device
Development Tools for CEDevelopment Tools for CE
Visual Studio 2005
C# / VB.NET
.NET CompactFramework 2.0
C/C++
Win32
Windows CE 5.0 Operating System
PlatformBuilder
Native Applications Managed Applications
eMbedded Visual C++
Platform BuilderPlatform Builder
Builds the OS from source code + binary librariesBuilds the OS from source code + binary libraries
Can Build C/C++ applicationsCan Build C/C++ applicationsReduced IDE Code editor supportReduced IDE Code editor support
Kernel debuggerKernel debugger
Remote ToolsRemote Tools
EmulatorEmulator
eMbedded Visual C/C++ 4.0eMbedded Visual C/C++ 4.0Similar to Microsoft Visual C++ V6.0Similar to Microsoft Visual C++ V6.0
Source code branch from VS6Source code branch from VS6
Special features specific to Windows CESpecial features specific to Windows CEBuilt in compilers and linkers for supported processorsBuilt in compilers and linkers for supported processors
Debug tools, remote tools, and platform managerDebug tools, remote tools, and platform manager
Emulation environment to develop without deviceEmulation environment to develop without device
Support for CE 5.0 w/ SP4 & SDKSupport for CE 5.0 w/ SP4 & SDK
eVC++ Support Life CycleeVC++ Support Life Cycle
First released: 4/4/2002First released: 4/4/2002
Mainstream support ends: 6/30/2007Mainstream support ends: 6/30/2007
Public download ends: June 2007Public download ends: June 2007
Extended support ends: 6/30/2009Extended support ends: 6/30/2009
Online support ends: 6/30/2013Online support ends: 6/30/2013
Visual Studio 2005Visual Studio 2005“Personalized productivity”
Novices
Enthusiasts
Students
Hobbyists
Part-Timers
Professionals
Consultants
Enterprise Devs
Architects
Testers
VB6 Devs
Visual Studio 2005Visual Studio 2005New FeaturesNew Features
Parity with desktop developmentParity with desktop developmentSupport for Multiple Platforms Support for Multiple Platforms
Windows Mobile 2003 SE; Windows Mobile 5.0 and Windows Mobile 2003 SE; Windows Mobile 5.0 and Windows CE 5.0Windows CE 5.0Platform SwitchingPlatform Switching
Support Compact Framework v1.0 and v2.0Support Compact Framework v1.0 and v2.0Upgrade from v1.0 to v2.0Upgrade from v1.0 to v2.0New Managed Device Controls in v2.0New Managed Device Controls in v2.0
Enhanced WYSIWYG Forms Designers Enhanced WYSIWYG Forms Designers Skins, Orientations, RotationsSkins, Orientations, Rotations
New Managed Libraries in Windows Mobile 5.0New Managed Libraries in Windows Mobile 5.0Microsoft Device Emulator Microsoft Device Emulator Device Emulator ManagerDevice Emulator Manager
More EnhancementsMore Enhancements
Device Development in C/C++Device Development in C/C++Migrate projects from eMbedded Migrate projects from eMbedded Visual C++ 4.0Visual C++ 4.0
Updated Device Compilers and Native Libraries Updated Device Compilers and Native Libraries
Orders of magnitude faster native debuggerOrders of magnitude faster native debugger
Microsoft SQL Server 2005 Mobile EditionMicrosoft SQL Server 2005 Mobile Edition
Remote Tools for DevicesRemote Tools for Devices
Code Snippets Code Snippets
Support for Device CAB (Setup) ProjectsSupport for Device CAB (Setup) Projects
WinCE vs Windows MobileWinCE vs Windows Mobile
WinCE 3.0 WinCE 3.0 PPC 2000, PPC 2002, SP PPC 2000, PPC 2002, SP 20022002
WinCE 4.2 WinCE 4.2 WM 2003, WM 2003 SE WM 2003, WM 2003 SE
WinCE 5.0 WinCE 5.0 WM 5.0 WM 5.0
Runtime support CE - CFRuntime support CE - CFCF 2.0CF 2.0 CF 1.0CF 1.0
WinCE 5.0WinCE 5.0 + (RTM)+ (RTM) ++
WinCE 4.1, 4.2WinCE 4.1, 4.2 o (SP1)o (SP1) ++
PPC 2000, 2002PPC 2000, 2002 -- + (RAM)+ (RAM)
SP 2002SP 2002 -- --
PPC 2003, SEPPC 2003, SE + (RAM)+ (RAM) + (ROM)+ (ROM)
SP 2003, SESP 2003, SE -- + (ROM)+ (ROM)
WM 5.0WM 5.0 + (RAM)+ (RAM) + (ROM)+ (ROM)
Tool support CE - CFTool support CE - CF
CF 2.0CF 2.0 CF 1.0CF 1.0
WinCE 5.0WinCE 5.0 VS2005VS2005 --WinCE 4.1, 4.2WinCE 4.1, 4.2 -- VS2003VS2003PPC 2000, 2002PPC 2000, 2002 -- VS2003VS2003SP 2002SP 2002 -- --WM 2003, SEWM 2003, SE VS2005VS2005 VS2005, VS2005,
2003+SDK2003+SDKWM 5.0WM 5.0 VS2005+SDKVS2005+SDK VS2005+SDKVS2005+SDK
.NET Compact Framework.NET Compact Framework
VisualVisualStudioStudio
Windows CEWindows CE
Low level operating system-specific Low level operating system-specific functionalityfunctionality
ThreadsThreads MemoryMemory File I/OFile I/O
NetworkingNetworking LocalizationLocalization
CLRCLR
Type systemType system LoaderLoader JIT CompilerJIT Compiler
Execution Engine provides typesafe Execution Engine provides typesafe runtime for managed coderuntime for managed code
Garbage collectorGarbage collector DebuggerDebugger
FXFX
Rich class libraries to make your life Rich class libraries to make your life easy!easy!
GUI: Forms GUI: Forms GUI: Drawing (2D & 3D)GUI: Drawing (2D & 3D) CollectionsCollections IO, Networking, CryptoIO, Networking, Crypto
Native interopNative interop Web servicesWeb services Data & XmlData & Xml GlobalizationGlobalization
CF – Perf. comparisonCF – Perf. comparison
Pocket PC 2003, XScale 400MHzPocket PC 2003, XScale 400MHz V1V1 V1 SP2V1 SP2V2V2
Beta1Beta1
V2V2
Beta2+Beta2+
Method Calls (Calls/sec) 3.7M 7.1M 8.1M
Virtual Calls (Calls/sec) 2.4M 2.7M 5.6M
Simple P/Invoke (Calls/sec) 733K 1.7M
Primes (to 1500) (iterations/sec) 562 832 853
GC Small (8 bytes) (Bytes/sec) 1M 7M 7.5M
GC Array (100 int’s) (Bytes/sec) 25M 43M 112M
XML Text Reader 200KB (seconds)
1.7 1.2 0.72 0.69
DataSet (static data)4 tables, 1000 records (seconds)
13.1 6.6 7.3 3.3
DataSet (ReadXml)3 tables, 100 records (seconds)
12.3 6.5 5.2 4.4
Larger = Better
Smaller =Better
DebuggingDebuggingAttach to ProcessAttach to Process
Just-in-time (JIT)Just-in-time (JIT)
Post-mortem (kdump)Post-mortem (kdump)
Code SigningCode SigningAdding test certificatesAdding test certificates
Signing and provisioningSigning and provisioning
Resource EditorResource EditorActiveX control developmentActiveX control development
Softkey menusSoftkey menus
Native Development - FactsNative Development - Facts
Feature setFeature setBreakpoints, stepping, break allBreakpoints, stepping, break allAutos, locals, registersAutos, locals, registersMemory window, disassembly (native only)Memory window, disassembly (native only)Threads, call stack, modulesThreads, call stack, modulesAttach, detach, JIT (native only)Attach, detach, JIT (native only)
UnsupportedUnsupportedInteroperability debuggingInteroperability debuggingDriver developmentDriver developmentData breakpointsData breakpointsEdit and continueEdit and continue
DebuggerDebugger
EmulatorEmulatorActiveSyncActiveSync
Folder sharingFolder sharing
Save StateSave State
Multi-platform developmentMulti-platform development
High Resolution and Orientation High Resolution and Orientation awarenessawareness
Command line buildingCommand line building
Property SheetsProperty Sheets
Native Development - FactsNative Development - Facts
Feature ComparisonFeature Comparison
Instruction set is a Instruction set is a subset of the host PC’s subset of the host PC’s instruction setinstruction setEmulates a CEPC board: Emulates a CEPC board: ISA, PCI busses, basic ISA, PCI busses, basic video, keyboard, mouse, video, keyboard, mouse, audio, network adapter, audio, network adapter, etc.etc.Extends the CEPC, Extends the CEPC, adding Folder Sharing, adding Folder Sharing, “DMA” interface, and “DMA” interface, and resizable displayresizable display
ARM920TDMI instructions ARM920TDMI instructions
Samsung SMDK2410 board: Samsung SMDK2410 board: PCMCIA, NAND Flash, LCD, PCMCIA, NAND Flash, LCD, touchscreen, NE2000 and touchscreen, NE2000 and CS8900 netcards, keyboard, CS8900 netcards, keyboard, 3 UARTs, audio3 UARTs, audio
Extends the SMDK2410, Extends the SMDK2410, adding resizable display, adding resizable display, “DMA” interface, resizable “DMA” interface, resizable RAM (up to 256meg)RAM (up to 256meg)
Faster, more robust Folder Faster, more robust Folder SharingSharing
Runs on 64-bit WindowsRuns on 64-bit Windows
Device EmulatorDevice Emulatorx86 Emulatorx86 Emulator
Mixed ProjectsMixed Projects
Possible to mix & match native & Possible to mix & match native & managed projects in one solutionmanaged projects in one solution
Be sure to target the same platform...Be sure to target the same platform...
Build order, dependencies, deployment Build order, dependencies, deployment dirs, etc., can be specifieddirs, etc., can be specified
No seamless debugging at this pointNo seamless debugging at this pointCan't attach native & managed debugger Can't attach native & managed debugger at the same timeat the same time
Set reg key to enable attaching the Set reg key to enable attaching the managed debugger to a running processmanaged debugger to a running process
REGEDIT4
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETCompactFramework\Managed Debugger]
"AttachEnabled"=dword:00000001
Small, high-performance databaseSmall, high-performance database
Provides replication, sync, Provides replication, sync, transactions, encryptiontransactions, encryption
SqlCeResultSetSqlCeResultSet: scrollable updateable : scrollable updateable cursorcursor
SQL 2005 management SQL 2005 management toolstools
VS2005 integrationVS2005 integration
Supported by CF 2.0 &Supported by CF 2.0 &Windows CE 5.0 Windows CE 5.0
SQL Server 2005 Mobile EditionSQL Server 2005 Mobile Edition
What's next?What's next?
CF 2.0 support for WinCE 4.2CF 2.0 support for WinCE 4.2no tools support, though...no tools support, though...
WinCE 5.0 device emulator image & WinCE 5.0 device emulator image & BSP for PB 5.0BSP for PB 5.0
Device emulator v2+Device emulator v2+
Better integration b/w PB & VSBetter integration b/w PB & VS
Emulator v2+Emulator v2+
Break apart the monolith DeviceEmulator.exe into a Break apart the monolith DeviceEmulator.exe into a collection of DLLscollection of DLLs
Pluggable CPU emulatorsPluggable CPU emulatorsPluggable motherboard emulatorsPluggable motherboard emulatorsPluggable peripheral devicesPluggable peripheral devices
Layer the peripheral device emulation codeLayer the peripheral device emulation codeOne virtual device can have multiple Windows-side One virtual device can have multiple Windows-side implementations i.e., emulated 16550 UART could plug implementations i.e., emulated 16550 UART could plug into code that binds to a Windows COMx: port, or to a into code that binds to a Windows COMx: port, or to a Windows file, or to a console windowWindows file, or to a console windowVirtual USB and PCMCIA devices plug into virtual Virtual USB and PCMCIA devices plug into virtual controllerscontrollers
Testability – COM interfaces to give test automation Testability – COM interfaces to give test automation access the emulator’s peripheralsaccess the emulator’s peripherals
20052005 2005/20062005/2006
Windows Embedded RoadmapWindows Embedded Roadmap
2006+2006+
Feature PackFeature Pack v. Nextv. Next
Feature Pack 1Feature Pack 1SP2SP2
Windows CE Shared Source ProgramWindows CE Shared Source Program
Shared Source PublicShared Source PublicAccess to over 2.5 M lines of source codeAccess to over 2.5 M lines of source code
Ability to create commercial derivatives Ability to create commercial derivatives
Available in all versions of Windows CE Available in all versions of Windows CE worldwideworldwide
Academic edition for courseware creationAcademic edition for courseware creation
Shared Source PremiumShared Source PremiumMore source availableMore source available
Ability to create commercial derivativesAbility to create commercial derivatives
Limited accessLimited access
Available only in eligible countries Available only in eligible countries
CORECORE PROPRO PRO PLUSPRO PLUS
AVI FilterAVI FilterActiveSync (Inbox Sync and Pocket Outlook Database ActiveSync (Inbox Sync and Pocket Outlook Database Sync) Sync) Microsoft Excel ViewerMicrosoft Excel Viewer
Bluetooth GatewayBluetooth Gateway AV Renderer SampleAV Renderer Sample Microsoft Image ViewerMicrosoft Image Viewer
Digital Rights Management (DRM)Digital Rights Management (DRM) AYGShell API SetAYGShell API Set Microsoft PDF ViewerMicrosoft PDF Viewer
DRM license acquisition OCX DRM license acquisition OCX Bluetooth LAP and Configuration UtilityBluetooth LAP and Configuration Utility Microsoft PowerPoint ViewerMicrosoft PowerPoint Viewer
Embedded Database (EDB)Embedded Database (EDB) File Server (10 connection limit)File Server (10 connection limit) Microsoft Word Viewer Microsoft Word Viewer
File Server (2 connection limit) File Server (2 connection limit) Help Help * Includes all components plus viewers above * Includes all components plus viewers above
JscriptJscript Internet Explorer (full browser and Pocket IE) Internet Explorer (full browser and Pocket IE)
VBScriptVBScript Inbox Inbox
Windows Error Reporting Windows Error Reporting Pocket Outlook Object Model API Pocket Outlook Object Model API
*All existing Core components *All existing Core components RAS/PPTP ServerRAS/PPTP Server
Remote Desktop Protocol (RDP) Remote Desktop Protocol (RDP)
Standard SDK for Windows CE (AYG) Standard SDK for Windows CE (AYG)
Streaming Media PlaybackStreaming Media Playback
Transcriber Handwriting Recognition Engine and Transcriber Handwriting Recognition Engine and ApplicationApplication
Windows Messenger Windows Messenger
Windows Media Player (WMP) applicationWindows Media Player (WMP) application
Windows Thin Client ShellWindows Thin Client Shell
WMA,WMV, and MP3 Streaming (via WMP)WMA,WMV, and MP3 Streaming (via WMP)
WordPad WordPad
Licencing Windows CE 5.0Licencing Windows CE 5.0
ResourcesResources
Windows CE documentationWindows CE documentationhttp://msdn.microsoft.com/library/en-us/wceintro5/html/http://msdn.microsoft.com/library/en-us/wceintro5/html/wce50oriWelcomeToWindowsCE.aspwce50oriWelcomeToWindowsCE.asp
Windows Embedded Partner Web SiteWindows Embedded Partner Web Sitehttp://www.mswep.comhttp://www.mswep.com
Get the Windows Embedded Introductory KitGet the Windows Embedded Introductory Kit http://www.windowsembeddedkit.comhttp://www.windowsembeddedkit.com
Embedded developmentEmbedded developmenthttp://msdn.microsoft.com/embeddedhttp://msdn.microsoft.com/embedded
Windows CE developmentWindows CE developmenthttp://msdn.microsoft.com/embedded/windowsce/default.aspxhttp://msdn.microsoft.com/embedded/windowsce/default.aspx
More InformationMore Information
http://msdn.microsoft.com/vstudiohttp://msdn.microsoft.com/vstudio
© 2005 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.