实战 .Net 数据访问层 - 23

原创 2004年05月09日 10:50:00

 

u     使用现成的框架

Ø        首选当然是.NET Framework即将正式推出的ObjectSpaces

Ø        如果希望Total SolutionBorland ECO就是最佳选择!

 

Ø        其它

n        开源项目推荐使用OPF(国外)

n        商业产品推荐使用Grove(国内)

 

u     设计自己的持久层

Ø        如果希望自己设计轮子,那么,最好的参考资料莫过于这篇文章:http://www.ambysoft.com/persistenceLayer.pdf

 

Ø        它山之石,可以攻玉

此处之它山,非J2EE莫属,经典案例Hibernate早已家喻户晓,您还需要等待吗?

虽然平台不同,但优秀的设计是大家共同的财富,.NET guys们快快行动起来吧!

 

Ø        代码是永远的老师,请多多关注这两个.NET Open Source项目:

n        OPF

n        OJB.NET

 

l       小结

u     Data Access Layer在整个系统架构中的位置

这是本文最后一幅示意图,希望带给您一些帮助:


 

 

 

u     DAF Solution之抉择篇

Ø        确定接口是关键No. 1

无论采用什么技术,这个总是最最关键的一步:至少,作者是这么认为的。

 

采用了DAF Solution后,其实已经对具体使用什么Data Access Logic技术没必要特别Care,只要接口确定,连很多历史遗留问题都可轻松解决了!

 

Ø        访问技术随心所欲:Just Do It

一般做项目前,当我们设计Data Access Logic时,大都需要提前决定采用什么技术架构,如:Stored Procedure + DataSet / DataTable / DataViewDuwamish模式,结构简单,操作方便),或者SQL + Provider Factory + DataReader + EntityPetShop模式,性能不错,可移植能力强),而采用了DAF Solution后,这些不再成为阻碍系统架构师进行Data Access Logic设计时的障碍了!

 

你完全可以这么做:设计时全部采用Duwamish模式,而在实现时(可能基于性能考虑)将部分Data Access Logic操作调整为PetShop模式。甚至,如果其它Layer的调用者对ADO.NET不是特别熟悉(很正常),也可以决定在某些Data Access Logic的内部使用O/R Mapping,通过Entity Façade返回后可以很轻松地以OO的方式进行后续处理!

 

不过,尽管如此,还是有些Issues需要具体情况具体分析:

(1)    Stored Procedure在带来便利、高性能的同时,也有移植上的问题需要考虑;

(2)    O/R Mapping在提高易用性的同时,也为性能、复杂度付出了一定代价;

(3)    何时采用DataReader,如何更快的访问DataSet,始终是个难以取舍的问题(虽然作者曾经对此作过断言),爱恨两难啊!

(4)    是否使用Distributed Process?安全问题又如何解决?.NET Remoting没有给出很好地解决方案,WebServices虽然有,但能保证与其它系统兼容吗?

 

仅举4例,可见一斑。

虽然这些现实问题都要一一解决,但在DAF这棵大树下,您还是有较大的自由度,不必再为统一架构设计而频添很多烦恼了!

 

Ø        Storage不在话下:Data Entity Facade

在这里,作者认为,或许称之为“Persistence不在话下”更贴切一些。

可以这么说,DAL的基石来自DAF,而DAF和外界的Bridge则是Data Entity Façade。正是其统一的外表才让我们得以自由应付随时可能发生的各种变化!

 

返回XML?没问题!

返回XML后不想修改调用代码?很简单,做个EntityConvert

 

O/R Mapping很酷,让我返回对象吧?改一下配置文件,再写个

O/R Mapping Data Access Logic!是不是也很酷啊?

 

                            DataSet令我们的系统不堪重负,客户最近频繁投诉:您呼叫的

网页暂时没有应答,请稍后再刷,咋办呢?

这也不难:撤下DataSet,换上DataReaderData Entity

Façade已将不同的数据访问基站构建到您的Server上,它

会确保您的系统99.98%位于服务区内(还有0.01%可能是您

忘打.NET Framework的最新Patch了,剩下的0.01%也很好

办,快去买条新内存or加个CPU吧)!

 

……(如您需要返回其它系统无法辨认的东东,请拨打如下免费电话:800820xxxxDAF Solution小组将为您提供帮助……

 

u     n-Tier架构下n之真谛

很简单,2句话结尾:

n==?不重要,关键是:数据访问层!

若要架构好,接口是命脉!

 

l       参考

u     MSDN

Ø        .NET Framework 1.2 Documentation

Ø        Longhorn SDK

Ø        Data Access and Storage

Ø        C# 2.0 Specification

u     Design Patterns

Ø        GOF 23

Ø        Microsoft Patterns & Practices

u     Community

Ø        The Microsoft .NET Framework Community

Ø        TheServerSide.NET

Ø        ASP.NET Starter Kits

Ø       The Code Project

Ø        Dot Net Persistence

u     其它

Ø        Developing the Microsoft Business Framework

Ø        Borland ECO

Ø        Constructor

Ø        DotNetNuke

Ø        Rational XDE

 

 

作者简介:

本文作者张雪峰 是 微软(中国)有限公司 的咨询顾问。他目前在中国上海 微软顾问咨询部门工作,从事 .NET 技术的研究以及相关项目的开发。可以通过 xfzhang@microsoft.com 与他联系。

 

 

返回第一段:http://www.csdn.net/develop/Read_Article.asp?id=27542

Java的日期与时间(九)Date与String的转换

Java的日期与时间原文链接 作者:Jakob Jenkov 译者:阿为 目录:http://blog.csdn.net/tjgykhulj/article/details/68952451 ...
  • tjgykhulj
  • tjgykhulj
  • 2017年04月03日 23:26
  • 614

设计模式(三十)------23种设计模式(22):装饰器模式

转载自:http://blog.csdn.net/hust_is_lcd/article/details/7884320 1.认识装饰器模式     装饰模式能够实现动态的为对象添加功能,是...
  • Q3838418
  • Q3838418
  • 2017年12月14日 09:01
  • 74

MVC实战教程 MVC实战通用系统后台

《ASP.NET 4.5 MVC实战教程(身份校验过滤器,数据验证,WebAPI、Razor视图引擎)》 课程讲师:石曼迪  课程分类:.Net 适合人群:中级 课时数量:16课时 用到技术...
  • u011552756
  • u011552756
  • 2014年06月11日 15:50
  • 1289

ASP.NET项目实战视频教程

基于.NET WPF+ASP.NET MVC4技术构建夜猫商务会所运营管理平台一体化解决方案 课程讲师:闲筝 课程分类:.Net 适合人群:中级 课时数量:80课时 用到技术:WPF、MVC...
  • xiarilove
  • xiarilove
  • 2014年11月14日 10:22
  • 696

[52ABP实战系列] .NET CORE实战入门第三章更新了

早安 各位道友好,.NET CORE入门视频的第三章也算录制完毕了。欢迎大家上传课网进行学习。 更新速度 大家也知道最近的社会新闻比较多。频繁发生404、关键字打不出来,我个人也在关...
  • sD7O95O
  • sD7O95O
  • 2017年12月01日 00:00
  • 145

[52ABP实战系列] .NET CORE实战入门视频课程出来啦

“ .NET CORE实战入门视频,要是有讲的不好的地方,还请留言。” 早安! 各位道友好,.NET CORE入门视频的第一章已经录制完毕了。视频会放在传课网、...
  • sD7O95O
  • sD7O95O
  • 2017年11月23日 00:00
  • 555

23种设计模式汇总整理

设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型...
  • jason0539
  • jason0539
  • 2015年04月09日 10:57
  • 67843

Lucene.Net学习心得(转载)

http://kb.cnblogs.com/page/52642/ 一、Lucene点滴    (发音为['lusen]),我经常就读鹿神,是头活蹦乱跳的好鹿,研究它吧,保证感觉它很神!L...
  • itstt
  • itstt
  • 2013年09月11日 15:29
  • 2396

Android 6.0权限管理,sdk>=23请求权限

如果APP运行在Android 6.0或以上版本的手机,并且target sdk>=23,那么在使用一些相对敏感的权限时,需要征求用户的许可。比如读写sdcard,摄像,联系人信息等。...
  • dzsw0117
  • dzsw0117
  • 2016年04月21日 20:30
  • 8186

微服务架构实战课程介绍

使用微服务 你准备好了吗?目前,几乎所有人都对微服务趋之若鹜。打开你的新闻聚合客户端你会发现,几乎每篇文章都在讲微服务架构。如果你的公司要进行微服务重构,让你来牵头,你有能力做好这件事吗?大部分文章都...
  • u010889990
  • u010889990
  • 2017年07月29日 21:50
  • 278
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:实战 .Net 数据访问层 - 23
举报原因:
原因补充:

(最多只允许输入30个字)