标签: orchardcore

没有 ORM 的 ABP

我最近偶然发现 ABP(以前称为 Asp.Net BoilerPlate)作为以模块化方式重建 Web 应用程序的框架。它确实非常有趣,并且附带了许多非常疯狂的基本元素,例如身份验证、日志记录、安全性、多租户、设置等等......

但是,据我目前的理解,ABP 与 EF Core 或 Dapper 是“强耦合”的,而且我不喜欢在代码中使用 ORM,我有一种更“数据库驱动”的方法并且喜欢编写询问我自己。

所以,主要问题是:可以在不使用 EFCore/Dapper 的情况下使用 ABP 吗?或者最好切换到其他模块化框架,例如OrchardCoreExtCore

编辑:2020 年 11 月 11 日@hikalkan 回复后。

嗨@hikalkan,感谢您的友好回复。也许我必须更多地解释我想要实现的目标,以便您可以更好地为我提供建议。我的目标是创建一个“可插入”网络应用程序,在其中我可以将一个模块替换为具有相同功能但细节不同的另一个模块。

一点介绍:我有一个针对中小型公司人力资源部门的“复杂”网络应用程序,许多客户都使用它,并且每个客户都在其场所安装了自己的副本。该应用程序由许多功能组成:个人数据、合同数据、培训数据、轮班等。但每个客户的模块都略有不同,而应用程序本身是一个旧的、单一的应用程序:它可以工作,但我必须维护不同的版本,几乎每个客户都有一个版本,非常困难且耗时。不要怪我,我已经“继承”了这个应用程序,并且必须以这种方式维护和改进它。

但是,最后,我可以花一些时间从头开始重建它,我希望它是“模块化的”,以便主要部分(身份验证、分析、数据库交互、主题、安全性、日志记录等)保持稳定& 可靠,在所有安装之间共享,每个客户都可以选择模块/插件。有点像 Wordpress,但更好。

例如,假设我有一个简单的模块“contactSimple”用于管理联系人(电子邮件、电话号码、寻呼机等),每个联系人在数据库中都有一个类型和一个值字段,非常基本,并且我的 90%客户对此感到满意。但剩下的 10% 希望添加注释字段、“是主要联系人”标志或其他细微更改。现在,我想做的是:开发“contactEnhanced”模块作为一个单独的类库,与“contactSimple”具有相同的界面和主要功能,将其编译为dll,只需更改web应用程序中的dll,更新如果需要的话,数据库,重新加载应用程序并发生新的 dll,而无需更改任何其他组件。

我本来想简单地使用动态反射来获取它,但后来我发现反射不太适合,因为速度慢且占用资源大,所以在上网时我找到了ABP。

现在,问题是:在您看来,ABP 是我正在寻找的框架/解决方案吗?请告诉我!

orm asp.net-core abp orchardcore

3
推荐指数
1
解决办法
1237
查看次数

标签 统计

abp ×1

asp.net-core ×1

orchardcore ×1

orm ×1