适用于 ASP.NET 的强大服务器端动态表单引擎
我最近实现了一个简单的动态表单引擎,它使用动态加载的 ASP.NET 控件和 EAV 架构来处理数据模型的可变性质。企业一度对最终产品非常满意,但现在迫切需要更复杂的动态表单:
- 字段可见性与其他表单字段的值相关联 与
- 其他表单字段的状态相关联的下拉可能值列表
- 执行跨表单的各种业务规则:即FieldA的值必须不大于FieldX + 30天,假设FieldX不为空,等等
- 其他复杂的字段间依赖关系和业务规则
正如您想象的那样,我正在寻找一个现成的解决方案,因为从头开始推出这样的引擎似乎很乏味、耗时,而且并不是我们核心业务的一部分。理想情况下,我想要包含所有层(业务逻辑、表示层和持久层)的完整 ASP.NET 框架(MVC 或 WebForms)。然而,乞丐不可能是选择者,所以我会凑合使用一个只处理业务规则定义和评估的框架。此外,我正在寻找严格的服务器端解决方案,因为我的手被严格的策略束缚,不允许任何依赖客户端插件。
XForms 似乎是一个完美的选择,但我发现的唯一成熟的实现是基于 Java (Orbeon) 或 Django (Chiba) 的。我发现的其他 XForms 实现在某种程度上依赖于客户端插件。
如果我能找到一种将 Orbeon 与 ASP.NET 应用程序集成的方法,我愿意使用 Orbeon,但我还没有看到这种混合实现的实际示例。
我简单地浏览了 Microsoft Office InfoPath,但它似乎不够强大,无法处理我需要实现的复杂场景。
欢迎所有想法!
I've recently implemented a simple dynamic forms engine that uses dynamically loaded ASP.NET controls in concert with an EAV schema to handle the variable nature of the data model. The business was sufficiently satisfied with the end product for a time, but is now clamoring for much more complex dynamic forms:
- Field visibility is tied to the values of other form fields
- List of drop down possible values tied to the state of other form fields
- Enforcement of various business rules across the form: i.e. Value of FieldA must be no greater than FieldX + 30 days, assuming FieldX is not null, blah blah
- Other complex inter-field dependencies and business rules
As you might imagine, I'm looking for an off the shelf solution since rolling such an engine from scratch seems tedious, time consuming and not really part of our core business. Ideally, I want complete ASP.NET framework (MVC or WebForms) that encompasses all layers (Business Logic, Presentation Layer and Persistence). Beggars can't be choosers, however, so I'd make do with a framework that only dealt with Business Rule definition and evaluation. Furthermore, I'm looking for a strictly server-side solution since my hands are tied by a strict policy that disallows any dependence on client side plug-ins.
XForms seems like a perfect fit, but the only mature implementations I've found are based on Java (Orbeon) or Django (Chiba). The other XForms implementations I've found have some kind of dependence on client-side plug-ins.
I'm open to using Orbeon if I can figure out a way to integrate it with an ASP.NET application, but I've see no actual examples of such a hybrid implementation.
I looked briefly at Microsoft Office InfoPath, but it doesn't seem nearly robust enough to handle the kind of complex scenarios I need to implement.
All ideas welcome!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您也应该看看 betterform (http://betterform.de)。它是 Chiba 的继承者,与原始 Chiba 相比有许多改进。它是开源的,并作为原始产品托管在 sourceforge 上。
You should have a look at betterform (http://betterform.de) too. It's a successor of Chiba and has many improvements in comparison to the original Chiba. It is open source and hosted at sourceforge as the original product.