嗨朋友們,大家好!
還記得我是誰嗎?
對了!
我就是 .NET 打勞工 玩雙截棍的熊貓

今天呐,我特别要向 寫架構 的朋友們,想要寫架構 ** 的朋友們,已經有架構** 的朋友問聲好!
為什麼呢?因為我在 二零二零年 寫了一個小類庫。
衆所周知,在.NET方面的開發架構 Abp (本文皆指 Abp VNEXT ) 有相當的知名度,下面我就跟大家講一講:
使用 Abp 架構的時候,我們都知道它有子產品化系統,很好用啊,但是要依賴
Volo.Abp
,裡面有很多多餘的依賴,我說朋友們有沒有更幹淨輕量的子產品化實作啊?
隻聽見下面有一個:我來!
這個時候,我一看,朋友們,人群當中,鑽出一個 Riven.Modular !
哇!
他整個看起來就像是 Abp 的子產品化,特别顯眼,我一下就點了進去。
我說你有什麼 優點 呢?
它說
- 依賴少,隻依賴于
- Microsoft.Extensions.DependencyInjection 微軟官方依賴注入庫
- Microsoft.Extensions.Configuration 微軟官方配置庫
- JetBrains.Annotations JetBrains代碼分析庫
- 相容性強,基于
開發,支援netstandard2.0
- .net framework 4.6.1 或更高版本
- .net core 2.1 或更高版本
- 适用面廣
- asp.net core
- winform
- console
我說怎麼開始使用呢?
// dotnet cli
dotnet add package Riven.Modular
// nuget package manager
Install-Package Riven.Modular
// 引入命名空間
using Riven;
using Riven.Modular;
// 建立一個子產品
[DependsOn(
typeof(依賴的其它子產品))
)]
public class MyAppModule : AppModule
{
public override void OnPreConfigureServices(ServiceConfigurationContext context)
{
// 注冊服務之前
}
public override void OnConfigureServices(ServiceConfigurationContext context)
{
// 注冊服務
}
public override void OnPostConfigureServices(ServiceConfigurationContext context)
{
// 注冊服務之後
}
public override void OnPreApplicationInitialization(ApplicationInitializationContext context)
{
// 應用初始化之前
}
public override void OnApplicationInitialization(ApplicationInitializationContext context)
{
// 應用初始化
}
public override void OnPostApplicationInitialization(ApplicationInitializationContext context)
{
// 應用初始化之後
}
public override void OnApplicationShutdown(ApplicationShutdownContext context)
{
// 應用停止
}
}
// 在 asp.net core中使用
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection.Extensions;
using Riven;
namespace 你的命名空間
{
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
public void ConfigureServices(IServiceCollection services)
{
// 你的代碼
services.AddRivenModule<MyAppModule>(Configuration);
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
app.ApplicationServices.UseRivenModule();
// 你的代碼
}
}
}
我說在 控制台 項目裡怎麼用啊?
// dotnet cli
dotnet add package Riven.Modular
// nuget package manager
Install-Package Riven.Modular
// dotnet cli
dotnet add Microsoft.Extensions.Configuration
dotnet add Microsoft.Extensions.Configuration.Json
dotnet add Microsoft.Extensions.DependencyInjection
// nuget package manager
Install-Package Microsoft.Extensions.Configuration
Install-Package Microsoft.Extensions.Configuration.Json
Install-Package Microsoft.Extensions.DependencyInjection
using System;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Riven;
namespace 你的命名空間
{
class Program
{
static void Main(string[] args)
{
// 你應用的配置
var Configuration = GetAppConfiguration();
//
IServiceCollection services = new ServiceCollection();
services.AddSingleton<IConfiguration>(Configuration);
services.AddRivenModule<MyAppModule>(Configuration);
//
IServiceProvider serviceProvider = services.BuildServiceProvider();
serviceProvider.UseRivenModule();
}
static IConfiguration GetAppConfiguration()
{
var configurationBuilder = new ConfigurationBuilder();
return configurationBuilder
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
.Build();
}
}
}
我當時說了一句,你這不就是 Abp 的子產品化嗎!
它也說了一句,這就是Abp 的子產品化的精簡版,幾乎一個摸樣!
點進 源代碼 之後,馬上就看到了一個
它還說 Abp 為全國 .NET 打勞工做了一件大好事。
因為在這個 Abp 當中,不僅可以快速開發做業務,同時也能看源碼學習知識。
可以說從 Riven.Modular 身上,我們可以看到全國的.NET打勞工都在進步的。
這就叫:
看源碼學代碼,我有知識我自豪!
好了親愛的朋友們,歡樂的時光總是短暫的,又到時候講拜拜了
如果覺得好用的話請 收藏 轉發 star fork 一把梭 源碼倉庫
C# 子產品化 架構
ASP.NET CORE 子產品化 架構
aspnet core 子產品化 架構
.net core 子產品化 架構
目前學習.NET Core 最好的教程
.NET Core 官方教程
ASP.NET Core
官方教程
如果您認為這篇文章還不錯或者有所收獲,您可以點選右下角的【推薦】支援,或請我喝杯咖啡【贊賞】,這将是我繼續寫作,分享的最大動力!
作者:玩雙截棍的熊貓
聲明:原創部落格!請在轉載時在文章開頭注明本人部落格位址。如發現錯誤,歡迎批評指正。凡是轉載于本人的文章,不能設定打賞功能,如有特殊需求請與本人聯系!