](https://www.dimtechstudio.com/)

重温ABP(吐槽)

  以前因为学习DDD(领域驱动设计)的时候,认识到ABP这个.net框架,当时大概是ABP v5或者v6的版本。初识之时,它的项目结构,给我的感觉像是抄java springboot的,就是一眼看上去就知道很复杂,文件很多层深度很深,包名类名很长很长的那种。.net core开始,mvc项目加入了容器,.net web开发就有点像java,这也不能说abp抄springboot。后面 .net web项目模板又加入了aspire,又有种一眼像python flask,返璞归真的感觉。当然天下文章一大抄,也不能说谁像谁,谁抄谁。
  最近工作原因又开始接触abp,又去官网看了一圈,已经到了v9,还多了很多工具,看上去重复性的增删改查工作更便捷了。然而理想很美好,现实很骨感,很多功能是收费的,甚至以前免费的,也变成了收费了,用起来观感极差,约等于没法用……
  但是吐槽归吐槽,我还是很看好abp的。springboot虽然复杂但在java中一家独大,很多功能通过配置就能拥有(开启),让开发更专注于业务。如果abp往后也能拥有更丰富的组件,更丰富的生态,说不定也能成为 .net web的行业规范……的吧?

如何创建 .net 8版本abp项目?

  abp有个不好的地方更新得很频繁,更会随着 .net 版本更新而更新,比如现在的 .net 9。由于 .net 9不是lts版本,所以不考虑使用。这里记录一下使用abp cli,如何创建 .net 8版本abp项目。不得不说,这项目创建现在还真是有点难度啊。

  1. 先创建项目文件夹根目录

    mkdir Wlkr.Automation
    cd Wlkr.Automation
  2. 指定 .net 版本号

    # 列出所有SDK版本
    dotnet --list-sdks
    # 输出如:8.0.408 [C:\Program Files\dotnet\sdk]
    # 创建global.json
    notepad global.json
  3. 文件创建后,输入以下内容并保存,其中version改为上面命令查到的具体值

    {
    "sdk": {
    "version": "8.0.408"
    }
    }
  4. 安装abp cli

    #先卸载
    dotnet tool uninstall -g Volo.Abp.Studio.Cli
    #再安装指定版本
    dotnet tool install -g Volo.Abp.Cli --version 8.3.4
  5. 使用cli创建项目

    abp new Wlkr.Automation -u angular -scp -v 8.3.4

    上面命令的各种参数,可以看官方文档ABP CLI

继续吐槽……

  虽然我很想继续想你介绍ABP开发业务系统的便捷性,但是现在官方很多比以往更加不完善……甚至更多bug???
  首先,中文文档居然没了?不是吧,以前v6都有的啊,现在v9反而没了?不但v9没中文文档,就连以前v6的中文文档也翻不出来。单单这个英文就可以劝退很人了吧……
  其二,angular的前端,以前还能有登录功能的,但是现在点击后没反应。虽然自带的登录注册很简答,但是以前起码没bug能演示。现在好,让人作为脚手架的欲望也没了……
  其三,翻一下官网,会有个页面介绍开源的模块,安装了一个account模块,前端编译不了,没法使用……当然有可能是我打开方式有问题,但是翻官方文档,没找到更多资料,我也没办法。我怀疑是因为没指定版本号的原因,很有可能默认装的是最新的v9 account前端,而我是v8项目所以有问题,但是我没法验证这问题,只好作罢。
  至此,折腾了好一段时间,从试用v9各种工具链,到回归v8 cli,我只折腾出一个可编译的前后端,甚至无法作为脚手架的前后端。
  这点abp就做得很吝啬了,直接给开发者弄一个中台不好吗,折腾来折腾去,去安装你那些开源模块,弄出一堆bug还不好解决,那多劝退啊。给人一种看上去是开源,实际心里想的都是收费的割裂感,很败人缘的呀……

打赏作者
DimWalker
微信支付DimWalker wechat qrcode
支付宝DimWalker alipay qrcode