成都网站seo收费标准,北京seo网站设计,广州效果图制作,北辰苏州网站建设今天给大家介绍我刚开源的一个 .NET Core 项目#xff1a;Anet。Anet 的目标是实现一个 .NET Core 通用库、通用框架和通用模板。我给它的定义是#xff1a;A .NET Core Common Lib, Framework and Boilerplate.它的取名正是来自于这句话的前面四个字母#xff1a;ANET。Ane… 今天给大家介绍我刚开源的一个 .NET Core 项目Anet。Anet 的目标是实现一个 .NET Core 通用库、通用框架和通用模板。我给它的定义是A .NET Core Common Lib, Framework and Boilerplate.它的取名正是来自于这句话的前面四个字母ANET。Anet 的宗旨是打造一个简单易用的快速开发项目模板适用于 Console 应用和 Web 应用。但是这个项目它还处于开发阶段我现只是起了个头目前只封装了一些简单的功能不过已实现的部分已经可以投入使用了。项目地址https://github.com/liamwang/anet为什么选择 Anet?目前很多 .NET 开源框架模板比如 ABP都比较重学习成本高使用起来很多条条框框比较麻烦。在实际开发中经常要做一些小服务或小工具选这种重型的框架可能就不太合适了。而 Anet 就是为了解决这个问题它追求的是简单易用适合快速开发一个微服务或小工具。一个简单的任务轮循例子下面演示如何通过 Anet 来实现一个简单任务轮循程序模拟一个发送消息的任务调度服务。这个示例在 GitHub 有 Sample我就不贴所有代码了只选重点。实际场景应该是这样的每隔几秒钟从缓存队列中获取要发送的消息调用其它接口执行发送并且需要有日志。如果出现异常服务不能终止或崩溃即需要有容错机制一般还会有重试机制等就不在这例子中讲了。Anet 封装了一个 JobScheduler它可以满足大部分的这一类需求。首先创建一个 Console.NET Core应用安装 Anet 包dotnet add package Anet然后添加一个 MessageJob 类使它实现 IJob 接口代码如下public class MessageJob : IJob{ private readonly ILoggerMessageJob _logger; public MessageJob(ILoggerMessageJob logger) { _logger logger; } public Task ExecuteAsync() { return Task.Run(() { // 模拟发送消息 _logger.LogInformation(正在发送消息...); Thread.Sleep(3000); _logger.LogInformation(消息发送成功。); }); } public Task OnExceptionAsync(Exception ex) { _logger.LogError(ex, 发送消息出错。); return Task.FromResult(0); }}每个 Console 程序都需要先调用 AnetGlobal 中的 InitConsoleApp 方法来初始化通过这个方法内可以进行一些自定义配置。在 Program.cs 中添编写如下代码public class Program{ public static SettingsModel Settings { get; set; } static void Main(string[] args) { Console.Title Aet 示例 - 简单任务调度程序; // 初始化应用 AnetGlobal.InitConsoleApp((config, services) { // 绑定配置 Settings new SettingsModel(); config.Bind(Settings); // 注册服务 services.AddTransientMessageJob(); }); // 1. 简单任务调度示例 JobScheduler.StartNewMessageJob(Settings.JobIntervalSeconds); // ...其它示例 // 等待 CtrlC 或关闭窗口 JobScheduler.WaitForShutdown(); }}一个简单的消息发送服务就做好了每隔指定秒数就会执行发送任务。运行后在控制台看到的效果是这个示例包含了记录日志控制台上的信息都是临时的你也可以查看运行目录下的 logs 文件夹中的日志文件。完整代码请前往 GitHub 查看。Anet 目前状态Anet 才刚起步处在最小可用状态。它目前只是一个通用库封装了一些常用的类比如基于 Snowflake 算法的 Id 生成器、用户密码加密等还算不上框架还有很多事情要做。后面我也会写更多的文章介绍这个项目。但一个人的力量终究是有限的特别希望大家能加入到这个项目中和我一起开发。欢迎贡献代码期待您的加入https://github.com/liamwang/anet