Increasing Develper Productivity With Windows CE 5.0

EMB313
Increasing Developer
Productivity With
Windows CE 5.0
Gabriel Spil
IDE Dev Lead
CE Tools
Microsoft Corporation
Hardware/Drivers
OEM/IHV Supplied
Programming
Model
Data
Device Building
Tools
BSP
(ARM, SH4, MIPS)
EDB
SQL Server 2005 Mobile Edition
Relational
Native
Server Side
Standard PC
Hardware and Drivers
Windows XP DDK
Windows Embedded
Studio
Platform Builder
Lightweight
Managed
OEM Hardware and
Standard Drivers
SQL Server 2005 Express Edition
SQL Server 2005
Win32
MFC 8.0, ATL 8.0
.NET Compact Framework
ASP.NET Mobile Controls
.NET Framework
ASP.NET
Windows Media
DirectX
Multimedia
Location Services
MapPoint
Development Tools
Visual Studio 2005
Internet Security and Acceleration Server
Exchange Server
Live Communications Server
Speech Server
Communications
& Messaging
Device Update Agent
Management
Tools
Image Update
Software Update Services
Systems Management Server
Microsoft Operations Manager
GOAL: Optimize Developer
Productivity Cycle
DEB
U
BUILD
G
EDIT
DOWNLOAD
Features
Unified Build
Targeted Build
Cloning
Mixed Mode Builds
Dynamic Debugging from
FlatReleaseDir
Unified Build Vision
The IDE becomes a thin client over the
command line build
Value add as a presentation layer to
expose cmd-line build “tribal
knowledge”
Value add as documentation (dialogs,
catalog meta data, linked helped, etc.)
IDE Build = Command Line Build
Unified Build Solution
The IDE build engine shells out to the
command line build
Build meta-data is parsed real-time from
build system files
Expose the OS tree in the WorkspaceView
Make the IDE’s native sub-project type
sources/dirs
Create visual editors for sources and
dirs files
ResourceView/ClassView support
for OS tree
3 Tier Unified Build
Architecture
File View Feature Parameter
View
View
PRESENTATION LAYER
The VS style visual represenation
of the OS build tree.
WINCEROOT
Public
Platform
Private
WinceRoot
Favorites
Build Directory
BUSINESS LOGIC LAYER
The following C# Objects provide
the business logic.
Shortcut 1
Deptree
Shortcut 2
Dirs
Sources
Source Files
Dirs
Files
DATA LAYER
The following are on-disk files that
contain read or read/write data for
initializing the Object Model.
PBXML
Sources
Files
Makefile.def
Wince.
bat
CESysgen
Files
Wince Tree
Directory
Structure
Misc
Source
Files
Unified Build Demo
Shell Extension
New Project Wizard
Source and Dirs Editors
FileView/ClassView/ResourceView
Driver Resolver and Dependency
Analyzer
Targeted Build Problem
Statement
The IDE did not expose an easy way for
customers to take the shortest path to
building a single binary
Targeted Build Solution
Leverage command line to allow users
to compile, link and copy to
flatreleasedir in one step
Deptree change -> Makeimg in one step
Platform Builder Project change ->
Makeimg in one step
BSP change -> Makeimg in one step
Targeted Build
Targeted Build in Public Tree
Targeted Build in BSP
Targeted Build of Platform
Builder Project
Cloning Goals
Allow modifications to the Wince OS
Public tree without side effects to
multiple workspaces
Allow modifications to be bound to a
workspace
Cloning Solution
Allow a subset of OS Design Items to
be deep-copied into a workspace
Use a replaceable library methodology
to implement cloning of OS modules
Cloning Process
WORKSPACE
BUILD
SYSGEN
IF
CLONED
LIBS
BUILD
CLONE
LIBS
MS PUBLIC
LIBS
MS PUBLIC
LIBS
LINKER
FINAL
MODULE
CLONED
LIBS
IF
CLONED
MODULE
CLONED
LIBS
LINKER
FINAL
CLONED
MODULE
Cloning Demo
Clone a public driver from the catalog
Build and link new cloned driver
Mixed Mode Builds
Allows customers to build Platform
Builder Projects with Debug settings in
a Release version of the OS
Mixed Mode Build Demo
Configure a user project to always
build with Debug settings
Build a release OS image
Debug user project
Dynamic Debugging From
FlatReleaseDir
Allows customers to build and debug
modules dynamically from the
FlatReleaseDir without re-building,
re-downloading or re-flashing an
OS image
Dynamic Debugging Demo
Download and debug OS
Notice defect that requires an edit/build
Make source changes and build
module
Add module to dynamic debug list
Reset device as needed
Debug new modifications without
rebuilding or re-downloading image
Summary – Increasing
Productivity By:
Exposing the power of the command
line build system
Fidelity between IDE Workspaces and
command line
Enhanced support for building and
debugging cycles
While at MEDC 2005…
Fill out an evaluation for this session
Randomly selected instant WIN prizes!
Visit the Microsoft Product Pavilion
in the Exhibit Hall
Shorelines B
Use real technology in a lab
Instructor led
Reef E/F & Breakers L
Self-paced
Reef B/C
After The Conference…
Build
Install
Full-featured trial versions of Windows CE
and/or Windows XP Embedded
Build
Cool stuff & tell us about it:
msdn.microsoft.com/embedded/community
Join
Windows Embedded Partner Program:
www.mswep.com
Develop
Install
Windows Mobile 5.0 Eval Kit including
Visual Studio 2005 Beta 2
Enter
Mobile2Market Contest and win up to $25000:
mobile2marketcontest.com
Join
Microsoft Solutions Partner Program:
partner.microsoft.com
Tools & Resources
Build
Develop
msdn.microsoft.com/
embedded
msdn.microsoft.com/
mobility
microsoft.public.
windowsxp.embedded
windowsce.platbuilder
windowsce.embedded.vc
microsoft.public.
pocketpc.developer
smartphone.developer
dotnet.framework.compactframework
Blogs
blogs.msdn.com/
mikehall
blogs.msdn.com/
windowsmobile
vsdteam
netcfteam
Tools
Windows CE 5.0 Eval Kit
Windows XP Embedded Eval Kit
Windows Mobile 5.0 Eval Kit
Websites
Newsgroups
© 2005 Microsoft Corporation. All rights reserved.
This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.