Microsoft makes it easier to extend Visual Studio
Developers can define new project types, write extensions to customize the user experience, or add features with little coding, Andrew Arnott, principal engineer for Visual Studio, said in a blog post this week. "Gone are the days where you have to create or maintain an entire project system -- usually a fork based on MPFproj -- often containing well over 100K lines of code. Instead, you'll be building on the CPS (Common Project System) that ships with Visual Studio and is already used by C++, JavaScript, and ASP.Net 5."
MPFproj and Project System Preview have key differences. MPFproj follows a source code distribution model where a source code tree must be forked, customized, and have binaries built. "The problem with this approach is that if the MPFproj base is updated to fix bugs or add features, you manually merge those changes into your code base and re-ship your project system," said Arnott. But with Project System Preview, developers write extensions for the project system built in Visual Studio and don't have to write an entire project system anymore.
"The Visual Studio project system is designed from the ground up to be performant, scalable, and responsive -- much more so than MPFproj," Arnott said. "To close the gap between your project system and other project systems that Microsoft ships, it can be less costly to migrate first and then simply turn those features on, rather than re-implement and maintain those features in your own project system. As new features are added to the Visual Studio project system, you'll be able to activate those features when necessary in your own project types."
Microsoft anticipates most project types the company ships will be based on CPS. "We also look forward to migrating some of the existing project systems to CPS in upcoming versions of Visual Studio," said Arnott. "When the API for project system extensibility stabilizes, it will come out of Preview and be added to the Visual Studio SDK."
In a video demonstrating the Project System Extensibility SDK working with Visual Studio 2015, Arnott demonstrates how to introduce Visual Studio IDE support for the Boo.net language, via a few short steps. Documentation for the project extensibility technology can be found on GitHub.