【问题标题】:How to develop MS CRM kind of application如何开发 MS CRM 类的应用程序
【发布时间】:2011-04-15 13:36:59
【问题描述】:

我曾与 MS CRM 合作过。在那里我们可以以图形方式设计我们的自定义实体,然后我们还可以构建一个可视化表单来对该实体执行 CRUD 操作。

从最终用户的角度来看,这感觉非常简单。不过,我很想知道如何开发类似的应用程序,我可以在其中动态设计我的表格和动态设计 UI。

我想知道的是他们如何动态地实现所有这些?如果我必须在一张简单的表上创建 CRUD,我需要编写大量代码。 MS 如何即时实现一切?任何指针,任何文档都会有很大帮助。

【问题讨论】:

  • 动态表单将赋予我设计 UI 的能力。我可以通过在我的应用程序中托管 WinForm 设计器或类似的东西来实现。我更感兴趣的是了解 MS 如何为中间层的所有新实体实现 CRUD。你们是如何概括他们可以为任何新的用户定义实体执行 CRUD 的?

标签: .net web-applications architecture metaprogramming


【解决方案1】:

我不知道他们实际上是如何做到的,但如果是我,我会使用 attributesreflection

这就是我认为它可能会起作用的方式/或大致上你可以如何做到这一点......

组件

系统需要一堆组件或子系统;它们可以是你自己编写的东西或现有的库(如果可以的话,使用现有的库):

  • 某种 CMS,除非您想将其构建到您已有的系统中。
  • 一个 UI 组件/控件,让用户可以制作他们的“对象”。要做得好,这需要一个相当高级的用户界面(SilverLight?HTML5?)——尽管我猜你可以使用一些非常基本的东西。
  • 存储用户“对象”的某种方式 - 这基本上是数据,您希望将其存储在某种“中性”存储库中。
  • 执行实际 CRUD 的操作 - 我正在考虑某种 ORM 工具,例如 Entity Framework、Lightspeed、NHibernate。您还需要 CRUD 操作本身的数据源目标。

诀窍在于第 2 点和第 3 点;这是我定义一组可用于定义用户创建对象的属性的地方。这些属性在逻辑上将流程连接在一起。因为可以在运行时读取属性:

  • 他们将能够驱动允许用户组合“对象”的 UI。
  • 准备就绪后,您可以生成物理上实现用户定义对象的实际类 - 然后用适当的属性装饰这些对象。
  • 不知何故,ORM 工具知道如何将这些对象的属性(基于属性)映射到数据存储区,或者自己编写 DAL - 也许您的 DAL 会包装 ORM?

我使用的另一种方法几乎基于此,但它也使用接口,并且数据存储为 XML 的“blob” - 而不是特定的离散元数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-13
    • 1970-01-01
    • 1970-01-01
    • 2012-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-21
    相关资源
    最近更新 更多