Native Device Development in Whidbey

Download Report

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

[email protected]

© 2003-2004 Microsoft Corporation. All rights reserved.

This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.