日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

[开源] FreeSql.AdminLTE.Tools 根据实体类生成后台管理代码

發(fā)布時(shí)間:2023/12/18 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [开源] FreeSql.AdminLTE.Tools 根据实体类生成后台管理代码 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

前言

FreeSql 發(fā)布至今已經(jīng)有9個(gè)月,功能漸漸完善,自身的生態(tài)也逐步形成,早在幾個(gè)月前寫(xiě)過(guò)一篇文章《ORM 開(kāi)發(fā)環(huán)境之利器:MVC 中間件 FreeSql.AdminLTE》,您可以先閱讀上一篇文章內(nèi)容了解來(lái)龍去脈,再回到這里觀看。

我個(gè)人非常喜歡小規(guī)模團(tuán)隊(duì)的"單打獨(dú)斗",有的時(shí)候即使在大公司,也是做著3-5個(gè)人團(tuán)隊(duì)的小項(xiàng)目,相信不少人有類(lèi)似的經(jīng)歷。

從上一篇文章可以看出,早先的 FreeSql.AdminLTE 只不過(guò)是花瓶,應(yīng)用場(chǎng)景非常有限,僅僅在開(kāi)發(fā)環(huán)境時(shí)管理測(cè)試數(shù)據(jù)的用途,這之后的幾個(gè)月其實(shí)我基本沒(méi)使用它。。。是不是很尷尬??

本次功能升級(jí)情況有所改觀,且先看完本文內(nèi)容。

  • 我喜歡已有的管理功能,希望可以在默認(rèn)產(chǎn)生的功能上進(jìn)行二次開(kāi)發(fā);

  • 我喜歡盡量簡(jiǎn)單,容易上手,二次開(kāi)發(fā)難度別要太大。

說(shuō)到開(kāi)源還是先貼上源碼倉(cāng)庫(kù)吧:https://github.com/2881099/FreeSql.AdminLTE,主項(xiàng)目 FreeSql 目前有900多星,歡迎同時(shí)給贊,謝謝!

項(xiàng)目背景

對(duì)于通用后臺(tái)管理系統(tǒng)的生成,除了單純的對(duì)單表 crud 操作外,我還喜歡有外鍵的操作,比如:

1、Song、Tag 多對(duì)多場(chǎng)景,添加/更新 Song 時(shí)可以把 Tag 一起保存;

2、列表頁(yè),希望外鍵、多對(duì)多出現(xiàn)在過(guò)濾篩選條件;

3、列表頁(yè),希望枚舉出現(xiàn)在過(guò)濾篩選條件;

等等諸如此類(lèi)的繁瑣操作,之所以說(shuō)繁瑣,是因?yàn)檫@些工作技術(shù)不難,屬于嚴(yán)重的重復(fù)勞動(dòng)。

在人員配備苛刻的環(huán)境下,選擇盡量靠工具提高生產(chǎn)效率,這樣我們才有更多的時(shí)間在上班摸魚(yú)。。。

既然 ORM 已經(jīng)對(duì)實(shí)體進(jìn)行了配置,利用已存在的條件便利的產(chǎn)生后臺(tái)管理功能,真是一大快事!!

功能庫(kù)劃分

項(xiàng)目版本
FreeSql.AdminLTEnetstandard2.0、net45
FreeSql.AdminLTE.Toolsnetcoreapp2.1
FreeSql.AdminLTE.Previewnetstandard2.0

三個(gè)包產(chǎn)生的 AdminLTE 功能幾乎一樣,都是根據(jù)實(shí)體類(lèi)、導(dǎo)航關(guān)系生成默認(rèn)的繁瑣的后臺(tái)管理功能。

共同的輸入條件:

  • 實(shí)體類(lèi)的注釋(請(qǐng)開(kāi)啟項(xiàng)目XML文檔);
  • 實(shí)體類(lèi)的導(dǎo)航屬性配置(可生成繁瑣的常用后臺(tái)管理功能)。

FreeSql.AdminLTE.Preview

.NETCore MVC 中間件,基于 AdminLTE 前端框架動(dòng)態(tài)產(chǎn)生指定 FreeSql 實(shí)體的增刪查改的【預(yù)覽管理功能】。

使用場(chǎng)景:開(kāi)發(fā)環(huán)境的測(cè)試數(shù)據(jù)生產(chǎn)。

dotnet add package FreeSql.AdminLTE.Preview

public void ConfigureServices(IServiceCollection services) {services.AddSingleton<IFreeSql>(fsql); }public void Configure(IApplicationBuilder app) {app.UseFreeAdminLtePreview("/testadmin/",typeof(TestDemo01.Entitys.Song),typeof(TestDemo01.Entitys.Tag)); }

FreeSql.AdminLTE

根據(jù) FreeSql 實(shí)體類(lèi)配置、導(dǎo)航關(guān)系配置,快速生成基于 MVC + Razor + AdminLTE 的后臺(tái)管理系統(tǒng)的增刪查改代碼【支持二次開(kāi)發(fā)】。

使用場(chǎng)景:asp.net/asp.netcore 后臺(tái)管理系統(tǒng)快速生成,二次開(kāi)發(fā)【自定義】。

dotnet add package FreeSql.AdminLTE

using (var gen = new FreeSql.AdminLTE.Generator(new GeneratorOptions())) {gen.Build("d:/test/", new[] { typeof(TestDemo01.Entitys.Song) }, false); }

提醒!提醒!提醒!

生成后的 Controller、Razor 代碼依賴(lài) FreeSql.DbContext 庫(kù),請(qǐng)手工添加

重磅功能:FreeSql.AdminLTE.Tools

什么樣的工具更加高效?

命令行。。。命令行。。。命令行。。。必須是它!!!

簡(jiǎn)單介紹一下Global Tools,它是.NET Core 2.1 中一個(gè)初次出現(xiàn)的特性。Global Tools提供了一種方法,讓開(kāi)發(fā)人員編寫(xiě)的.NET Core應(yīng)用可以打包成NuGet包交付。如果.NET Core運(yùn)行在目標(biāo)平臺(tái)上,那么一個(gè)恰當(dāng)打包的Global Tool就可以在那上面運(yùn)行。JavaScript開(kāi)發(fā)人員可能會(huì)發(fā)現(xiàn)一件有趣的事,就是這個(gè)工具直接借鑒了NPM Global Tools。

FreeSql.AdminLTE.Tools 是對(duì) FreeSql.AdminLTE 功能的工具命令化封裝,命令行快速生成代碼。

使用場(chǎng)景:asp.netcore 后臺(tái)管理系統(tǒng)快速生成,二次開(kāi)發(fā)。

dotnet tool install -g FreeSql.AdminLTE.Tools


進(jìn)入后臺(tái)項(xiàng)目(可以是空項(xiàng)目、或已存在的項(xiàng)目),執(zhí)行以下命令

FreeSql.AdminLTE.Tools -Find MyTest.Model..+

命令行參數(shù)說(shuō)明
-Find* 匹配實(shí)體類(lèi)FullName的正則表達(dá)式
-ControllerNameSpace控制器命名空間(默認(rèn):FreeSql.AdminLTE)
-ControllerRouteBase控制器請(qǐng)求路徑前輟(默認(rèn):/AdminLTE/)
-ControllerBase控制器基類(lèi)(默認(rèn):Controller)
-First是否生成 ApiResult.cs、index.html、htm 靜態(tài)資源(首次生成)
-Output輸出路徑(默認(rèn):當(dāng)前目錄)

打開(kāi) command 命令行,執(zhí)行效果如下:

>dotnet tool install -g FreeSql.AdminLTE.Tools 可使用以下命令調(diào)用工具: FreeSql.AdminLTE.Tools 已成功安裝工具“freesql.adminlte.tools”(版本“0.9.4”)。>FreeSql.AdminLTE.Tools____ ____ __/ __/ ____ ___ ___ / __/ ___ _ / // _/ / __// -_)/ -_) _\ \ / _ `/ / //_/ /_/ \__/ \__/ /___/ \_, / /_//_/# Github # https://github.com/2881099/FreeSql基于 .NETCore 2.1 環(huán)境,在控制臺(tái)當(dāng)前目錄的項(xiàng)目下,根據(jù)實(shí)體類(lèi)生成 AdminLTE 后臺(tái)管理功能的相關(guān)文件。# 生成條件 #1、實(shí)體類(lèi)的注釋(請(qǐng)開(kāi)啟項(xiàng)目XML文檔);2、實(shí)體類(lèi)的導(dǎo)航屬性配置(可生成繁瑣的常用后臺(tái)管理功能)。# 快速開(kāi)始 #> FreeSql.AdminLTE.Tools -Find MyTest\.Model\..+-Find * 匹配實(shí)體類(lèi)FullName的正則表達(dá)式-ControllerNameSpace 控制器命名空間(默認(rèn):FreeSql.AdminLTE)-ControllerRouteBase 控制器請(qǐng)求路徑前輟(默認(rèn):/AdminLTE/)-ControllerBase 控制器基類(lèi)(默認(rèn):Controller)-First 是否生成 ApiResult.cs、index.html、htm 靜態(tài)資源(首次生成)-Output 輸出路徑(默認(rèn):當(dāng)前目錄)# 生成到其他目錄 #> FreeSql.AdminLTE.Tools -Find MyTest\.Model\..+ -Output d:/test

演示

1、在桌面創(chuàng)建目錄:MyProject

2、打開(kāi) cmd,進(jìn)行 MyProject 目錄,win10 下打開(kāi) MyProject 目錄點(diǎn)擊地址欄錄入 cmd 可快速打開(kāi) cmd,并且目錄為當(dāng)前地址

3、執(zhí)行 dotnet new webapi

C:\Users\28810\Desktop\MyProject>dotnet new webapi 已成功創(chuàng)建模板“ASP.NET Core Web API”。正在處理創(chuàng)建后操作... 正在 C:\Users\28810\Desktop\MyProject\MyProject.csproj 上運(yùn)行 "dotnet restore"...正在還原 C:\Users\28810\Desktop\MyProject\MyProject.csproj 的包...正在生成 MSBuild 文件 C:\Users\28810\Desktop\MyProject\obj\MyProject.csproj.nuget.g.props。正在生成 MSBuild 文件 C:\Users\28810\Desktop\MyProject\obj\MyProject.csproj.nuget.g.targets。C:\Users\28810\Desktop\MyProject\MyProject.csproj 的還原在 1.11 sec 內(nèi)完成。還原成功。

4、執(zhí)行 dotnet add package FreeSql.Provider.Sqlite

5、執(zhí)行 dotnet add package FreeSql.DbContext

6、創(chuàng)建幾個(gè)常用的實(shí)體類(lèi),點(diǎn)擊下載演示的實(shí)體類(lèi)

7、確定項(xiàng)目可以編譯通過(guò)

C:\Users\28810\Desktop\MyProject>dotnet build 用于 .NET Core 的 Microsoft (R) 生成引擎版本 15.9.20+g88f5fadfbe 版權(quán)所有(C) Microsoft Corporation。保留所有權(quán)利。C:\Users\28810\Desktop\MyProject\MyProject.csproj 的還原在 65.32 ms 內(nèi)完成。MyProject -> C:\Users\28810\Desktop\MyProject\bin\Debug\netcoreapp2.2\MyProject.dllMyProject -> C:\Users\28810\Desktop\MyProject\bin\Debug\netcoreapp2.2\MyProject.Views.dll已成功生成。0 個(gè)警告0 個(gè)錯(cuò)誤已用時(shí)間 00:00:01.82

8、執(zhí)行 FreeSql.AdminLTE.Tools -Find MyProject.Model..+ -First

請(qǐng)開(kāi)啟項(xiàng)目 xml 文檔生成功能,再執(zhí)行此操作

9、運(yùn)行項(xiàng)目,執(zhí)行 dotnet run

由于這是一個(gè)普通 webapi 項(xiàng)目,沒(méi)有開(kāi)啟靜態(tài)資源訪問(wèn),所以請(qǐng)?jiān)?Startup.cs 中修改:

public class Startup {public Startup(){Fsql = new FreeSql.FreeSqlBuilder().UseConnectionString(FreeSql.DataType.Sqlite, @"Data Source=|DataDirectory|/test.db;Pooling=true;Max Pool Size=5").UseAutoSyncStructure(true).Build();}public static IFreeSql Fsql { get; private set; }public void ConfigureServices(IServiceCollection services){services.AddSingleton<IFreeSql>(Fsql);services.AddMvc();}public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory){app.UseDeveloperExceptionPage();app.UseMvc();app.UseDefaultFiles();app.UseStaticFiles();} }

10、打開(kāi)瀏覽器訪問(wèn)上一步提示的地址,比如:http://localhost:57844/adminlte/index.html

感悟

不是不喜歡用 vue,其實(shí)我會(huì)用,精不精通另外說(shuō)。。只是覺(jué)得 vue 小規(guī)模作戰(zhàn)不夠快捷。

FreeSql.AdminLTE.Tools 命令行操作,可快速批量或單個(gè)生成實(shí)體類(lèi) razor + controller 的增刪查改方法,該命令暫時(shí)無(wú)法支持 .net framework 項(xiàng)目,asp.net mvc 項(xiàng)目可以考慮引入 FreeSql.AdminLTE 庫(kù)自定義代碼生成。

FreeSql.AdminLTE 后續(xù)可更新的內(nèi)容很小,感興趣的小伙伴,可以采用同樣的模式做 FreeSql.ElementUI 也不是也可能,對(duì)吧?反正有 FreeSql 提供基礎(chǔ)保障。

若有使用疑問(wèn)請(qǐng)留言,謝謝!

github: https://github.com/2881099

轉(zhuǎn)載于:https://www.cnblogs.com/FreeSql/p/11462872.html

總結(jié)

以上是生活随笔為你收集整理的[开源] FreeSql.AdminLTE.Tools 根据实体类生成后台管理代码的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。