今天这篇文章我将通过实例代码带着大家一步一步通过abp vNext这个asp.net core的快速开发框架来进行Quartz.net定时任务调度的管理界面的开发。大伙最好跟着一起敲一下代码,当然源码我会上传到github上,有兴趣的小伙伴可以在文章底部查看源码链接。
作者:依乐祝
原文链接:https://www.cnblogs.com/yilezhu/p/10444060.html
有几天没更新博客了,一方面因为比较忙,另一方面是因为最近在准备组织我们霸都合肥的.NET技术社区首次非正式的线下聚会,忙着联系人啊,这里欢迎有兴趣的小伙伴加我wx:jkingzhu进行详细的了解,当然也欢迎同行加我微信,然后我拉你进入我们合肥.NET技术社区微信群跟大伙进行交流。
概念开始之前还有必要跟大伙说一下abp vNext以及Quartz.net是什么,防止有小白。如果对这两个概念非常熟悉的话可以直接阅读下一节。项目最终实现的效果如下图所示:
abp vNext是什么说起abp vNext就要从另一个概念开始说起了,那就是大名鼎鼎的ABP了。
ABP 官方的介绍是:ASP.NET Boilerplate 是一个用最佳实践和流行技术开发现代 WEB 应用程序的新起点,它旨在成为一个通用的 WEB 应用程序基础框架和项目模板。基于 DDD 的经典分层架构思想,实现了众多 DDD 的概念(但没有实现所有 DDD 的概念)。
而ABPVNext的出现是为了抛弃掉.net framework 版本下的包袱,重新启动的 abp 框架,目的是为了放弃对传统技术的支持,让 asp.net core 能够自身做到更加的模块化,目前这块的内容还不够成熟。原因是缺少组件信息和内容。
如果你想用于生产环境建议你可以使用ABP,如果你敢于尝试,勇于创新的话可以直接使用abp vNext进行开发的。
abp vNext官网:https://abp.io/
github:https://github.com/abpframework/abp
文档:https://abp.io/documents
Quartz.NET是一个强大、开源、轻量的作业调度框架,你能够用它来为执行一个作业而创建简单的或复杂的作业调度。它有很多特征,如:数据库支持,集群,插件,支持cron-like表达式等等。目前已经正式支持了.NET Core 和async/await。
说白了就是你可以使用Quartz.NET可以很方便的开发定时任务诸如平时的工作中,定时轮询数据库同步,定时邮件通知,定时处理数据等。
这一节我们通过实例进行操作,相信跟着做的你也能够把代码跑起来。
ABP vNext代码既然我们此次演练的项目是使用的abp vNext这个asp.net core的快速开发框架来完成的,所以首先在项目开始之前,你需要到ABP vNext的官网上去下载项目代码。英文站打开慢的话,可以访问中文子域名进行访问:https://cn.abp.io/Templates 。下面给出具体步骤:
打开https://cn.abp.io/Templates 然后如图填写对应的项目名称,这里我用的Czar.AbpDemo 项目类型选择ASP.NET Core MVC应用程序,因为这个是带有UI界面的web项目,数据库提供程序选择EFCore这个大家都比较熟悉,然后点击创建就可以了。
下载后,解压到一个文件夹下面,然后用vs打开解决方案,看到如下图所示的项目结构
这里简单介绍下,每个项目的作用,具体的就不过多介绍了,在下面的实战代码中慢慢体会吧
.Domain 为领域层.
.Application 为应用层.
.Web 为是表示层.
.EntityFrameworkCore 是EF Core集成.
解决方案还包含配置好的的单元&集成测试项目, 以便与于EF Core 和 SQLite 数据库配合使用.
查看.Web项目下appsettings.json文件中的 连接字符串并进行相应的修改,怎么改不要问我:
{ "ConnectionStrings": { "Default": "Server=localhost;Database=CzarAbpDemo;Trusted_Connection=True;MultipleActiveResultSets=true" } }
右键单击.Web项目并将其设为启动项目
打开包管理器控制台(Package Manager Console), 选择.EntityFrameworkCore项目作为默认项目并运行Update-Database命令: