咱光明正大地从 ABP 商业版中扒拉东西。所谓“白嫖”,不是“破解”,水文一篇,但也许会帮你打开一扇新的大门。

首先怎么个光明正大呢?准备工作:

  • abp.io 注册一个账号(网站和 ABP CLI 共用该账号)
  • 通过邮箱验证

购买商业版的页面中 Team 版下方有个 Free Trial(免费试用) 按钮,并不显眼,就是它了,点他!

image

提交申请之后,申请需要等待审核,我是在第二天收到许可激活邮件。

image

申请成功,可以获得 ABP 团队版14天使用权限。

试用许可激活后就可以通过 ABP CLI 登陆 abp login ,使用商业版高级功能 abp suite 。(和常规授权不一样,没有授权证书,激活后注册帐户立即生效。)

image

abp suite 提供的核心功能:

  • 创建解决方案
  • CURD 页面生成,简单功能直接生成代码,但是我没有生成成功过。
  • 模块管理,添加模块真是方便。

帮助和引导页面做得不错,第一次用跟着引导页基本就能上手,abp suite 如何使用,按下不表。

image

直接整项目测试

安装:

dotnet tool update -g Volo.Abp.Cli
abp suite install

使用:

abp login <username>
abp suite update

接下来就是一波常规操作,创建启动模板,个人钟爱 分层(Tired) 架构,整个过程很丝滑,唯一需要注意的地方:

  • 在创建解决方案时,就设置好要使用的数据库连接字符串,就不需要后面逐个项目手动修改,连接字符串会直接写到启动应用程序的配置文件中。
  • 解决方案创建成功之后,会提示是否创建数据库和插入初始化数据,通常是需要的,这一步会自动完成数据迁移和数据播种,就不需要后面手动运行 DbMigrator 应用。

因为没有提前做好前面的设置,手动进行数据迁移时,在 macOS 下使用 VS Code 直接使用命令 dotnet run 第一次执行 DbMigrator 程序会报错。

需要先到 EntityFrameworkCore 项目下,手动执行数据迁移:

//导航到 EntityFrameworkCore 项目下
dotnet ef migrations add Initail -c ApplicationTemplateDbContext
  • -c 参数,指定数据上下文,因为该项目中已经包含多个 DbContext 。

然后再执行 DbMigrator 应用程序

dotnet run
[20:55:13 INF] Started database migrations...
[20:55:13 INF] Migrating schema for host database...
[20:55:22 INF] Executing host database seed...

依次启用 IdentityServer HttpApi.Host Web 项目,接下来就可以尽情玩耍了!

另外,在项目中还集成了商业版中提供的应用模块:

abp add-module Volo.Payment
abp add-module Volo.Chat
abp add-module Volo.FileManagement
abp add-module Volo.Forms
abp add-module Volo.Abp.Sms.Twilio

官方对应用模块的调教是非常稳定的,基本上只需要一行命令,就能无缝添加到解决方案中,数据迁移的步骤都省了。

打完收工,截图留念:

image

image

image

白嫖资源(重点)

尽管是团队试用版,在14天期限内容依然可以享受氪金待遇,白嫖的东西,整理了下其实还是不少,下面是列表:

  • 解决方案启动模板源码可以参考,特别是微服务示例项目
    • 分层架构项目
    • 微服务示例项目(开源免费版不能创建)
  • 数据库结构可参考,有了Pro版应用模块的数据库结构,实现Pro版的功能等于表设计已经提前做好了。
  • 商业版项目示例(只有授权账号登陆状态可下载,传送门。)
    • Book Store: Razor Pages (MVC) UI & Entity Framework Core
    • Book Store: Blazor UI & Entity Framework Core
    • Book Store: Angular UI & MongoDB
    • Easy CRM
  • 商业版应用模块本地运行演示
  • 商业版帮助文档(不需要授权账号也能查看)
    • IdentityServer Deployment IdentityServer 部署文档,对 ABP Framework 中分层架构单独部署 IdentityServer 依然有用,中间提到的配置,在前面准备 《ABP Framework 极速开发》教程时也碰到过。
  • ABP Suite 工具是真的好用,免费版替代品 AbpHelper

获取应用模块源码就别想了,使用 abp get-source 会提示没有权限,请求被禁止,需要升级 License。

abp get-source Volo.Account.Pro
abp get-source Volo.FileManagement

官方对源码的保护机制有两重:

  • 第一重是自建 Nuget 服务器对程序集 Nuget 包引用进行安全管理。每个授权用户都有一个专用的 Nuget 地址,格式:https://nuget.abp.io/{API Key} ,没有授权,根本无法下载商业版 Nuget 包,使用 abp suite 生成的解决方案启动模板包含 NuGet.Config 设置。
  • 第二重是程序集混淆,就算拿到商业版应用程序程序集,也不能通过常规反编译的方式查看源码,在程序运行时每个核心模块都会检查 License 是否有效。

Volosoft 本身是一家技术公司,在开源和商业化之间平衡得很好,源码保护得也挺好,目前还没看到有破解或最新版商业版源码泄露。

如果公司实力允许建议购买商业授权,这个框架是真的好(Volosoft不用给我代言费)。

小结一下

关于购买商业版的建议

个人觉得,团队(Team)版对于开发者项目开发意义并不大,应用模块没有源码,只能使用现有功能,不能基于源码修改,开发灵活性受限,现有功能是固定的,并不适用直接用在企业级项目开发。所以有经费预算,至少购买商业(Business)版,包含: 所有模块源码 以及 所有主题源码

小用怡情、大用伤身,掌握 ABP Framwork 才是王道!

Volosoft 对氪金用户是真爱,模块和工具同时给到位,不但提供商业版应用模块,业务功能帮你实现;还提供作弊工具 abp suite 搭建项目和增删改查功能开发,配置几下就搞定,可以留出更多时间摸鱼。讲究开发效率,来一套真的有必要!

最后,想告诫各位开发者:工具虽好用,不要“贪杯”,开发者过渡依赖工具,会丧失开发能力,得不偿失的。商业版提供的应用模块和工具,在我看来只是 ABP.IO 的附属产品,个人认为 ABP.IO 最有价值的部分是:框架基础设施部分,即 ABP Framework ,这是开源的,强烈建议开发者花时间深入分析掌握,形成了底层的开发能力,至于各式各样的应用模块,其实是手到擒来!

都阅读到这了,如果你觉得本文还不错,请点“推荐”,让更多人看到吧!


快速上手 ABP Framework,链接直达:ABP Framework 极速开发