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
原来的 TargetFramework
是 netcoreapp3.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
微软从 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 的更新在以前的文章中已经有过介绍,须要把 docker 镜像名称中的 core
去掉,而后修改 tag
从 3.1 到 5.0app
目前在用的 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
后续更新计划:
从业务的角度来讲,会支持一些更通用的预定配置,
从技术的角度来讲,以前我会把日志写到 ES 里,经过 Kibana 来作可视化,日志里也包括了一些 Metrics 之类的信息,因此后面会增长 Prometheus 和 Grafana, 将一些 Metrics 信息暴露出去,让 Prometheus 去抓取应用运行过程当中暴露出来的 Metrics,经过 Grafana 作可视化展现
另外但愿可以在下一个版本中增长组织(租户)的概念,每一个组织能够进行一些定制化的配置,以替代如今的预定详情,如今仍是老的活动室预定的打印页面