Presentation is loading. Please wait.

Presentation is loading. Please wait.

Visual C++ Strategy and Direction Damien Watkins Program Manager Visual C++

Similar presentations


Presentation on theme: "Visual C++ Strategy and Direction Damien Watkins Program Manager Visual C++"— Presentation transcript:

1 Visual C++ Strategy and Direction Damien Watkins Program Manager Visual C++

2 Agenda History – Where have we been? (And what have we done along the way) Today – Where are we now? Tomorrow – Where are we aiming for? (And how will we get there)

3 Visual C++ over the years C/C++ 7.0 – Programmers Workbench V2, MFC 1.0, First C++ version Visual C++ 1 – Windows IDE, MFC 2.0 (Adds App Framework), Resource editor – VC++ 1.0 and 1.5 16 bit versions – VC++ 1.1 32-bit targeted at NT 3.1 and Win32S with 16-bit cross compiler Visual C++ 2 – MFC 3.0, Templates, C++ Exceptions, First version targeted at Window NT – VC2.2 added Win95 – First 32-bit native compiler and IDE Visual C++ 4.0 – MFC 4.0, (skipped v3 to catch up with MFC version), Namespaces, RTTI – Targeted at Windows 95 and Window NT VC 4.2 was a major update with lots of internet support Visual C++ 4.2 Enterprise Edition –SQL debugging and SQL projects This is anecdotal information supplied from the memories of the VC++ team and is not guaranteed to be 100% correct

4 Visual C++ over the years Visual C++ 5.0 –MFC 4.2, ATL 2.0, supported building ActiveX controls (ATL 1.0 and 1.1 were web releases) Visual C++ 6.0 –MFC 4.2, ATL 3 Visual C++ 7.0 (2002) –.NET 1.0, Managed Extensions for C++, LTCG, Only version that C# and C++ was same team Visual C++ 7.1 (2003) –MFC 7.1,.NET 1.1, ATL Server Visual C++ 8.0 (2005) –MFC 8.0, C++/CLI, Open MP, First 64-bit targeting version (ia64 and x64 ) –.NET 2.0 Visual C++ 9.0 (2008) –.NET 3.5 This is anecdotal information supplied from the memories of the VC++ team and is not guaranteed to be 100% correct

5 Trends Language conformance Libraries : – Native: MFC, ATL – Managed:.NET OS Targeting Hardware: 16 – 32 – 64 bit Concurrency: OpenMP

6 What we heard Recently we spent several months evaluating our product strategy. – Central to this analysis were in-depth conversations/survey with many of our customers and partners, both internal and external. – Covered a wide range of segments from small development shops all the way up to global ISVs. – Our goal was to ensure that the direction of the product aligns closely with customer needs and market realities. What we discovered from our customers can be summarized in three key points

7 What we heard 1.It is clear that you mostly develop native code applications. You feel that the Visual C++ toolset has not evolved sufficiently in the past several years to meet your needs. You would like to see renewed emphasis on native code tools – especially in light of new native APIs introduced in Vista. As an aside, Microsoft itself is in a similar situation as the majority of our own applications rely on native code. 2.While you are firmly rooted in native code, you do see significant value in some of the managed innovations. This is particularly true around WPF, WCF and workflow. You develop in native code, but want to extend your applications to take advantage of this managed functionality. The largest use of C++/CLI is within this interoperability scenario – i.e. the bridging between native and managed code. 3.Finally, you have told us that you prefer to write managed code using C#. As stated above, you are using C++/CLI to bridge between native and managed code, but once you are squarely in the managed world Visual C# is the tool of choice.

8 Customer Connection Basics – “The code assistant features are not sufficient in VC++” – “Give us API help as rich as that available for C#” – “Improve coloring, hinting and cross referencing as in Visual Assist” Debugging – “Debugging is a huge issue. We would like to see enhancements to the local and remote debugging experience” – “Crash dump debugging is an area that WinDBG does much better than devenv. We want this functionality integrated” – “The debugger has reliability issues. We find it gets into a frozen state easily and also there are inaccuracies in the expression evaluator”

9 Customer Connection Code Insight – “I want to be able to treat our sources as a database and make queries on it. I want to do rich investigation without building” – “We frequently work on code written long ago and by other people. It would be nice to have tools to help us understand this code” – “Please spend more time on lint-type tools” – “Our biggest challenge is to refactor a legacy system with new technology. Tools should help us do this.” Parallelism – “A big challenge for us is utilizing all cores in a multi-core system in an efficient, responsive and thread-safe manner” – “Multi-threaded debugging can be a lot better. Also, help me track down dead locks!”

10 IssueFocus Areas 1. Manage size & complexity of code base Predictable release cycles Improve developer cycle time (edit/build/debug); help us catch programming problems earlier; provide better debugging support Reduce costs Help us understand and navigate large scale systems; provide better “code insight”; help us improve forecasting Improve scalability Your tools need to scale better to meet the needs of our system – both core IDE and debugger 2. Control & improve quality Improve quality Help us update our code to use “modern design techniques”; help us locate potentially vulnerable code; provide better profiling/performance tuning tools Manage outsourcing/remote dev Help us validate the quality of “unknown” code – whether this is code from 20 years ago or code we’re getting from outsourced work 3. Fast ramp to new technologies New technologies provide competitive advantage – help us understand and use these innovations; help us bridge our existing code The most frequently cited business issues heard during our conversations with customers. Customer Connection

11 Our Mission (in a nutshell) Enable developer success on Microsoft platforms by providing world-class native tools while bridging to next-generation technologies. – Visual C++ is the only language within Visual Studio that focuses on native code – Visual C++ will help developers extend their native applications to managed code – As new technologies appear Visual C++ will help native code developers take advantage of these innovations

12 Roadmap Build encapsulations around native platform APIs to enable faster development – Renewed investment in native libraries, particularly MFC – Support for platform innovations in areas such as concurrency Modernize Visual C++ for greater agility and productivity – Help customers write more robust, more secure and higher quality code – Help customers scale to XXL codebases – Enable faster time to market Provide interoperability technologies allowing the mixing of native and managed code – Make it easier for developers to use/reuse existing code in.NET – Reduce the adoption barriers for moving to next generation technologies

13 Roadmap: Orcas Build encapsulations around native platform APIs to enable faster development – MFC support for Vista “Look and feel” – UAC support in IDE and projects – Vista SDK with thousands of new native APIs Modernize Visual C++ for greater agility and productivity – Compiler throughput: Metadata-based incremental managed builds and concurrently module compilation –.NET Framework multi-targeting – Welcome back, class designer! (Class Viewer) Provide interoperability technologies allowing the mixing of native and managed code – STL/CLR – Marshaling library These are covered in the following talks The strategy has been developed in tandem with Orcas – so Orcas does not completely embrace the new direction

14 Post-Orcas wish list Build encapsulations around native platform APIs to enable faster development – Significant MFC investments and extensions to expose Windows functionality – ManyCore/MultiCore Support, 64 Bit Development Modernize Visual C++ for greater agility and productivity – IDE works fast and is accurate on large codebases – Code analysis/understanding support – Improved Build times – Better Debugging accuracy/functionality Native/managed Interoperability – Seamless high performance interoperability between native and managed code – Improved mixed mode debugging

15 What do you want? (This slide left intentionally blank for your input.)

16 Conclusions Visual C++ has always focused on native code development and interoperability between MS platforms MFC and other native libraries will be significantly enhanced going forward Developer productivity on large C++ codebases will be a focus

17 Questions Resources – Channel 9 Videos: Steve Teixeira and Bill Dunlap: Visual C++ Today and Tomorrow Sarita Bafna: VC++ "Orcas" - Marshaling Library and MFC support for Common Controls Sarita Bafna: VC++ "Orcas" - Marshaling Library and MFC support for Common Controls Nikola Dudar: STLCLR - STL Development in the Managed World Ale Contenti: VC++ Safe Libraries and More – VC Blog: Marshaling Library in Orcas Resource Editor Updates for Orcas Visual C++ Orcas Feature Specifications online – MSDN article: “ “An Inside Look At The Next Generation Of Visual C++”. – Feature Specifications Feature Specifications for Visual Studio 2008 and.NET Framework 3.5 – New Vista APIs: Windows Vista


Download ppt "Visual C++ Strategy and Direction Damien Watkins Program Manager Visual C++"

Similar presentations


Ads by Google