早安打工人! 来把你的.NET程序模块化吧
嗨朋友们,大家好!
还记得我是谁吗?
对了!
我就是 .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 clidotnet add package Riven.Modular// nuget package managerInstall-Package Riven.Modular
引入命名空间
using Riven;using Riven.Modular;
新建一个模块
[]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(Configuration); }public void Configure(IApplicationBuilder app, IWebHostEnvironment env){app.ApplicationServices.UseRivenModule();// 你的代码}}}
我说在 控制台 项目里怎么用啊?
它说
// dotnet clidotnet add package Riven.Modular// nuget package managerInstall-Package Riven.Modular
// dotnet clidotnet add Microsoft.Extensions.Configurationdotnet add Microsoft.Extensions.Configuration.Jsondotnet add Microsoft.Extensions.DependencyInjection// nuget package managerInstall-Package Microsoft.Extensions.ConfigurationInstall-Package Microsoft.Extensions.Configuration.JsonInstall-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(Configuration); services.AddRivenModule(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 一把梭 源码仓库
