2010-09-22 10 views
2

我曾与MS CRM合作。在那里我们可以用图形设计我们的自定义实体,然后我们也可以构建一个可视化表单来对该实体执行CRUD操作。如何开发MS CRM类应用程序

从最终用户的角度来看,这种感觉非常简单。不过,我很想知道如何开发类似的应用程序,我可以即时设计我的桌面和设计用户界面。

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

+1

动态形式研究。 – 2010-09-22 06:12:04

+0

动态表单会给我设计UI的能力。我可以通过在我的应用程序中托管WinForm设计器或类似的东西来实现。我更感兴趣的是了解MS如何为中间层的所有新实体实现CRUD。 y如何将它推广到可以为任何新的用户定义实体执行CRUD? – Pradeep 2010-09-22 06:49:38

回答

0

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

以下是我想大概会的工作/或rougthly你怎么能做到这一点...

组件

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

  • CMS的somekind,除非你想建立一个你已经拥有的系统。
  • 允许用户创建“对象”的UI组件/控件。要做得好,这需要一个相当先进的用户界面(SilverLight?HTML5?) - 尽管我猜你可以使用一些非常基本的东西。
  • 存储用户的“物”的一些方式 - 这是bascially数据,而且你想保留它存储在某种“中性”库。
  • 什么是真正的CRUD - 我正在考虑像Entity Framework,Lightspeed,NHibernate这样的ORM工具。您还需要CRUD操作本身的数据源目标。

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

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

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