[オープンソース]FreeSql.AdminLTE機能アップグレード
前言
FreeSqlが発表されてから9ヶ月が経ち、機能が徐々に改善され、自身の生態も徐々に形成され、数ヶ月前に「ORM開発環境の利器:MVCミドルウェアFreeSql.AdminLTE」という文章を書いたことがあります.
個人的には小規模チームの「シングルス独闘」が大好きで、大企業でも3-5人チームの小さなプロジェクトをしていて、似たような経験をしている人が多いと信じています.
前の文章から分かるように、以前のFreeSql.AdminLTEは花瓶にすぎず、アプリケーションシーンは非常に限られており、開発環境でテストデータを管理する用途だけで、その後数ヶ月はほとんど使用していませんでした.の気まずいのではないでしょうか??
今回の機能アップグレードの状況は変わったので、まずこの内容を見てみましょう.
オープンソースといえば、まずソース倉庫を貼りましょう.https://github.com/2881099/FreeSql.AdminLTE主なプロジェクトFreeSqlは現在900以上の星があります.
プロジェクトの背景
汎用バックグラウンド管理システムの生成については、単純な単一テーブルcrud操作のほか、外部キーのある操作も好きです.例えば、
1、Song、Tagは多対多シーンで、Songを追加/更新する時にTagを一緒に保存することができる.
2、リストページ、外部キー、多対多がフィルタ条件に現れることを望む.
3、リストページ、フィルタ条件に列挙したい;
などといった煩雑な操作が、煩雑といえば、これらの作業技術が難しくなく、深刻な重複労力に属しているからだ.
人員配置が厳しい環境の下で、できるだけツールで生産性を高めることを選んで、このように私达は更に多くの时間が出勤して魚を触ることができます.の
ORMがすでにエンティティを配置している以上、既存の条件を利用してバックグラウンド管理機能を便利に生成するのは、本当に速いことです!
ライブラリ区分
プロジェクト
バージョン#バージョン#
FreeSql.AdminLTE
netstandard2.0、net45
FreeSql.AdminLTE.Tools
netcoreapp2.1
FreeSql.AdminLTE.Preview
netstandard2.0
3つのパケットで生成されるAdminLTE機能は、ほとんど同じであり、エンティティクラス、ナビゲーション関係に基づいてデフォルトの煩雑なバックグラウンド管理機能を生成します.
共通の入力条件:
FreeSql.AdminLTE.Preview
.NETCore MVCミドルウェアは、AdminLTEフロントエンドフレームワークに基づいて、指定されたFreeSqlエンティティの添削訂正の【プレビュー管理機能】を動的に生成する.
使用シーン:開発環境のテストデータ生産.
dotnet add package FreeSql.AdminLTE.Preview
public void ConfigureServices(IServiceCollection services)
{
services.AddSingleton(fsql);
}
public void Configure(IApplicationBuilder app)
{
app.UseFreeAdminLtePreview("/testadmin/",
typeof(TestDemo01.Entitys.Song),
typeof(TestDemo01.Entitys.Tag));
}
FreeSql.AdminLTE
FreeSqlエンティティークラス構成、ナビゲーション関係構成により、MVC+Razor+AdminLTEに基づくバックグラウンド管理システムの添削修正コード【二次開発サポート】を迅速に生成する.
使用シーン:asp.net/asp.Netcoreバックグラウンド管理システムの迅速な生成、二次開発【カスタマイズ】.
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コードはFreeSqlに依存する.DbContextライブラリ、手動で追加してください
重量ポンド機能:FreeSql.AdminLTE.Tools
どのようなツールがより効率的ですか?
コマンドライン..コマンドライン..コマンドライン..それが必要だ!!!
Global Toolsを簡単に紹介します.NET Core 2.1の最初の特性です.Global Toolsは開発者に作成させる方法を提供した.NET CoreアプリケーションはNuGetパッケージにパッケージ化して納品できます.もし.NET Coreはターゲットプラットフォームで動作し、適切にパッケージされたGlobal Toolがその上で動作します.JavaScript開発者は、このツールがNPM Global Toolsを直接参考にしていることに気づくかもしれません.
FreeSql.AdminLTE.ToolsはFreeSqlです.AdminLTE機能のツールコマンド化パッケージで、コマンドラインはコードをすばやく生成します.
使用シーン:asp.Netcoreバックグラウンド管理システムは迅速に生成され、二次開発された.
dotnet tool install -g FreeSql.AdminLTE.Tools
バックグラウンドプロジェクト(空のプロジェクト、または既存のプロジェクト)に入り、次のコマンドを実行します.
FreeSql.AdminLTE.Tools -Find MyTest.Model..+
コマンドラインパラメータ
説明
-Find
*エンティティクラスFullNameに一致する正規表現
-ControllerNameSpace
コントローラネーミングスペース(デフォルト:FreeSql.AdminLTE)
-ControllerRouteBase
コントローラリクエストパスの前に中断(デフォルト:/ADminLTE/)
-ControllerBase
コントローラベースクラス(デフォルト:Controller)
-First
ApiResultを生成するかどうか.cs、index.html、htm静的リソース(初回生成)
-Output
出力パス(デフォルト:現在のディレクトリ)
commandコマンドラインを開き、次のように実行します.
>dotnet tool install -g FreeSql.AdminLTE.Tools
: FreeSql.AdminLTE.Tools
“freesql.adminlte.tools”( “0.9.4”)。
>FreeSql.AdminLTE.Tools
____ ____ __
/ __/ ____ ___ ___ / __/ ___ _ / /
/ _/ / __// -_)/ -_) _\ \ / _ `/ / /
/_/ /_/ \__/ \__/ /___/ \_, / /_/
/_/
# Github # https://github.com/2881099/FreeSql
.NETCore 2.1 , , AdminLTE 。
# #
1、 ( XML );
2、 ( )。
# #
> FreeSql.AdminLTE.Tools -Find MyTest\.Model\..+
-Find * FullName
-ControllerNameSpace ( :FreeSql.AdminLTE)
-ControllerRouteBase ( :/AdminLTE/)
-ControllerBase ( :Controller)
-First ApiResult.cs、index.html、htm ( )
-Output ( : )
# #
> FreeSql.AdminLTE.Tools -Find MyTest\.Model\..+ -Output d:/test
デモ
1、デスクトップにディレクトリを作成する:MyProject
2、cmdを开けて、MyProjectディレクトリを行って、win 10の下でMyProjectディレクトリを开けてアドレスバーをクリックしてcmdを入力して急速にcmdを开けて、しかもディレクトリは现在のアドレスです
3、dotnet new webapiを実行するC:\Users\28810\Desktop\MyProject>dotnet new webapi
“ASP.NET Core Web API”。
...
C:\Users\28810\Desktop\MyProject\MyProject.csproj "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 。
。
4.dotnet add package FreeSqlを実行する.Provider.Sqlite
5.dotnet add package FreeSqlを実行する.DbContext
6、いくつかのよく使う実体クラスを作成して、クリックしてデモの実体クラスをダウンロードする
7、プロジェクトがコンパイルできることを確定するC:\Users\28810\Desktop\MyProject>dotnet build
.NET Core Microsoft (R) 15.9.20+g88f5fadfbe
(C) Microsoft Corporation。 。
C:\Users\28810\Desktop\MyProject\MyProject.csproj 65.32 ms 。
MyProject -> C:\Users\28810\Desktop\MyProject\bin\Debug
etcoreapp2.2\MyProject.dll
MyProject -> C:\Users\28810\Desktop\MyProject\bin\Debug
etcoreapp2.2\MyProject.Views.dll
。
0
0
00:00:01.82
8、FreeSqlを実行する.AdminLTE.Tools -Find MyProject.Model..+ -First
プロジェクトxmlドキュメント生成機能をオンにしてから、この操作を実行してください.
9、プロジェクトを実行し、dotnet runを実行する
これは通常のwebapiプロジェクトであり、静的リソースへのアクセスは開始されていませんので、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(Fsql);
services.AddMvc();
}
public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory)
{
app.UseDeveloperExceptionPage();
app.UseMvc();
app.UseDefaultFiles();
app.UseStaticFiles();
}
}
10.ブラウザを開いて、次のような前のプロンプトのアドレスにアクセスします.http://localhost:57844/adminlte/index.html
悟る
vueを使うのが好きではありませんが、実は私は使うことができて、精通していません.ただ、vueの小規模な作戦は速くないと思います.
FreeSql.AdminLTE.Toolsコマンドラインの操作は、実体クラスrazor+controllerの添削修正方法を迅速に一括または単独で生成することができ、このコマンドは一時的にサポートできない.Netframeworkプロジェクト、asp.NetmvcプロジェクトはFreeSqlの導入が考えられる.AdminLTEライブラリカスタムコード生成.
FreeSql.AdminLTE以降の更新可能な内容は小さく、興味のあるパートナーは、同じモードでFreeSqlを作ることができる.ElementUIも可能ではありませんよね?どうせFreeSqlが基礎保障を提供している.
ご利用のご質問がございましたら、メッセージをお願いします.
github: https://github.com/2881099
C:\Users\28810\Desktop\MyProject>dotnet new webapi
“ASP.NET Core Web API”。
...
C:\Users\28810\Desktop\MyProject\MyProject.csproj "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 。
。
C:\Users\28810\Desktop\MyProject>dotnet build
.NET Core Microsoft (R) 15.9.20+g88f5fadfbe
(C) Microsoft Corporation。 。
C:\Users\28810\Desktop\MyProject\MyProject.csproj 65.32 ms 。
MyProject -> C:\Users\28810\Desktop\MyProject\bin\Debug
etcoreapp2.2\MyProject.dll
MyProject -> C:\Users\28810\Desktop\MyProject\bin\Debug
etcoreapp2.2\MyProject.Views.dll
。
0
0
00:00:01.82
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(Fsql);
services.AddMvc();
}
public void Configure(IApplicationBuilder app, ILoggerFactory loggerFactory)
{
app.UseDeveloperExceptionPage();
app.UseMvc();
app.UseDefaultFiles();
app.UseStaticFiles();
}
}