Presentation is loading. Please wait.

Presentation is loading. Please wait.

Steve Teixeira Group Program Manager Microsoft Corporation.

Similar presentations


Presentation on theme: "Steve Teixeira Group Program Manager Microsoft Corporation."— Presentation transcript:

1 Steve Teixeira Group Program Manager Microsoft Corporation

2

3 Enable developer success on Microsoft platforms by providing world-class native tools while bridging to next-generation technologies

4 Writes code that must compile cross- platform Has a substantial existing investment in C++ they wish to maintain Builds software that requires a greater degree of runtime control than the CLR offers today

5 Add value to Microsoft native platform technologies Renewed investment in native libraries, such as MFC Ability to interoperate between platform paradigms Support for platform innovations in areas such as concurrency Native/managed bridge C++/CLI language & IJW interop Libraries-based bridge technology Developer agility & productivity IDE tooling that gracefully scales to XXL projects Compiler front-end that supports IDE tooling and provides ever- improving build throughput

6 Support for the latest Microsoft platform technology New MFC goodies for Vista UI UAC support in IDE and projects New Vista SDK with thousands of native APIs Native/managed bridge STL/CLR Marshaling library Developer agility & productivity Compiler throughput: Metadata-based incremental managed builds and concurrently module compilation.NET Framework multi-targeting Welcome back, class designer!

7 MFC encapsulations and related dialog editor support for new Windows Vista Common Controls SysLink Network address control Command Link Split button While we’re at it, we’re adding the Windows XP-level support that we never managed to get to previously Hundreds of messages, styles, notifications, etc. We’re even updating Spy++!

8 We’ve tried to make MFC do the “heavy lifting” where it’s able so that you get the Vista/Aero look for free where possible and to also look great down-level to Windows 2000 Vista file dialogs Vista look and feel (metrics, fonts, and “voice”) Vista-enabling UI (menus, toolbars, etc.)

9

10 Metadata-based incremental builds for managed modules Prevents “full stack” rebuilds for minor changes Potential to greatly increase build throughput for Solutions with managed project dependencies New compiler switch to support multiple simultaneous module compilation Currently, projects can be built in parallel, but modules are serialized We’ve learned that project dependency trees can kill project-based parallelism

11 Visualize native C++ code Fully integrated into the IDE Tight code synchronization C++ language concepts are first-class citizens e.g., templates, typedefs, enums, etc. Displays language specific terminology Use the C++ class designer to: Understand existing code Augment documentation with diagrams

12

13

14 Implementation of the Standard Template Library on the.NET Framework Enables leveraging STL skills in applications that use.NET Framework Easy interop between native code in STL and managed code with.NET collections Leverages templates and generics together to achieve optimal performance and cross-language compatibility

15 Provides a set of containers, iterators and algorithms similar to STL Introduces generic-based containers and iterators to operate on STL/CLR data across.NET assemblies Ease data exchange between STL and.NET Collections Can be used in Mixed, Pure and Safe modes

16

17 How many “standard” string types does a C++ developer use on a regular basis? 1. single byte char array 2. single by char pointer 3. multi-byte char array 4. multi-byte char pointer 5. double-byte char array 6. double-byte char pointer 7. BSTR 8. CString 9. std::string 10. System::String 11. System::Text::StringBuilder

18 A template-based C++ library for handling conversion and marshaling between common native and managed types Syntax: #include using namespace msclr::interop; ATYPE t = marshal_as (fromtype);

19 ref class MyControl : UserControl { // reference type std::vector * words; // use native type void Add(std::string s) { words->push_back(s); } public: void Add(String^ s) { Add(marshal_as (s)); } void Add(std::string s) { words->push_back(s); } public: void Add(String^ s) { Add(marshal_as (s)); }}; class Data { gcroot xmlDoc; public: void Load(std::string fileName) { XmlTextReader^ reader = gcnew XmlTextReader( marshal_as (fileName)); xmlDoc = gcnew XmlDocument(reader); } };

20 ATL Server has been liberated as a shared source project on CodePlex! /Wp64 switch is being deprecated /clr:oldSyntax is being deprecated Pre-Windows 2000 targeting is being retired from the native libraries

21

22 © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.


Download ppt "Steve Teixeira Group Program Manager Microsoft Corporation."

Similar presentations


Ads by Google