08 2012 档案

摘要:我们可以在<script>片断中定义一个被JS调用的代码,但代码又不在页面上显示,这时,我们可以使用下面的方法: 1 <script id="commentTemplate" type="text/html"> 2 <li> 3 <div class="photo"> 4 <a href="#"> 5 <img src="[UserImg]" /></a></div> 6 <p> 7 &l 阅读全文
posted @ 2012-08-31 17:59 张占岭 阅读(26377) 评论(2) 推荐(2)
摘要:返回目录 一个好的程序,一个可读性强的程序,一定少不了一个好的注释!一个优秀的团队,一个高效的团队,也离不开一个规范性的代码注释。 代码注释 — 尽量将代码注释写的清楚,完整,注明代码的功能,创建者,修改者,时间等,一个好的注释,可以为程序开发人员节省很多开发的时间,当前这不是严格规定的,每个公司都 阅读全文
posted @ 2012-08-30 15:34 张占岭 阅读(2084) 评论(2) 推荐(4)
摘要:返回目录 “方法更名”说的简单点就是把方法启一个与它功能相对应的名称,当你的方法是求和操作时,你的方法名应该是Sum(int param),而不要写成a(int param)。 方法更名 — 将方法名称以更好的表达它的用途,主要表现在方法命名上一定要有一真正的含义,免费出现temp,get,set这 阅读全文
posted @ 2012-08-30 15:32 张占岭 阅读(1287) 评论(1) 推荐(3)
摘要:返回目录 与方法归父正好相反,当父类的方法只为一个子类提供时,这时应该考虑把这个方法放到子类中,这就是“方法归子”。 方法归子 — 或译函数下移,指的是方法从父类移动到子类,其主要原因在于,当父类的方法只被一个子类使用时,这个方法就不需要出现在父类了,这时我们考虑代码的重构,将方法直接在子类中去实现 阅读全文
posted @ 2012-08-30 15:30 张占岭 阅读(1163) 评论(0) 推荐(1)
摘要:返回目录 这几天牙痛的厉害,所有一直没有写博客,今天正好有个培训的机会,所以就把“代码重构”这块的内容整理了一下,首先看一下方法归父吧。 方法归父 — 或译函数上移,指的是方法从子类移动到父类,为什么呢,其主要原因就是一个方法在多个类中出现了,这样违背了REP原则,出现了重复的代码,这时,我们称为" 阅读全文
posted @ 2012-08-30 15:27 张占岭 阅读(1376) 评论(0) 推荐(3)
摘要:在linq to sql作为底层数据源时,我们进行一个linq返回结果集的操作,这没有问题,不过,当你进行update操作之后,再使用linq返回结果集时,你会发现,它返回的信息是不正确的,或者总是发生变化的,这是为何?事实上,这是由于DataContext本身的机制所决定的,它本身就有缓存机制,当你从数据库把信息得到时,然后修改它,再进行保存,如果你再把信息取出来,这时,你会从datacontext的缓存中得到,而不是真正的数据库里得到,这个datacontext缓存如果想要解决,有几种方法:1 datacontext不要共享化(不要静态化,不要单例),使用私有datacontext,即每. 阅读全文
posted @ 2012-08-27 22:44 张占岭 阅读(970) 评论(1) 推荐(0)
摘要:Lucene.net是.net环境中比较强的全文检索工具,它是从JAVA中转过来的,.net版本的lucene在功能上也豪不逊色于java版的lucene。今天主要来说一下lucene索引文件在更新时的一些方式。一 整个索引文件 (cfs文件)覆盖更新;优点:简单,缺点:与服务器没有交互,但在生成索引文件时对IO影响比较大,前台lucene信息显示与数据库不同步。二 索引文件按需要更新(对document记录进行curd操作),优点:与数据库同步,缺点:与服务器交互多,对于curd的安全性要重视起来,但这样做是必须的。下面主要说一下第二种索引文件按需要更新的情况追加document(记录):当 阅读全文
posted @ 2012-08-24 15:11 张占岭 阅读(2484) 评论(1) 推荐(4)
摘要:回到目录 在使用Linq to Sql做为底层ORM时,它为我们提供的数据上下文为DataContext对象,实现上我们通过拖动生成的DBML文件,它们都是继承自System.Data.Linq.DataContext类型的,所以DataContext就是LINQ数据对象的基类,有时,我们可以通过这种类的多态性来动态创建DB的实例。 在每个DataContext类中,它有几个实例的构造方法,用来让你创建DataContext的实例,如下: 1 /// 2 /// 使用默认的连接串创建实现(每拖一次数据库,就会产生一个连接串) 3 /// 4 ... 阅读全文
posted @ 2012-08-23 23:04 张占岭 阅读(3895) 评论(0) 推荐(7)
摘要:摘要本文将介绍领域驱动设计(Domain Driven Design)的官方参考架构,该架构分成了Interfaces、Applications和Domain三层以及包含各类基础设施的Infrastructure。本文会对架构中一些重要组件和问题进行讨论,给出一些分析结论。目录1. 架构概述2. 架构详解 2.1. Interfaces-接口层 2.1.1. DTO 2.1.2. Assembler 2.1.3. Facade 2.2. Application-应用层 2.3. Domain-领域层 2.4. Infrastructure-基础设施层3. 关于架构的一... 阅读全文
posted @ 2012-08-17 14:32 张占岭 阅读(1847) 评论(0) 推荐(0)
摘要:简介 数据传输对象(DTO),是一种设计模式之间传输数据的软件应用系统。数据传输目标往往是结合使用的数据访问对象从数据库中检索数据。 数据传输对象与数据交互对象或数据访问对象之间的差异是一个以不具有任何行为除了存储和检索的数据(访问和存取器)。 在传统的系统(企业JavaBeans)体系结构,数据传输目标服务的双重目的:第一,他们围 绕这个问题,pre-ejb实体不是序列化的;其次,他们含蓄地定义一个组装阶段,所有要使用的数据的提取和整理到数据传输目标之前返回控制[表现层]; 第三个原因是使用数据传输目标可能是某些应用层不应该能够访问底层的数据访问对象,从而改变数据。产生 Data... 阅读全文
posted @ 2012-08-17 14:27 张占岭 阅读(1376) 评论(1) 推荐(0)
摘要:回到目录当你打开扩展名为dbml的LINQ-to-SQL的文件后,你将会看到很多用partial修饰符来修饰的方法,类等,它们是用来做什么的呢?起初到win form时代也这个东西,partial译为“部分”,就是说它只是某个东西的一部分,你可以在其它地方再去扩展它,起初微软就认为对于一个类来说,可能不是一个人做涉及,它可能是几个人同时去干预它,所以,它提出的“分部类 partial class”的概念,它之后被非常好的应用到了LINQ-to-SQL中。对于一个由生成器为我们生成的模型来说,LINQ-to-SQL一定不知道我们以后要做什么,它只能把最标准的代码为我们生成,可能是一个表对象,一些 阅读全文
posted @ 2012-08-15 23:20 张占岭 阅读(1534) 评论(1) 推荐(1)
摘要:回到占占推荐博客索引这个系列的文章我已经准备了很久,今天终于可以克服种种困难,有资格在这里把它写出来了,对于一直支持我的兄弟们,表示由衷的感谢!大家都辛苦了!都是好样的!LINQ-to-SQL那点事~目录第一回 耳目一新的partial class 和 partial method第二回 线程共享的DbContext与私有的DbContext第三回 LINQ-to-SQL那点事~LINQ-to-SQL中的数据缓存与应对第四回 LINQ-to-SQL那点事~LINQ-to-SQL中的并发冲突与应对第五回 利用SendPropertyChanging与SendPropertyChange... 阅读全文
posted @ 2012-08-15 23:04 张占岭 阅读(2062) 评论(1) 推荐(4)
摘要:基类中的修饰符,其实就是C#里的那几种修饰符,public ,proteced,internal,privat这四种基础类型,当然也还一个组合类型internal protected,它们都是C#里最基础的东西,今天觉得有必要再说一下。我还是觉得单讲修饰符,除了不好理解外,还有就是没什么意义,我们一定要把代码放到项目中才有它的价值,不是吗,呵呵。一 public ,希望在所有地方都使用的成员,如一个获得结果集的方法1 public virtual IQueryable<TEntity> GetEntities<TEntity>() where TEntity : cla 阅读全文
posted @ 2012-08-14 23:22 张占岭 阅读(750) 评论(1) 推荐(6)
摘要:今天主要说一下基类中的方法和属性,既然把这东西放进了基类,那有一点可以肯定的是,它们是公用的,这种公用的实现可能由基类自己实现,也可能是子类去实现,对于这句话,会有三种情况:(以方法以例)1 基类中的方法,对于所有子类都是一样的,并且子类不能修改这个方法,这时,我们的方法这样定义1 protected void CannotModifyMethod()2 {3 ...4 }2 基类中的方法,对于所有子类都是一样的,但子类可能根据自己的逻辑,去实现自己那块业务,这时,我们的方法这样定义1 protected virtual void OverrideMethod()2 {3 ...4 }... 阅读全文
posted @ 2012-08-10 16:37 张占岭 阅读(707) 评论(1) 推荐(2)
摘要:回到目录有时,我们在设计表结构时,有的字段可能同时具有几种状态,如小微自己的文件属性也是属于这种情况的,“只读,归档,隐藏”,但你对一个文件设置属性时,事实上是可以将这三个属性同时赋予一个对象的,这对于我们来说是正常的,那程序内部是怎么实现的呢?首先一个枚举,SQL里可能是一张表,也可能是事先规定好的几个值,如: 只读1,归档2,隐藏3再没有看.net源代码时,我认为可能是这样存储的文件属性为只读+归档,值为:1,2我们看到它是用,分开的,然后再分别去求和就可以了但当我看了.net源代码后,我的作法有了一个变化,那就是利用位移运算,应该说从性能到程序清晰度上有一个飞跃文件属性为只读+归档,值为 阅读全文
posted @ 2012-08-10 11:11 张占岭 阅读(1380) 评论(6) 推荐(4)
摘要:回到目录在进行大数据量读操作时,一般我们会选择SqlDataReader,或者不会使用DataSet,原因就不说了,在我项目中遇到一个很奇怪的问题,当sql执行时候过长时,系统被抛一个超时,链接池已满的提示。网上的解决方法事实上大分部是针对“connection time out“的,即链接超时,它一般解决方案是:1 为SQL连接串添加这个:ConnectTimeout=10000 //SQL连接超时时间2 为SQL连接串添加这个:Max Pool Size = 512 //最大连接池事实上它们解决的是连接超时问题,而有时,你的程序可能是在SQL解释时间比较长,设置上面两个就没有用了,SQL的 阅读全文
posted @ 2012-08-08 16:11 张占岭 阅读(2014) 评论(0) 推荐(1)
摘要:返回目录 这个问题困扰了我很久,今天终于把它解决了,心中的喜悦可想而知,赶快把它记录一下 标题无限级联下拉列表框的含义: 可能有一个树型结构的表,它可能有ID,Name,ParentID,Level等字段,下面要实现的就是从一级节点开始,一级一级的列出来,并以 下拉列表框的形式体现出来,就像是N级联 阅读全文
posted @ 2012-08-07 09:53 张占岭 阅读(4093) 评论(1) 推荐(1)
摘要:C#允许一个类不去手动声明一个构造方法,因为.net内部为我们继承了它,它为自己为我们生成一个无参的架造方法,本文中我们讲的架造方法都属于实例构造方法,下面我们来说明几个问题:1 构造方法在何时执行2 基类的构造方法应该去子类考虑的多一些首先我们来说一下第一个问题,构造方法的执行时期,当类对象被new时,它会首先执行符合它(类)方法签名的构造方法,如这个语句Person person=new Person();这是我们经常看到的建立对象的语句,它事实上是去执行Person类型的public Person()这个方法的,当然,如果语句变成了Person person=new Person(&qu 阅读全文
posted @ 2012-08-04 23:44 张占岭 阅读(620) 评论(0) 推荐(0)
摘要:基类,即基础类型,也称为父类,祖宗类等,它一般会以抽象类(abstract class)的形式体现出来,它会包括一些具有共性的,一般性的信息(属性和方法等),它在描述一类对象时,经常会被抽象出来,如一个小猫,一只小狗,很容易会让你抽象出一个animal来,这是正常的,是符合面向对象人生观的,呵呵。 而在实际项目开发中,这种例子也不少,可以说到处都可以看到基类的身影,有人说,请不要使用继承,因为它为使你的程序很糟糕,依赖太多不好,但我要说的是,如果你的程序是一个关系复杂,面向对象的,那你的程序在某些地方必须要去继承(抽象出基类),有时,我们会说,那什么时候去使用基类,我们应该如何去衡量呢?事实. 阅读全文
posted @ 2012-08-03 23:18 张占岭 阅读(1130) 评论(4) 推荐(2)
摘要:很多朋友与我一起开发项目时,总是问我,“你为什么要把linq to sql的DataContext对象抽象出一个基类来”,我觉得Linq自己实现的很好了,你抽象出一个基类完全是多于的,多此一举!事实上,我很喜欢听到这样的声音,因为它是我不断向前的动力,也是我对知识能更深一层理解的动力,在此,感谢那些与我唱反调的朋友们,呵呵!以下是我对“为什么我要将数据库上下文进行抽象,为它生产一个基类有用吗”这个话题做的一个解答,本系列目录如下:第一回 要想知道为什么抽象出基类,应该先对基类有一个比较明确的认识第二回 基类的架造方法应该为子类想的多一些第三回 基类中的方法,应该根据实际情况,虚的虚,抽... 阅读全文
posted @ 2012-08-02 23:54 张占岭 阅读(832) 评论(2) 推荐(2)
摘要:回到目录 我们在使用linq查询时,你的数据源可能是linq to sql或者是ef产生的,但只要是使用linq的语法去实现一个查询,就有可能出现“查询包含对不同数据上下文上所定义项的引用”的异常,这个异常很明显,是你在进行join表关联查询时使用了多个不同的DataContext对象,这是linq不允许的。有了这个异常,就会出现一些解决方案,以下是我们可能的一些做法:1 使用全局的static对象,但对于linq to sql来说,在高并发时,这个static对象会抛出一些莫明奇秒的异常,那时,我们会说,linq to sql不如ado.net靠的住。2 使用单例模型创建对象,保证它在所有. 阅读全文
posted @ 2012-08-01 16:56 张占岭 阅读(2341) 评论(8) 推荐(5)