Native Device Development in Visual Studio Whidbey Nishan Jebanasam Program Manager Microsoft...
-
Upload
roxana-morrish -
Category
Documents
-
view
217 -
download
4
Transcript of Native Device Development in Visual Studio Whidbey Nishan Jebanasam Program Manager Microsoft...
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
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
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
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
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
Device
SDK
Platform Builder
Visual Studio Whidbey
OS
Pocket PC
Smartphone
Pocket PC
Smartphone
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
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
Demo: IDEDemo: IDE
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
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
Device SpecificsDevice Specifics ConnectivityConnectivity
PhysicalPhysical NetworkNetwork
DeploymentDeployment ToolsTools DependenciesDependencies ApplicationApplication
Secure DevicesSecure Devices Tool Support for Secure DevicesTool Support for Secure Devices
Demo: Demo: DebuggingDebugging
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
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
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
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
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
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
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)
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
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
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
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
© 2003-2004 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.