Asp.Net Ajax+WCF Service+ADO.NET Entity Framework实现数据列表,数据筛选,分页,排序,删除
1、 解决方案分为三个项目,分别对应Data Access,Business Logic和User InterFace
2、 Data Access Layer 使用ADO.NET Entity Framework实现对象关系映射和数据库访问,Business Logic Layer 使用Linq(linq to Entities),BuilderMethod,EntitySQL 实现对实体对象的操作和业务规则控制,User Interface Layer 使用Asp.Net Ajax+WCF Service实现用户和应用程序交互,Web页面采用纯粹的JavaScript +AJAX,没有用任何服务器控件。
3、 程序功能实现了对部门信息查询,员工信息列表,筛选,分页,排序,删除。
点击出处下载这个Demo ,里面有数据库
要运行这个Demo
您必须安装vs2008英文版,中文地不行,原因是中文的装上ADO.NET Entity Framework后在添加item里没有Ado.Net Data Model 的选择,也不知为啥。
您必须安装ADO.NET Entity Framework Beta 2下载地址:
http://www.microsoft.com/downloads/details.aspx?FamilyId=F1ADC5D1-A42E-40A6-A68C-A42EE11186F7&displaylang=en
ADO.Net Entity Framework Tools Aug 07 Community Technology Preview
下载地址:http://www.microsoft.com/downloads/details.aspx?FamilyId=09A36081-5ED1-4648-B995-6239D0B77CB5&displaylang=en
您也必须安装ASP.NET Futures 下载地址:http://www.asp.net/ajax/downloads/
在编写这个Demo的过程中遇到的问题如下:
1、 关于AjAx的数据绑定问题,我采用了ASP.NET Futures中的客户端数据绑定功能,感觉不爽,首先就是那个什么 ASP.Net Ajax XML 脚本的编程模型,编译器根本就不认识,更没有智能感应了,写起来累死人,教程里面只有对WebService的自动绑定,而我用的是WCF Service,得自己显式绑定数据,麻烦!
2、 对于有外键字段的列表显示问题,难道真的要自己写个专门给UI使用的实体,再在BL里面对这个实体赋值,再由WCF Service 传到客户端才可以吗?那不每个列表都要写一个?
3、 分页问题,在用WebForm的时候我都是把总记录数放在分页函数的out参数中一起传递给Objectdatasource ,用来绑定分页信息,用了AJAx可麻烦了,无法传递out参数,我绞尽脑汁也没找到好的解决办法,最终我屈服了,我TMD专门写了个得到记录数的函数用来返回给AjAX来绑定分页信息,真是。。。。
4、 排序问题,我感觉我的实现方式实在是太愚蠢了,而且还没实现倒序,正序排列,其实给分页函数多加一个参数,再把列表头调用排序的方法改一下就可以了,可是我怎么就觉得这样做这么别扭呢?这样开发还不累死人?
5、 删除问题,那个功能为什么不能用?我也不知道,谁知道?
6、 关于ADO.NET Entity Framework使用中的一些问题,算了不说了,反正它也不随着vs2008一起发布,到时候先用着Linq to SQL 吧,要注意的地方就是那个Web.Config中的链接字符串!
7、 IE查看源文件一看,一大堆javascript,页面运行机制看得一清二楚,还直接暴露了Web 服务方法。
8、 整个页面反应太慢,数据绑定慢,调用WCF 慢!
关于列表数据绑定,我觉得还不如直接让WCF Service 返回Html字符串(包含列表和分页信息),到时候搞个div显示出来就可以了,或者参照ASP.NET Futures中的例子,在客户端进行分页?