⭐️ Furion v4 版本支持【所有历史版本】无缝升级,一套代码兼容 .NET 5+ ⭐️
Skip to main content

2.2 官方脚手架

特别说明

脚手架不是安装在项目中的! 而是通过 CMDPowerShell 安装到操作系统中的。

2.2.1 脚手架

Furion 官方提供了多种 Web 应用类型的脚手架,方便大家快速创建多层架构项目。目前支持以下应用脚手架:

2.2.1.1 Furion + EFCore

模板类型名称版本关键词描述
nugetFurion.Template.Mvcnuget👉 furionmvcMvc 模板
nugetFurion.Template.Apinuget👉 furionapiWebApi 模板
nugetFurion.Template.Appnuget👉 furionappMvc/WebApi 模板
nugetFurion.Template.Razornuget👉 furionrazorRazorPages 模板
nugetFurion.Template.RazorWithWebApinuget👉 furionrazorapiRazorPages/WebApi 模板
nugetFurion.Template.Blazornuget👉 furionblazorBlazor 模板
nugetFurion.Template.BlazorWithWebApinuget👉 furionblazorapiBlazor/WebApi 模板

2.2.1.2 Furion + SqlSugar

SqlSugar 优点

弥补 EF Core 上手难度:支持线程安全、支持多库事务、多库兼容、多库查询和多库切换。

模板类型名称版本关键词描述
nugetFurion.SqlSugar.Template.Mvcnuget👉 fsmvcMvc 模板
nugetFurion.SqlSugar.Template.Apinuget👉 fsapiWebApi 模板
nugetFurion.SqlSugar.Template.Appnuget👉 fsappMvc/WebApi 模板
nugetFurion.SqlSugar.Template.Razornuget👉 fsrazorRazorPages 模板
nugetFurion.SqlSugar.Template.RazorWithWebApinuget👉 fsrazorapiRazorPages/WebApi 模板
nugetFurion.SqlSugar.Template.Blazornuget👉 fsblazorBlazor 模板
nugetFurion.SqlSugar.Template.BlazorWithWebApinuget👉 fsblazorapiBlazor/WebApi 模板

2.2.2 安装脚手架

打开 CMDPowershell 执行模板安装命令(新版本 --install 可换成 install):

// EFCoredotnet new --install Furion.Template.Mvc::4.4.9// SqlSugardotnet new --install Furion.SqlSugar.Template.Mvc::4.4.9
SqlSugar 脚手架基本使用

SqlSugar 脚手架中,Core 层包含了一个 DbContext.cs 类,可通过 DbContext.Instance 就可以获取到 SqlSugarScope 对象。

数据库链接字符串在启动层 appsettings.json 文件的 ConnectionConfigs 节点中配置,对应的是 SqlSugar 中的 ConnectionConfig[] 对象。

2.2.3 使用脚手架

dotnet new furionmvc -n 项目名称

这样就可以生成项目代码了,生成之后推荐将所有的 nuget 包更新到最新版本。

关于项目名称

通过脚手架生成的项目名称不能包含 短横线 等特殊字符,如有该需求,可在生成之后通过 Visual Studio 进行手动修改。

特别提醒

furionmvc 对应的是上面列表的 关键字,我们也可以通过 dotnet new --list 查看。

想了解更多可以使用 dotnet new 关键字 --help 查看更多参数。

2.2.4 脚手架更新

只需要重新安装最新版替换即可,如:

dotnet new --install Furion.Template.Mvc::2.x.x

不带版本号总是安装最新的版本。

2.2.5 Visual Studio 集成

通过命令安装脚手架后,升级 Visual Studio 到最新版可使用可视化方式创建哦。

2.2.6 关于 MVC 添加区域出错问题

由于 Furion 底层依赖了 Microsoft.CodeAnalysis.CSharp 包,所以可能通过 Viusal Studio 的界面添加 Area 区域 时会出错,这时候只需要在 Web.Entry 层安装下面几个包即可:

  • Microsoft.CodeAnalysis.CSharp.Features
  • Microsoft.CodeAnalysis.CSharp.Scripting
  • Microsoft.CodeAnalysis.VisualBasic.Features
  • Microsoft.CodeAnalysis.Workspaces.MSBuild
  • Microsoft.VisualStudio.Web.CodeGeneration.Design

2.2.7 使用 .NET5 脚手架

目前 Furion 只提供了 .NET6+ 版本脚手架,如需使用 .NET 版本,可创建之后执行下面步骤:

  1. 替换 <TargetFramework>net6.0</TargetFramework><TargetFramework>net5.0</TargetFramework>

  2. 编辑所有层 .csproj 文件并添加 <LangVersion>10.0</LangVersion>,如:

<PropertyGroup>    <TargetFramework>net5.0</TargetFramework>    <LangVersion>10.0</LangVersion>    <!-- 其他配置 --></PropertyGroup>
  1. 如果使用的是 EFCore 版本则需要将启动层的 Microsoft.EntityFrameworkCore.Tools 版本改为 5.0.17 版本,如编辑启动层的 Web.Entry.csproj
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="6.0.7">    <PrivateAssets>all</PrivateAssets>    <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets></PackageReference>

改为:

<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="5.0.17">    <PrivateAssets>all</PrivateAssets>    <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets></PackageReference>
  1. 在启动层添加 Startup.cs 文件
namespace YourProject.Web.Entry;    // 你的项目命名空间public class Startup{    public Startup(IConfiguration configuration)    {        Configuration = configuration;    }    public IConfiguration Configuration { get; }    public void ConfigureServices(IServiceCollection services)    {    }    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)    {    }}
  1. 修改 Program.cs 为:
using YourProject.Web.Entry;Serve.Run<Startup>(RunOptions.Default);

2.2.8 搭建脚手架

脚手架可以极大的提高我们搭建新项目的速度,推荐两篇文章给大家学习:

https://www.cnblogs.com/laozhang-is-phi/p/10205495.html

https://www.cnblogs.com/catcher1994/p/10061470.html

推荐直接拷贝 Furion 脚手架文件夹进行修改,可避免很多问题。

Furion 脚手架源码

2.2.9 反馈与建议

与我们交流

给 Furion 提 Issue


了解更多

想了解更多 模板知识 知识可查阅 dotnet-new 模板 章节。

演练场