asp.net core实体类生产CRUD后台管理界面

目录
  • 前言介绍
  • 演示功能
  • 机制设定
    • 1、添加、修改数据
    • 2、列表查询、过滤筛选
    • 3、删除数据
  • 思考人生

前言介绍

喜欢小规模团队的"单打独斗",有的时候即使在大公司,也经常做着3-5个人团队的小项目,相信很多人有类似的经历。

本文介绍如何将项目中已存在的【实体类】,直接生产出 CRUD 后台管理界面。

对于通用后台管理系统的生成,除了单纯的对单表 crud 操作外,我还喜欢利用导航属性的操作,比如:

1、Song、Tag 多对多场景,添加/更新 Song 时可以把 Tag 一起保存;

2、列表页,希望外键、多对多出现在过滤筛选条件;

3、列表页,希望枚举出现在过滤筛选条件;

4、删除时,级联删除所有相关数据;

等等诸如此类的繁琐操作,之所以说繁琐,是因为这些工作技术不难,属于严重的重复劳动。

在人员配备苛刻的环境下,选择尽量靠工具提高生产效率,这样我们才有更多的时间在上班摸鱼。。。

演示功能

Domain 目录下的文件是【实体类】

Program.cs 是 asp.net core 启动代码

using FreeSql;
using ojbk.Entities;
var fsql = new FreeSql.FreeSqlBuilder()
    .UseConnectionString(FreeSql.DataType.Sqlite, @"Data Source=test.db;Pooling=true;Max Pool Size=10")
    .UseAutoSyncStructure(true)
    .UseNoneCommandParameter(true)
    .UseMonitorCommand(cmd => Console.WriteLine(cmd.CommandText + "\r\n"))
    .Build();
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllersWithViews();
builder.Services.AddSingleton(fsql);
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
var app = builder.Build();
if (app.Environment.IsDevelopment())
{
    app.UseSwagger();
    app.UseSwaggerUI();
}
app.UseAuthorization();
app.MapControllers();
app.UseDefaultFiles();
app.UseStaticFiles();
/******************************* 以下是核心代码 **************************/
app.UseFreeAdminLtePreview("/",
    typeof(Config),
    typeof(Role),
    typeof(Menu),
    typeof(User),
    typeof(Department),
    typeof(Employee),
    typeof(Position),
    typeof(AppLog),
    typeof(LoginLog),
    typeof(OprationLog),
    typeof(IdleScheduler.TaskInfo),
    typeof(IdleScheduler.TaskLog)
);
app.Run();

既然 ORM 已经对实体进行了配置,利用已存在的条件便利的产生后台管理功能,真是一大快事!!

它是 FreeSql 衍生出来的 .NETCore MVC 中间件扩展包 FreeSql.AdminLTE.dll,基于 AdminLTE 前端框架动态产生实体的增删查改界面;

输入:实体1、实体2、实体3

输出:后台管理的功能

只需要传入实体,就可以生产 curd 的管理功能,是不是有些骚啊~~~

先发几张运行后的图片尝个鲜:

这是根据实体产生 curd 界面的 mvc 中间件,开发时预览或简单管理数据好方便啊。看完预览图不由得再感叹一次 FreeSql 的易用性,那句口号:做 .NETCore 最方便的 ORM! 没有说错。。。作者多次提及:“我们是简约风格,没那么复杂的用法”,也验证了这一点。。

机制设定

1、添加、修改数据

中件间产生的界面包括添加、修改数据的功能,普通实体的根据属性的类型与 Html5 UI 一一映射;

比较特殊的映射规则:

c# 类型 Html5
布尔 复选框
枚举 下拉选择
日期 日期控件
ManyToOne 导航属性 下拉选择
ManyToMany 导航属性 多选器

等等。。。

什么情况会产生【上传文件】控件?

有兴趣的可以了解源码,目前没有开放在外部配置。

2、列表查询、过滤筛选

中件间为每个实体提供了分页列表查询,每页为20条数据;

除此外,还提供了过滤条件的支持,规则是根据导航属性(ManyToOne、ManyToMany)。比如【岗位】,内含有【部门 Department】、【员工 Employee】、【角色 Role】,则【岗位】列表页会出现按【分类】筛选的UI,详见上面的 demo 示意图,或者下载 demo 运行;

3、删除数据

中件间为每个实体提供了批量删除的功能;

并且支持了复杂导航属性关系的级联删除功能,而这个功能不依赖数据库外键;

下载 Demo

我们一直习惯用 sqlite 做测试库,测试完毕直接删除目录,不留垃圾数据,所以下面的 demo 不需要修改任何地方,运行时自动建库、建表;

运行环境:.net6.0

点击下载

第一步:

dotnet restore

第二步:

dotnet run

将监听的地址复制,打开 chrome 浏览器粘贴访问。

思考人生

一番惊喜过后,你应该会考虑实用性,这样做有什么价值,可用于什么样的场景?

这个扩展包简单的输入,产生巨量的功能反馈。但由于生成的代码是 mvc + razor + jquery + AdminLTE,决定它很难在这个时代开花结果。

思路方向应该不会有问题,因为真的太方便了,如果生成后的代码是 Service + Vue + ElementUI,并且还提供了默认通用权限、定时任务等功能,就问香不香?

期待有兴趣志同道合的人改造。

github:

https://github.com/2881099/FreeSql.AdminLTE

以上就是asp.net core实体类生产CRUD后台管理界面的详细内容,更多关于asp.net core实体类生产CRUD的资料请关注我们其它相关文章!

(0)

相关推荐

  • ASP.NET Core中的Razor页面介绍

    目录 简介 Why? 创建Razor页面应用程序 ASP.NETCoreRazor页面-核心功能 模型绑定 Handlers TagHelpersandHTMLHelpers 路由 总结 简介 随着ASP.NET Core 2 即将来临,最热门的新事物是Razor页面. Razor页面是ASP.NET Core的一个新功能,可以使基于页面的编程方式更容易,更高效. 大众的初步印象是对于那些只专注于页面的小型应用来说,Razor页面更容易.更快地取代MVC.然而,事实证明,它可能比这更强大.使用A

  • C#利用ASP.NET Core开发学生管理系统详解

    目录 涉及知识点 创建项目 登录模块 1. 创建控制器--LoginController 2. 创建登录视图 3. 创建用户模型 4. 创建数据库操作DataContext 5. 创建数据库和表并构造数据 6. 添加数据库连接配置 7. 添加注入信息 8. 运行测试 随着技术的进步,跨平台开发已经成为了标配,在此大背景下,ASP.NET Core也应运而生.本文主要利用ASP.NET Core开发一个学生管理系统为例,简述ASP.NET Core开发的常见知识点,仅供学习分享使用,如有不足之处,

  • ASP.NET Core 6框架揭秘实例演示之如何承载你的后台服务

    目录 [S1401]利用承载服务收集性能指标 [S1402]依赖注入的应用 [S1403]配置选项的应用 [S1404]提供针对环境的配置 [S1405]日志的应用 [S1406]在配置中定义日志过滤规则 借助 .NET提供的服务承载(Hosting)系统,我们可以将一个或者多个长时间运行的后台服务寄宿或者承载我们创建的应用中.任何需要在后台长时间运行的操作都可以定义成标准化的服务并利用该系统来承载,ASP.NET Core应用最终也体现为这样一个承载服务. 借助 .NET提供的服务承载(Hos

  • CodeFirst从零开始搭建Asp.Net Core2.0网站

    一步步教大家如何搭建Asp.Net Core2.0网站,以下所有都是建立在.NETCore2.0环境已经搭建好 右键解决方案>新建项目> 选择Web>ASP.NETCoreWeb应用程序(.NET Core) 选择Web应用程序,暂时不选择启用Docker,身份验证选择个人用户账户(会自动生成一系列和用户认证的代码) 随后生代码层次目录如下: 其中会包含身份信息的相关实现,比如相关实体信息(user)之类的,如果想对扩展微软自动的生成的用户实体类,可在Models中的Applicatio

  • asp.net core实体类生产CRUD后台管理界面

    目录 前言介绍 演示功能 机制设定 1.添加.修改数据 2.列表查询.过滤筛选 3.删除数据 思考人生 前言介绍 喜欢小规模团队的"单打独斗",有的时候即使在大公司,也经常做着3-5个人团队的小项目,相信很多人有类似的经历. 本文介绍如何将项目中已存在的[实体类],直接生产出 CRUD 后台管理界面. 对于通用后台管理系统的生成,除了单纯的对单表 crud 操作外,我还喜欢利用导航属性的操作,比如: 1.Song.Tag 多对多场景,添加/更新 Song 时可以把 Tag 一起保存: 2.列表页

  • spring boot 日志/页面处理、实体类构建、后台管理功能的实现

    目录 一.配置文件的编写 1.配置文件 2.导入依赖 二.日志框架处理 1.默认配置 2.个性配置 3.自动生成的日志文件 三.页面处理 1. 控制器 2.配置错误友好页面 四.实体类构建 1.创建持久层实体类Entity 2.注解的使用 五.后台管理 1.配置持久层组件 2.标注业务层组件 3.编写控制器 4.例 一.配置文件的编写 1.配置文件 为方便我们的开发,我们需要构建三个环境下的配置文件分别是通用环境.开发环境和生产环境下的yml格式配置文件 并且在开发环境配置中配置好我们的数据库和

  • 理解ASP.NET Core 启动类(Startup)

    目录 准备工作:一份ASP.NET Core Web API应用程序 Startup类 Startup构造函数 ConfigureServices Configure 省略Startup类 IStartupFilter IHostingStartup HostingStartup 程序集 HostingStartup 特性 激活HostingStarup程序集 1.使用环境变量(推荐) 2.在程序中配置 多环境配置 环境配置方式 基于环境的 Startup 1.将IWebHostEnvironm

  • 解决django后台管理界面添加中文内容乱码问题

    在学习使用django做一个简单的个人博客项目,通过admin后台添加中文文章内容的时候,遇到中文内容显示乱码的问题. 排除了网上资料中的提到的几个问题: 1.数据上传默认采用的是unicode编码 2.与settings.py中的LANGUAGE_CODE无关 3.在model中添加#coding:utf-8也没啥用 最后实际的问题是,我在使用mysql创建数据库时没有使用utf8编码,我重新创建了一个utf8字符集的数据库就解决了. CREATE DATABASE db_name DEFAU

  • Asp.net Core中如何使用中间件来管理websocket

    介绍 我喜欢.NET CORE 这个东西,其实不仅仅源于它性能很高,可以跨平台,还因为它的设计模式确实令人着迷.以前没.NET CORE 的时候,.NET用websocket必须跑在windows server 2012上,但我一般不会这么干,都把websocket架在nodejs的服务器上.这么分出来,麻烦肯定是麻烦的,而且js这东西,写复杂和几年后再看都是头疼的问题.那么,如果.NET CORE是以kestrel运行的,那么就不再需要考虑服务器的版本运行,任何一个地方都可以用websocke

  • asp.net中实体类对象赋值到表单的实现代码

    有一个问题就是 :表单名称和对象的属性名(我是属性赋值 你也可以用字段)要保持一样,,有点不安全,不过后台用挺好的,在说填写表单数据后台用的比较多 复制代码 代码如下: using System; using System.Data; using System.Configuration; using System.Collections; using System.Collections.Generic; using System.Reflection; using System.Collec

  • WordPress中自定义后台管理界面配色方案的小技巧

    WordPress 3.8 开始的全新设计的后台支持多颜色选择,默认有八种非常精美的配色,可以让用户自己选择. 关于配色 WordPress 提供了一个函数 wp_admin_css_color() 可以让开发者自定义配色,只需要调用一下这个函数即可完成所有的注册操作. 参数 wp_admin_css_color( $key, $name, $url, $colors = array(), $icons = array() ); $key(string):颜色的 ID $name(string)

  • asp.net core 使用 tensorflowjs实现 face recognition的源代码

    功能描述 上传照片文件名及是系统要识别标签或是照片的名称(人物标识) 提取照片脸部特征值(调用 facemesh模型) 保存特征值添加样本(调用 knnClassifier) 测试上传的图片是否识别正确 项目依赖的库 源代码(neozhu/smartadmin.core.urf: Domain Driven Design (DDD) ultra-lightweight rapid development architecture(support .net 5.0) (github.com)) t

  • ASP.NET Core MVC缓存Tag Helpers到内存

    简介 缓存可以大大提高应用程序加载时间和响应速度.我们可以使用缓存Tag Helpers缓存不会频繁更改的HTML内容. 在上一篇文章中,我们谈到了Tag Helpers,演示Tag Helpers能做什么.如何使用它们以及一些最常用的Tag Helpers. 今天,我们将看看如何使用缓存Tag Helpers和它们的益处. Cache Tag Helper 首先说一下 <cache> Tag Helper.与其它Tag Helper不同,其它Tag Helper被当作属性使用,缓存Tag H

  • 基于Bootstrap的后台管理面板 Bootstrap Metro Dashboard

    这是一款基于Bootstrap的Metro风格的后台管理面板应用,Bootstrap Metro Dashboard的UI是基于Twitter Bootstrap样式的,同时使用了jQuery 1.9.1和jQuery UI组件,非常适合做网站的后台管理系统界面. Bootstrap Metro Dashboard介绍  Bootstrap Metro Dashboard使用了以下jQuery插件:  fullcalendar.min.js jquery.chosen.min.js jquery

随机推荐