Herzlich willkommen! Visual Studio, Windows Embedded & Co. Alexander Wechsler

Herzlich willkommen!
Visual Studio,
Windows Embedded & Co.
Alexander Wechsler
(mailto:[email protected])
Frank Prengel
(http://blogs.msdn.com/frankpr)
Visual Studio 2005 & Co.
App Development for
Windows CE Devices
Frank Prengel
Embedded Developer Evangelist
Microsoft Germany
http://blogs.msdn.com/frankpr
What is Windows CE?
Microsoft’s Embedded Operating System
… designed for “small” devices
Virtual Memory, Multithreaded
Completely 32 bit
Real-time performance
Uses a subset of the Win32 API
Win32 defined by Windows XP
Legacy APIs removed
Less of a subset every version
Over 2,000 functions
What is Windows CE?
Componentizable
OEMs define what parts of the OS to use
Over 500 components available
Multiple CPU architectures supported
SH4, MIPs, x86, ARM
OS is CPU agnostic
Not dependent on x86 compatible PCs
Not dependent on PC memory map
Not dependent on specific PC hardware
Windows CE Architecture
OEM
Microsoft
ISV, OEM
Applications
Embedded Shell
Remote
Connectivity
Windows CE Shell Services
WIN32 APIs
COREDLL, WINSOCK, OLE, COMMCTRL, COMMDLG, WININET, TAPI
Kernel
Library
OAL
Bootloader
GWES
Drivers
File
System
Manager
Device
Manager
Device
drivers
File drivers
OEM Hardware
IrDA
TCP/IP
Windows CE Shared Source Program
Shared Source Public
Access to over 2.5 M lines of source code
Ability to create commercial derivatives
Available in all versions of Windows CE
worldwide
Academic edition for courseware creation
Shared Source Premium
More source available
Ability to create commercial derivatives
Limited access
Available only in eligible countries
Licencing Windows CE 5.0
CORE
PRO
PRO PLUS
AVI Filter
ActiveSync (Inbox Sync and Pocket Outlook Database
Sync)
Microsoft Excel Viewer
Bluetooth Gateway
AV Renderer Sample
Microsoft Image Viewer
Digital Rights Management (DRM)
AYGShell API Set
Microsoft PDF Viewer
DRM license acquisition OCX
Bluetooth LAP and Configuration Utility
Microsoft PowerPoint Viewer
Embedded Database (EDB)
File Server (10 connection limit)
Microsoft Word Viewer
File Server (2 connection limit)
Help
Jscript
Internet Explorer (full browser and Pocket IE)
VBScript
Inbox
Windows Error Reporting
Pocket Outlook Object Model API
*All existing Core components
RAS/PPTP Server
Remote Desktop Protocol (RDP)
Standard SDK for Windows CE (AYG)
Streaming Media Playback
Transcriber Handwriting Recognition Engine and
Application
Windows Messenger
Windows Media Player (WMP) application
Windows Thin Client Shell
WMA,WMV, and MP3 Streaming (via WMP)
WordPad
* Includes all components plus viewers above
Developing a CE 5.0 Device
BSP
(OAL, Boot Loader, Drivers)
Standard SDK
Platform Builder
Export SDK
Embedded Visual
C++
Visual Studio 2005
Configuration
Build
Device Under
Development
Download
Debug
Device
Emulation
Development Tools for CE
Platform
Builder
eMbedded
Visual C++
Native Applications
Visual Studio
2005
Managed Applications
C/C++
C# / VB.NET
Win32
.NET Compact
Framework 2.0
Windows CE 5.0 Operating System
Platform Builder
Builds the OS from source code + binary
libraries
Can Build C/C++ applications
Reduced IDE Code editor support
Kernel debugger
Remote Tools
Emulator
eMbedded Visual C/C++ 4.0
Similar to Microsoft Visual C++ V6.0
Source code branch from VS6
Special features specific to Windows CE
Built in compilers and linkers for supported
processors
Debug tools, remote tools, and platform
manager
Emulation environment to develop without
device
Support for CE 5.0 w/ SP4 & SDK
eVC++ Support Life Cycle
First released: 4/4/2002
Mainstream support ends: 6/30/2007
Public download ends: June 2007
Extended support ends: 6/30/2009
Online support ends: 6/30/2013
Visual Studio 2005
“Personalized productivity”
Testers
Architects
Enterprise Devs
Consultants
Professionals
VB6 Devs
Part-Timers
Hobbyists
Students
Enthusiasts
Novices
Visual Studio 2005
New Features
Parity with desktop development
Support for Multiple Platforms
Windows Mobile 2003 SE; Windows Mobile 5.0 and
Windows CE 5.0
Platform Switching
Support Compact Framework v1.0 and v2.0
Upgrade from v1.0 to v2.0
New Managed Device Controls in v2.0
Enhanced WYSIWYG Forms Designers
Skins, Orientations, Rotations
New Managed Libraries in Windows Mobile 5.0
Microsoft Device Emulator
Device Emulator Manager
More Enhancements
Device Development in C/C++
Migrate projects from eMbedded
Visual C++ 4.0
Updated Device Compilers and Native Libraries
Orders of magnitude faster native debugger
Microsoft SQL Server 2005 Mobile Edition
Remote Tools for Devices
Code Snippets
Support for Device CAB (Setup) Projects
WinCE vs Windows Mobile
WinCE 3.0  PPC 2000, PPC 2002, SP
2002
WinCE 4.2  WM 2003, WM 2003 SE
WinCE 5.0  WM 5.0
Runtime support CE - CF
CF 2.0
CF 1.0
WinCE 5.0
+ (RTM)
+
WinCE 4.1, 4.2
o (SP1)
+
PPC 2000, 2002
-
+ (RAM)
SP 2002
-
-
PPC 2003, SE
+ (RAM)
+ (ROM)
SP 2003, SE
-
+ (ROM)
WM 5.0
+ (RAM)
+ (ROM)
Tool support CE - CF
WinCE 5.0
WinCE 4.1, 4.2
PPC 2000, 2002
SP 2002
WM 2003, SE
WM 5.0
CF 2.0
VS2005
VS2005
CF 1.0
VS2003
VS2003
VS2005,
2003+SDK
VS2005+SDK VS2005+SDK
.NET Compact Framework
Visual
Studio
Rich class libraries to make your life
easy!
FX
GUI: Forms
GUI: Drawing (2D & 3D)
Collections
IO, Networking, Crypto
Native interop
Web services
Data & Xml
Globalization
Execution Engine provides typesafe
runtime for managed code
CLR
Type system
Loader
JIT Compiler
Garbage collector
Debugger
Low level operating system-specific
functionality
Windows CE
Threads
Memory
File I/O
Networking
Localization
CF – Perf. comparison
Pocket PC 2003, XScale 400MHz
Larger =
Better
V1 SP2
V2
Beta1
V2
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)
Smaller =
Better
V1
DataSet (static data)
4 tables, 1000 records (seconds)
DataSet (ReadXml)
3 tables, 100 records (seconds)
1.7
1.2
0.72
0.69
13.1
6.6
7.3
3.3
12.3
6.5
5.2
4.4
Native Development - Facts
Debugging
Attach to Process
Just-in-time (JIT)
Post-mortem (kdump)
Code Signing
Adding test certificates
Signing and provisioning
Resource Editor
ActiveX control development
Softkey menus
Debugger
Feature set
Breakpoints, stepping, break all
Autos, locals, registers
Memory window, disassembly (native only)
Threads, call stack, modules
Attach, detach, JIT (native only)
Unsupported
Interoperability debugging
Driver development
Data breakpoints
Edit and continue
Native Development - Facts
Emulator
ActiveSync
Folder sharing
Save State
Multi-platform development
High Resolution and Orientation
awareness
Command line building
Property Sheets
Feature Comparison
x86 Emulator
Device Emulator
Instruction set is a
subset of the host PC’s
instruction set
Emulates a CEPC board:
ISA, PCI busses, basic
video, keyboard, mouse,
audio, network adapter,
etc.
Extends the CEPC,
adding Folder Sharing,
“DMA” interface, and
resizable display
ARM920TDMI instructions
Samsung SMDK2410 board:
PCMCIA, NAND Flash, LCD,
touchscreen, NE2000 and
CS8900 netcards, keyboard,
3 UARTs, audio
Extends the SMDK2410,
adding resizable display,
“DMA” interface, resizable
RAM (up to 256meg)
Faster, more robust Folder
Sharing
Runs on 64-bit Windows
Mixed Projects
Possible to mix & match native &
managed projects in one solution
Be sure to target the same platform...
Build order, dependencies, deployment
dirs, etc., can be specified
No seamless debugging at this point
Can't attach native & managed debugger
at the same time
Set reg key to enable attaching the
managed debugger to a running process
REGEDIT4
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\
.NETCompactFramework\Managed Debugger]
"AttachEnabled"=dword:00000001
SQL Server 2005 Mobile Edition
Small, high-performance database
Provides replication, sync,
transactions, encryption
SqlCeResultSet: scrollable updateable
cursor
SQL 2005 management
tools
VS2005 integration
Supported by CF 2.0 &
Windows CE 5.0
What's next?
CF 2.0 support for WinCE 4.2
no tools support, though...
WinCE 5.0 device emulator image &
BSP for PB 5.0
Device emulator v2+
Better integration b/w PB & VS
Emulator v2+
Break apart the monolith DeviceEmulator.exe into a
collection of DLLs
Pluggable CPU emulators
Pluggable motherboard emulators
Pluggable peripheral devices
Layer the peripheral device emulation code
One virtual device can have multiple Windows-side
implementations i.e., emulated 16550 UART could plug
into code that binds to a Windows COMx: port, or to a
Windows file, or to a console window
Virtual USB and PCMCIA devices plug into virtual
controllers
Testability – COM interfaces to give test automation
access the emulator’s peripherals
Windows Embedded Roadmap
2005/2006
2005
SP2
2006+
Feature Pack 1
Feature Pack
v. Next
Windows CE Shared Source Program
Shared Source Public
Access to over 2.5 M lines of source code
Ability to create commercial derivatives
Available in all versions of Windows CE
worldwide
Academic edition for courseware creation
Shared Source Premium
More source available
Ability to create commercial derivatives
Limited access
Available only in eligible countries
Licencing Windows CE 5.0
CORE
PRO
PRO PLUS
AVI Filter
ActiveSync (Inbox Sync and Pocket Outlook Database
Sync)
Microsoft Excel Viewer
Bluetooth Gateway
AV Renderer Sample
Microsoft Image Viewer
Digital Rights Management (DRM)
AYGShell API Set
Microsoft PDF Viewer
DRM license acquisition OCX
Bluetooth LAP and Configuration Utility
Microsoft PowerPoint Viewer
Embedded Database (EDB)
File Server (10 connection limit)
Microsoft Word Viewer
File Server (2 connection limit)
Help
Jscript
Internet Explorer (full browser and Pocket IE)
VBScript
Inbox
Windows Error Reporting
Pocket Outlook Object Model API
*All existing Core components
RAS/PPTP Server
Remote Desktop Protocol (RDP)
Standard SDK for Windows CE (AYG)
Streaming Media Playback
Transcriber Handwriting Recognition Engine and
Application
Windows Messenger
Windows Media Player (WMP) application
Windows Thin Client Shell
WMA,WMV, and MP3 Streaming (via WMP)
WordPad
* Includes all components plus viewers above
Resources
Windows CE documentation
http://msdn.microsoft.com/library/en-us/wceintro5/html/
wce50oriWelcomeToWindowsCE.asp
Windows Embedded Partner Web Site
http://www.mswep.com
Get the Windows Embedded Introductory Kit
http://www.windowsembeddedkit.com
Embedded development
http://msdn.microsoft.com/embedded
Windows CE development
http://msdn.microsoft.com/embedded/windowsce/default.aspx
More Information
http://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.