First Heather Brown, Principal Program Manager, Visual Studio Platform Team just posted more about the coming changes in the VS 2015. From my seat, the best news is that the Visual Studio SDK reference assemblies will be officially available via NuGet. That and the mentioned streamlining of getting the full SDK will make Extension Dev's lives so much easier... :)

When we decided to expand Visual Studio 2015 in the hopes of making it *the* premier platform for cross-platform development, we acknowledged that the ability for our customers to extend, customize, and generally make it their own was absolutely, critically important. It is a win-win: make an extension and you get a product or tailored experience for your specific scenario, and we – Microsoft – see Visual Studio’s potential audience get a little bit bigger and a little bit happier.

Getting the VSSDK Just Got Easier

In the past, when you opened an extensibility project in Visual Studio without having the VSSDK,you would get a cryptic error message in a big, confusing dialog box. Now, you can simply open the project directly – no fuss.

If you don’t have the VS SDK installed, Visual Studio 2015 asks you to install it when you want to do things such as add an item template.

Visual Studio SDK reference assemblies via NuGet

For increased portability, and sharing of extension projects, you can use the NuGet versions of the VSSDK Reference Assemblies. This makes it so you have access to everything you need for an extensibility project on any connected machine. No need to spend time downloading the SDK, and then adding the references into your project. When you author your extension project with the NuGet-based reference assemblies, it pulls everything you need directly into your project.

New and improved docs

We’ve overhauled the documentation to help you better discover the best walkthroughs and reduce the headache of finding the best APIs for the job. Get started with our up-to-date Visual Studio SDK walkthroughs.

Write Your Own Tools for Visual Studio

Visual Studio is a fully extensibility development platform. In addition to all of the powerful tools that it provides, you can also use tools written by the community as well as create your own tools. Visual Studio Extensions empower you to extend almost every part of Visual Studio:

Visual Studio Gallery

Once you've built your extension, share it! The Visual Studio Gallery makes your extensions available to thousands of Visual Studio users. Contribute to the Visual Studio community and show off your dev skills.

Since Visual Studio 2008, developers have been able to extend Visual Studio to add new capabilities to the IDE. With the new Community edition, any developer can use those extensions as well. Extend the same platform APIs as the product team to build productivity tools like the thousands of extensions on the Visual Studio Gallery, or add new capabilities to Visual Studio like our partners do today. Add new UI such as menu items and tool windows that expose useful productivity tools.

Scenarios

Visual Studio was built for extensibility to expand the functionality of the IDE. Here are some examples of how you can extend the Visual Studio IDE.

Add new UI such as menu items and tool windows to add your own tools.

Extend the editor and our compilers to analyze and understand your code.

Extend Visual Studio Online and Team Foundation Server to analyze information, manage the development workflow, or integrate external development services.

Integrate a new compiler and project type into Visual Studio to bring new assets into your solution.

Distribute your tool with the Visual Studio shell even if your users don’t have Visual Studio.

Reach millions of Visual Studio developers by publishing extensions on the Gallery, for free.

Getting Started

Get started by downloading the Visual Studio SDK. The Visual Studio SDK provides the libraries, tools, and project templates for creating a variety of different extensions.

These tutorials take you step by step through creating your first extensions and learning about what’s possible in the IDE.

The Visual Studio Project System Extensibility SDK simplifies the development of new project types for Visual Studio. The SDK contains a variety of project and item templates that streamline extending Visual Studio with new project types. The SDK also ships with a number of analyzers to ensure extensions follow best practices and will always be responsive. For more information, see the SDK documentation at https://aka.ms/vsprojectsystemexsdkdocs.

Visual Studio Project System Extensibility Documentation

Visual Studio can be extended in many ways, including adding new types of projects and augmenting existing ones. This repository contains the documentation and best practices for creating extensions that add new project types to Visual Studio. We welcome community input if you wish to contribute new topics or find any issues.

Introduction

The Visual Studio Common Project System (CPS) is a unified, extensible, scalable, performant project system that ships in the box with Visual Studio and is also rehostable to other hosts such as console apps and Azure web applications. It provides a rich, managed API that offers clients the ability to query and manipulate project data, as well as project type authors an extensible framework for customizing project behavior to suit their needs.

Why CPS?

Every language in VS has at least one project system behind it, and sometimes more. Each language also has many "flavors" that ship in the box. More languages and more flavors also ship as extensions to VS. Each of these comes with large source code bases and binary images that must be loaded in memory. Inconsistent behaviors between project system implementations make writing a component that interacts with more than one type of project very difficult. Documentation on expected behavior is sparse and often ambiguous.

CPS targets replacing all the project systems Microsoft ships, and allowing 3rd parties to also replace their own, with just one Common project system implementation that can be extended on a per-project basis to provide the unique experiences a type of project may require, but with very consistent behaviors everywhere else.

CPS has been designed with modern requirements in mind, so rebasing a project system on CPS automatically gives it the promise of rehostability (Monaco, Azure), scalability and performance that customers demand for their large solutions.

Is CPS right for me?

We hope so. Some project systems may be recreateable on CPS in just a few engineering weeks. More complex ones can obviously take much longer. One design principle behind CPS though is that when you build on CPS you focus on what makes your projects unique rather than spending 95% of your time implementing the same behaviors every other project system has....