随笔分类 -  其它

上一页 1 ··· 17 18 19 20 21 22 23 24 25 ··· 35 下一页
摘要:MVC3+EF+Autofac网上这种文章确实没有,呵呵,今天就写一个,代大家分享!这个系列的文章将带我们进入一种新的开发模式,注入开发模式,或者叫它IOC模式,说起IOC你可以这样去理解它,它为你的某个实现流出一个注入点,你生产的对象,可以根据你之前的配置进行组合,这是可以的。而注入点的位置及方式也是多种多样的,我们今天主要说一个通过HTTP请求进行注入的方式,IOC工具使用高效的Autofac,对它的认识你可以看这篇文章。首先看一下我们这个项目的知识点:MVC3~一个对UI层进行分层的架构模式,在微软的MVC3中加入了开源的Razor引擎EF~这无疑是微软自己比较成功的ORM工具,它执行效 阅读全文
posted @ 2012-09-06 09:14 张占岭 阅读(14421) 评论(23) 推荐(16)
摘要:返回目录 一个好的程序,一个可读性强的程序,一定少不了一个好的注释!一个优秀的团队,一个高效的团队,也离不开一个规范性的代码注释。 代码注释 — 尽量将代码注释写的清楚,完整,注明代码的功能,创建者,修改者,时间等,一个好的注释,可以为程序开发人员节省很多开发的时间,当前这不是严格规定的,每个公司都 阅读全文
posted @ 2012-08-30 15:34 张占岭 阅读(2076) 评论(2) 推荐(4)
摘要:返回目录 “方法更名”说的简单点就是把方法启一个与它功能相对应的名称,当你的方法是求和操作时,你的方法名应该是Sum(int param),而不要写成a(int param)。 方法更名 — 将方法名称以更好的表达它的用途,主要表现在方法命名上一定要有一真正的含义,免费出现temp,get,set这 阅读全文
posted @ 2012-08-30 15:32 张占岭 阅读(1281) 评论(1) 推荐(3)
摘要:返回目录 与方法归父正好相反,当父类的方法只为一个子类提供时,这时应该考虑把这个方法放到子类中,这就是“方法归子”。 方法归子 — 或译函数下移,指的是方法从父类移动到子类,其主要原因在于,当父类的方法只被一个子类使用时,这个方法就不需要出现在父类了,这时我们考虑代码的重构,将方法直接在子类中去实现 阅读全文
posted @ 2012-08-30 15:30 张占岭 阅读(1158) 评论(0) 推荐(1)
摘要:返回目录 这几天牙痛的厉害,所有一直没有写博客,今天正好有个培训的机会,所以就把“代码重构”这块的内容整理了一下,首先看一下方法归父吧。 方法归父 — 或译函数上移,指的是方法从子类移动到父类,为什么呢,其主要原因就是一个方法在多个类中出现了,这样违背了REP原则,出现了重复的代码,这时,我们称为" 阅读全文
posted @ 2012-08-30 15:27 张占岭 阅读(1355) 评论(0) 推荐(3)
摘要:在linq to sql作为底层数据源时,我们进行一个linq返回结果集的操作,这没有问题,不过,当你进行update操作之后,再使用linq返回结果集时,你会发现,它返回的信息是不正确的,或者总是发生变化的,这是为何?事实上,这是由于DataContext本身的机制所决定的,它本身就有缓存机制,当你从数据库把信息得到时,然后修改它,再进行保存,如果你再把信息取出来,这时,你会从datacontext的缓存中得到,而不是真正的数据库里得到,这个datacontext缓存如果想要解决,有几种方法:1 datacontext不要共享化(不要静态化,不要单例),使用私有datacontext,即每. 阅读全文
posted @ 2012-08-27 22:44 张占岭 阅读(967) 评论(1) 推荐(0)
摘要:回到目录 在使用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 张占岭 阅读(3894) 评论(0) 推荐(7)
摘要:基类中的修饰符,其实就是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 张占岭 阅读(746) 评论(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 张占岭 阅读(701) 评论(1) 推荐(2)
摘要:返回目录 这个问题困扰了我很久,今天终于把它解决了,心中的喜悦可想而知,赶快把它记录一下 标题无限级联下拉列表框的含义: 可能有一个树型结构的表,它可能有ID,Name,ParentID,Level等字段,下面要实现的就是从一级节点开始,一级一级的列出来,并以 下拉列表框的形式体现出来,就像是N级联 阅读全文
posted @ 2012-08-07 09:53 张占岭 阅读(4083) 评论(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 张占岭 阅读(612) 评论(0) 推荐(0)
摘要:基类,即基础类型,也称为父类,祖宗类等,它一般会以抽象类(abstract class)的形式体现出来,它会包括一些具有共性的,一般性的信息(属性和方法等),它在描述一类对象时,经常会被抽象出来,如一个小猫,一只小狗,很容易会让你抽象出一个animal来,这是正常的,是符合面向对象人生观的,呵呵。 而在实际项目开发中,这种例子也不少,可以说到处都可以看到基类的身影,有人说,请不要使用继承,因为它为使你的程序很糟糕,依赖太多不好,但我要说的是,如果你的程序是一个关系复杂,面向对象的,那你的程序在某些地方必须要去继承(抽象出基类),有时,我们会说,那什么时候去使用基类,我们应该如何去衡量呢?事实. 阅读全文
posted @ 2012-08-03 23:18 张占岭 阅读(1125) 评论(4) 推荐(2)
摘要:很多朋友与我一起开发项目时,总是问我,“你为什么要把linq to sql的DataContext对象抽象出一个基类来”,我觉得Linq自己实现的很好了,你抽象出一个基类完全是多于的,多此一举!事实上,我很喜欢听到这样的声音,因为它是我不断向前的动力,也是我对知识能更深一层理解的动力,在此,感谢那些与我唱反调的朋友们,呵呵!以下是我对“为什么我要将数据库上下文进行抽象,为它生产一个基类有用吗”这个话题做的一个解答,本系列目录如下:第一回 要想知道为什么抽象出基类,应该先对基类有一个比较明确的认识第二回 基类的架造方法应该为子类想的多一些第三回 基类中的方法,应该根据实际情况,虚的虚,抽... 阅读全文
posted @ 2012-08-02 23:54 张占岭 阅读(828) 评论(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 张占岭 阅读(2337) 评论(8) 推荐(5)
摘要:对于开发人员来说,写代码的目的就是为了实现某个功能,这没有任何问题,我在之前的7年开发中也是这样渡过的,但有时在想,写代码是否应该讲究一点,有时,我希望把程序架构,代码开发想像成是做一个美味可口的佳肴,一个美味佳肴应该具备的可能是:1 看上去是美味的;2 吃上是可口的;3 回味是无穷的。而对于代码开发来说,可能也这样的,一段好的代码最起码看上去是“结构清晰的,逻辑易懂的”,然后才是“性能优,安全性高等等”。今天明白倍老婆儿子去玩,吃了个快餐,人叫一个多,为什么这么多人喜欢吃快餐呢?理由可能是:1 方便,快捷;2 便宜;3 不用排太长时间的队就可以买到吃的。而对于我们开发一个项目来说,其实它可. 阅读全文
posted @ 2012-07-29 23:26 张占岭 阅读(487) 评论(1) 推荐(0)
摘要:返回目录 提取到类(Extract Class) : 将多个类所公用的部分(包括方法,属性,事件等等)抽象出来,形成一个新的类型,这个类被称为它们的基类(base class)或者父类,而使用面向对象语言的特性,在基类中使用抽象对象或者虚对象,让子类可以直接使用基类的成员或者根据自己的逻辑去覆写基类 阅读全文
posted @ 2012-07-27 17:18 张占岭 阅读(2389) 评论(3) 推荐(4)
摘要:返回目录 提取方法 (Extract Method) — 意思是将大段代码中的一部分提取后,构成一个新方法;还有一个含义是将多个方法中公用的部分提供出来,形式一个新的方法, 这种重构可以使整段程序的结构变得更清晰,增加可读性,扩展性和可维护性。 如,有两个方法,它们的实现部分很雷同,看代码: 而事实 阅读全文
posted @ 2012-07-26 22:54 张占岭 阅读(2914) 评论(0) 推荐(3)
摘要:返回目录 封装成员变量(Encapsulate Field) — 将仅限于本类使用的变量重写成私有(private)成员变量,并提供访问方法(accessor method)。这种重构方式可以将与外部调用者无关的变量隐藏起来,减少代码的耦合性,并减少意外出错的概率。 看图所示: 以上的代码是一种特殊 阅读全文
posted @ 2012-07-26 08:37 张占岭 阅读(1316) 评论(0) 推荐(0)
摘要:有时菜单功能不好用时,不如试试VS提交的命名窗口,确实靠的住以下是选自MSDN的几个常用的命令1 导入、导出或重置 Visual Studio 设置: Tools.ImportandExportSettings [/export:filename | /import:filename | /reset]2 显示内存的指定范围中的内容: Debug.ListMemory [/ANSI|Unicode] [/Count:number] [/Format:formattype] [/Hex|Signed|Unsigned] [expression]3 显示当前调用堆栈: Debug.ListC... 阅读全文
posted @ 2012-07-24 11:14 张占岭 阅读(660) 评论(0) 推荐(0)
摘要:回到占占推荐博客索引 一 重构介绍 接到领导到指示,需要写一个关于代码重构的东西,这也让我再次有机会去看看我的《代码大全》,这本软件工作者必读的书籍,本人强烈推荐! 在我们的项目开发完成后,需要对原来代码进行review,对一些代码结构混乱,逻辑不清晰,违背DRY和OCP的一些代码进行重构的工作,这 阅读全文
posted @ 2012-07-23 11:59 张占岭 阅读(1782) 评论(0) 推荐(9)

上一页 1 ··· 17 18 19 20 21 22 23 24 25 ··· 35 下一页