摘要: 1.个人对单元测试的初识 ①坚持的开发中编写单元测试,并把它培养成一种习惯! ②写出高效的单元测试,这种能力需要在实践中慢慢积累! ③提高对单元测试的认识高度,把它和编码工作同等对待! 2.什么是单元测试? 通俗讲单元测试就是检查一个函数执行后它的返回结果或者它对系统数据造成的影响(或者其它方面的影响)是否跟你的期望一致,也就是为了证明代码的行为和我期望的一致! 3.我们为什么要使用单元测试? ①最直接的原因是保证我们函数的正确性,如果这个函数在没有保证正确的情况下就被上层代码调用,那么随着项目的深入,调用层次会越来越深,就很容易产生严重的BUG问题,从而增加... 阅读全文
posted @ 2013-08-09 09:35 luyujie_may 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 因为NHibernate被设计为可以在许多不同环境下工作,所以它有很多配置参数。幸运的是,大部分都已经有默认值了。 NHibernate.Test.dll包含了一个示例的配置文件app.config,它演示了一些可变的参数。下面是一个在web.config文件中指定连接属性的例子: 1 2 3 4 6 7 8 9 10 14 18 22 26 30 31 32 33 34 35 属性名用途h... 阅读全文
posted @ 2013-08-07 10:29 luyujie_may 阅读(468) 评论(0) 推荐(0) 编辑
摘要: SessionFactory (NHibernate.ISessionFactory)对属于单一数据库的编译过的映射文件的一个线程安全的,不可变的缓存快照。它是Session的工厂,是ConnectionProvider的客户。可以持有一个可选的(第二级)数据缓存,可以在进程级别或集群级别保存可以在事物中重用的数据。会话,Session (NHibernate.ISession)单线程,生命期短促的对象,代表应用程序和持久化层之间的一次对话。封装了一个ADO.NET连接。也是Transaction的工厂。保存有必需的(第一级)持久化对象的缓存,用于遍历对象图,或者通过标识符查找对象。持久化对象 阅读全文
posted @ 2013-08-07 10:19 luyujie_may 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 为了降低本系统各个组件之间的耦合度,本系统将BLL层采用WCF技术发布为Web Service,以供UI层调用。 前面我们已经介绍过,为什么UI层不直接调用BLL层,而是要经过UI->Service.Wrapper->Service.Host->Service->BLL这样绕一大圈的方式来调用BLL 阅读全文
posted @ 2013-07-18 15:40 luyujie_may 阅读(247) 评论(0) 推荐(0) 编辑
摘要: 1.页面缓存 要实现页面输出缓存,只要将一条 OutputCache 指令添加到页面即可。 CacheProfile 用于定义与该页关联的缓存设置的名称。是可选属性,默认值为空字符("")。需要注意的是,包含在用户控件中的@ OutputCache指令不支持此属性。在页面中指定此属性时,属性值必须与Web.config文件配置节下的outputCacheProfiles元素中的一个可用项的名称匹配。如果此名称与配置文件项不匹配,将引发异常。 NoStore 该属性定义一个布尔值,用于决定是否阻止敏感信息的二级存储。需要注意的是,包含在用户控件中的@ OutputCa... 阅读全文
posted @ 2013-07-17 16:34 luyujie_may 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 以dispose的模式来代替finalize方式:非托管资源的清理主要有终止化操作和Dispose模式两种,其中Finalize方式存在执行时间不确定,运行顺序不确定,同时对垃圾回收的性能有极大的损伤。选择合适的垃圾收集器:工作站GC和服务器GC:工作站GC主要应用于单处理器系统,而服务器收集器专为多处理器设计,默认情况下为工作站收集器。适当的情况下对对象实现弱引用:弱引用是对象引用的一种中间态,实现了对象既可以通过GC回收内存,又可以被应用程序访问的机制。胖对象需要大量的内存来创建,弱引用机制保证了胖对象的内存不足时GC可以回收,而不影响内存使用,在没有被GC回收前又可以再次引用该对象,从而 阅读全文
posted @ 2013-06-24 10:22 luyujie_may 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 1.字段 通常定义为private(封装原则)2.属性(property) 通常定义为public,表示类的对外成员。具有可读可写属性,通过get和set访问器实现3.索引器(indexer) C#中的类成员可以是任意类型,包括数组和集合。当一个类包含了数组和集合成员时,索引器将大大简化对数组或集合成员的存取操作。定义索引器的方式与定义属性有些类似,其一般形式如下:[修饰符] 数据类型 this[索引类型 index]{ get set}修饰符包括 public,protected,private,internal,new,virtual,sealed,override, abstract,. 阅读全文
posted @ 2013-06-22 17:23 luyujie_may 阅读(402) 评论(0) 推荐(0) 编辑
摘要: 1.继承定义:就是面向对象中类与类之间的一种关系。通过继承,使得子类具有父类的属性和方法,同时子类也可以通过加入新的属性和方法或者修改父类的属性和方法建立新的类层次。2.CLR支持实现单继承和接口多继承3.继承特性继承是可以传递的,子类是对父类的扩展,必须继承父类方法,同时可以添加新方法。子类可以调用父类方法和字段,而父类不能调用子类方法和字段。虚方法如何实现覆写操作,使得父类指针可以指向子类对象成员。子类不光继承父类的公有成员,同时继承父类的私有成员,只是在子类中不被访问。new关键字在虚方法继承中的阻断作用。4.接口继承抽象类适合于有族层概念的类间关系,而接口最适合为不同的类提供通用功能接 阅读全文
posted @ 2013-06-22 15:25 luyujie_may 阅读(543) 评论(0) 推荐(0) 编辑
摘要: 1、对象的生成(出生) Person aperson=new Person("小张",25) 构造过程:分配存储空间—初始化附加成员—调用构造函数2.对象的旅程(在一定的约定与规则下,通过方法进行彼此的交互操作从而达到改变本身状态的目的) 对象类型:值类型(线程的堆栈)和引用类型(托管堆)。装箱:值类型—引用类型 拆箱:引用类型—值类型 对象属性:字段、属性。方法操作这些对象的交互方式:设计模式对象的生存环境:CLR3.继承(目的:提高软件复用) public:开放性最大,都可以访问 protected:纵向关心约定,其对象有访问父类的权限(父类和子类) internal: 阅读全文
posted @ 2013-06-22 12:44 luyujie_may 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 使用Ajax的最大优点,就是能在不更新整个页面的前提下维护数据。这使得Web应用程序更为迅捷地回应用户动作,并避免了在网络上发送那些没有改变过的信息。AJAX即“Asynchronous JavaScript and XML”(异步JavaScript和XML),它是一种支持异步请求的技术。简而言之,XmlHttpRequest使您可以使用JavaScript向服务器提出请求并处理响应,而不阻塞用户。AJAX不是一种新的编程语言,而是一种用于创建更好更快以及交互性更强的 Web 应用程序的技术。通过 AJAX,您的 JavaScript 可使用JavaScript的XMLHttpRequest 阅读全文
posted @ 2013-06-20 12:26 luyujie_may 阅读(133) 评论(0) 推荐(0) 编辑