Coravel是.NetCore中开源的工具库,可以让你使用定时任务,缓存,队列,事件,广播等高级应用程序变得轻而易举!...
Coravel
Coravel是.NetCore中开源的工具库,可以让你使用定时任务,缓存,队列,事件,广播等高级应用程序变得轻而易举!
Coravel 帮助开发人员在不影响代码质量的情况下快速启动和运行他们的 .NET Core 应用程序。
它通过为您提供简单、富有表现力和直接的语法,使高级应用程序功能易于访问和使用。
Github地址:https://github.com/jamesmh/coravel
安装
dotnet add package coravel
例子
Task Scheduling
配置
在 .NET Core 应用程序的Startup.cs文件中,在ConfigureServices()方法内,添加以下内容:
services.AddScheduler()
使用
然后在Configure()方法中,可以使用调度器:
var provider = app.ApplicationServices;
provider.UseScheduler(scheduler =>
{scheduler.Schedule(() => Console.WriteLine("Every minute during the week.")).EveryMinute().Weekday();
});
Queuing
配置
在您的Startup文件中,在ConfigureServices():
services.AddQueue();
使用
将接口的一个实例Coravel.Queuing.Interfaces.IQueue注入到控制器
IQueue _queue;public HomeController(IQueue queue) {this._queue = queue;
}
同步
public IActionResult QueueTask() {this._queue.QueueTask(() => Console.WriteLine("This was queued!"));return Ok();
}
异步
this._queue.QueueAsyncTask(async() => {await Task.Delay(1000);Console.WriteLine("This was queued!");});
Caching
配置
在Startup.ConfigureServices():
services.AddCache();
这将启用内存 (RAM) 缓存。
使用
要使用缓存,请Coravel.Cache.Interfaces.ICache通过依赖注入进行注入。
private ICache _cache;public CacheController(ICache cache)
{this._cache = cache;
}
Event Broadcasting(事件广播)
Coravel 的事件广播允许侦听器订阅应用程序中发生的事件。
配置
在ConfigureServices方法中:
services.AddEvents();
接下来,在Configure方法中:
var provider = app.ApplicationServices;
IEventRegistration registration = provider.ConfigureEvents();
注册事件及其监听器
registration.Register<BlogPostCreated>().Subscribe<TweetNewPost>().Subscribe<NotifyEmailSubscribersOfNewPost>();
使用
创建一个实现接口的类Coravel.Events.Interfaces.IEvent。就是这样!
事件只是将提供给每个侦听器的数据对象。它应该公开与此特定事件关联的数据。
例如,一个BlogPostCreated事件应该接受BlogPost创建的,然后通过公共属性公开它。
public class BlogPostCreated : IEvent
{public BlogPost Post { get; set; }public BlogPostCreated(BlogPost post){this.Post = post;}
}
创建一个新类,该类实现您将要监听的事件Coravel.Events.Interfaces.IListener的接口。提示:每个侦听器只能与一个事件相关联。
该IListener接口需要您实现HandleAsync(TEvent broadcasted)。
创建一个名为TweetNewPost的侦听器:
public class TweetNewPost : IListener<BlogPostCreated>
{private TweetingService _tweeter;public TweetNewPost(TweetingService tweeter){this._tweeter = tweeter;}public async Task HandleAsync(BlogPostCreated broadcasted){var post = broadcasted.Post;await this._tweeter.TweetNewPost(post);}
}
Mailing
配置
nuget 安装 coravel mail 这将安装 Nuget 包Coravel.Mailer,并为您搭建一些基本文件:
~/Views/Mail/_ViewStart.cshtml- 配置邮件视图以使用 Coravel 的电子邮件模板
~/Views/Mail/_ViewImports.cshtml- 允许您使用 Coravel 的视图组件 -~/Views/Mail/Example.cshtml- 示例邮件视图
~/Mailables/Example.cs- 可邮寄样本
在Startup.ConfigureServices():
services.AddMailer(this.Configuration);
使用
Coravel 使用Mailables发送邮件。Mailables 继承Coravel.Mailer.Mail.Mailable并接受一个泛型类型,该类型表示您希望与发送邮件相关联的模型。
using Coravel.Mailer.Mail;
using App.Models;namespace App.Mailables
{public class NewUserViewMailable : Mailable<UserModel>{private UserModel _user;public NewUserViewMailable(UserModel user) => this._user = user;public override void Build(){this.To(this._user).From("from@test.com").View("~/Views/Mail/NewUser.cshtml", this._user);}}
}
Mailable 的所有配置都在该Build()方法中完成。然后,您可以调用各种方法,例如To和From来配置收件人、发件人等。
如果大家对.net开源项目感兴趣可以持续关注我。
Coravel是.NetCore中开源的工具库,可以让你使用定时任务,缓存,队列,事件,广播等高级应用程序变得轻而易举!...相关推荐
- java 日历工具_【Java】太强了,这款开源日历工具库堪称神器!
首页 专栏 javascript 文章详情 0 太强了,这款开源日历工具库堪称神器! Github导航站发布于 今天 02:03 大家好,我是为广大程序员兄弟操碎了心的小编,每天推荐一个小工具/源码, ...
- 别再重复造轮子了,这几个开源 Java 工具库送给你
文章会收录在 JavaNewBee 中,更有 Java 后端知识图谱,从小白到大牛要走的路都在里面. 风筝我作为一个野路子开发者,直到遇见下面的这几个工具库,才知道之前重复造了不少轮子,而且轮子还不一 ...
- 太强了,这款开源日历工具库堪称神器!
大家好,我是为广大程序员兄弟操碎了心的小编,每天推荐一个小工具/源码,装满你的收藏夹,每天分享一个小技巧,让你轻松节省开发效率,实现不加班不熬夜不掉头发,是我的目标! 今天小编推荐一款无依赖的 ...
- python菜鸟教程python机器学习工具库
正是由于Python简单易用以及高开发效率,吸引了大量的开发者为其创建更多新的机器学习工具库:而又因为大量的机器学习工具库的出现,使得Python在机器学习领域变得如此流行. 下面我们就来探索一下机器 ...
- (NLP) 淘宝评论处理(1)--工具库介绍
#文章大纲及涉及的工具库 最近在接触自然语言处理的项目,对目前的情况做一个总结: 项目目标 相关工具库 自然语言处理的基本流程 进一步处理及相关的算法和知识 目前的进展以及所面临的问题 ##项目目标 ...
- python项目管理工具_有哪些比较好用的开源项目管理工具?
1. 项目名称:开源项目管理系统 Jitamin 项目简介:Jitamin .是一款免费.开源,使用PHP语言开发的项目管理系统.Jitamin灵感来自于Vitamin,并结合了Just In Tim ...
- takephoto 框架_GitHub - Smecking/TakePhoto: 一款用于在Android设备上获取照片(拍照或从相册、文件中选择)、裁剪图片、压缩图片的开源工具库...
TakePhoto是一款用于在Android设备上获取照片(拍照或从相册.文件中选择).裁剪图片.压缩图片的开源工具库,目前最新版本4.0.2. 3.0以下版本及API说明,详见TakePhoto2. ...
- Android开源项目第二篇——工具库篇
本文为那些不错的Android开源项目第二篇--开发工具库篇,主要介绍经常使用的开发库,包含依赖注入框架.图片缓存.网络相关.数据库ORM建模.Android公共库.Android 高版本号向低版本号 ...
- Android 开源项目android-open-project工具库解析之(一) 依赖注入,图片缓存,网络相关,数据库orm工具包,Android公共库...
一.依赖注入DI 通过依赖注入降低View.服务.资源简化初始化.事件绑定等反复繁琐工作 AndroidAnnotations(Code Diet) android高速开发框架 项目地址:https: ...
最新文章
- sudo修改文件夹名字_修改mac os帐户的短名称和个人文件夹
- 用注解还是用xml 配置?
- Mule,目前综合状态最良好的开源ESB方案引文
- cookie/storage
- JupyterLab显示pyecharts图像
- Financial Managemen
- 在Winfrom中双击Ctrl键打开窗体
- 提交表单时,请求的资源[/222/getServlet]不可用(已解决)
- macbook M1 brew install失败
- 微信公众号开发:素材管理(临时、永久)
- 你工作经验欠缺,如何能胜任这项工作?
- 合数python_python输出100以内的质数与合数
- 【读者群答疑】使用xlwings编程时,执行语句bk = xw.books.add()时报错
- ubuntu系统文件夹目录说明
- STM32CubeMX+FATFS+FREERTOS实现W25Q256虚拟U盘
- loopback具体作用
- WM平台玩转Android全攻略
- P1365 WJMZBMR打osu! / Easy(维护两种期望的简单dp)
- 硬盘格式化后文件怎么恢复
- 手机号验证正则表达式
热门文章
- linux监听oss变化,你知道Linux audio(OSS)子系统是怎样?
- CakePHP 2.x CookBook 中文版 第七章 模型 之 删除数据
- 【安全】【测试思路】基于Burpsuite工具中的intruder执行暴力破解
- GENSIM官方教程(4.0.0beta最新版)-Word2Vec词向量模型
- 解决树莓派3 基于ubuntu mate 16 的WIFI连接
- 阿里云发布行业首个「视频直播技术最佳实践图」!
- 盲盒的盈利模式主要有哪些
- 3 带有期限的作业排序问题
- PHP 阿里云短信服务
- 王者荣耀是怎样炼成的(一)《王者荣耀》用什么开发,游戏入门,unity3D介绍