我最近实现了一个简单的动态表单引擎,它使用动态加载的 ASP.NET 控件与 EAV 架构来处理数据模型的可变特性。企业一度对最终产品非常满意,但现在要求更复杂的动态形式:
- 字段可见性与其他表单字段的值相关联
- 与其他表单字段的状态相关的下拉可能值列表
- 跨表单执行各种业务规则:即FieldA的值必须不大于FieldX + 30天,假设FieldX不为空,等等等等
- 其他复杂的字段间依赖关系和业务规则
正如您可能想象的那样,我正在寻找一个现成的解决方案,因为从头开始滚动这样一个引擎似乎很乏味、耗时,而且并不是我们核心业务的一部分。理想情况下,我想要包含所有层(业务逻辑、表示层和持久性)的完整 ASP.NET 框架(MVC 或 WebForms)。然而,乞丐不能成为选择者,所以我会使用一个只处理业务规则定义和评估的框架。此外,我正在寻找一个严格的服务器端解决方案,因为我的双手被严格的政策束缚,不允许对客户端插件的任何依赖。
XForms 看起来非常合适,但我发现的唯一成熟的实现是基于 Java (Orbeon) 或 Django (Chiba)。我发现的其他 XForms 实现在某种程度上依赖于客户端插件。
如果我能找到一种将 Orbeon 与 ASP.NET 应用程序集成的方法,我愿意使用 Orbeon,但我没有看到这种混合实现的实际示例。
我简要查看了 Microsoft Office InfoPath,但它似乎不够强大,无法处理我需要实现的那种复杂场景。
欢迎所有想法!