eXpressApp Framework 之DC技术入门系列(1)用DC实现现实中的实体

上一篇文章我介绍了DC并引入了官方对DC描述和特性,下面开始,我就来以实际的代码项目来逐步介绍一个用DC实现的采购系统,

首先,我们先用微软IDE工具VS2005/2008/2010来建立一个XAF的应用程序,我这里用vs2010来建立一个xaf的winform桌面应用程序MyPurchaseSystem,如下图:

 

为了方便组织DC文件,我这里把DC文件统一放入Entities文件夹内,下面我们开始来设计定义DC,在开始之前,我们先来了解DC的构成,我们这里先来定义一个"货品信息"DC:

C#代码

 

 1 [DomainComponent()]
 2 [NavigationItem("基本资料")]
 3 [XafDisplayName("货品资料")]
 4 [XafDefaultProperty("GoodsCode")]
 5 public interface iGoodsInfo
 6 {
 7     [RuleUniqueValue("", DefaultContexts.Save)]
 8     [RuleRequiredField("", DefaultContexts.Save)]
 9     [VisibleInLookupListView(true)]
10     [XafDisplayName("货品编码")]
11     string GoodsCode { getset; }
12     [XafDisplayName("货品名称")]
13     [RuleRequiredField("", DefaultContexts.Save)]
14     string GoodsName { getset; }
15     [XafDisplayName("货品规格")]
16     string GoodsSpec { getset; }
17 }

 

VB代码

 1 <DomainComponent()> _
 2  <NavigationItem("基本资料")> _
 3  <XafDisplayName("货品资料")> _
 4  <XafDefaultProperty("GoodsCode")> _
 5  Public Interface iGoodsInfo
 6  <RuleUniqueValue("", DefaultContexts.Save)> _
 7  <RuleRequiredField("", DefaultContexts.Save)> _
 8  <VisibleInLookupListView(True)> _
 9  <XafDisplayName("货品编码")> _
10  Property GoodsCode() As String
11  <XafDisplayName("货品名称")> _
12  <RuleRequiredField("", DefaultContexts.Save)> _
13  Property GoodsName() As String
14  <XafDisplayName("货品规格")> _
15  Property GoodsSpec() As String
16  End Interface

 

上面的代码大家会发现,这其实就是一个interface,但是在interface的基础上有了一些特殊的attribute,

DomainComponent定义了这个interface是一个DC,

<NavigationItem("基本资料")> 定义了这个DC在UI中的导航组为"基本资料"

XafDisplayName定义DC的可本地化显示名称(包括成员名称

Property .... 定义DC的成员(表字段)

RuleUniqueValue定义了该字段的唯一性验证规则

RuleRequiredField 定义了该字段必须输入字符

下面的代码对当前定义的DC在XAF的Module中进行注册,以便DC能够按照预期效果运行:

Public Overrides Sub Setup(ByVal application As XafApplication)
    If (Not XafTypesInfo.IsInitialized) Then
        XafTypesInfo.Instance.AddEntityToGenerate("MyComponent", GetType(iGoodsInfo), GetType(BaseObject))
    End If
    MyBase.Setup(application)
End Sub

现在我们来运行下程序,看看有什么效果

 

我们看到程序已经按照我们预期的效果运行了,实现这个效果,只要不超过3分钟时间,如果我们平时完全自己开发这个效果,大家应该知道要多少时间了,好,这篇文章我们了解了DC的基本定义方法,下一篇,我们将了解在DC里面实现实体之间的关系,

典型的主详细表结构,采购单
 

 
posted @ 2011-04-23 19:17  瘦山鸿  阅读(1689)  评论(0编辑  收藏  举报