0

我想在我正在构建的软件中实现以下几个方面: 1. 可定制的实体模型 2. 可定制的 UI 3. 可定制的工作流程

我已经考虑过实现这一目标的方法,我希望您对此进行审查并提出建议:

  1. 实体对象应该是普通对象,并且只保存数据
  2. 使用框架(如 NHibernate?)分离实体模型和数据库模式。这将允许轻松修改实体对象。
  3. 获取/修改实体的业务逻辑必须足够细化,以便它们可以作为工作流的一部分被调用。
  4. 业务对象不应保持任何状态,因此将仅包含静态方法
  5. 工作流将根据一个/多个实体的“状态”决定要调用业务对象/对象上的哪些方法。
  6. 工作流应该获得处理的结果,然后将业务对象传递到适当的 UI 屏幕。
  7. UI 屏幕必须包含有关如何显示给定实体的说明。UI 可能必须根据一组 UI 指令动态生成。(如 XUL)

    • 您如何看待这种方法?
    • 建议哪些现有框架(如 NHiberante、Window Workflow)适合此模型,这样我就不会花时间编写这些框架
    • 还建议是否有任何 asp.net 框架可以基于一组 UI 指令(如 Mozilla XUL)生成动态 asp.net ajax 页面?

我最近一直在探索 Apache Ofbiz,并对其自定义应用程序大部分区域的能力印象深刻:UI、工作流、实体。是否有任何用 C#/.Net 开发的类似(不一定是 ERP 系统)应用程序提供类似级别的定制?我正在寻找用 C# 开发的在 UI、工作流和实体模型方面高度可定制的应用程序示例

4

2 回答 2

3

Ive built large dynamic generated forms before with workflow, but everything was done in with in-house code.

An ORM isnt going to help you with dynamic forms, since you have to specify the table to entity field mappings. Since in your case their dynamic, it doesnt make sense.

Theres two ways that i see how to store the data:

1) EAV (Entity Attribute Value) table - dynamic fields, but pain for reports and not very efficient but sometimes its the only way to go

2) Generate the DB tables on the fly as the user designs the forms

As for the GUI check this out , havent used it yet. It's Microsoft's answer to a Ruby on Rails type environment that generates "scaffolding" ie. GUI screens based on your database table.

ASP.NET Dynamic Data

http://msdn.microsoft.com/en-us/library/cc488546.aspx

I havent seen anything you are looking for in another project.

You can look into XForm engines, but it seems kinda immature.

于 2008-12-30T06:41:51.453 回答
0

能不能把要求说清楚。

应用程序的用户是否会构建一些表单并定义其工作流程?每个单独的实体是否都包含一组基本属性?

您可以使用“Page.Parse”动态创建 asp.net 代码。使用任何方法(例如 XSLT)创建 asp.net 代码并将其解析到页面中。示例:http: //www.codeproject.com/KB/XML/xmlxsltransformer.aspx

于 2008-12-29T07:43:05.997 回答