02 2013 档案
摘要:回到目录之前一起认为EF的延时加载存在性能问题,主要体现在一对多关系上,它会增加与数据库的通讯,而EF本身也提供了“立即加载”include,今天主要说一下它,经过实验,证明如下:最初接触EF延时加载时,以为只存在这种性能低下的方案,在了解include方法后,才知道这种神奇的方案,它与linq to sql中的DataLoadOptions比较类似,译为立即加载关联对象。在这里,我对include说一声,对不起,是我冤枉你了,呵呵。实验代码如下:Infrastructure层: public IQueryable<WebManageUsers> GetWebManageUsers
阅读全文
摘要:DAL层从数据库中将数据读出来后,传递给BLL层,再通过BLL处理数据后,向WEB层返回,最后到页面上输出,这是一个过程,在这个过程中我需要说两句,BLL层与WEB层通讯肯定是List,IList等等,即实实在在的数据,而DAL层向BLL层返回数据时,就需要注意了,因为DAL层返回一般是完整的结果集,而在BLL层根据具体的业务,再进行字段的过滤,这对于减少数据库与网络传递的压力是有帮助的,下面是一个案值,分别是向BLL层以IEnumerable和IQueryable方式进行数据的返回,最后在BLL层进行加工数据的操作,看代码:DAL层:IQueryable方式: public IQuer...
阅读全文
摘要:回到目录对于代码开发来说,抽象至关重要,在MVC3中提供了路由重写功能,你的站点可以按着某种规范去将URL重写,这对于MVC来说是如此的简单,呵呵。以往的MVC项目,我们习惯上把这种路由配置写在global.ascx里,这事实上不是一种好习惯,因为你的模块多了,路由规范也多了,由这东西多了这后就显得很乱了,将所以不相关的代码放在一起,这本身就是一种代码的坏味道。(我觉得我有必要写一下代码的坏味道系列了,呵呵)看上去确实不是很美观,所以,我们有必要将这个东西进行抽象,如,我要建立一个与用户相关的路由规范,我可以建立这样一个类: /// <summary> /// 用户中心的路由规范
阅读全文
摘要:回到目录无论是.net还是java,在开发程序时都难免会用到throw关键字,对于初学者一般会认为它与try...catch捆绑在一起,这当然是错误的,事实上,throw的一个最重要的作用就是:让程序告诉用户一些事情,这些事情一般是开发人员之前定义好的,如对于一个输入文本框,你需要输入给定数字,但如果输入的不是给定的数据范围,则可以通过throw告诉用户!让程序告诉开发人员一些事情,这些事情一般是底层开发人员之前定义好的,如果一些业务规范,如果开发人员输入的不合法,程序就会抛出一个异常,以告诉表层开发人员!下面是一个程序中的throw用法: if (vp.ContainsKe...
阅读全文
摘要:解释:指人在该装糊涂的时候难得糊涂。清朝乾隆年间,画家郑板桥中了进士,做了山东范县县令。一天来了个年轻貌美的 寡妇朱月姣击鼓鸣冤,哭诉同村富绅魏善人夜闯民宅,对其欲图不轨,但魏善人辩称与她丈夫是旧友,现时常常接济月姣。那日月姣借得十两银子,顿生歹念,诬称 调戏她。郑板桥在一时无证据的情况下,当即判朱月姣三日内交还银两。蒙冤含恨的朱月姣大骂郑板桥是糊涂官。郑板桥并不理会朱月姣的哭骂,留下魏善人看他继 续判案。遇到借贷双方都是贫苦人的案子,郑板桥叫魏善人拿出十两银子做善事。遇到儿子不肯赡养的白发老婆婆,郑板桥又叫魏善人代替做这婆婆的儿子。这魏善 人发现连连出血,情况不妙,欲想推脱。郑板桥说:“你对
阅读全文
摘要:回到目录如果你想学好一样东西,一定要看高手是如何做的如果你想学好.net,一定要看.net framworks源代码如果你想学好分层结构,一定要去看petshop项目如果你想学好MVC,一定要去看dinner项目如果你想学好DDD,一定要去看Microsoft NLayerApp项目呵呵,今天主题是DDD,所以,我们主要看一下NLayerApp的项目结构,在微软架构师开发一个项目时,他的心中一定对自己系统的架构很清晰,这时,他会使用一定工具把它的思想写出来,以便更好的让开发人员看到。表现层如图:分布层服务层如图:应用层如图:领域层如图:基础设施层如图:事实上,我们在设计一个系统时,从架构师的角
阅读全文
摘要:回到目录最近被DDD吸引了阿,在这里感谢一下小佟,呵呵,领域驱动设计是个不错的东西,帮助我们把问题清晰化,这候对于复杂业务逻辑是很重要的,今天这一讲主要说一下DDD中的基础设施层(Infrastructure)是如何被我实现的。Infrastructure Layer:主要功能是对领域模块进行持久化的,在这个层中你需要把领域对象序列化到指定的元件中,可能是数据库,文件或者内存对象,当然它也要提供从物理元件取出数据到领域模型的功能,这是对应的。目前的DDD项目结果如下对于Infrastructure这个层我不去定义接口而是让它去实现Domain层的接口,即一切从领域出发,而Infrastruct
阅读全文
摘要:今天过了把小车隐,不过还真是有经无险呀,时速130,这要是撞上了小命就没了,呵呵!龙年最后一天,去奶奶坟前祈祷了,这是我每年要做的事情,每年我都会为自己许下三个愿望,今年也是一样,呵呵!蛇年要干的事情很多呀,生活上的,工作上的都有自已的目标,当一个人有了目标之后,才可以更努力的,更有动力的去完成一些事情,呵呵!蛇年在生活上需要有自己的小窝!蛇年在工作上需要完成自己一个小突破,但与我以往对工作的要求不同,这次我会更看重职位的重要性,而薪资是其要的,因为我知道,如果你想让你的薪资成继续增长状态,你选择的职位很重要,呵呵!蛇年在技能上需要掌握:DDD领域驱动设计视频加密技术把GOF设计模块的文章写完
阅读全文
摘要:回到目录这几年,状态依旧不好,但在23点以后,状态还可以,所以,静下来,看点DDD,并把相关信息记载一下,今天是除夕,不过,我写文章时已经是大年初一了,呵呵,外面的炮声响亮,但我的内心很平静,也许是年龄大了,对于过年的感觉也已经淡化了吧,再或许是有些事情还放不在。任务与目标今年的任务挺多的,目标也确实有点大,压我的有点喘不过气来,对于年未,我们是放松的,因为一年的任何已经完成,目录也已经完成,所以是放松的;但当新的一年真的到来时,意味着你要去实现今年定的目标了,我们需要紧张起来了,需要向着那个目标去奋斗了,这种感觉是我喜欢的!失血模型失血模型简单来说,就是domain object只有属性的g
阅读全文
摘要:占占定义:原子化操作,操作原子化,这在软件开发中经常被听到,那到底什么是操作原子化呢,其实从字面上不难理解,原子化就是一体化,整体化,原子化操作就是将多个操作组合在一起,要么这个组合一起发生,要么一个都不发生,这就是操作的原子化,在程序开发中,我们经常使用事务来干这事!网上的解释:一种不可分割的操作。从外部看,原子操作要么整体发生,要么根本不发生。例如,在实现业务交易的数据管理系统中,把每一笔业务交易都作为数据库上的原子化操作。这就意味着组成业务的所有数据更新操作或者都被执行,或者一个也不被执行;一部分更新操作被执行,而其他更新操作都不被执行的情况永远不可能发生。RAID阵列必须实现原子化的写
阅读全文
摘要:我是一个很笨的人,说话,办事,都会使我的朋友们生气,或者给他们添加很多麻烦,我知道,我是我的问题,所以,我需要去正确的面对,有时也不知道为什么,话就说出去了,事情就办出去了,其时我也是无心的,因为我希望每个人都好好的!对于人生,我们每个人都有美好的憧憬,但有时在人生的道路上会出现很多坎坷,这是正常的,我们必须去接受它,去克服它,因为只有这样,我们才能走到最后。当你失望时,请和我一起说:“这没什么,下次会做的更好”当你伤心时,请和我一起说:“还有比这种事情更糟糕的呢”当你生气时,请和我一起说:“没事,下次你不会再犯这种错误了,是吧”当你孤独时,请和我一起说:“真好,终于有自己的私人空间了,呵呵.
阅读全文
摘要:回到目录概念中的DDDDDD: 领域驱动设计,它是对面向对象的的分析和设计(OOAD,Object Orient Analysis Design)的一个补充,对技术框架进行了分层规划,同时对每个类进行了策略和类型划分。领域模型是领域驱动的核心 ,采用DDD的设计思想,业务逻辑不再集中在几个大型的类上,而是在大量相对小的领域对象上,这些类具有自己的状态和行为,每个类都是完成的独立的,并与现实领域的业务对象形成一种映射。基于DDD的架构设计,保证了系统的可维护性,扩展性和敏捷性,在处理复杂业务逻辑方面有着明显的优势!编程世界观的改变以下信息是从http://www.jdon.com/ddd.htm
阅读全文
摘要:我需要调整一下自己了,最近状态不是很好,可能由于快要过年的原因,也可能是其它原因吧,至于是什么reason只有我们自己最清楚,呵呵。如何去调整自己的心态呢?1 多看看自己那些激励自己的日记2 多听听那些激励过自己的歌曲3 多写写文章在博客园4 多想想自己未来的梦想5 多去酒吧,疯狂的发泄一下,这个待定吧,呵呵关于奔跑当你对一些事情想不通,猜不秀,再或者为了某些事件头痛,不知所错时,你可以出来,在公路上进行快速的跑步,能跑多快跑多快,然后对着天空大叫:“我一定要努力!我一定要成功!我一定要找到正确的方向!”关于珍惜当你认识了一个朋友,情头意合的(他可能是与你有着相同星座的,呵呵),请你...
阅读全文
摘要:做一个好人,一个简单的人!有时,我们往往会误会一些人,一些事,这是正常的,因为每个人的想法不错,思考问题的方式不同,产生的结果当然也就不同。有时,我们会犯一些错误,一些可笑的错误,但重要的是,如果你知道了你是错误的,一定要马上改正,越快越好,因为只有这样,所产生的负面影响才是最小的。做一个好人人是很有意思的动物,他们有自己的思维,他们有时会很活跃,他们有时会很天真,也有也很可笑,但重要的是,只要我们所做的,对的起自己的良心就可以了,请做一个好人。做一个简单的人简简单单才会快乐,不要把事件想的太复杂,不要把人想的太复杂,当你对事或对人产生了错误的影响时,请及时告诉他,因为这样,对你,对他的伤害才
阅读全文
摘要:作为一名架构师,我们应该掌握哪些技术呢?占占简单来谈一下:面向对象OOP的理解,我是说理解,我不希望你告诉我百度里的概念!常用的数据结构,对于常见的数据结构,算法,应该知道一些!WEB服务,对于分布式,大一点的项目都会遇到,你可以用WS,WCF,Remoting去实现它,它们的原理是你应该知道的,因为你是一名架构师,兄弟们都指着你呢,呵呵!全文检索:lucene.net,当然lucene只是实现全文检索的一种方式,你可以使用其它文件索引来干这事NOSQL:你可以选用不同的开源项目,redis,memcached你会用一种就行了,呵呵缓存:cache,每个项目都会有自己的缓存机制,作为架构师的你
阅读全文
摘要:失眠,失眠,这段时间一直失眠,不知道为什么,生活的压力大,30岁就快来,往后的日子该怎么对自己交代!呵呵,男人要有原则,男人要有魄力,男人要胸襟宽广,男人要有目标,每年至少一个,男人呀!呵呵,男人要有梦想,因为它是你走向成功的动力源泉,男人要执着,因为它是你实现自我的保证!男人,我是男人,我是30岁的男人,呵呵!占占,你的2013年目标是什么?成为一个成功的架构师,我选择,因为我喜欢!占占,你的下一个大一点的目标是什么?给自己一栋房子吧,呵呵!占占,你的人生目标什么?作为代码开发领域比较有成就的人士,带领我的团队走向一个又一个的辉煌!占占,你在代码方面更提倡什么?代码之美,呵呵,虽然我是个邋遢
阅读全文
浙公网安备 33010602011771号