日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

从 3.1 到 5.0 —— OpenReservation 更新记

發(fā)布時(shí)間:2023/12/4 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 从 3.1 到 5.0 —— OpenReservation 更新记 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

OpenReservation 從 asp.net core 3.1 到 5.0

Intro

OpenReservation 是一個(gè)開(kāi)源的預(yù)約系統(tǒng),最初的版本是我們學(xué)校的活動(dòng)室預(yù)約系統(tǒng),現(xiàn)在正逐步變成一個(gè)更為通用的預(yù)約系統(tǒng)。.NET5 發(fā)布之后也是把這個(gè)項(xiàng)目更新到了 5.0。

這個(gè)項(xiàng)目是一個(gè)做了很長(zhǎng)時(shí)間的項(xiàng)目,從原來(lái)的 asp.net WebForm 到 asp.net mvc 再到 asp.net core,現(xiàn)在不僅僅支持服務(wù)器端渲染,也支持了 Web API + SPA 的模式, 從應(yīng)用部署上來(lái)說(shuō),從原來(lái)的只支持 IIS 部署,到現(xiàn)在支持跨平臺(tái)部署,支持 docker 以及 k8s,helm 部署,從原來(lái)每次都是手動(dòng)發(fā)布部署,到現(xiàn)在基于 Azure DevOps 的自動(dòng)化 CI/CD 部署。

項(xiàng)目文件更新

原來(lái)的 TargetFramework 是 netcoreapp3.1 的需要更新成 net5.0,原來(lái) 3.1 的包引用需要更新成 5.0,因?yàn)楹芏喟陌姹径际且粯拥乃晕以陧?xiàng)目根目錄加了一個(gè) Directory.Build.props 設(shè)置了一個(gè)變量,要更新的時(shí)候每次更新這個(gè)變量就可以了。

因?yàn)閺?.net5.0 開(kāi)始就淡化 .net core 了,都是 dotnet,所以變量名我也從 DotNetCorePackageVersion 更新成了 DotNetPackageVersion, 另外一個(gè)更新是有的 netstandad2.0 的項(xiàng)目更新成了 netstandard2.1,因?yàn)槲乙褂?efcore5.0,需要 .netstandard2.1 的 Target

JSON 更新

微軟從 3.0 開(kāi)始引入了自己的 System.Text.Json 來(lái)作為默認(rèn)的 Json 序列化器,之前更新的時(shí)候覺(jué)得 System.Text.Json 的 BUG 太多,還是使用的 JSON.Net(Newtonsoft.Json),這次升級(jí)到 5.0 之后,開(kāi)始使用微軟的 System.Text.Json 來(lái)作為 asp.net core 的 JSON 序列化器,這樣也可以少一個(gè)引用

Startup 變更:

Dockerfile

dockerfile 的更新在之前的文章中已經(jīng)有過(guò)介紹,需要把 docker 鏡像名稱中的 core 去掉,然后修改 tag 從 3.1 到 5.0

CI update

目前在用的 CI 是 Azure DevOps 和 Github Actions,需要將 Build 的 dotnet sdk 更新到 5.0,現(xiàn)在這兩種 CI 都支持使用 5.0.x 來(lái)獲取 5.0 版本的最新版本 sdk

Azure DevOps CI 變更:

Github Actions 變更:

More

后續(xù)更新計(jì)劃:

從業(yè)務(wù)的角度來(lái)說(shuō),會(huì)支持一些更通用的預(yù)約配置,

  • 預(yù)約頻次限制,每個(gè)預(yù)約項(xiàng)目配置每個(gè)人每天/每周/每月最多可以預(yù)約次數(shù)

  • 預(yù)約時(shí)間段允許多次預(yù)約,當(dāng)前每個(gè)預(yù)約時(shí)間段只能被預(yù)約一次,有些情況允許同一個(gè)時(shí)間段多次預(yù)約,比如駕校預(yù)約,同一時(shí)間段允許多人同時(shí)預(yù)約,也需要限制,需要根據(jù)每個(gè)預(yù)約項(xiàng)目進(jìn)行配置 可以參考:https://github.com/OpenReservation/ReservationServer/issues/40,

從技術(shù)的角度來(lái)說(shuō),之前我會(huì)把日志寫(xiě)到 ES 里,通過(guò) Kibana 來(lái)做可視化,日志里也包括了一些 Metrics 之類的信息,所以后面會(huì)增加 Prometheus 和 Grafana, 將一些 Metrics 信息暴露出去,讓 Prometheus 去抓取應(yīng)用運(yùn)行過(guò)程中暴露出來(lái)的 Metrics,通過(guò) Grafana 做可視化展示

另外希望能夠在下一個(gè)版本中增加組織(租戶)的概念,每個(gè)組織可以進(jìn)行一些定制化的配置,以替代現(xiàn)在的預(yù)約詳情,現(xiàn)在還是老的活動(dòng)室預(yù)約的打印頁(yè)面

Reference

  • https://github.com/OpenReservation/ReservationServer

  • https://reservation.weihanli.xyz/

  • https://github.com/OpenReservation/angular-client

  • https://reservation-client.weihanli.xyz/

總結(jié)

以上是生活随笔為你收集整理的从 3.1 到 5.0 —— OpenReservation 更新记的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。