从 3.1 到 5.0 —— OpenReservation 更新记

OpenReservation 从 asp.net core 3.1 到 5.0

Intro

OpenReservation 是一个开源的预定系统,最初的版本是咱们学校的活动室预定系统,如今正逐步变成一个更为通用的预定系统。.NET5 发布以后也是把这个项目更新到了 5.0。git

这个项目是一个作了很长时间的项目,从原来的 asp.net WebForm 到 asp.net mvc 再到 asp.net core,如今不只仅支持服务器端渲染,也支持了 Web API + SPA 的模式,
从应用部署上来讲,从原来的只支持 IIS 部署,到如今支持跨平台部署,支持 docker 以及 k8s,helm 部署,从原来每次都是手动发布部署,到如今基于 Azure DevOps 的自动化 CI/CD 部署。github

项目文件更新

原来的 TargetFrameworknetcoreapp3.1 的须要更新成 net5.0,原来 3.1 的包引用须要更新成 5.0,由于不少包的版本都是同样的因此我在项目根目录加了一个 Directory.Build.props 设置了一个变量,要更新的时候每次更新这个变量就能够了。docker

由于从 .net5.0 开始就淡化 .net core 了,都是 dotnet,因此变量名我也从 DotNetCorePackageVersion 更新成了 DotNetPackageVersion
另一个更新是有的 netstandad2.0 的项目更新成了 netstandard2.1,由于我要使用 efcore5.0,须要 .netstandard2.1 的 Targetjson

JSON 更新

微软从 3.0 开始引入了本身的 System.Text.Json 来做为默认的 Json 序列化器,以前更新的时候以为 System.Text.Json 的 BUG 太多,仍是使用的 JSON.Net(Newtonsoft.Json),此次升级到 5.0 以后,开始使用微软的 System.Text.Json 来做为 asp.net core 的 JSON 序列化器,这样也能够少一个引用服务器

Startup 变动:mvc

Dockerfile

dockerfile 的更新在以前的文章中已经有过介绍,须要把 docker 镜像名称中的 core 去掉,而后修改 tag 从 3.1 到 5.0app

CI update

目前在用的 CI 是 Azure DevOps 和 Github Actions,须要将 Build 的 dotnet sdk 更新到 5.0,如今这两种 CI 都支持使用 5.0.x 来获取 5.0 版本的最新版本 sdkasp.net

Azure DevOps CI 变动:ui

Github Actions 变动:.net

More

后续更新计划:

从业务的角度来讲,会支持一些更通用的预定配置,

  • 预定频次限制,每一个预定项目配置每一个人天天/每周/每个月最多能够预定次数
  • 预定时间段容许屡次预定,当前每一个预定时间段只能被预定一次,有些状况容许同一个时间段屡次预定,好比驾校预定,同一时间段容许多人同时预定,也须要限制,须要根据每一个预定项目进行配置
    能够参考:https://github.com/OpenReservation/ReservationServer/issues/40

从技术的角度来讲,以前我会把日志写到 ES 里,经过 Kibana 来作可视化,日志里也包括了一些 Metrics 之类的信息,因此后面会增长 Prometheus 和 Grafana, 将一些 Metrics 信息暴露出去,让 Prometheus 去抓取应用运行过程当中暴露出来的 Metrics,经过 Grafana 作可视化展现

另外但愿可以在下一个版本中增长组织(租户)的概念,每一个组织能够进行一些定制化的配置,以替代如今的预定详情,如今仍是老的活动室预定的打印页面

Reference

相关文章
相关标签/搜索