EMB313 Increasing Developer Productivity With Windows CE 5.0 Gabriel Spil IDE Dev Lead CE Tools...

25
EMB313 EMB313 Increasing Developer Increasing Developer Productivity With Productivity With Windows CE 5.0 Windows CE 5.0 Gabriel Spil Gabriel Spil IDE Dev Lead IDE Dev Lead CE Tools CE Tools Microsoft Corporation Microsoft Corporation

Transcript of EMB313 Increasing Developer Productivity With Windows CE 5.0 Gabriel Spil IDE Dev Lead CE Tools...

EMB313EMB313

Increasing Developer Increasing Developer Productivity With Productivity With Windows CE 5.0Windows CE 5.0

Gabriel SpilGabriel SpilIDE Dev LeadIDE Dev LeadCE ToolsCE ToolsMicrosoft CorporationMicrosoft Corporation

MManagementanagementTToolsools

CCommunicationsommunications& & MMessagingessaging

Device Update Agent

Software Update Services

Live Communications Server

Exchange Server

Internet Security and Acceleration Server

Speech Server

Image Update

LLocation ocation SServiceservices

MMultimediaultimedia

MapPoint

DirectX

Windows Media

Visual Studio 2005DDevelopment evelopment TToolsools

MFC 8.0, ATL 8.0

Win32NNativeative

MManagedanaged

SServer erver SSideide

LLightweightightweight

RRelationalelationalSQL Server 2005 Express EditionEDB

DDa

taata

PPro

gra

mm

ing

ro

gra

mm

ing

MM

od

el

od

el

DDevice evice BBuilding uilding TToolsools

HHardware/ardware/DDriversrivers

Windows XP DDK

Windows Embedded Studio

Platform Builder

OEM/IHV SuppliedBSP

(ARM, SH4, MIPS)OEM Hardware and Standard Drivers

Standard PC Hardware and Drivers

SQL Server 2005SQL Server 2005 Mobile Edition

ASP.NET Mobile Controls ASP.NET

.NET Compact Framework .NET Framework

Microsoft Operations Manager

Systems Management Server

GOAL: Optimize Developer GOAL: Optimize Developer Productivity CycleProductivity Cycle

EDIT

DOWNLOAD

BU

ILD

FeaturesFeatures

Unified BuildUnified Build

Targeted BuildTargeted Build

CloningCloning

Mixed Mode BuildsMixed Mode Builds

Dynamic Debugging from Dynamic Debugging from FlatReleaseDirFlatReleaseDir

Unified Build VisionUnified Build Vision

The IDE becomes a thin client over the The IDE becomes a thin client over the command line buildcommand line build

Value add as a presentation layer to Value add as a presentation layer to expose cmd-line build “tribal expose cmd-line build “tribal knowledge”knowledge”

Value add as documentation (dialogs, Value add as documentation (dialogs, catalog meta data, linked helped, etc.)catalog meta data, linked helped, etc.)

IDE Build = Command Line BuildIDE Build = Command Line Build

Unified Build SolutionUnified Build Solution

The IDE build engine shells out to the The IDE build engine shells out to the command line buildcommand line build

Build meta-data is parsed real-time from Build meta-data is parsed real-time from build system filesbuild system files

Expose the OS tree in the WorkspaceViewExpose the OS tree in the WorkspaceView

Make the IDE’s native sub-project type Make the IDE’s native sub-project type sources/dirssources/dirs

Create visual editors for sources and Create visual editors for sources and dirs filesdirs files

ResourceView/ClassView support ResourceView/ClassView support for OS treefor OS tree

3 Tier Unified Build 3 Tier Unified Build ArchitectureArchitecture

File View FeatureView

ParameterView

WINCEROOTPublicPlatformPrivate

Wince TreeDirectory Structure

CESysgen Files

Dirs Files

Sources Files

WinceRoot

Build Directory

Deptree

Dirs

Sources

Source Files

MiscSource Files

Favorites

Shortcut 1

Shortcut 2

Makefile.def

DATA LAYER The following are on-disk files that contain read or read/write data for initializing the Object Model.

BUSINESS LOGIC LAYERThe following C# Objects providethe business logic.

PRESENTATION LAYERThe VS style visual represenation of the OS build tree.

PBXMLWince.

bat

Unified Build DemoUnified Build Demo

Shell Extension Shell Extension

New Project WizardNew Project Wizard

Source and Dirs EditorsSource and Dirs Editors

FileView/ClassView/ResourceViewFileView/ClassView/ResourceView

Driver Resolver and Dependency Driver Resolver and Dependency AnalyzerAnalyzer

Targeted Build Problem Targeted Build Problem StatementStatement

The IDE did not expose an easy way for The IDE did not expose an easy way for customers to take the shortest path to customers to take the shortest path to building a single binarybuilding a single binary

Targeted Build SolutionTargeted Build Solution

Leverage command line to allow users Leverage command line to allow users to compile, link and copy to to compile, link and copy to flatreleasedir in one stepflatreleasedir in one step

Deptree change -> Makeimg in one Deptree change -> Makeimg in one stepstep

Platform Builder Project change -> Platform Builder Project change -> Makeimg in one stepMakeimg in one step

BSP change -> Makeimg in one stepBSP change -> Makeimg in one step

Targeted BuildTargeted Build

Targeted Build in Public TreeTargeted Build in Public Tree

Targeted Build in BSPTargeted Build in BSP

Targeted Build of Platform Targeted Build of Platform Builder ProjectBuilder Project

Cloning GoalsCloning Goals

Allow modifications to the Wince OS Allow modifications to the Wince OS Public tree without side effects to Public tree without side effects to multiple workspacesmultiple workspaces

Allow modifications to be bound to a Allow modifications to be bound to a workspaceworkspace

Cloning SolutionCloning Solution

Allow a subset of OS Design Items to Allow a subset of OS Design Items to be deep-copied into a workspacebe deep-copied into a workspace

Use a replaceable library methodology Use a replaceable library methodology to implement cloning of OS modulesto implement cloning of OS modules

Cloning ProcessCloning Process

SYSGEN

IF CLONEDMODULE

MS PUBLICLIBS

MS PUBLICLIBS

CLONEDLIBS

CLONEDLIBS

LINKER

FINAL MODULE

WORKSPACEBUILD

IF CLONED

LIBS

LINKER

FINAL CLONEDMODULE

BUILDCLONE

LIBS

Cloning DemoCloning Demo

Clone a public driver from the catalogClone a public driver from the catalog

Build and link new cloned driverBuild and link new cloned driver

Mixed Mode BuildsMixed Mode Builds

Allows customers to build Platform Allows customers to build Platform Builder Projects with Debug settings in Builder Projects with Debug settings in a Release version of the OSa Release version of the OS

Mixed Mode Build DemoMixed Mode Build Demo

Configure a user project to always Configure a user project to always build with Debug settingsbuild with Debug settings

Build a release OS imageBuild a release OS image

Debug user projectDebug user project

Dynamic Debugging From Dynamic Debugging From FlatReleaseDirFlatReleaseDir

Allows customers to build and debug Allows customers to build and debug modules dynamically from the modules dynamically from the FlatReleaseDir without re-building, FlatReleaseDir without re-building, re-downloading or re-flashing an re-downloading or re-flashing an OS imageOS image

Dynamic Debugging DemoDynamic Debugging Demo

Download and debug OSDownload and debug OS

Notice defect that requires an edit/buildNotice defect that requires an edit/build

Make source changes and build Make source changes and build modulemodule

Add module to dynamic debug listAdd module to dynamic debug list

Reset device as neededReset device as needed

Debug new modifications without Debug new modifications without rebuilding or re-downloading imagerebuilding or re-downloading image

Summary – Increasing Summary – Increasing Productivity By:Productivity By:

Exposing the power of the command Exposing the power of the command line build systemline build system

Fidelity between IDE Workspaces and Fidelity between IDE Workspaces and command linecommand line

Enhanced support for building and Enhanced support for building and debugging cyclesdebugging cycles

While at MEDC 2005…While at MEDC 2005…Fill outFill out an evaluation for this session an evaluation for this session

Randomly selected instant Randomly selected instant WINWIN prizes! prizes!

Use Use real technology in a labreal technology in a lab Instructor led Instructor led Reef E/FReef E/F & & Breakers LBreakers L

Self-paced Self-paced Reef B/CReef B/C

VisitVisit the Microsoft Product Pavilion the Microsoft Product Pavilion

in the Exhibit Hall in the Exhibit Hall Shorelines BShorelines B

After The Conference…After The Conference…

DevelopDevelop

BuildBuild

InstallInstall

BuildBuild

JoinJoin

InstallInstall

EnterEnter

JoinJoin

Full-featured trial versions of Windows CE Full-featured trial versions of Windows CE and/or Windows XP Embeddedand/or Windows XP Embedded

Cool stuff & tell us about it: Cool stuff & tell us about it: msdn.microsoft.com/embedded/community

Windows Embedded Partner Program:Windows Embedded Partner Program:www.mswep.com

Windows Mobile 5.0 Eval Kit including Windows Mobile 5.0 Eval Kit including Visual Studio 2005 Beta 2Visual Studio 2005 Beta 2

Mobile2Market Contest and win up to $25000: Mobile2Market Contest and win up to $25000: mobile2marketcontest.com

Microsoft Solutions Partner Program:Microsoft Solutions Partner Program:partner.microsoft.com

Tools & ResourcesTools & Resources

msdn.microsoft.com/msdn.microsoft.com/ embeddedembedded

microsoft.public.microsoft.public. windowsxp.embeddedwindowsxp.embedded windowsce.platbuilderwindowsce.platbuilder windowsce.embedded.vcwindowsce.embedded.vc

blogs.msdn.com/blogs.msdn.com/ mikehallmikehall

Windows CE 5.0 Eval KitWindows CE 5.0 Eval KitWindows XP Embedded Eval KitWindows XP Embedded Eval Kit

msdn.microsoft.com/msdn.microsoft.com/ mobilitymobility

microsoft.public.microsoft.public. pocketpc.developer pocketpc.developer smartphone.developer smartphone.developer dotnet.framework.compactframeworkdotnet.framework.compactframework

blogs.msdn.com/blogs.msdn.com/ windowsmobilewindowsmobile vsdteamvsdteam netcfteamnetcfteam

Windows Mobile 5.0 Eval KitWindows Mobile 5.0 Eval Kit

WebsitesWebsites

NewsgroupsNewsgroups

BlogsBlogs

ToolsTools

BuildBuild DevelopDevelop

© 2005 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.