Coravelは. NET Coreのオープンソースツールライブラリで、スケジュールされたタスク、キャッシュ、キュー、イベント、ブロードキャストなどの高度なアプリケーションを簡単に操作できます。

Coravelは. NET Coreのオープンソースツールライブラリで、スケジュールされたタスク、キャッシュ、キュー、イベント、ブロードキャストなどの高度なアプリケーションを簡単に操作できます。

Coravelは、開発者がコード品質を損なうことなく. NET Coreアプリケーションをすばやく起動して実行できるようにします。

最后更新 2022/07/07 7:34
黑哥聊dotNet
预计阅读 3 分钟
分类
.NET
标签
.NET C# オープンソースソース

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オープンソースプロジェクトに興味のある方は、ぜひご注目ください。

Keep Exploring

延伸阅读

更多文章
同分类 / 同标签 2026/04/22

バージョン別の. NETサポート状況(250 7 0 7更新)

仮想マシンとテストマシンを使用して、各バージョンのオペレーティングシステムの. NETサポートをテストします。オペレーティングシステムのインストール後、対応するランタイムを測定し、スターダストエージェントをパスとして実行できます。

继续阅读
同分类 / 同标签 2026/02/07

AOTの使用経験

プロジェクトの最初から、新しい機能が追加されたり、新しい構文が使用されたりするたびに、AOTリリーステストを行うという良い習慣を身につける必要があります。

继续阅读