基于 ASP.NET Core in .NET 8 开发了一个在线二维码生成工具

更新日期: 2024-08-11 阅读次数: 1192 字数: 882 分类: Windows

平时经常要将开发好的 Android APP 上传到云服务器,然后将下载链接生成二维码,发送给客户,方便扫码下载安装。 之前用的草料二维码虽然满足需求,但是操作有点繁琐,所以想借自学 .NET 8 的机会,边学习边开发一个在线的二维码生成工具。 也算是在枯燥的工作之余,自己找点乐趣吧。

断断续续搞了一个周,每天最多半小时,终于上线了。总体感觉 .NET 8 的 ASP.NET Core MVC 开发起来还算舒服。 就是官方文档比较杂乱,需要东找西找。市面上的书籍也滥竽充数的居多,鲜有从头一步步的构建流程,大多是官方文档的二次消化式输出。 所以,写个 .NET 8 的入门教程,应该很有市场。

体验地址

i18n 国际化

想尝试 .NET 8 的很大一个原因就是,之前使用的 golang gin 和 rust axum 对 i18n 的支持为 0。 需要自己去实现,例如,我整理的

golang gin 的多语言网站国际化支持 i18n

虽然勉强能用,但是实际项目中会发现也存在的不便之处。 例如,功能多了之后,发现无法将不同功能的翻译进行隔离。而 .NET 默认将不同页面的翻译分散到了不同的资源文件。 前期看似麻烦,但是后续会发现确实是经验之举。

唯一的不便之处是,不能像 Android Studio 一样自动将文本提取为资源文件。 对文本硬编码也没有警告提示,说明 VS 对国际化不够重视。

具体实现,参考 ASP.NET Core in .NET 8 的 I18N 多语言国际化

部署

之前尝试了 .NET AOT 的部署。参考之前的文章

DotNet 8 Minimal API with AOT (三): Ubuntu Server 生产环境部署

但是如果算上 wwwroot 和配置文件,其实远不如 golang 的真正的单文件部署方便。因为 golang 可以 通过 go embed.FS 将 gin 模板及静态资源文件打包进二进制程序,但是 .NET 并没有找到类似的方案。其实 rust 项目我也没有找到类似 golang 这么简便的方案。

既然这样,使用非 AOT 的方案部署,对我来说也能接受。例如,目前的 .NET8 MVC 项目的部署流程是:

  • dotnet publish 生成部署文件目录
  • 使用 rsync 命令将 publish 目录同步到 ubuntu 服务器制定目录
  • 在服务器上使用 systemctl 重启 dotnet 服务

唯一担心的,就是过低版本的 ubuntu server 无法安装 .NET 8 Runtime。 手头的 Ubuntu Server 目前最低版本的是 18.04,好在上面有 Docker,实在不行就用 Docker 部署。

脱离 Visual Studio 单纯使用 VIM 开发

使用 .NET CLI 在命令行下新建一个 .NET 8 MVC 项目 后,就可以轻松的使用 VIM 进行开发。即便没有 Visual Studio 也没有任何障碍。

但是,对 .NET CLI 还是不够熟悉, 没有找到如何通过命令行创建:

  • Razor page
  • MVC Controller
  • i18n 翻译用的资源文件

这些用手动也能创建,但是稍显麻烦,不够优雅,也许需要自定义命令。 后续再了解一下。

https://learn.microsoft.com/en-us/dotnet/core/tools/

微信关注我哦 👍

大象工具微信公众号

我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式

tags: dotnet