灵活的设计 - 可定制的实体模型,UI和工作流程

时间:2008-12-29 06:21:28

标签: asp.net entity-framework customization

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

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

  1. 实体对象应该是普通对象,并且只包含数据
  2. 使用框架(如NHibernate?)分离实体模型和DB Schema。这样可以轻松修改实体对象。
  3. 获取/修改实体的业务逻辑必须足够精细,以便可以作为工作流的一部分调用它们。
  4. 业务对象不应该包含任何状态,因此只包含静态方法
  5. 工作流将根据要调用的业务对象/对象上的方法的实体/实体的“状态”来决定。
  6. 工作流程应获取处理结果,然后将业务对象传递到相应的UI屏幕。
  7. UI屏幕必须包含有关如何显示给定实体/ entites的说明。可能必须基于一组UI指令动态地生成UI。 (像XUL)

    • 您如何看待这种方法?
    • 建议哪些现有框架(如NHiberante,Window Workflow)适合此模型,以便我不会花时间编写这些框架
    • 还建议是否有任何asp.net框架可以根据一组UI指令生成动态的asp.net ajax页面(如Mozilla XUL)?
  8. 我最近一直在探索Apache Ofbiz,并对其定制应用程序的大部分区域的能力印象深刻:UI,工作流程,实体。是否有任何类似的(不一定是ERP系统)应用程序在C#/ .Net中开发,它提供类似的自定义级别?我正在寻找在C#中开发的应用程序示例,这些应用程序在UI,工作流和实体模型方面可高度自定义

2 个答案:

答案 0 :(得分:3)

我在使用工作流之前已经构建了大型动态生成表单,但所有内容都是使用内部代码完成的。

ORM不会帮助您使用动态表单,因为您必须将表指定为实体字段映射。因为在你的情况下他们的动态,它没有意义。

我有两种看待如何存储数据的方法:

1)EAV(实体属性值)表 - 动态字段,但报告的痛苦并不是很有效但有时它是唯一的出路

2)当用户设计表单时,动态生成数据库表

至于GUI检查这个,还没有使用它。这是微软对Ruby on Rails类型环境产生“脚手架”的答案,即。基于数据库表的GUI屏幕。

ASP.NET动态数据

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

我在另一个项目中没有看到你正在寻找的东西。

您可以查看XForm引擎,但它似乎还不成熟。

答案 1 :(得分:0)

您能否澄清要求。

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

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