代码之家  ›  专栏  ›  技术社区  ›  Pradeep

如何开发MS CRM类应用程序

  •  2
  • Pradeep  · 技术社区  · 14 年前

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

    从最终用户的角度来看,这感觉很简单。然而,我有兴趣知道如何开发类似的应用程序,在这种应用程序中,我可以动态地设计表和动态地设计UI。

    我想知道的是,他们如何动态地实现所有这些目标?如果必须在一个简单的表上创建CRUD,我需要编写大量的代码。微软是如何实现一切的?任何提示,任何文档都会有很大帮助。

    1 回复  |  直到 14 年前
        1
  •  0
  •   Adrian K    14 年前

    我不知道他们是怎么做的,但如果是我,我会用 attributes reflection .

    以下是我认为它可能会起作用的方式/或是你如何去做的方式…

    组件

    系统需要大量的组件或子系统;它们可以是您自己编写的东西,也可以是现有库(如果可以,请使用现有库):

    • 某种类型的CMS,除非你想把它构建成你已经拥有的系统。
    • 一种用户界面组件/控件,允许用户创建其“对象”。要做好这项工作,需要一个相当高级的用户界面(Silverlight?HTML5?)-虽然我想你可以用一些非常基本的东西。
    • 某种存储用户“对象”的方法——这是基本数据,您希望将其保存在某种“中性”存储库中。
    • 做一些实际的积垢-我在想一些ORM工具,比如实体框架,Lightspeed,NHibernate。您还需要CRUD操作本身的数据源目标。

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

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

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