如何开发MS CRM类应用程序

时间:2010-09-22 06:06:49

标签: .net web-applications architecture metaprogramming

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

从最终用户的角度来看,这感觉非常简单。但是我很想知道如何开发类似的应用程序,我可以动态地设计我的表格和设计用户界面。

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

1 个答案:

答案 0 :(得分:0)

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

以下是我认为它可能会如何工作/或粗略地如何做到这一点......

<强>零件

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

  • somekind的CMS,除非您想将其构建到您已有的系统中。
  • 允许用户制作“对象”的UI组件/控件。要做得好,这需要一个相当高级的UI(SilverLight?HTML5?) - 虽然我猜你可以使用一些非常基本的东西。
  • 存储用户的“物”的一些方法 - 这是bascially数据,而且你想保留它存储在某种“中性”库
  • 做实际CRUD的东西 - 我正在考虑某种ORM工具,如Entity Framework,Lightspeed,NHibernate。您还需要一个CRUD操作本身的数据源目标。

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

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

我已经采用的另一种方法是基于非常在此,但它也使得使用的接口,并且该数据被存储为XML的“斑点” - 不是特定的离散的元数据