Bonyan.AspNetCore
1.0.8
See the version list below for details.
dotnet add package Bonyan.AspNetCore --version 1.0.8
NuGet\Install-Package Bonyan.AspNetCore -Version 1.0.8
<PackageReference Include="Bonyan.AspNetCore" Version="1.0.8" />
paket add Bonyan.AspNetCore --version 1.0.8
#r "nuget: Bonyan.AspNetCore, 1.0.8"
// Install Bonyan.AspNetCore as a Cake Addin #addin nuget:?package=Bonyan.AspNetCore&version=1.0.8 // Install Bonyan.AspNetCore as a Cake Tool #tool nuget:?package=Bonyan.AspNetCore&version=1.0.8
Bonyan Library Overview and Project Blueprint
Welcome to the Bonyan Library! This guide will help you understand the core structure and clean architecture approach of Bonyan
, an encapsulated .NET Core solution that emphasizes maintainability and modularity while not relying too heavily on all .NET Core features. The focus is on Clean Architecture principles to ensure separation of concerns and a highly maintainable codebase.
Installation Methods
You can install the Bonyan
packages using any of the following methods:
1. .NET CLI
Use the .NET Command Line Interface to add the Bonyan.AspNetCore
package to your project:
dotnet add package Bonyan.AspNetCore
2. Package Manager Console (Visual Studio)
Alternatively, you can use the Package Manager Console available in Visual Studio:
Install-Package Bonyan.AspNetCore
3. PackageReference
Another option is to manually add the package reference in your project .csproj
file:
<ItemGroup>
<PackageReference Include="Bonyan.AspNetCore" Version="latest" />
</ItemGroup>
Make sure to replace latest
with the version of the package you want to use.
Using Bonyan in Your Project
Once the Bonyan
package is installed, you can configure it in your project by setting up an application builder. Here's a sample code snippet to get you started:
var builder = BonyanApplication
.CreateApplicationBuilder<BonyanTemplateModule>(args);
var app = builder.Build();
app.Run();
This will create and configure a basic Bonyan application.
Module Structure and Clean Architecture Blueprint
In Bonyan
, each module should inherit from Module
(or WebModule
for web-related modules). A module encapsulates a specific part of the application, promoting modularity and separation of concerns in line with Clean Architecture principles. This approach limits the direct use of the .NET Core features in favor of focusing on a more abstract and flexible design.
High-Level Structure
The Bonyan
library is built on a modular architecture that promotes:
- Encapsulation: Each module has well-defined responsibilities and hides implementation details.
- Separation of Concerns: Different application layers are clearly separated to facilitate easier testing and maintainability.
- Dependency Management: Modules define their dependencies explicitly using attributes like
DependOnAttribute
to ensure proper initialization order.
Example Module
Below is a basic example of how you can create a module:
namespace BonyanTemplate.Api
{
public class BonyanTemplateModule : Module
{
public override Task OnConfigureAsync(ModularityContext context)
{
// Custom configuration code here
return base.OnConfigureAsync(context);
}
public override Task OnInitializeAsync(ModularityInitializedContext context)
{
// Custom initialization code here
return base.OnInitializeAsync(context);
}
}
}
In this setup, each module encapsulates its behavior, ensuring that the logic is self-contained and follows the Clean Architecture principles.
Specifying Dependencies with DependOnAttribute
Bonyan allows you to define module dependencies using the DependOnAttribute
. This attribute helps in managing dependencies between various modules, ensuring that dependent modules are loaded in the correct order. This approach aligns with Clean Architecture's focus on managing dependencies to keep the application flexible and testable.
Here’s how you can specify a dependency between modules:
using Bonyan.Modularity;
namespace BonyanTemplate.Api
{
[DependOn(typeof(AnotherModule))]
public class BonyanTemplateModule : Module
{
public override Task OnConfigureAsync(ModularityContext context)
{
// Module configuration code
return base.OnConfigureAsync(context);
}
}
}
In this example, BonyanTemplateModule
depends on AnotherModule
, meaning AnotherModule
will be initialized before BonyanTemplateModule
. This is particularly useful for managing complex applications that contain multiple interdependent modules.
Summary
- Install
Bonyan.AspNetCore
using CLI, Visual Studio, or by adding it to your.csproj
file. - Create a custom module by inheriting from
Module
orWebModule
. - Use
DependOnAttribute
to manage dependencies between your modules and adhere to Clean Architecture principles.
For more detailed information, please refer to the official documentation or contact the maintainers of the Bonyan library. We hope this guide helps you get started with Bonyan!
Example Console Output
Here is an example of what the console output might look like when modules with dependencies are created:
- BonyanTemplateModule created
- BonyanFastEndpointSecurityModule created
- BonyanFastEndpointModule created
- BonyanAspNetCoreModule created
This output shows the order in which the modules are initialized, respecting their dependencies, and emphasizes the Clean Architecture approach to modularity.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. 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. |
NuGet packages (13)
Showing the top 5 NuGet packages that depend on Bonyan.AspNetCore:
Package | Downloads |
---|---|
Bonyan.AspNetCore.MultiTenant
Package Description |
|
Bonyan.AspNetCore.Persistence
Package Description |
|
Bonyan.AspNetCore.FastEndpoints
Package Description |
|
Bonyan.UserManagement.Web
Package Description |
|
Bonyan.TenantManagement.Web
Package Description |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
1.2.1 | 87 | 11/19/2024 |
1.2.0 | 78 | 11/18/2024 |
1.2.0-pre3 | 78 | 11/16/2024 |
1.2.0-pre2 | 67 | 11/16/2024 |
1.2.0-pre1 | 158 | 11/16/2024 |
1.1.9 | 184 | 11/14/2024 |
1.1.8 | 158 | 11/14/2024 |
1.1.7 | 150 | 11/14/2024 |
1.1.6 | 159 | 11/14/2024 |
1.1.6-pre3 | 156 | 11/9/2024 |
1.1.6-pre2 | 125 | 11/7/2024 |
1.1.6-pre1 | 122 | 11/7/2024 |
1.1.5 | 127 | 11/6/2024 |
1.1.4 | 141 | 11/6/2024 |
1.1.3 | 132 | 11/5/2024 |
1.1.2-pre7 | 125 | 11/2/2024 |
1.1.2-pre6 | 121 | 11/2/2024 |
1.1.2-pre5 | 118 | 11/2/2024 |
1.1.2-pre4 | 115 | 11/2/2024 |
1.1.2-pre3 | 128 | 11/2/2024 |
1.1.2-pre2 | 123 | 11/2/2024 |
1.1.2-pre1 | 116 | 11/1/2024 |
1.1.1 | 138 | 10/30/2024 |
1.1.0 | 104 | 10/28/2024 |
1.0.9 | 153 | 10/28/2024 |
1.0.9-pre4 | 122 | 10/28/2024 |
1.0.9-pre3 | 123 | 10/28/2024 |
1.0.9-pre2 | 126 | 10/28/2024 |
1.0.9-pre1 | 114 | 10/27/2024 |
1.0.8 | 133 | 10/27/2024 |
1.0.7 | 135 | 10/24/2024 |
1.0.6-dev1 | 134 | 9/12/2024 |
1.0.5 | 154 | 9/12/2024 |
1.0.5-pre7 | 137 | 9/12/2024 |
1.0.5-pre6 | 146 | 9/11/2024 |
1.0.5-pre5 | 141 | 9/10/2024 |
1.0.5-pre4 | 129 | 9/10/2024 |
1.0.5-pre3 | 130 | 9/10/2024 |
1.0.5-pre2 | 128 | 9/10/2024 |
1.0.5-pre1 | 147 | 9/9/2024 |
1.0.4 | 129 | 9/9/2024 |
1.0.3 | 128 | 9/9/2024 |
1.0.2 | 124 | 9/8/2024 |
1.0.2-pre1 | 95 | 9/8/2024 |
1.0.1 | 115 | 9/8/2024 |
1.0.0 | 116 | 9/8/2024 |