自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 资源 (2)
  • 收藏
  • 关注

原创 实战 .Net 数据访问层 - 7

 最后,和大家讨论一个由于引入Def而产生的技术问题。老规矩,还是先请各位看一段代码: 代码6:Interface Inheritance下的Def多态问题public abstract class DefBase : IList, IDictionary{    // 既是Interface方法,又被声明为virtual    public

2004-05-09 11:08:00 2372

原创 剖析 .Net 下的数据访问层技术(六)

 u     其它Ø        ASTA经常在Delphi下进行网络数据库应用开发或者曾经使用过Borland Midas技术的朋友,对ASTA应该不会陌生。如果说基于ADO.NET或O/R Mapping来实现DAL是少林、武当的正宗心法,那ASTA就有点明教“乾坤大挪移”的味道:将整个DAL中的Data Access几乎完全扔到了另一个地方(和打回原处稍有区别,但也算另一种挪移J)进行处理

2004-05-09 11:06:00 2618

原创 实战 .Net 数据访问层 - 15

 上面的示意图中,步骤7指向的Remoting Server就是Host程序,而Remoting Server包裹着的RemoteCustomer就是真正提供服务的数据操作类。以下所列代码即为该类的部分实现: 代码13:使用Data Access Logic进行Remoting调用 – 3,RemoteCustomer public clas

2004-05-09 11:02:00 2149

原创 实战 .Net 数据访问层 - 17

 GetCache的代码很简单:有则取之,无则填之,“是否过期”是其有效性的唯一判断条件!接下来,作者就这个“是否过期”问题来进行一些探索,看看到底是怎么回事。 Ok,还是先请大家看段代码: 代码15:过期无效之Cache篇!public class CacheManager{    private bool IsCacheExpired(s

2004-05-09 10:50:00 2063

原创 实战 .Net 数据访问层 - 19

 6.       ASPECTAOP(Aspect Oriented Programming)可能是最近几年被挖掘出来的最具震撼力的技术之一,作者并不打算在此花什么篇幅介绍它(网上资料已多如牛毛),只是希望借用其ASPECT概念来说明几个设计Data Access Layer时必须考虑的问题(也是在进行系统架构设计前不得不考虑的几个重要因素!):(1)   Security把

2004-05-09 10:50:00 1932

原创 实战 .Net 数据访问层 - 23

 u     使用现成的框架Ø        首选当然是.NET Framework即将正式推出的ObjectSpaces!Ø        如果希望Total Solution,Borland ECO就是最佳选择! Ø        其它n        开源项目推荐使用OPF(国外)n        商业产品推荐使用Grove(国内) u     设计自己的持久层Ø        如果希望自己

2004-05-09 10:50:00 2202

原创 实战 .Net 数据访问层 - 12

从这个DalBase很容易看出,Framework Level的支持主要集中在Cache Management和Distributed Process上面,这也几乎是所有Data Access Logic都不得不考虑的现实问题(可能在实际项目中,Data Access Logic Level的Distributed Process需求不会很多,大部分都在Business Logic

2004-05-09 10:49:00 2164

原创 实战 .Net 数据访问层 - 13

 具体的Data Access Logic实现技术,作者感觉已没有必要多加讨论,相信只要是有过ADO.NET开发经验的同志都比较清楚应该怎么做,网上的资料也浩如烟海,非常齐全!    在此,就以作者自己的一段Data Access Logic代码来结束关于它的讨论:      代码11:使用Data Access Logic进行Remoting调用 – 1,基本操作

2004-05-09 10:49:00 2078

原创 实战 .Net 数据访问层 - 14

代码12:使用Data Access Logic进行Remoting调用 – 2,Remoting访问class CustomerDal_ORM : MyDal{    // 请注意:这个delegate方法被限制为private访问权限private ArrayList GetAllCustomers_Remoting_delegate()    {

2004-05-09 10:49:00 2097

原创 实战 .Net 数据访问层 - 16

 5.       Cache Management首先说明一点,之所以将Cache Management单列出来,就是为了要说明数据缓存的重要性!在很多时候,这比撰写Data Access Logic更让人费心,也更令人难以把握。               作者的这个Cache Management实现了进行Data Cache时所必须考虑的几个问题,虽然还并不完善

2004-05-09 10:49:00 2250

原创 实战 .Net 数据访问层 - 18

 谈了些实现问题,来说说几个题外话:(1)    性能问题:Cache Management能显著提高数据访问效率,但对内存的要求比较高,尤其是在Web Application或Remoting Server这种应用环境下!所以,这就要求我们应该将“钱”用在“刀刃”上(对内存毫不在乎者除外J),不能乱花钱!一般,对于系统数据(如:应用 / 模块,组 / 用户 / 权限等)或Look

2004-05-09 10:49:00 2443

原创 实战 .Net 数据访问层 - 20

 7.       其它看完了主角,该是最佳男(女)配角上场时间了!正好,作者也只准备了两个小玩意儿,就算供大家茶余饭后吧J (1)    DafConfig这个拿出来都有点不好意思,怎么连读取配置文件都算一个配角啊?可现实就是这样,虽然XML人人都会操作,但你还真得为某些特别的XML(App.config / Web.config)思量思量!例如,下面的这段关于DAF(省

2004-05-09 10:49:00 1927

原创 实战 .Net 数据访问层 - 21

 (2)    EntityConvert这个东东是模仿System.Convert的产物,刚开始没觉得咋样,用起来还真有点舍不得呢(本文开头的代码1中曾经使用过这个Utility)!不信,且看如下代码(仅举两例J): 代码16:我变,我变,我变变变!public static class EntityConvert{    public s

2004-05-09 10:49:00 1953

原创 实战 .Net 数据访问层 - 22

 Ok,在结束整个“我的方案”之前,作者最后“献上”一段代码(是不是有点晕了?),希望能为您的DAF之旅划上一个圆满的句号J 代码17:通过DAF更新数据// 创建Customer数据访问对象CustomerDaf daf = new CustomerDaf();  // 创建Customer数据实体对象,设置对象字段值Custome

2004-05-09 10:49:00 2116

原创 实战 .Net 数据访问层 - 8

 3.       Data Access Façade讨论DAF前,还是先来看段代码: 代码7:DAF是个啥样?// DafBase:提供大部分应用程序所需的基本Data Access支持,//   包括调用DAL方法等public abstract class DafBase{    public DafBase() { } 

2004-05-08 11:29:00 2208 1

原创 实战 .Net 数据访问层 - 9

 Ok,上面的DafBase只是个Abstract Base Class(ABC),请继续看下面的真正Daf: 代码8:让DAF工作起来!// MyDaf:提供当前应用程序所需的Data Access支持,从DafBase继承public class MyDaf: DafBase{    public MyDaf() { }     

2004-05-08 11:29:00 1841

原创 实战 .Net 数据访问层 - 10

        以下是DAF的结构示意图:                                          是不是看上去还比较简单?根据以往的经验判断,在这种继承模式下,主要的开发工作全部集中到了DafBase和MyDaf身上,CustomerDaf的任务相对轻松,数据校验或者转换处理也并不是每个方法都需要的J 那么,DAF既然号称Façade,除了满

2004-05-08 11:29:00 1805

原创 实战 .Net 数据访问层 - 11

 4.       Data Access Logic讨论Data Access Logic(为了不和Data Access Layer混淆,文中所有涉及Data Access Logic的部分将全部使用全称描述,DAL仅指Data Access Layer)前,让我们先看一看它的结构示意图:  咦!怎么回事?看上去长得与DAF非常相似嘛!难道这就是作者“不辞辛劳”

2004-05-08 11:29:00 1629

原创 实战 .Net 数据访问层 - 1

实战 .Net 数据访问层 l       特别说明    本篇实战共分23段,非作者有意如此,乃受CSDN发表文章之64K所限。     虽然有几段根本没有达到64K,但估计是HTML Source超过了这个范    围,所以也不得不单独分段(大都是源代码),请大家谅解。    如果有朋友需要完整文档,请发邮件给我:    [email protected]       引言这次的讨论

2004-05-07 22:03:00 2746 1

原创 实战 .Net 数据访问层 - 2

 废话少说,先奉上代码若干,请大家一起参详参祥(以SQL Server所带Northwind为例): 代码1:如何调用DAF?// 创建Customer数据访问对象CustomerDaf daf = new CustomerDaf(); // 根据ID返回Customer数据表DataTable cust1 = (DataTable)daf.

2004-05-07 22:03:00 2051

原创 实战 .Net 数据访问层 - 3

 2.        Data Entity Façade       代码2:传统Data Entity// Customer1:包含基本字段的Customer,属轻量级Data Entity[Serializable()]public class Customer1: xxx // xxx表示可能存在的基类{    public st

2004-05-07 22:03:00 899

原创 实战 .Net 数据访问层 - 4

 代码3:我的Data Entity – 1,应用程序中的Data Entity// MyCustomer:包含基本字段的Customer,支持数据列表,从MyDef继承[Serializable()]public class MyCustomer: MyDef{    public string Id;    public string Nam

2004-05-07 22:03:00 979

原创 实战 .Net 数据访问层 - 5

代码4:我的Data Entity – 2,Framework中的Data Entity// DafBase:提供大部分应用程序所需的基本Data Entity支持,//   包括Collection,ADO.NET[Serializable()]public abstract class DefBase : IList, IDictionary{ 

2004-05-07 22:03:00 858

原创 实战 .Net 数据访问层 - 6

    再回到最初的代码1,作者通过DAF的不同调用总共得到了5种不同的Data Entity对象:DataTable,DataSet,MyCustomer,Ilist,DbDataReader,奇怪的是,只有第三次调用才返回真正的Data Entity对象:MyCustomer,这不是和上面所说的Data Entity Façade自相矛盾吗?且慢,下面的代码或许能够说明一些问题: 

2004-05-07 22:03:00 996

原创 剖析 .Net 下的数据访问层技术(二)

其它      结束ADO.NET剖析前,不得不提提DataReader与DataSet间的兄弟之争。      就作者所看过的资料,几乎所有的都建议实际情况具体分析,剩下很少很少的则全凭个人习惯决定。      在学习ADO.NET时,作者也是抱着这样的想法,并反复牢记资料上总结的那些条款(就像当年学习GOF 23条时那样,几乎可以倒背如流了J),想到终有一日也可在A

2004-04-12 13:36:00 1528 2

原创 剖析 .Net 下的数据访问层技术(五)

 Ø        Borland ECO素以提供“多快好省”组件著称的Borland公司在微软发布ObjectSpaces之前率先推出了一套新的开发框架:ECO(Enterprise Core Object),先不说其技术特点,就凭其与建模工具Together的无缝集成,不得不让人佩服Borland在统一开发过程方面所下的功夫。 根据Borland在ECO介绍中的定义,简单说,E

2004-04-12 13:36:00 1202

原创 剖析 .Net 下的数据访问层技术(一)

 l       引言自从 .NET 真正走入开发人员那天起,“效率”两个字就一直成为众多程序员津津乐道的话题。无论是从开发模式(Cross Language)、系统框架(.NET Framework),还是各种使用方便的工具(VS.NET),无一不体现出了它的胜人一筹。同时,在另一方面,.NET 是否可以真正胜任企业级应用(Enterprise Application)开发的重任,却依然争论不断

2004-04-12 13:02:00 2045

原创 剖析 .Net 下的数据访问层技术(三)

 u     O/R MappingO/R Mapping的全称是:Object Relational Mapping,主要目的是在传统RDBMS与OO Language之间建映射关系,从而使开发人员彻底脱离数据持久这片剪不断理还乱的苦海。关于O/R Mapping或者近来比较热门的O/X Mapping(大家可以参考“程序员,2004.01,P86”),可能需要专门的文章进行详细论述

2004-04-12 13:02:00 1648 1

原创 剖析 .Net 下的数据访问层技术(四)

 Ø        Microsoft ObjectSpaces这是一个在几年前就让众多.NET guy伸长脖子激动不已的技术。就作者来说,那个时候,只要一提起这个话题,一般都是在J2EE guy的嘲笑声中悻悻而归,恨不能自己也搞个ENB(相对EJB)或者NCMP(相对CMP)什么的。终于,我们可以在.NET Framework 1.2(可在VS.NET 2004Whidbey或Yuk

2004-04-12 13:02:00 1151

Top Mobile Internet Trend

关于移动互联网现状及今后发展趋势的分析与报告,重点关注移动互联网。

2011-05-20

Enterprise Smart Phone

关于智能手机在企业应用软件开发中的报告,重点关注企业应用、移动互联网。

2011-05-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除