⭐️ .NET 要在国内真正发展起来,必须得有一些追逐梦想的人在做着不计付出的事情,而我希望自己能贡献一份微薄之力。 ⭐️
Skip to main content

2.3 手动搭建分层

推荐使用脚手架

Furion 官方提供了非常灵活方便的脚手架,可以快速的创建多层架构项目。

推荐使用 《2.2 官方脚手架》代替本章节功能。

2.3.1 推荐分层设计

Furion 推荐采用多层项目设计架构,每一个项目层的依赖分别是:

  • YourName.Application:添加 YourName.Core 引用
  • YourName.Core:添加 Furion 引用SqlSugar 版本添加 Furion.Pure 🎗
  • YourName.Database.Migrations:添加 YourName.EntityFramework.Core 引用
  • YourName.EntityFramework.Core:添加 YourName.Core 引用
  • YourName.Web.Core:添加 YourName.ApplicationYourName.Database.Migrations 引用
  • YourName.Web.Entry:添加 YourName.Web.Core 引用 和 Microsoft.EntityFrameworkCore.Tools
特别说明

如果采用 EFCore 以外的 ORM 框架,如 SqlSugar,那么无需创建 YourName.Database.MigrationsYourName.EntityFramework.Core 层。

另外 YourName.Web.Entry 无需引用 Microsoft.EntityFrameworkCore.Tools 包。

2.3.2 集成 Furion 功能

项目搭建好之后,集成 Furion 框架只需要在 Program.cs 中 添加 Inject() 方法即可:

  • .NET5 版本:
using Microsoft.AspNetCore.Hosting;using Microsoft.Extensions.Hosting;namespace YourName.Web.Entry{    public class Program    {        public static void Main(string[] args)        {            CreateHostBuilder(args).Build().Run();        }        public static IHostBuilder CreateHostBuilder(string[] args)        {            return Host.CreateDefaultBuilder(args)                .ConfigureWebHostDefaults(webBuilder =>                {                    webBuilder.Inject()                              .UseStartup<Startup>();                });        }    }}
  • .NET6 版本
var builder = WebApplication.CreateBuilder(args).Inject();builder.Services.AddControllers().AddInject();var app = builder.Build();app.UseHttpsRedirection();app.UseAuthorization();app.UseInject();app.MapControllers();app.Run();

2.3.3 反馈与建议

与我们交流

给 Furion 提 Issue