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中开源的工具库,可以让你使用定时任务,缓存,队列,事件,广播等高级应用程序变得轻而易举!...相关推荐

  1. java 日历工具_【Java】太强了,这款开源日历工具库堪称神器!

    首页 专栏 javascript 文章详情 0 太强了,这款开源日历工具库堪称神器! Github导航站发布于 今天 02:03 大家好,我是为广大程序员兄弟操碎了心的小编,每天推荐一个小工具/源码, ...

  2. 别再重复造轮子了,这几个开源 Java 工具库送给你

    文章会收录在 JavaNewBee 中,更有 Java 后端知识图谱,从小白到大牛要走的路都在里面. 风筝我作为一个野路子开发者,直到遇见下面的这几个工具库,才知道之前重复造了不少轮子,而且轮子还不一 ...

  3. 太强了,这款开源日历工具库堪称神器!

      大家好,我是为广大程序员兄弟操碎了心的小编,每天推荐一个小工具/源码,装满你的收藏夹,每天分享一个小技巧,让你轻松节省开发效率,实现不加班不熬夜不掉头发,是我的目标!   今天小编推荐一款无依赖的 ...

  4. python菜鸟教程python机器学习工具库

    正是由于Python简单易用以及高开发效率,吸引了大量的开发者为其创建更多新的机器学习工具库:而又因为大量的机器学习工具库的出现,使得Python在机器学习领域变得如此流行. 下面我们就来探索一下机器 ...

  5. (NLP) 淘宝评论处理(1)--工具库介绍

    #文章大纲及涉及的工具库 最近在接触自然语言处理的项目,对目前的情况做一个总结: 项目目标 相关工具库 自然语言处理的基本流程 进一步处理及相关的算法和知识 目前的进展以及所面临的问题 ##项目目标 ...

  6. python项目管理工具_有哪些比较好用的开源项目管理工具?

    1. 项目名称:开源项目管理系统 Jitamin 项目简介:Jitamin .是一款免费.开源,使用PHP语言开发的项目管理系统.Jitamin灵感来自于Vitamin,并结合了Just In Tim ...

  7. takephoto 框架_GitHub - Smecking/TakePhoto: 一款用于在Android设备上获取照片(拍照或从相册、文件中选择)、裁剪图片、压缩图片的开源工具库...

    TakePhoto是一款用于在Android设备上获取照片(拍照或从相册.文件中选择).裁剪图片.压缩图片的开源工具库,目前最新版本4.0.2. 3.0以下版本及API说明,详见TakePhoto2. ...

  8. Android开源项目第二篇——工具库篇

    本文为那些不错的Android开源项目第二篇--开发工具库篇,主要介绍经常使用的开发库,包含依赖注入框架.图片缓存.网络相关.数据库ORM建模.Android公共库.Android 高版本号向低版本号 ...

  9. Android 开源项目android-open-project工具库解析之(一) 依赖注入,图片缓存,网络相关,数据库orm工具包,Android公共库...

    一.依赖注入DI 通过依赖注入降低View.服务.资源简化初始化.事件绑定等反复繁琐工作 AndroidAnnotations(Code Diet) android高速开发框架 项目地址:https: ...

最新文章

  1. sudo修改文件夹名字_修改mac os帐户的短名称和个人文件夹
  2. 用注解还是用xml 配置?
  3. Mule,目前综合状态最良好的开源ESB方案引文
  4. cookie/storage
  5. JupyterLab显示pyecharts图像
  6. Financial Managemen
  7. 在Winfrom中双击Ctrl键打开窗体
  8. 提交表单时,请求的资源[/222/getServlet]不可用(已解决)
  9. macbook M1 brew install失败
  10. 微信公众号开发:素材管理(临时、永久)
  11. 你工作经验欠缺,如何能胜任这项工作?
  12. 合数python_python输出100以内的质数与合数
  13. 【读者群答疑】使用xlwings编程时,执行语句bk = xw.books.add()时报错
  14. ubuntu系统文件夹目录说明
  15. STM32CubeMX+FATFS+FREERTOS实现W25Q256虚拟U盘
  16. loopback具体作用
  17. WM平台玩转Android全攻略
  18. P1365 WJMZBMR打osu! / Easy(维护两种期望的简单dp)
  19. 硬盘格式化后文件怎么恢复
  20. 手机号验证正则表达式

热门文章

  1. linux监听oss变化,你知道Linux audio(OSS)子系统是怎样?
  2. CakePHP 2.x CookBook 中文版 第七章 模型 之 删除数据
  3. 【安全】【测试思路】基于Burpsuite工具中的intruder执行暴力破解
  4. GENSIM官方教程(4.0.0beta最新版)-Word2Vec词向量模型
  5. 解决树莓派3 基于ubuntu mate 16 的WIFI连接
  6. 阿里云发布行业首个「视频直播技术最佳实践图」!
  7. 盲盒的盈利模式主要有哪些
  8. 3 带有期限的作业排序问题
  9. PHP 阿里云短信服务
  10. 王者荣耀是怎样炼成的(一)《王者荣耀》用什么开发,游戏入门,unity3D介绍