Skip to content

Latest commit

 

History

History
30 lines (24 loc) · 1.85 KB

Architecture.md

File metadata and controls

30 lines (24 loc) · 1.85 KB

Assembly Architecture

image

Laying 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.
  3. C# assemblies cannot depend on any VB assemblies and vice versa.
Assembly Description
Visual Studio Layer
Microsoft.VisualStudio.ProjectSystem.CSharp.VS Contains components to enable the opening and editing of C# projects within Visual Studio.
Microsoft.VisualStudio.ProjectSystem.VisualBasic.VS Contains components to enable the opening and editing of VB projects within Visual Studio.
Microsoft.VisualStudio.ProjectSystem.Managed.VS Contains components that are shared between C# and VB projects. Make note that eventually the expectation is that F# if it moves to CPS will eventually share much of its code with C#/VB.
Microsoft.VisualStudio.AppDesigner Contains the "Application Designer", which hosts property pages in a document window.
Microsoft.VisualStudio.Editors Contains resources and settings editors, and C#/VB property pages.
Host-Agnostic Layer
Microsoft.VisualStudio.ProjectSystem.CSharp Contains components to enable the opening and editing of C# projects agnostic of host.
Microsoft.VisualStudio.ProjectSystem.VisualBasic Contains components to enable the opening and editing of VB projects agnostic of host.
Microsoft.VisualStudio.ProjectSystem.Managed Contains components that are shared between C# and VB projects agnostic of host.

Long term we expect more assemblies as we pivot and componentize based on:

AppModels

  • WinForms
  • WPF
  • Web
  • CoreCLR