ExplicitLayers 1.0.0.1
dotnet add package ExplicitLayers --version 1.0.0.1
NuGet\Install-Package ExplicitLayers -Version 1.0.0.1
<PackageReference Include="ExplicitLayers" Version="1.0.0.1" />
<PackageVersion Include="ExplicitLayers" Version="1.0.0.1" />
<PackageReference Include="ExplicitLayers" />
paket add ExplicitLayers --version 1.0.0.1
#r "nuget: ExplicitLayers, 1.0.0.1"
#:package ExplicitLayers@1.0.0.1
#addin nuget:?package=ExplicitLayers&version=1.0.0.1
#tool nuget:?package=ExplicitLayers&version=1.0.0.1
Intro
Are you tired of having discussions with your team about how to structure your project structure? Are you sick of having layers conflated with projects just to stop "bad developers" from referencing wrong things? This is exactly what you need. This nuget will add two things to your project:
- A Layer attribute for specifying to which layer a type (class, struct, interface) belongs to
- Analyzers which will warn you about forbidden references between layers
Installation
- Add a nuget to your project
- Add configuration to your .editorconfig file
dotnet_diagnostic.ExplicitLayers.comma_separated_layer_names = Domain,Infrastructure,Web
dotnet_diagnostic.ExplicitLayers.Infrastructure.comma_separated_allowed_dependencies = Domain
dotnet_diagnostic.ExplicitLayers.Web.comma_separated_allowed_dependencies = Domain,Infrastructure
dotnet_diagnostic.ExplicitLayers.Web.comma_separated_regex_paths = .*Web.*
Usage
Add [Layer("<layer-name>")]
to your classes to specify to which layer they belong.
Add all layer names to .editorconfig config as a comma separated list dotnet_diagnostic.ExplicitLayers.comma_separated_layer_names
.
Add rules for every layer to .editorconfig as a comma separated list dotnet_diagnostic.ExplicitLayers.<layer-name>.comma_separated_allowed_dependencies
.
Optionally add rules to .editorconfig to specify all types on a certain path belonging to a certain layer as comma separated list of regex patterns dotnet_diagnostic.ExplicitLayers.<layer-name>.comma_separated_regex_paths
.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
This package has no dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last Updated |
---|---|---|
1.0.0.1 | 499 | 7/23/2022 |
Initial version.