Transcript Native Device Development in Whidbey
Native Device Development in Visual Studio Whidbey
Nishan Jebanasam Program Manager Microsoft Corporation Rich Hanbidge Developer Microsoft Corporation
Agenda
Roadmap of native device development Visual Studio Whidbey IDE native device development features Develop a C++ application for Pocket PC Native device frameworks Q&A
eVC
Currently the only tool for native development for WinCE-based devices.
Standalone IDE (no VS integration) Based on VS 6 shell 1-1 relationship between tools and platform version
Summer 2000 Jan 2001 July 2002
Roadmap
April TBD 2003 H2 2004 eVC3 eVC4 eVC4 SP1 eVC4 SP2 eVC4 SP3 eVC4 SP4 Windows CE 3.0
Windows CE .NET
4.0
Windows CE .NET
4.1
Windows CE .NET
4.2
Pocket PC 2000 Pocket PC Smartphone 2002 Pocket PC Smartphone 2003 WinCE Macallan
Visual Studio Whidbey
Create apps for Pocket PC, Smartphone, Windows CE Development Deployment Debugging Distribution Target multiple versions of device OS One tool for all your device solutions
Device OS Platform Builder SDK Pocket PC Smart phone Visual Studio Whidbey Pocket PC Smart phone
Visual Studio Whidbey
Native C++ for Devices feature will include Application and Class Wizards SDK integration Resource Editor Device cross-compilers Remote deployment/debugging Native frameworks Emulator Help
Device Compilers
Support for ARM, MIPS, SH, x86 Based on desktop v8.0 compiler front-end Will have Conformance work Enhanced Unicode support LTCG Optimization Improvements Will not have POGO Named Return Value Optimization
Demo: IDE
Debugging Intro
What we are setting out to do Deliver the feature set of the eVC Debugger in the VS Shell Provide the same level of robustness and reliability as the desktop native debugger Build a foundation for “advanced” debugger features, with a long term goal of feature parity with the desktop
Debugger Features
Feature Set Attach, Detach Breakpoints, Stepping, Break All Autos, Locals, Memory Window Threads, Call Stack, Modules Native Code Only – Disassembly, JIT Debug Unsupported Interop Debugging Driver Development Data Breakpoints Edit and Continue
Device Specifics
Connectivity Physical Network Deployment Tools Dependencies Application Secure Devices Tool Support for Secure Devices
Demo: Debugging
Frameworks
Visual Studio Whidbey will include the following native device runtimes: MFC/ATL SCL/STL CRT Share desktop codebase, subset for Size Performance Windows CE vs Windows Same runtime for Windows CE, Pocket PC and Smartphone
ATL/MFC for Devices
Merging some ATL/MFC common functionality CString, CImage, WebServices Performance, Security, Robustness Compatibility with existing ATL/MFC Largely code compatible Not binary compatible Static or Dynamic link Also available on Smartphone
What’s in MFC for Devices
Application Architecture CWinThread CDocTemplate COleObjectFactory CDocument Window Support Frame Windows Control Bars Property Sheets Dialog Boxes Views Controls Exceptions File Services Graphical Drawing CDC Graphical Drawing Objects CGDIObject Menus Command Line Synchronization Windows Sockets Arrays, Lists, Maps Templates only Runtime Object Model Support Structures Simple Value Types Support Classes OLE Type Wrappers Synchronization
Controls in MFC for Devices
CButton CComboBox CDateTimeCtrl CEdit CHeaderCtrl CListBox CListCtrl CMonthCalCtrl ColeControl CProgressCtrl CScrollBar CSliderCtrl CSpinButtonCtrl CStatic CStatusBarCtrl CTabCtrl CToolBarCtrl CTreeCtrl
Not in MFC for Devices
MultiDoc Template OLE (except ActiveX hosting and creating) ISAPI and Internet Service classes ODBC and DAO classes Typed Template Collection classes Array, Map and List classes Template versions provided Dialogs File and Property provided View CCtrlView, CSCrollView and CFormView provided File Services CMemFile, COleStreamFile and StdioFile provided
MFC for Devices
CE Specific features included CCeCommandBar CCeDocList CCeDocListDocTemplate CCeSaveModifiedDlg CCeSocket CE Specific features cut CCeDB * Features under consideration SMS SQLCE Communication Suppor Security
What’s in ATL for Devices
Improved security/robustness ActiveX Control hosting Web services client CImage – Bitmap support CComCurrency – Currency support New classes for managing arrays, lists and trees Enhanced string manipulation and conversion Extended Socket support (IPv6)
ATL for Devices
What’s not in Visual Studio Whidbey ATL for Devices Security MMC Snap-in Services GDI+ Data Headers componentized for: GUI/Headless COM/DCOM
CRT\SCL\STL for Devices
C Runtime Additional CRT functions needed by Visual Studio Whidbey MFC/ATL Provided as a static lib/dll Standard C++ Library Update will be Standard Compliant Includes stream support
Summary
Managed and Native from one IDE Connectivity improvements Deterministic Stable Fast Configurable Debugging improvements Attach Detach Stability Performance Frameworks Standards Security Robustness
Summary
MS continuing to invest in native device development Visual Studio Whidbey will be tool of choice for managed and native Device development experience on parity with desktop development Questions? Email
© 2003-2004 Microsoft Corporation. All rights reserved.
This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.