声明:XPO是我第一次接触,本人亦没有什么资深的项目经验,对软件开发也是一知半解,有很多不懂的地方,希望能向前辈讨教。 以下是我学习XAF过程的分享;
XPO学习(1)----第一个基于XPO的 数据感知应用程序
任务:
创建一个简单的应用程序,实现客户信息的录入和查询。
解决方案:
当你使用XPO,你首先要做的就是要定义一个持久类(persistent object class).持久的对象将被存储为数据库表中的记录,并为我们生成表关系;类的属性将被存储为字段。我们只要定义个持久化对象的类,数据库、表、字段、关系 都会为我们自动创建。
通过XPO提供的模板,完成这个任务显得就格外简单了。步骤:
1.新建一个项目窗体应用程序“Lession1”
2.添加Persistent Object 新项,命名为“Customer”
这个模板为我们自动生成了一个继承自XPObject类,还有默认的构造方法和一个对象初始化方法(AfterConstrucion()方法);单个的持久化对象(也就是这类的实例),将被存放到“Customer”表中。
using System; using DevExpress.Xpo; namespace Lession1 { public class Customer : XPObject { public Customer() : base() { // This constructor is used when an object is loaded from a persistent storage. // Do not place any code here. } public Customer(Session session) : base(session) { // This constructor is used when an object is loaded from a persistent storage. // Do not place any code here. } public override void AfterConstruction() { base.AfterConstruction(); // Place here your initialization code. } } }
note:在我们添加”Customer.cs“的时候,自动为我们引用了两个名称空间:DevExpress.Data.v10.1和DevExpress.Xpo.v10.1
3.向Cusomter类添加属性。
public class Customer : XPObject { public string Name; public int Age;
....(略)
这里只是添加了两个公有字段,只是为了简化代码,以防干扰学习。后面将使用属性。
4.向Form中添加XPColleciton 并设置ObjectClassInfo属性。
向From1中拖拽一个XPColleciton控件;
然后设置它的ObjectClassInfo 属性,选择我们建的Customer.
(这时,你会发现没有Customer,生成下你的项目,就出现了;原因:Persistent objects are usually retrieved from a database using the or . So, after we have declared the Customer class, it's necessary to rebuild our solution.)
5、为程序添加一些数据:代码如下:
private void Form1_Load(object sender, EventArgs e) { Customer cm = new Customer(); cm.Name = "John"; cm.Age = 21; xpCollection1.Add(cm); cm = new Customer(); cm.Name = "Bob"; cm.Age = 37; xpCollection1.Add(cm); }
7.启动应用程序。
修改一个oid为3,4 的Name,然后重新启动应用程序。ok,3和4的Name被修改了,单我们没写修改数据的任何操作数据库的代码。太好了!(^_^)
结束语:
我们创建了一个简单的应用程序,实现了浏览和修改客户信息的功能。是在bin目录下有个acces的数据库,这就是为我们自动生成的项目数据库。