FineUI 官方论坛
标题:
Abp + FineUICore 学生CRUD 示例
[打印本页]
作者:
棕榈
时间:
2020-2-15 15:16
标题:
Abp + FineUICore 学生CRUD 示例
本帖最后由 棕榈 于 2020-2-15 15:14 编辑
Abp + FineUICore 学生CRUD 示例
[attach]12220[/attach]
Abp是一个Web开发的基础架构,类似于Java的Spring,这个是Abp的官网
https://abp.io/
,不了解Abp的可以查看它的官方文档。
下面我将介绍如何将FineUICore添加到Abp的中,Abp为 2.0.1,FineUICore为 6.1.2,虽然FineUICore还没有发布支持.netcore3.1的版本,但现在做一个演示示例还是可以用的。
我是从Abp官网生成的示例DEMO,你也可以通过Abp提供的CLI来生成示例。
Abp提供的模板是含有UI的,我们需要将它提供的UI去掉,它的UI都是通过模块(Module)引入的,这也是新版Abp的最大特点,模块划分的很细,你可以根据自己的需要引入不同的模块。
这是项目的整个结构
[attach]12221[/attach]
Abp对开发环境是有要求的
Visual Studio 2019 (v16.3+)
.NET Core 3.1
如果要采用Abp提供的UI,还需要NodeJS的支持
运行项目:
1、先将 StudentCrudProject.DbMigrator 设为启动项目,运行项目,它会创建数据库及创建初始数据
2、再将
StudentCrudProject.Web 设为启动项目,运行就可以看到效果了
这个Pages的目录结构
[attach]12222[/attach]
需
要注意的是 StudentCrudProjectPageModel 这个类,它是继承 AbpPageModel,AbpPageModel含有在开发时常用到的一些属性。
Abp 是 DDD模式的一种实现,里面有很多DDD的一些思想,通过示例项目中的结构也能够看的出来。
业务逻辑代码都是放在领域层里,而应用层主要负责权限、数据验证等操作,下面是示例中添加的类:
[attach]12223[/attach]
我们在FineUI中直接引用的是应用层的代码,操作如下:
namespace StudentCrudProject.Web.Pages
{
public class StudentModel : WinPageModel
{
private readonly IStudentAppService _studentAppService;
public StudentModel(IStudentAppService studentAppService)
{
_studentAppService = studentAppService;
}
[BindProperty]
public GetStudentForEditOutput Student { get; set; }
public async Task OnGet(int? id, int? schoolId)
{
Student = await _studentAppService.GetStudentForEditAsync(new GetStudentForEditInput() { Id = id });
if (schoolId.HasValue)
{
Student.School = schoolId.Value;
}
}
public async Task<IActionResult> OnPostOk()
{
var input = ObjectMapper.Map<GetStudentForEditOutput, CreateOrUpdateStudentInput>(Student);
await _studentAppService.CreateOrUpdateStudentAsync(input);
WinOk();
return UIHelper.Result();
}
public IActionResult OnPostCancel()
{
WinCancel();
return UIHelper.Result();
}
}
}
复制代码
是不是很简洁,业务逻辑及相关操作都在领域层及应用层实现了,这里只需要进行相应的调用即可。
事后,我会通过 Abp + FineUICore 创建一个全新的 AppBox 项目,将Abp提供的基础功能通过个项目体现出来。
本文中的示例项目文件请到知识星球下载。
作者:
erp8@live.cn
时间:
2020-2-15 15:31
赞赞赞!
向千千万万战斗在一线的无私奉献者学习和致敬!
国难当头,行动为先,
福佑中华,祖国加油!
也祝您一切平安吉祥!
作者:
sanshi
时间:
2020-2-16 00:27
行动派!
欢迎光临 FineUI 官方论坛 (https://fineui.com/bbs/)
Powered by Discuz! X3.4