Architecture

July 18, 2019 ยท View on GitHub

layers01layers02

Layering Rules:

  1. Assemblies cannot depend on the layer above it
  2. Assemblies below the Visual Studio layer cannot depend on the Visual Studio SDK (no dependency on IVsXXX) nor any CPS-VS assembly. This layer and below should be hostable and usable outside of Visual Studio.

Host-Agnostic Layer

AssemblyDescription
Microsoft.VisualStudio.ProjectSystem.ManagedContains components that are shared between C#, F# and Visual Basic projects agnostic of host.

Visual Studio Layer

AssemblyDescription
Microsoft.VisualStudio.ProjectSystem.Managed.VSContains components that are shared between C#, F# and Visual Basic projects.

Visual Studio Designer Layer

AssemblyDescription
Microsoft.VisualStudio.AppDesignerContains the "Application Designer", which hosts property pages in a document window.
Microsoft.VisualStudio.EditorsContains resources and settings editors, and C#, F# and Visual Basic property pages.