摘要: 概念:敏捷软件:是1990年被大家广泛讨论的一种软件开发,解决的主要是应对软件开发当中的变化。和“非敏捷”比起来其中主要区别是提倡业务专家与开发人员协同工作,尽可能的面对面进行沟通,频繁的交付新的版本,紧凑的自组织型团队,良好的应对需求变化方法。历史:敏捷一词来源于2001年初美国犹他州雪鸟滑雪圣地的一次敏捷方法发起者和实践者(他们发起组成了敏捷联盟)的聚会。价值观(宣言):个体与交互 重于 流程工具可用的软件 重于 跟踪文档客户协作 重于 合同谈判响应变化 重于 循规蹈矩敏捷原则:1. 无论是团队内还是团队间,最有效的沟通方法是面对面的交谈。2. 我们的最高目标是,通过尽早和持续地交付有价值 阅读全文
posted @ 2011-07-31 19:52 13路易的 阅读(357) 评论(0) 推荐(0) 编辑
摘要: 领域概念:领域即是业务。领域模型概念:通过对象以及对象之间的关联关系的代码。实体(Entity):需要一个固定的标识记录一条信息。 值类型(Value Object):无需固定标识记录信息。四层结构:UI、Business Logic、Domain Object、Service,每层之间只之上调用,不允许Service 调用Domain Object信息。层与层之间通过接口进行访问,通过Ioc技术实现层之间的隔离。聚合根:一组对象之间的聚合,一个业务场景当中提取一个聚合根,聚合内的对象访问只能通过聚合根进行。领域的四种模型: 1 贫血模型1) 只包含get/set 属性2) 包含:Servic 阅读全文
posted @ 2011-03-27 14:50 13路易的 阅读(414) 评论(0) 推荐(0) 编辑
摘要: 定义:允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类。对象或类职责描述:1.Content:内容2.State:状态 UML图: 重点:1.状态转换可以由State类或者是Context类控制。2.使用状态模式通常会导致类的数量增加。应用场景:针对GreaterThen、In、LessThen等或者是更多区间范围,通常使用办法是if……else……使用状态模式可以做到对扩展开放,对修改关闭。具体代码实现:下载:代码 阅读全文
posted @ 2011-03-20 18:57 13路易的 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 应用场景:1.当一个应用程序调用者与多个目标对象之间存在调用关系时,并且目标对象之间的操作很类似的时候。2.例如当一个目标对象内部的方法调用太复杂,或者内部的方法需要协作才能完成对象的某个特点操作时。3.有时候调用者调用目标对象后,需要回调一些方法。职责定义:1.Invoker:调用者对象。2.ICommand:用于解耦目标对象与调用者之间的抽象命令对象。要点:1.对请求部分进行封装,封装使用的是:ICommand。2.调用者:Invoker把ICommand作为参数加入自身,调用Execute()执行具体请求。优劣势描述:1.能较容易地建立一个命令队列2.在需要的情况下,可以较容易地将命令记 阅读全文
posted @ 2011-03-12 16:05 13路易的 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 1.IAsyncResult:通过委托进行异步编程。 i.创建需要调用函数的委托,通过BeginInvoke来执行异步调用。 ii.BeginInvoke当中的参数分三部分 1.调用函数的参数。 2.异步回调函数。 3.Object类型的参数,可以在回调函数中使用(r.AsyncState)。 iii.其中CallBack是一个参数的委托,参数为:[IAsyncResult]。 iv.CallBack主要进行跟踪,执行EndInvoke来返回具体结果。 v.不能进行多任务处理。2.BackgroundWorker:通过微软提供的异步处理类进行编程处理。 i.创建BackgroundWorker 阅读全文
posted @ 2011-02-27 18:14 13路易的 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 1.通用集合的一些缺陷: a)性能问题。 b)类型是不安全的。 c)清晰度不够。2.使用泛型的好处: a)类型安全的。 b)增加了清晰性。 c)对于泛型集合提升了性能,取消的装箱拆箱操作。 d)抽象性更好。3.泛型类型: a)类型形参:一个占位符,多个形参用“,”隔开(<T,R>)。 b)类型实参:实现实例时具体的参数类型(<int,string>)。4.构造类型: a)开放式类型:不受具体类型约束(不限制类型,或者是where条件)。 b)封闭式类型:指定具体类型。5.泛型约束: a)继承约束:指定一个类型,并且只能实现此类型的子类型。 b)接口约束:规定类型实参必须 阅读全文
posted @ 2011-02-20 21:12 13路易的 阅读(792) 评论(0) 推荐(0) 编辑
摘要: Linq语言查询,部分关键字使用:a) Distinct,值类型可以直接筛除,对于引用类型需要实现接口IEqualityComparer<T>。b) Select、SelectMany,SelectMany返回的委托是IEnumerable<T>。而Select返回委托是IEnumerable<IEnumerable<T>>。c) Where查询条件,进行筛选。d) ToDictionary、ToArray()、ToList(),转换成对应类型。e) First、FirstOrDefault、Last、LastOrDefault、Find、Fin 阅读全文
posted @ 2011-02-08 13:00 13路易的 阅读(321) 评论(0) 推荐(0) 编辑
摘要: 1.ViewData与TempData属性来向View页传递对象。ViewData只能在当前Action中有效但是TempData可以类似于Session一样到其它页面仍然存在,但只限一页的访问(类似于Monorail中的Flash)TempData一般用于临时的缓存内容或抛出错误页面时传递错误信息。2.ascx页面 return PartialView("BlogView", blogs); EmptyResult,JsonResult,RedirectToAction,RedirectToRoute,ActionResult,ContentResult,JavaScriptResult,H 阅读全文
posted @ 2011-01-26 22:54 13路易的 阅读(625) 评论(0) 推荐(0) 编辑
摘要: 继承1.继承是“是一种”的关系(is),组合是“有一种”的关系(has)。2.代码重用是继承的好处之一。3.类可以继承一个类和多个接口,派生类不能继承基类的构造函数和析构函数。4.值类型和基元是密封的,因而不能被继承,例如不能创建一个继承于int的类。5.System.object是所有类的最终基类。6.Object.Equals是比较方法,对于引用类型,比较的是引用地址。7.对于引用类型,浅拷贝只复制引用地址,深拷贝复制一个新的内存空间并赋值。8.Object.ReferenceEqulas方法比较两个对象是否是同一个对象。9.基类必须有比派生类相同的可访问性、或具有比派生类更大的可访问性。 阅读全文
posted @ 2011-01-23 22:03 13路易的 阅读(211) 评论(0) 推荐(0) 编辑
摘要: 性能优化总结1. 关于引用类型(接口、类等)在创建的时候应该避免循环创建。2. 对于GDI或者是数据库操作的对象使用using进行控制。 using 语句提供的对象必须实现 IDisposable 接口,才允许使用using,并且using在关闭的时候才会对其释放资源。3. 字符串操作不固定时可以使用StringBuilder对象进行操作。4. 字符串大小写敏感的时候我们比较一般使用a.ToLower() == b.ToLower(),正确应该使用string.Compare(string a, string b, bool ingareCase);进行比较。对于判断数据是否为空我们可以使用s 阅读全文
posted @ 2011-01-23 13:55 13路易的 阅读(198) 评论(0) 推荐(0) 编辑