Structurizr for .NET
C#
Clone or download
Permalink
Failed to load latest commit information.
Structurizr.ActiveDirectory Separated the APi client from the core library, and created a new Str… Aug 12, 2018
Structurizr.AdrTools.Tests Added support for decision records. Aug 12, 2018
Structurizr.AdrTools Some fixes for dates not showing up in the JSON. Aug 14, 2018
Structurizr.Analysis Separated out the analysis types from the core library. Aug 12, 2018
Structurizr.Annotations Separated the APi client from the core library, and created a new Str… Aug 12, 2018
Structurizr.Cecil.Examples Separated the APi client from the core library, and created a new Str… Aug 12, 2018
Structurizr.Cecil Separated out the analysis types from the core library. Aug 12, 2018
Structurizr.Client.Tests Separated the APi client from the core library, and created a new Str… Aug 12, 2018
Structurizr.Client Some fixes for dates not showing up in the JSON. Aug 14, 2018
Structurizr.Core.Tests Added a check for documentation/decision content being specified. Aug 15, 2018
Structurizr.Core Added a check for documentation/decision content being specified. Aug 15, 2018
Structurizr.Examples Separated the APi client from the core library, and created a new Str… Aug 12, 2018
Structurizr.PlantUML.Tests Moved the PlantUML writer to its own project. Also fixes issue #36. Aug 12, 2018
Structurizr.PlantUML Separated the APi client from the core library, and created a new Str… Aug 12, 2018
Structurizr.Reflection.Examples Separated the APi client from the core library, and created a new Str… Aug 12, 2018
Structurizr.Reflection Separated out the analysis types from the core library. Aug 12, 2018
Structurizr.Roslyn Separated out the analysis types from the core library. Aug 12, 2018
docs Updated version numbers. Aug 12, 2018
.gitignore Added some more docs and examples. Jul 20, 2017
.travis.yml Added a Travis config file. Jun 29, 2016
LICENSE Initial commit Mar 4, 2016
README.md Added support for the HTTP-based health checks feature. Jun 21, 2018
Structurizr.sln Separated out the analysis types from the core library. Aug 12, 2018
appveyor.yml Add build number to prerelease version Aug 2, 2017

README.md

Structurizr

Structurizr for .NET

This GitHub repository is a collection of tooling to help you visualise, document and explore the software architecture of a software system. In summary, it allows you to create a software architecture model based upon Simon Brown's C4 model using C# code, and then export that model to be visualised using tools such as:

  1. Structurizr: a web-based software as a service and on-premises product to render software architecture diagrams and supplementary Markdown/AsciiDoc documentation.
  2. PlantUML: a tool to create UML diagrams using a simple textual domain specific language.

As an example, the following C# code can be used to create a software architecture model that describes a user using a software system.

Workspace workspace = new Workspace("Getting Started", "This is a model of my software system.");
Model model = workspace.Model;

Person user = model.AddPerson("User", "A user of my software system.");
SoftwareSystem softwareSystem = model.AddSoftwareSystem("Software System", "My software system.");
user.Uses(softwareSystem, "Uses");

ViewSet viewSet = workspace.Views;
SystemContextView contextView = viewSet.CreateSystemContextView(softwareSystem, "SystemContext", "An example of a System Context diagram.");
contextView.AddAllSoftwareSystems();
contextView.AddAllPeople();

Styles styles = viewSet.Configuration.Styles;
styles.Add(new ElementStyle(Tags.SoftwareSystem) { Background = "#1168bd", Color = "#ffffff" });
styles.Add(new ElementStyle(Tags.Person) { Background = "#08427b", Color = "#ffffff", Shape = Shape.Person });

If using Structurizr, the end-result, after adding some styling and positioning the diagram elements, is a system context diagram like this:

Getting Started with Structurizr for .NET

You can see the live workspace at https://structurizr.com/share/25441.

Build status

Table of contents