代码改变世界

随笔档案-2010年06月

面向对象类设计的五大原则(一)单一职责原则Single Responsibility Principle

2010-06-29 15:45 by Virus-BeautyCode, 4606 阅读, 收藏, 编辑
摘要: 引言  面向对象类设计,或者说是面向对象设计,有五大原则:  Single Responsibility Principle     单一职责原则  Open Closed Principle        开闭原则  Liskov Substitution Principle     里氏替换原则  Dependency Inversion Principle    依赖反转原则  Interf... 阅读全文

微软企业库5.0学习笔记(四十五)实战数据验证模块----高级篇

2010-06-24 19:41 by Virus-BeautyCode, 2834 阅读, 收藏, 编辑
摘要: 1、添加自定义的提示信息  验证失败的提示信息可以自定义,企业库的验证模块也提供了自定义的功能。是通过读取资源文件的设置来实现的。首先添加资源文件,在项目的右键菜单中选择【属性】,然后点击【资源】添加文件并且定义三个字符串类型的资源。      在上一章中的Customer类的attribute上多添加一些参数,引入资源的命名空间,具体如下所示,就是指明要用的资源名称和类型。  代码 Code h... 阅读全文

微软企业库5.0学习笔记(四十四)实战数据验证模块

2010-06-23 19:22 by Virus-BeautyCode, 2519 阅读, 收藏, 编辑
摘要: 1 在业务对象上添加验证  添加对程序集【Microsoft.Practices.EnterpriseLibrary.Validation.dll】和【System.ComponentModel.DataAnnotations】的引用。  using Microsoft.Practices.EnterpriseLibrary.Validation.Validators;  定义下面的对象  代码C... 阅读全文

关于项目进度慢的思考----如何提高整体开发效率

2010-06-21 23:42 by Virus-BeautyCode, 7590 阅读, 收藏, 编辑
摘要: 我们都是软件行业是世界所有的行业中,失败率最高的。进度最没有办法度量的,通常会拖,一拖再拖,而且人员都扑上去了,可是还是慢。  为什么?  多少年,多少人,更有很多的专业公司都在分析这里面的原因。为什么我们的人员都在加班了,没有人偷懒,都很努力,效率却上不去?  据我分析和思考,认为可以从下面两个角度看这个问题:业务和技术。究其原因的话,有下面几个常见的原因:  业务混乱。业务是软件的基础,软件是... 阅读全文

微软企业库5.0学习笔记(四十三)数据验证模块

2010-06-19 08:07 by Virus-BeautyCode, 3568 阅读, 收藏, 编辑
摘要: 概况  任何接受用户或者是其他系统输入的应用,一定要确保信息是合法的,符合特定的规则。例如:在处理一个订单的时候,需要检查客户的电话号码一定要是数字。另外,如果验证失败,需要返回表明错误的信息。  企业库的验证模块允许开发者实现结构化的,易维护的验证方案。另外,验证模块允许在下面的技术中使用:  ASP.NET  Windows Communication Foundation(WCF)  Win... 阅读全文

NET 应用架构指导 V2 学习笔记(二十四) 跨层关注问题

2010-06-17 20:00 by Virus-BeautyCode, 2228 阅读, 收藏, 编辑
摘要: 概况  大部分的应用都会包含一些跨越逻辑层和物理层的通用功能。这些功能包括:用户认证、授权、缓存、通信、异常管理、日志、基础框架和合法性验证。这些功能通常被叫做“跨层关注”,因为它会影响整个应用,应该尽可能将他们的代码集中在一起。如果这类代码散落在各个地方,需要修改的时候,就需要打开每个地方进行修改;如果集中管理的话,只需要打开一个地方,修改一个地方就可以了。  通常的设计... 阅读全文

关于程序员在30岁、35岁之后怎么办的新思考

2010-06-14 10:40 by Virus-BeautyCode, 18735 阅读, 收藏, 编辑
摘要: 首先给大家问个好,祝大家节日快乐!  我这个问题好像也有点“月经贴”的意思,但是觉得要比语言之争的月经贴有价值的多,最起码算是思考,人生指导,领航吧。  好几天没有写博客了,大家也会发现,前段时间我每天都写一篇,都是晚上或者是早上起来写的。近几天感觉熬不动了,有点想歇一歇的意思。为什么呢?我才三十岁,怎么会精力不够用呢?当然了,世界杯是一个因素吧。  今年一直在深度加班,最近感觉自己身体确实不如五... 阅读全文

微软企业库5.0学习笔记(四十二)异常处理模块

2010-06-14 00:04 by Virus-BeautyCode, 3601 阅读, 收藏, 编辑
摘要: 企业库的异常处理模块,帮助开发者和策略制定者实现常用的设计模式,创建一致的异常处理策略。  一个健壮的、设计良好的异常处理策略是系统设计和实现的重要功能,帮助你避免暴露敏感信息,避免处于不一致的状态。  一个异常处理策略由一系列策略组成,定义了如何为操作者、管理员、技术支持者提供适当的帮助。  给用户以友好的提示信息。  在日志或者是其他位置存储异常信息。  帮助技术支持者跟踪原因。  企业库的异... 阅读全文

NET 应用架构指导 V2 学习笔记(二十二) 设计数据访问组件

2010-06-09 06:53 by Virus-BeautyCode, 2082 阅读, 收藏, 编辑
摘要: 概况  数据层组件提供了访问系统边界内,或者是其他系统暴露的数据的方法。包括数据访问组件,用来访问系统边界内的数据,服务代理组件,用来访问其他服务暴露的数据。另外,还可能包含其他帮助功能和工具类的组件。  本章将帮助你理解设计数据组件基本的步骤。第一步是确定对于访问的数据有什么限制条件,帮助你选择适当的数据访问技术。接下来是选择映射策略,决定数据访问方法。然后决定数据访问组件如何连接数据源。最后,... 阅读全文

分页存储过程(五)在MS SQL Server中打造更加准确,且有一点效率提升的的分页结果

2010-06-08 08:38 by Virus-BeautyCode, 1737 阅读, 收藏, 编辑
摘要: 以前的分页我都是主子表join查询,然后会出现下面的记录形式,返回时一个数据集合  [代码]  这样的话,就造成大量的数据冗余,就是【订单1】的数据被重复多次从数据库读取。这次我尝试将他们分开返回,返回两个数据集合    订单集合  [代码]  明细集合  [代码]    这样的结果不知道会不会有效率提升,还有待测试。但是数据量少了,联合的数据量也少了。以前需要联合整张订单表和整张明细表,现在首先... 阅读全文

NET 应用架构指导 V2 学习笔记(二十一) 设计业务实体

2010-06-08 07:05 by Virus-BeautyCode, 2044 阅读, 收藏, 编辑
摘要: 概况  业务实体存储数据,通过属性暴露数据,包含并管理应用需要用的数据,同时提供编程访问及相关的功能。业务实体应该在内部进行数据有效性验证,并且封装业务逻辑来保证一致性,实现业务规则和行为。因此,设计适当的业务实体,对于最大化性能和高效性的业务层来说,是非常重要的。  本章将帮助你理解业务实体组件的设计。首先,看看应用中使用的不同数据格式,以及数据被如何使用。接下来,你将会学到,在设计中,已有的数... 阅读全文

NET 应用架构指导 V2 学习笔记(二十) 业务组件设计指导

2010-06-07 06:58 by Virus-BeautyCode, 2764 阅读, 收藏, 编辑
摘要: 前言  业务组件的设计是非常重要的工作,如果你没有正确的设计业务组件的话,结果很可能就是代码难以维护和扩展。在设计和实现应用的时候,有多种类型的业务组件。包括业务逻辑组件,业务实体,业务流程或者是工作流组件,工具和帮助组件。  设计步骤  1 确定在应用中将会使用的业务组件  在业务层,你需要创建和使用各种类型的组件来处理业务逻辑。本步骤的目标就是如何识别这些组件,发现应用需要的组件。下面的步骤帮... 阅读全文

NET 应用架构指导 V2 学习笔记(十九) 表现层组件设计指导

2010-06-06 06:15 by Virus-BeautyCode, 2170 阅读, 收藏, 编辑
摘要: 5 决定数据绑定的需求  数据绑定在应用中,提供了一种在用户界面的控件和数据或者逻辑组件建立连接的方式。数据绑定允许你将数据库的数据,或者是其他结构的数据进行显示或者和他们进行交互。数据绑定是绑定目标(用户控件)和绑定源(数据结构、Model、或者是表现层逻辑组件)之间的桥梁。    数据绑定控件是一些绑定到数据源的控件。例如:DataGrid控件绑定要一个集合。数据绑定通常使用在分离的表现模式(... 阅读全文

NET 应用架构指导 V2 学习笔记(十八) 表现层组件设计指导

2010-06-05 21:09 by Virus-BeautyCode, 2125 阅读, 收藏, 编辑
摘要: 本章讲述的是你在设计用户界面组件和表现层逻辑组件的时候应该有的步骤。首先需要理解用户界面的需求,选择适当的技术。然后决定如何将表现逻辑和数据绑定要UI控件上。确保你理解了用户界面中的异常错误处理和合法性验证。下面就是设计的步骤。  1 理解用户界面的需求  理解用户界面的需求是决定UI类型、技术、和控件类型的关键。你的用户界面应该被应用的功能和用户体验所驱动。  从认识应用的用户开始,理解用户希望... 阅读全文

NET 应用架构指导 V2 学习笔记(十七) 组件设计指导

2010-06-05 00:48 by Virus-BeautyCode, 2050 阅读, 收藏, 编辑
摘要: 组件提供了一种将功能划分的方式,可以分开安装和部署。  组件设计的常用原则  在设计组件的时候,可以参考下面的原则:  对于组件中的类,应该遵守S.O.L.I.D的类设计原则。这方面大家可以参考:面向对象设计的SOLID原则。简单的说,S.O.L.I.D原则就是:  Single responsibility principal:单一职责原则,一个类应该只有一个职责。  Open/Closed p... 阅读全文

NET 应用架构指导 V2 学习笔记(十六) 服务层设计指导

2010-06-04 00:13 by Virus-BeautyCode, 2511 阅读, 收藏, 编辑
摘要: 如果你的应用是通过服务来提供功能,将服务分离出来一层是相当重要的。这篇将介绍服务的设计,和设计服务的过程中可能遇到的问题,以及服务的设计步骤。  在服务层,你定义服务接口的实现,以及数据契约。一个重要的概念就是服务不应该暴露实现的细节,已经在应用内部使用的业务实体。确保你的业务实体不至于过度影响数据契约。服务层应该提供翻译数据契约和业务实体的组件。    上图中的深黑色框中的就是服务层。服务层通常... 阅读全文

NET 应用架构指导 V2 学习笔记(十五) 数据访问层指导 技术、性能、安全、部署、以及设计步骤考虑

2010-06-03 09:30 by Virus-BeautyCode, 2526 阅读, 收藏, 编辑
摘要: 技术考虑  下面的原则帮助你选择适当的技术,依赖于设计的应用类型和应用的需求:  如果你需要基本的查询和参数,考虑直接使用ADO.NET的对象。  如果你需要支持复杂的数据访问方案,或者是想简化你的数据访问代码,考虑使用企业库的数据访问模块,更多信息请查看http://entlib.codeplex.com/。  如果你在已经存在数据库的情况下,创建数据驱动的web应用程序,考虑使用ASP.NET... 阅读全文

NET 应用架构指导 V2 学习笔记(十四) 数据访问层指导

2010-06-03 00:33 by Virus-BeautyCode, 2230 阅读, 收藏, 编辑
摘要: 查询  查询是数据访问层中主要的操作。他们是将应用的请求翻译为对数据库的CRUD行为。因为查询如此关键,应该优化它们,来最大化数据库的性能。可以参考下面的设计原则:  使用参数化的SQL查询,可以减少安全问题,减少SQL注入攻击。不要使用用户输入的内容进行字符串的拼接。  考虑使用对象创建查询。例如:实现查询对象模式,或者使用ADO.NET支持的参数化查询。考虑为查询的执行优化数据库的数据结构。 ... 阅读全文

NET 应用架构指导 V2 学习笔记(十三) 数据访问层指导

2010-06-02 13:21 by Virus-BeautyCode, 2243 阅读, 收藏, 编辑
摘要: 数据访问层简介    上图的深黑色框中的就是数据访问层,通常包括下面的部分:  数据访问组件。这些组件抽象了对于存储在数据库的内容的访问。将常用的数据访问集中化,是的应用很容易配置和维护。一些数据访问框架,还允许开发者在helper和数据访问组件的基础上实现自定义的访问组件。其他的数据访问组件,例如ORM框架,自动实现了数据访问组件,减少了开发者需要编写的数据访问代码。  服务代理。如果业务逻辑需... 阅读全文

NET 应用架构指导 V2 学习笔记(十二) 业务逻辑层的设计步骤

2010-06-01 00:07 by Virus-BeautyCode, 1838 阅读, 收藏, 编辑
摘要: 部署方面的考虑  当部署业务逻辑层的时候,一定要考虑生产环境的性能和安全问题。可以参考下面的原则:  考虑将业务逻辑层和表现层部署在同一个物理层,最大化的提高性能,除非你由于伸缩性或者是安全的考虑,需要分层部署。   如果你一定要支持远程业务逻辑层,考虑使用TCP协议提高应用的性能。  考虑使用Internet Protocol Security(IPSec)保护在物理层传输的数据。  考虑使用S... 阅读全文
点击右上角即可分享
微信分享提示