steve teixeira group program manager microsoft corporation
DESCRIPTION
Enable developer success on Microsoft platforms by providing world-class native tools while bridging to next-generation technologiesTRANSCRIPT
![Page 1: Steve Teixeira Group Program Manager Microsoft Corporation](https://reader035.vdocuments.net/reader035/viewer/2022062317/5a4d1b677f8b9ab0599b12a3/html5/thumbnails/1.jpg)
Visual C++: What's next?Steve TeixeiraGroup Program ManagerMicrosoft Corporation
![Page 2: Steve Teixeira Group Program Manager Microsoft Corporation](https://reader035.vdocuments.net/reader035/viewer/2022062317/5a4d1b677f8b9ab0599b12a3/html5/thumbnails/2.jpg)
Q: What do these have in common?
A: THEY’RE NOT DEAD!
![Page 3: Steve Teixeira Group Program Manager Microsoft Corporation](https://reader035.vdocuments.net/reader035/viewer/2022062317/5a4d1b677f8b9ab0599b12a3/html5/thumbnails/3.jpg)
The Visual C++ Mission
Enable developer success on Microsoft platforms by providing world-class native tools while bridging to next-generation technologies
![Page 4: Steve Teixeira Group Program Manager Microsoft Corporation](https://reader035.vdocuments.net/reader035/viewer/2022062317/5a4d1b677f8b9ab0599b12a3/html5/thumbnails/4.jpg)
The Visual C++ customerWrites code that must compile cross-platformHas a substantial existing investment in C++ they wish to maintainBuilds software that requires a greater degree of runtime control than the CLR offers today
![Page 5: Steve Teixeira Group Program Manager Microsoft Corporation](https://reader035.vdocuments.net/reader035/viewer/2022062317/5a4d1b677f8b9ab0599b12a3/html5/thumbnails/5.jpg)
Roadmap: Three pillars of product focus
Add value to Microsoft native platform technologies
Renewed investment in native libraries, such as MFCAbility to interoperate between platform paradigmsSupport for platform innovations in areas such as concurrency
Native/managed bridgeC++/CLI language & IJW interopLibraries-based bridge technology
Developer agility & productivityIDE tooling that gracefully scales to XXL projectsCompiler front-end that supports IDE tooling and provides ever-improving build throughput
![Page 6: Steve Teixeira Group Program Manager Microsoft Corporation](https://reader035.vdocuments.net/reader035/viewer/2022062317/5a4d1b677f8b9ab0599b12a3/html5/thumbnails/6.jpg)
Orcas: First stop on the roadmap
Support for the latest Microsoft platform technologyNew MFC goodies for Vista UIUAC support in IDE and projectsNew Vista SDK with thousands of native APIs
Native/managed bridgeSTL/CLRMarshaling library
Developer agility & productivityCompiler throughput: Metadata-based incremental managed builds and concurrently module compilation.NET Framework multi-targetingWelcome back, class designer!
![Page 7: Steve Teixeira Group Program Manager Microsoft Corporation](https://reader035.vdocuments.net/reader035/viewer/2022062317/5a4d1b677f8b9ab0599b12a3/html5/thumbnails/7.jpg)
VC++ Orcas: New Common Controls
MFC encapsulations and related dialog editor support for new Windows Vista Common Controls
SysLinkNetwork address controlCommand LinkSplit 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++!
![Page 8: Steve Teixeira Group Program Manager Microsoft Corporation](https://reader035.vdocuments.net/reader035/viewer/2022062317/5a4d1b677f8b9ab0599b12a3/html5/thumbnails/8.jpg)
Conforming with style guidelines
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 dialogsVista look and feel (metrics, fonts, and “voice”)Vista-enabling UI (menus, toolbars, etc.)
![Page 9: Steve Teixeira Group Program Manager Microsoft Corporation](https://reader035.vdocuments.net/reader035/viewer/2022062317/5a4d1b677f8b9ab0599b12a3/html5/thumbnails/9.jpg)
New Vista Common Controls
![Page 10: Steve Teixeira Group Program Manager Microsoft Corporation](https://reader035.vdocuments.net/reader035/viewer/2022062317/5a4d1b677f8b9ab0599b12a3/html5/thumbnails/10.jpg)
VC++ Orcas Build Throughput
Metadata-based incremental builds for managed modules
Prevents “full stack” rebuilds for minor changesPotential 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 serializedWe’ve learned that project dependency trees can kill project-based parallelism
![Page 11: Steve Teixeira Group Program Manager Microsoft Corporation](https://reader035.vdocuments.net/reader035/viewer/2022062317/5a4d1b677f8b9ab0599b12a3/html5/thumbnails/11.jpg)
Class designerVisualize native C++ code
Fully integrated into the IDETight code synchronizationC++ language concepts are first-class citizens
e.g., templates, typedefs, enums, etc.Displays language specific terminology
Use the C++ class designer to:Understand existing codeAugment documentation with diagrams
![Page 12: Steve Teixeira Group Program Manager Microsoft Corporation](https://reader035.vdocuments.net/reader035/viewer/2022062317/5a4d1b677f8b9ab0599b12a3/html5/thumbnails/12.jpg)
C++ Class Designer
![Page 13: Steve Teixeira Group Program Manager Microsoft Corporation](https://reader035.vdocuments.net/reader035/viewer/2022062317/5a4d1b677f8b9ab0599b12a3/html5/thumbnails/13.jpg)
STL/CLR Implementation of the Standard Template Library on the .NET FrameworkEnables leveraging STL skills in applications that use .NET FrameworkEasy interop between native code in STL and managed code with .NET collectionsLeverages templates and generics together to achieve optimal performance and cross-language compatibility
![Page 14: Steve Teixeira Group Program Manager Microsoft Corporation](https://reader035.vdocuments.net/reader035/viewer/2022062317/5a4d1b677f8b9ab0599b12a3/html5/thumbnails/14.jpg)
STL/CLR DetailsProvides a set of containers, iterators and algorithms similar to STLIntroduces generic-based containers and iterators to operate on STL/CLR data across .NET assembliesEase data exchange between STL and .NET CollectionsCan be used in Mixed, Pure and Safe modes
![Page 15: Steve Teixeira Group Program Manager Microsoft Corporation](https://reader035.vdocuments.net/reader035/viewer/2022062317/5a4d1b677f8b9ab0599b12a3/html5/thumbnails/15.jpg)
Using STL/CLR
![Page 16: Steve Teixeira Group Program Manager Microsoft Corporation](https://reader035.vdocuments.net/reader035/viewer/2022062317/5a4d1b677f8b9ab0599b12a3/html5/thumbnails/16.jpg)
Pop Quiz!How many “standard” string types does a C++ developer use on a regular basis?
1. single byte char array2. single by char pointer3. multi-byte char array4. multi-byte char pointer5. double-byte char array6. double-byte char pointer7. BSTR8. CString9. std::string10. System::String11. System::Text::StringBuilder
![Page 17: Steve Teixeira Group Program Manager Microsoft Corporation](https://reader035.vdocuments.net/reader035/viewer/2022062317/5a4d1b677f8b9ab0599b12a3/html5/thumbnails/17.jpg)
Marshaling libraryA template-based C++ library for handling conversion and marshaling between common native and managed typesSyntax:#include <msclr/marshal.h>
using namespace msclr::interop;
ATYPE t = marshal_as<ATYPE>(fromtype);
![Page 18: Steve Teixeira Group Program Manager Microsoft Corporation](https://reader035.vdocuments.net/reader035/viewer/2022062317/5a4d1b677f8b9ab0599b12a3/html5/thumbnails/18.jpg)
Marshaling lib and interop
ref class MyControl : UserControl { // reference type std::vector<std::string>* words; // use native type
void Add(std::string s) { words->push_back(s); }public: void Add(String^ s) { Add(marshal_as<std::string>(s)); }
};
class Data { gcroot<XmlDocument> xmlDoc;public: void Load(std::string fileName) { XmlTextReader^ reader = gcnew XmlTextReader( marshal_as<System::String^>(fileName)); xmlDoc = gcnew XmlDocument(reader); }};
![Page 19: Steve Teixeira Group Program Manager Microsoft Corporation](https://reader035.vdocuments.net/reader035/viewer/2022062317/5a4d1b677f8b9ab0599b12a3/html5/thumbnails/19.jpg)
Other Orcasy things you should know
ATL Server has been liberated as a shared source project on CodePlex!/Wp64 switch is being deprecated/clr:oldSyntax is being deprecatedPre-Windows 2000 targeting is being retired from the native libraries
![Page 20: Steve Teixeira Group Program Manager Microsoft Corporation](https://reader035.vdocuments.net/reader035/viewer/2022062317/5a4d1b677f8b9ab0599b12a3/html5/thumbnails/20.jpg)
One more thing…
![Page 21: Steve Teixeira Group Program Manager Microsoft Corporation](https://reader035.vdocuments.net/reader035/viewer/2022062317/5a4d1b677f8b9ab0599b12a3/html5/thumbnails/21.jpg)
© 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.