这一讲,你将学到如何使用业务类库去实现你自己程序中的业务。为此,你将从类库中的Person类开始。你也将学到通过代码自动生成用户界面。
这一讲,你将学到如何使用业务类库去实现你自己程序中的业务。为此,你将从类库中的Person类开始。你也将学到通过代码自动生成用户界面。
· 右键点击MySolution.Module 项目,选择添加 | 新建项...打开添加新项对话框。在对话框中,选择Domain Object模板并且点击OK。然后,你就能得到一个自动生成的类声明。
· 用如下代码替换生成类中的代码
Code
1 [DefaultClassOptions]
2 public class Contact : Person {
3 private string webPageAddress;
4 private string nickName;
5 private string spouseName;
6 private TitleOfCourtesy titleOfCourtesy;
7 private string notes;
8 private DateTime anniversary;
9 public Contact(Session session) : base(session) { }
10 public string WebPageAddress {
11 get { return webPageAddress; }
12 set { SetPropertyValue("WebPageAddress", ref webPageAddress, value); }
13 }
14 public string NickName {
15 get { return nickName; }
16 set { SetPropertyValue("NickName", ref nickName, value); }
17 }
18 public string SpouseName {
19 get { return spouseName; }
20 set { SetPropertyValue("SpouseName", ref spouseName, value); }
21 }
22 public TitleOfCourtesy TitleOfCourtesy {
23 get { return titleOfCourtesy; }
24 set { SetPropertyValue("TitleOfCourtesy", ref titleOfCourtesy, value); }
25 }
26 public DateTime Anniversary {
27 get { return anniversary; }
28 set { SetPropertyValue("Anniversary", ref anniversary, value); }
29 }
30 [Size(4096)]
31 public string Notes {
32 get { return notes; }
33 set { SetPropertyValue("Notes", ref notes, value); }
34 }
35 }
36 public enum TitleOfCourtesy { Dr, Miss, Mr, Mrs, Ms };
37
38
在上面的代码片段中,应用了DefaultClassOptionsAttribute特性。这个特性意味着Contact业务类具备如下能力:
· Contact项将被添加到主窗体的导航控件中。当点击此项,会出现一个列表视图。这个列表视图中呈现了Contact类中对象的类型
· Contact项将被添加到New按钮的子项中, 点击此项,调用Contact明细窗体并且创建一个新的Contact对象。
· Contact对象将被作为生成报表的数据源
为了分开每一个功能,分别使用了NavigationItemAttribute,CreatableItemAttribute和VisiableInReportAttribute特性
· 运行程序(Windows Forms或者ASP.NET Web应用程序)。你将看到如何用特定的数据结构自动生成用户界面。导航控件允许你显示Contact列表。你可以使用附随的编辑属性修改列表中的内容。如果你点击了New按钮或者双击了一条记录,将显示一个明细窗口(被称为 明细视图),并且每一个数据区域都已经被编辑属性填充。
下午显示了Windows Forms程序中的明细和列表视图:
你可以看到许多元素都在很短的时间内以直观的方式生成出来了。首先,为编辑属性创建了数据区域,并且编辑属性在Grid控件中显示出来了 。这里说明一点,Combo box控件是为Title Of Courtesy(枚举)创建的。还要说明标题都被转换成了骆驼表示法并且中间加上了空格(camel-case to space-separated),窗口标题也自动更新了。
在 Windows Forms应用程序中,你可以在明细视图中随意更改布局。为此,右键点击一个空白处并选择Customize Layout。现在你可以移动编辑属性到需要的地方。
我的话:
这一讲中,不知道大家有没有感觉,我们仅仅是写了一个 Domain Object 就出现了这么多功能。你可以再次刷新数据库,看看多出来了几张新表,其中Contact是咱们写的,其他的都是XAF类库中已经为你准备好的业务类,比如说Contact继承的Person类,里面还有Country、PhoneNumber等其他现成的业务类。而且我们仅仅只是在Module中添加了业务类,其他的项目根本就没有动。充分说明了XAF的设计思路,那就是让开发人员只关注业务的实现,也说明了XAF框架的强大。
上一篇【翻译】eXpressAppFramework QuickStart 业务模型设计(一)——创建并运行新的解决方案
下一篇【翻译】eXpressAppFramework QuickStart 业务模型设计(三)—— 提供初始化数据