Coravel
Coravelは. NET Coreのオープンソースツールライブラリで、スケジュールされたタスク、キャッシュ、キュー、イベント、ブロードキャストなどの高度なアプリケーションを簡単に操作できます。
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 Memoryキャッシュが有効になります。
** ご利用 **
要使用缓存,将Coravel.Cache.Interfaces.ICache通过依赖注入进行注入。
private ICache _cache;
public CacheController(ICache cache)
{
this._cache = cache;
}
イベント·ブロードキャスト
Coravelのイベントブロードキャストは、リスナーがアプリケーション内で発生するイベントを購読できます。
*** 設定 **
ConfigureServicesメソッドで、次の手順に従います。
services.AddEvents();
次に、Configureメソッドで:
var provider = app.ApplicationServices;
IEventRegistration registration = provider.ConfigureEvents();
イベントとそのリスナの
registration
.Register<BlogPostCreated>()
.Subscribe<TweetNewPost>()
.Subscribe<NotifyEmailSubscribersOfNewPost>();
** ご利用 **
インターフェイスを実装するクラスCoravel. Events.Interface.IEventを作成します。そうだよ!
イベントは、各リスナーに提供されるデータオブジェクトに過ぎません。この特定のイベントに関連するデータを公開する必要があります。
例えば、BlogPost CreatedイベントはBlogPostによって作成されたものを受け入れ、public属性で公開する必要があります。
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.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オープンソースプロジェクトに興味のある方は、ぜひご注目ください。