Top Banner
Native Device Native Device Development in Development in Visual Studio Visual Studio Whidbey Whidbey Nishan Jebanasam Nishan Jebanasam Program Manager Program Manager Microsoft Microsoft Corporation Corporation Rich Hanbidge Rich Hanbidge Developer Developer Microsoft Microsoft Corporation Corporation
25

Native Device Development in Visual Studio Whidbey Nishan Jebanasam Program Manager Microsoft Corporation Rich Hanbidge Developer Microsoft Corporation.

Mar 30, 2015

Download

Documents

Roxana Morrish
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Native Device Development in Visual Studio Whidbey Nishan Jebanasam Program Manager Microsoft Corporation Rich Hanbidge Developer Microsoft Corporation.

Native Device Native Device Development in Development in Visual Studio Visual Studio

WhidbeyWhidbey

Nishan JebanasamNishan Jebanasam

Program ManagerProgram Manager

Microsoft Microsoft CorporationCorporation

Rich HanbidgeRich Hanbidge

DeveloperDeveloper

Microsoft Microsoft CorporationCorporation

Page 2: Native Device Development in Visual Studio Whidbey Nishan Jebanasam Program Manager Microsoft Corporation Rich Hanbidge Developer Microsoft Corporation.

AgendaAgenda Roadmap of native device developmentRoadmap of native device development Visual Studio Whidbey IDE native device Visual Studio Whidbey IDE native device

development featuresdevelopment features Develop a C++ application for Pocket PCDevelop a C++ application for Pocket PC Native device frameworksNative device frameworks Q&AQ&A

Page 3: Native Device Development in Visual Studio Whidbey Nishan Jebanasam Program Manager Microsoft Corporation Rich Hanbidge Developer Microsoft Corporation.

eVCeVC Currently the only tool for native Currently the only tool for native

development for WinCE-based devices.development for WinCE-based devices. Standalone IDE (no VS integration)Standalone IDE (no VS integration) Based on VS 6 shellBased on VS 6 shell 1-1 relationship between tools and 1-1 relationship between tools and

platform versionplatform version

Page 4: Native Device Development in Visual Studio Whidbey Nishan Jebanasam Program Manager Microsoft Corporation Rich Hanbidge Developer Microsoft Corporation.

eVC3 eVC4SP1

eVC4SP2

eVC4 eVC4SP3

eVC4SP4

Pocket PC2000

Pocket PCSmartphone

2003

Summer2000

Jan2001

July2002

April2003 H2 2004TBD

WindowsCE 3.0

WindowsCE .NET

4.0

WindowsCE .NET

4.1

WindowsCE .NET

4.2

WinCEMacallan

Pocket PCSmartphone

2002

RoadmapRoadmap

Page 5: Native Device Development in Visual Studio Whidbey Nishan Jebanasam Program Manager Microsoft Corporation Rich Hanbidge Developer Microsoft Corporation.

Visual Studio WhidbeyVisual Studio Whidbey Create apps for Pocket PC, Create apps for Pocket PC,

Smartphone, Windows CESmartphone, Windows CE DevelopmentDevelopment DeploymentDeployment DebuggingDebugging DistributionDistribution

Target multiple versions of device OSTarget multiple versions of device OS One tool for all your device solutionsOne tool for all your device solutions

Page 6: Native Device Development in Visual Studio Whidbey Nishan Jebanasam Program Manager Microsoft Corporation Rich Hanbidge Developer Microsoft Corporation.

Device

SDK

Platform Builder

Visual Studio Whidbey

OS

Pocket PC

Smartphone

Pocket PC

Smartphone

Page 7: Native Device Development in Visual Studio Whidbey Nishan Jebanasam Program Manager Microsoft Corporation Rich Hanbidge Developer Microsoft Corporation.

Visual Studio WhidbeyVisual Studio WhidbeyNative C++ for Devices feature will includeNative C++ for Devices feature will include Application and Class WizardsApplication and Class Wizards SDK integrationSDK integration Resource EditorResource Editor Device cross-compilersDevice cross-compilers Remote deployment/debuggingRemote deployment/debugging Native frameworksNative frameworks EmulatorEmulator HelpHelp

Page 8: Native Device Development in Visual Studio Whidbey Nishan Jebanasam Program Manager Microsoft Corporation Rich Hanbidge Developer Microsoft Corporation.

Device CompilersDevice Compilers Support for ARM, MIPS, SH, x86Support for ARM, MIPS, SH, x86 Based on desktop v8.0 compiler front-endBased on desktop v8.0 compiler front-end Will haveWill have

Conformance workConformance work Enhanced Unicode supportEnhanced Unicode support LTCGLTCG Optimization ImprovementsOptimization Improvements

Will not haveWill not have POGOPOGO Named Return Value OptimizationNamed Return Value Optimization

Page 9: Native Device Development in Visual Studio Whidbey Nishan Jebanasam Program Manager Microsoft Corporation Rich Hanbidge Developer Microsoft Corporation.

Demo: IDEDemo: IDE

Page 10: Native Device Development in Visual Studio Whidbey Nishan Jebanasam Program Manager Microsoft Corporation Rich Hanbidge Developer Microsoft Corporation.

Debugging IntroDebugging Intro What we are setting out to doWhat we are setting out to do

Deliver the feature set of the eVC Debugger Deliver the feature set of the eVC Debugger in the VS Shellin the VS Shell

Provide the same level of robustness and Provide the same level of robustness and reliability as the desktop native debuggerreliability as the desktop native debugger

Build a foundation for “advanced” debugger Build a foundation for “advanced” debugger features, with a long term goal of feature features, with a long term goal of feature parity with the desktopparity with the desktop

Page 11: Native Device Development in Visual Studio Whidbey Nishan Jebanasam Program Manager Microsoft Corporation Rich Hanbidge Developer Microsoft Corporation.

Debugger FeaturesDebugger Features Feature SetFeature Set

Attach, DetachAttach, Detach Breakpoints, Stepping, Break AllBreakpoints, Stepping, Break All Autos, Locals, Memory WindowAutos, Locals, Memory Window Threads, Call Stack, ModulesThreads, Call Stack, Modules Native Code Only – Disassembly, JIT Native Code Only – Disassembly, JIT

DebugDebug UnsupportedUnsupported

Interop DebuggingInterop Debugging Driver DevelopmentDriver Development Data BreakpointsData Breakpoints Edit and ContinueEdit and Continue

Page 12: Native Device Development in Visual Studio Whidbey Nishan Jebanasam Program Manager Microsoft Corporation Rich Hanbidge Developer Microsoft Corporation.

Device SpecificsDevice Specifics ConnectivityConnectivity

PhysicalPhysical NetworkNetwork

DeploymentDeployment ToolsTools DependenciesDependencies ApplicationApplication

Secure DevicesSecure Devices Tool Support for Secure DevicesTool Support for Secure Devices

Page 13: Native Device Development in Visual Studio Whidbey Nishan Jebanasam Program Manager Microsoft Corporation Rich Hanbidge Developer Microsoft Corporation.

Demo: Demo: DebuggingDebugging

Page 14: Native Device Development in Visual Studio Whidbey Nishan Jebanasam Program Manager Microsoft Corporation Rich Hanbidge Developer Microsoft Corporation.

FrameworksFrameworks Visual Studio Whidbey will include the Visual Studio Whidbey will include the

following native device runtimes:following native device runtimes: MFC/ATLMFC/ATL SCL/STLSCL/STL CRTCRT

Share desktop codebase, subset forShare desktop codebase, subset for SizeSize PerformancePerformance Windows CE vs WindowsWindows CE vs Windows

Same runtime for Windows CE, Pocket PC Same runtime for Windows CE, Pocket PC and Smartphoneand Smartphone

Page 15: Native Device Development in Visual Studio Whidbey Nishan Jebanasam Program Manager Microsoft Corporation Rich Hanbidge Developer Microsoft Corporation.

ATL/MFC for DevicesATL/MFC for Devices Merging some ATL/MFC common Merging some ATL/MFC common

functionalityfunctionality CString, CImage, WebServicesCString, CImage, WebServices

Performance, Security, RobustnessPerformance, Security, Robustness Compatibility with existing ATL/MFCCompatibility with existing ATL/MFC

Largely code compatibleLargely code compatible Not binary compatibleNot binary compatible

Static or Dynamic linkStatic or Dynamic link Also available on SmartphoneAlso available on Smartphone

Page 16: Native Device Development in Visual Studio Whidbey Nishan Jebanasam Program Manager Microsoft Corporation Rich Hanbidge Developer Microsoft Corporation.

What’s in MFC for What’s in MFC for DevicesDevices

Application Application ArchitectureArchitecture CWinThreadCWinThread CDocTemplateCDocTemplate COleObjectFactoryCOleObjectFactory CDocumentCDocument

Window SupportWindow Support Frame WindowsFrame Windows Control BarsControl Bars Property SheetsProperty Sheets Dialog BoxesDialog Boxes ViewsViews ControlsControls

ExceptionsExceptions File ServicesFile Services Graphical DrawingGraphical Drawing

CDCCDC

Graphical Drawing Graphical Drawing ObjectsObjects CGDIObjectCGDIObject

MenusMenus Command LineCommand Line SynchronizationSynchronization Windows SocketsWindows Sockets Arrays, Lists, MapsArrays, Lists, Maps

Templates onlyTemplates only Runtime Object Model Runtime Object Model

SupportSupport StructuresStructures Simple Value TypesSimple Value Types Support ClassesSupport Classes OLE Type WrappersOLE Type Wrappers SynchronizationSynchronization

Graphical Drawing Graphical Drawing ObjectsObjects CGDIObjectCGDIObject

MenusMenus Command LineCommand Line SynchronizationSynchronization Windows SocketsWindows Sockets Arrays, Lists, MapsArrays, Lists, Maps

Templates onlyTemplates only Runtime Object Model Runtime Object Model

SupportSupport StructuresStructures Simple Value TypesSimple Value Types Support ClassesSupport Classes OLE Type WrappersOLE Type Wrappers SynchronizationSynchronization

Page 17: Native Device Development in Visual Studio Whidbey Nishan Jebanasam Program Manager Microsoft Corporation Rich Hanbidge Developer Microsoft Corporation.

Controls in MFC for Controls in MFC for DevicesDevices

CButtonCButton CComboBoxCComboBox CDateTimeCtrlCDateTimeCtrl CEditCEdit CHeaderCtrlCHeaderCtrl CListBoxCListBox CListCtrlCListCtrl CMonthCalCtrlCMonthCalCtrl ColeControlColeControl CProgressCtrlCProgressCtrl

CScrollBarCScrollBar CSliderCtrlCSliderCtrl CSpinButtonCtCSpinButtonCt

rlrl CStaticCStatic CStatusBarCtrlCStatusBarCtrl CTabCtrlCTabCtrl CToolBarCtrlCToolBarCtrl CTreeCtrlCTreeCtrl

CScrollBarCScrollBar CSliderCtrlCSliderCtrl CSpinButtonCtCSpinButtonCt

rlrl CStaticCStatic CStatusBarCtrlCStatusBarCtrl CTabCtrlCTabCtrl CToolBarCtrlCToolBarCtrl CTreeCtrlCTreeCtrl

Page 18: Native Device Development in Visual Studio Whidbey Nishan Jebanasam Program Manager Microsoft Corporation Rich Hanbidge Developer Microsoft Corporation.

Not in MFC for DevicesNot in MFC for Devices MultiDoc TemplateMultiDoc Template OLE (except ActiveX hosting and creating)OLE (except ActiveX hosting and creating) ISAPI and Internet Service classes ISAPI and Internet Service classes ODBC and DAO classesODBC and DAO classes Typed Template Collection classesTyped Template Collection classes Array, Map and List classesArray, Map and List classes

Template versions providedTemplate versions provided DialogsDialogs

File and Property providedFile and Property provided ViewView

CCtrlView, CSCrollView and CFormView providedCCtrlView, CSCrollView and CFormView provided File ServicesFile Services

CMemFile, COleStreamFile and StdioFile providedCMemFile, COleStreamFile and StdioFile provided

Page 19: Native Device Development in Visual Studio Whidbey Nishan Jebanasam Program Manager Microsoft Corporation Rich Hanbidge Developer Microsoft Corporation.

MFC for DevicesMFC for Devices CE Specific features includedCE Specific features included

CCeCommandBarCCeCommandBar CCeDocListCCeDocList CCeDocListDocTemplateCCeDocListDocTemplate CCeSaveModifiedDlgCCeSaveModifiedDlg CCeSocketCCeSocket

CE Specific features cutCE Specific features cut CCeDBCCeDB**

Features under considerationFeatures under consideration SMSSMS SQLCESQLCE Communication SupporCommunication Suppor SecuritySecurity

Page 20: Native Device Development in Visual Studio Whidbey Nishan Jebanasam Program Manager Microsoft Corporation Rich Hanbidge Developer Microsoft Corporation.

What’s in ATL for What’s in ATL for DevicesDevices

Improved security/robustness Improved security/robustness ActiveX Control hostingActiveX Control hosting Web services clientWeb services client CImage – Bitmap supportCImage – Bitmap support CComCurrency – Currency supportCComCurrency – Currency support New classes for managing arrays, lists and New classes for managing arrays, lists and

treestrees Enhanced string manipulation and conversion Enhanced string manipulation and conversion Extended Socket support (IPv6)Extended Socket support (IPv6)

Page 21: Native Device Development in Visual Studio Whidbey Nishan Jebanasam Program Manager Microsoft Corporation Rich Hanbidge Developer Microsoft Corporation.

ATL for DevicesATL for Devices What’s not in Visual Studio Whidbey What’s not in Visual Studio Whidbey

ATL for DevicesATL for Devices SecuritySecurity MMC Snap-inMMC Snap-in ServicesServices GDI+ GDI+ DataData

Headers componentized for:Headers componentized for: GUI/HeadlessGUI/Headless COM/DCOMCOM/DCOM

Page 22: Native Device Development in Visual Studio Whidbey Nishan Jebanasam Program Manager Microsoft Corporation Rich Hanbidge Developer Microsoft Corporation.

CRT\SCL\STL for DevicesCRT\SCL\STL for Devices C RuntimeC Runtime

Additional CRT functions needed by Visual Additional CRT functions needed by Visual Studio Whidbey MFC/ATLStudio Whidbey MFC/ATL

Provided as a static lib/dllProvided as a static lib/dll Standard C++ LibraryStandard C++ Library

Update will be Standard CompliantUpdate will be Standard Compliant Includes stream supportIncludes stream support

Page 23: Native Device Development in Visual Studio Whidbey Nishan Jebanasam Program Manager Microsoft Corporation Rich Hanbidge Developer Microsoft Corporation.

SummarySummary Managed and Native from one IDEManaged and Native from one IDE Connectivity improvementsConnectivity improvements

DeterministicDeterministic StableStable FastFast Configurable Configurable

Debugging improvementsDebugging improvements AttachAttach DetachDetach StabilityStability PerformancePerformance

FrameworksFrameworks StandardsStandards SecuritySecurity RobustnessRobustness

Page 24: Native Device Development in Visual Studio Whidbey Nishan Jebanasam Program Manager Microsoft Corporation Rich Hanbidge Developer Microsoft Corporation.

SummarySummary MS continuing to invest in native device MS continuing to invest in native device

developmentdevelopment Visual Studio Whidbey will be tool of choice Visual Studio Whidbey will be tool of choice

for managed and nativefor managed and native Device development experience on parity Device development experience on parity

with desktop developmentwith desktop development Questions? Email Questions? Email [email protected]@microsoft.com

Page 25: Native Device Development in Visual Studio Whidbey Nishan Jebanasam Program Manager Microsoft Corporation Rich Hanbidge Developer Microsoft Corporation.

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