代码改变世界

随笔分类 - 04 模式架构

网站架构资料收集整理

2012-01-10 15:22 by Virus-BeautyCode, 10317 阅读, 收藏, 编辑
摘要:1.系统概况图 图1.1 系统架构概况图 图1.2 较为完整的系统架构图 2.系统使用的主要技术 下列排名不分先后 2.1前端 JavaScript,html,css,silverlight,flash Jquery Javascript类库,用来简化html的操作,事件处理,动画,异步访问,用于web的快速开发。最新版本是1.7.1,分为开发环境(大小为229k)和生产环... 阅读全文

【翻译】MVC vs. MVP vs. MVVM

2011-11-04 17:38 by Virus-BeautyCode, 3546 阅读, 收藏, 编辑
摘要:MVC vs. MVP vs. MVVM1 简介 原文地址: MVC vs.MVP vs.MVVM« Niraj Bhatt – Architect's Blog 三者的目的都是分离关注,使得UI更容易变换(从Winform变为Webform),使得UI更容易进行单元测试。2 MVC MVP2.1 MVC 1、View接受用户的交互请求, 2、View将请求转交给Controller, 3、Controller操作Model进行数据更新 4、数据更新之后,Model通知View数据变化 5、View显示更新之后的数据 View和Controller使用Strategy模式实现 阅读全文

消息提示的架构演进-理论篇

2011-10-12 11:57 by Virus-BeautyCode, 2848 阅读, 收藏, 编辑
摘要:项目是一个互联网应用。 假设项目有不同的用户群体,每个用户群体的前端都是一个独立的项目,交给不同的开发人员进行开发,前端和后端的交互方式选择WebService。 在前端和后端交互的过程中,主要有两类操作:一类是查询,包括返回单个记录和返回集合两种类型的查询;一类是命令,包括添加、删除、更新,当然,一次操作也可能是几个命令的组合请求。 第一类操作需要返回数据来显示,如果没有返回数据就会提示没有找到符合条件的数据。第二类操作,一般会影响后端的持久化数据,需要返回操作的结果,是成功还是失败,还是如何如何? 今天讨论的消息就是这种后端返回的操作结果,关于这种类型消息的设计,主要是这种消息... 阅读全文

架构演进-实例篇

2011-08-31 14:38 by Virus-BeautyCode, 6050 阅读, 收藏, 编辑
摘要:从上图可以看出,就是一个电子商务网站常见的支付、支付的后续处理,这样一个业务场景。支持多种支付方式,目前包括银联、支付宝,还有平台账户。平台账户就是注册用户将资金存储在平台为用户建立并维护的一个账户里,购买平台的产品,可以使用平台账户中的资金进行支付。 阅读全文

小议传统分层与新式分层,抑或与DDD分层

2011-01-10 14:42 by Virus-BeautyCode, 3835 阅读, 收藏, 编辑
摘要:引言 本文提到的分层只是软件架构上的分层。文中的传统分层指的是传统的三层结构:UI(界面表现层),BLL(业务逻辑层),DAL(数据访问层)。文中提出的观点也都是个人的一点认识,与任何组织没有关系,如有异议,还请各位踊跃拍砖。 当然了,出现的这些问题,也可能只是我个人的问题,不代表每个人都存在。无则加勉,有则改正吧。如果是个人的问题,那就当是个人总结吧,大家看看就算了。 这里说到的传统分层,也有可能是我对于分层的错误理解造成的,但是我看见的不只是我的项目是这么的结构,很多的项目也都是这样的结构。里面的代码, 都和我理解的一样,至少可以说明,还是有一部分人犯了和我一样的错误。 传统分层 传统 阅读全文

胡乱说一下我对于 BO VO PO DTO 的理解

2010-12-18 11:44 by Virus-BeautyCode, 6969 阅读, 收藏, 编辑
摘要:引言本文中将向大家介绍我对于是使用实体的一些体验,欢迎大家拍砖。更欢迎提出不同或者相同的意见。正文刚开始学会使用实体的时候就是建立一个Entity类库,然后里面的实体被其他各层引用。大家传递和使用的都是这一个类库中的实体,包括前端和后台的项目都是引用这个类库,传递和操作这个类库中的实体。就像上面的这幅图一样。每个都要添加对Entity的引用。每个项目都是这么做的,也没有发现什么不好的地方。以前都是做一些小项目,或者是自己Demo一下。上面的做法也没有什么问题,而且看到别人的文章也都是类似这样的结构。后来在学习DDD(Domain Driven Design)的时候,看到了很多的概念。有DTO, 阅读全文

通告(公告),消息(站内短信),提醒的设计<一>:通告

2010-11-26 17:37 by Virus-BeautyCode, 15022 阅读, 收藏, 编辑
摘要:1 业务描述首先我们来认识一下通告,消息,提醒这三者的区别和联系。1.1 通告Bulletin:平台发,用户收。分为实时通告和非实时通告。通告有优先级:紧急,高,普通。平台向单个用户发,平台向多个用户发,平台向某一个用户类型发,平台向全部用户发。平台发布通告。平台撤销通告。平台删除通告。平台查询通告。用户查看通告。用户查询通告。数据库特点一般不修改,每个用户一份,或者每个群体一份1.2 消息Mes... 阅读全文

谈谈我对实体的认识:DTO,DMO,DPO

2010-11-26 09:29 by Virus-BeautyCode, 5081 阅读, 收藏, 编辑
摘要:今天和大家谈的是我对于实体的一些认识,难免有偏颇之初,还请各位指出。大家都看到标题中的三个英文缩写了:DTO,DMO,DPO。DTO大家应该还是熟悉的,Data Transfer Ojbect(数据传输对象)。研究过DDD(Domain Driven Design领域驱动设计)的人应该了解过DTO。是用来传输数据的对象,应为领域对象虽然有数据(属性),但是领域对象上面还带有操作,在某些场合不适合进... 阅读全文

面向对象的分析与设计

2010-10-11 18:17 by Virus-BeautyCode, 3912 阅读, 收藏, 编辑
摘要:面向对象的分析与设计引言  我们首先介绍一些名词翻译  Object-Oriented Analysis and Design面向对象分析和设计  Assignning Responsibilities分配职责  Iterative Development and the Unified Process迭代开发和统一的过程  Embracing Change拥抱变化  Feedback and A... 阅读全文

应用ASP.NET MVC的系统软件架构-知识普及篇1

2010-10-09 13:04 by Virus-BeautyCode, 3199 阅读, 收藏, 编辑
摘要:应用MVC的系统软件架构          -----基础知识引言M-V-C(Model View Controller)/Files/virusswb/应用MVC的系统软件架构.doc  从上图可以看出是首先通过view的请求,经过url导航到一个controller中,最终定位到一个action,在action中访问具体的model,获取数据之后,将数据放入ViewData或者是TempDat... 阅读全文

分层架构中的服务层-服务层的相关模式

2010-09-07 07:14 by Virus-BeautyCode, 3521 阅读, 收藏, 编辑
摘要:服务层的相关模式 1 引言   我们把服务层看做是暴露给用户界面的一个服务集合。大多数时候,我们会发现服务层的方法很容易满足用户的行为。在大多数企业应用中,CRUD是常用的操作。有的时候在一次操作中会处理多个实体。  服务层包括角色管理,数据验证,通知,调整返回给用户界面的数据,或者是整合系统可能的需求。  在谈到这些的时候,一些设计模式可能会有帮助。下面是一些在实现服务层的过程中有帮助的模式。 ... 阅读全文

分层架构中的服务层-服务层实战

2010-09-06 12:14 by Virus-BeautyCode, 4800 阅读, 收藏, 编辑
摘要:引言  服务层是在交互的两个层中间又定义了另外一个层,典型的是在表现层和业务逻辑层之间。这个中间层只是实现应用的用例的类集合。  服务和面向服务的出现,使得整个解决方案更有价值、更加成功。与表现层相比,服务层提供了松散的耦合,服务层提供商定的协议,可重用性,跨平台的部署。服务向其他类一样,允许你调整你需要的抽象总数。    真实世界的表现层,主要是用户前端。用户做的每一件事都通过表现层和用户界面。... 阅读全文

用微软.NET架构企业解决方案 学习笔记(四)业务层

2010-08-20 09:02 by Virus-BeautyCode, 2865 阅读, 收藏, 编辑
摘要:业务层引言  Martin Fowler说过:“任何人都可以写出计算机才能理解的代码,只有写出人能理解的代码的程序员才是好程序员。”  每一个复杂的软件都应该按层来组织。每一层代表系统的一个逻辑部件。尤其是,业务层的模块包括了所有使得系统运行的时候和其它层交互所需要的功能算法和计算,其他层包括数据访问层DAL和表现层。  业务层是任何分层系统的神经中心,包含了大部分的核心逻... 阅读全文

《架构之美》读书笔记(一)

2010-08-19 05:31 by Virus-BeautyCode, 4735 阅读, 收藏, 编辑
摘要:1、引言  建筑师、音乐家、作家、计算机设计者、网络设计者、软件开发者都在使用架构一词,在其他地方也可能会听到这个词,但是他们产生的结果是不同的。建筑和交响乐有很大的区别,但是它们都有架构。进一步说,所有的架构师都在谈论他们工作的美妙,以及结果的美妙。一名建筑架构师可能会说一个建筑应该提供舒适的工作、生活环境,看起来应该是美丽的;音乐家可能会说音乐应该可以可以演奏的,有一个可以识别的主题,听起来应... 阅读全文

项目总结-代码之前的工作

2010-08-17 19:27 by Virus-BeautyCode, 2577 阅读, 收藏, 编辑
摘要:代码之前的工作比较多,也比较广,需要的不仅仅是开发技能,还包括行业知识,分析能力,设计能力。以及更深远的商业预见能力,预见系统之上的商业前景,是否值得我们开发这么一个系统,以及系统的大方向,服务的客户群,需要达到的目标,盈利的点。  一旦上面的商业目标确定之后,就需要行业专家以及架构师的介入。这两者会配合工作,行业专家的主要职责是构建满足商业目标的业务模型,将商业目标分解为很多小的业务模型,梳理其... 阅读全文

项目总结-耦合Couple

2010-08-07 16:37 by Virus-BeautyCode, 2628 阅读, 收藏, 编辑
摘要:耦合Couple引言  本文将到的耦合是指的软件开发中的耦合,而且是代码方面的耦合。包括后面讲到的分层,也只是逻辑分层,不是物理分层。  耦合是我们做软件开发经常会遇到的词汇,尤其是在使用面向对象语言进行开发的时候。看到的相关资料也都在说要低耦合,减少耦合。  尽管我们加入了设计模式,分了层,分了模块,做了等等的工作,还是发现存在耦合,还是有人说耦合高了,导致不能修改,修改、维护的代价太大了。直接... 阅读全文

用微软.NET架构企业解决方案 学习笔记(二)UML概要

2010-08-06 00:04 by Virus-BeautyCode, 3512 阅读, 收藏, 编辑
摘要:UML概要引言  设计一个系统,任何科学领域的系统,你首先需要做的是对它进行抽象。抽象模型为系统的视图、结构、行为、参与实体和流程方面具体的实现提供一个代理。在系统的参与人员(包括:开发者,架构师,所有者,用户)之间应该共享一个模型。为了能够提出反馈,提出错误的假设,改进建议,模型应该能够被系统的参与者所理解。尽管共享了一个模型,你还是需要用一种通用的,被广泛接受的的形式和符号来表达模型。例如:模... 阅读全文

用微软.NET架构企业解决方案 学习笔记(一)

2010-08-05 00:24 by Virus-BeautyCode, 4873 阅读, 收藏, 编辑
摘要:当今的架构师和架构  引言  在计算机的早期,大概是1960年左右,硬件的花费在软件之上,是占主导地位的。40年之后,我们发现情况发生了极大的变化。  因为工业的进步,硬件的成本急剧的下降。另一方面,软件开发的成本因为个性化企业级应用开发的复杂性而急剧上升。对公司来说,便宜的硬件使得为他们的信息系统增加越来越多的功能是值得的。最初一些独立的系统,相互之间没有连接,也很少会共享数据,在多年之后,变成... 阅读全文

领域驱动设计之入门级教程(下)

2010-08-04 00:15 by Virus-BeautyCode, 2724 阅读, 收藏, 编辑
摘要:在我们创建软件的时候,有很多的功能是和要解决的业务领域没有关系的,他们是软件的基础部件,或者是为软件服务的。例如:权限、日志、数据访问、文件访问、网络访问、用户界面等。最好将这部分功能从业务领域分离开来,独立出来,因为这部分功能是相对稳定的,这样既保证了这部分的独立性,便于升级维护,不至于影响业务领域的功能实现,同时将业务功能,业务规则尽可能放在业务逻辑处理层。这样在以后如果修改业务逻辑,不至于需... 阅读全文

领域驱动设计之入门级教程(上)

2010-08-03 19:51 by Virus-BeautyCode, 4576 阅读, 收藏, 编辑
摘要:不知道本篇能否算作是入门级教程,因为大概构思了一下,里面有的是属于教程的东西,有的是相关的知识延伸,有的则什么都不是,就算是一点初级的认识吧,因为我也是接触不久。主要刚看完《领域驱动设计》,是一本不错的书。我看的是免费的pdf精简版,好像卖的话要$30,大家可以买来看看,应该是不错的。购买地址:http://www.lulu.com/product/paperback/domain-driven-... 阅读全文

关于设计的度的一点小认识

2010-07-29 07:50 by Virus-BeautyCode, 2382 阅读, 收藏, 编辑
摘要:关于设计的度的一点小认识引言  最近读了《设计之道》这本pdf书,是园子的老师傅总结的,感谢他的分享。  前几天葡萄城控件团队也发表了一篇《设计做到什么程度? 》,写的不错,有一定的指导意义,不愧是大厂出来的。  正好自己今年也开始进入真正的设计领域,虽然设计的问题出来不少, 也是改来改去的,也是由于中间学习了好几关于设计本书,同时参考了好几个框架和代码示例。发现大家在这方面还是各有认识,没有绝对... 阅读全文

Head.First.Object-Oriented.Design.and.Analysis《深入浅出面向对象的分析与设计》读书笔记(七)

2010-07-27 07:18 by Virus-BeautyCode, 1553 阅读, 收藏, 编辑
摘要:解决实际中的大问题solvingreally big problems     引言 时候构建一些真实的大东西了。你准备好了吗?are you ready?你已经掌握了一系列的OOA&D工具,但是在现实环境中构造一个大系统的时候,如何使用它们呢?好吧,你可能还没有认识到,但是你已经具备了构造大系统的一切条件。接下来,你将会学习一些新的工具,例如:领域分析和用例图,但是这些新工具是你以前学习... 阅读全文

Head.First.Object-Oriented.Design.and.Analysis《深入浅出面向对象的分析与设计》读书笔记(六)

2010-07-26 07:18 by Virus-BeautyCode, 1896 阅读, 收藏, 编辑
摘要:好的设计产生灵活的软件-下(good design = flexible software part 2)------------give your software a 30-minute workout引言  如果你在对应用进行修改的时候发现问题,很有可能说明你的软件需要更加灵活和富有弹性。你需要做更多的分析,整体的设计,学习可以使系统更加松耦合的OO原则。在最后,你将会看到提高内聚性如何帮助... 阅读全文

Head.First.Object-Oriented.Design.and.Analysis《深入浅出面向对象的分析与设计》读书笔记(五)

2010-07-24 19:35 by Virus-BeautyCode, 1775 阅读, 收藏, 编辑
摘要:好的设计产生灵活的软件-上(good design = flexible software part 1)------------没有什么是一成不变的nothing ever stays the same引言  变化是不可避免的。无论现在你多么喜欢你的软件,明天还是可能会改变。你把软件开发的越难以改变,相应用户的需求变更就越困难。在本篇中我们将会视图改进一个已有的系统,看看多么小的一个改变能导致大... 阅读全文

Head.First.Object-Oriented.Design.and.Analysis《深入浅出面向对象的分析与设计》读书笔记(四)

2010-07-23 23:38 by Virus-BeautyCode, 1504 阅读, 收藏, 编辑
摘要:用真实世界检验你的软件-分析引用 是时候毕业了,时候去真实世界检验自己的软件了。 上个版本的狗门很是成功,卖的很疯狂。但是越是卖的还要,抱怨就会越多。下面就是一个用户的意见。 “我非常喜欢你的系统,那个语音识别器。但是在我安装了之后,每次邻居家的狗叫的话,门也会自动打开。但是这不是我想要的效果。”正文 你的软件有了一个上下文。到目前为止,我们是在一个真空,没有结合软件运行... 阅读全文

Head.First.Object-Oriented.Design.and.Analysis《深入浅出面向对象的分析与设计》读书笔记(三)

2010-07-23 05:57 by Virus-BeautyCode, 2137 阅读, 收藏, 编辑
摘要:引言 今天我们说一下需求变更,也就是需求变化了。。。。。。。。。。。。。。。。。。  这恐怕是我们最头疼的了。   正文 接着上回说,因为开发了一个狗门,使得我们可以舒服一阵子了。这时候,电话来了。一个客户打来电话说:“你们的狗门工作的很好,很不错,只是我们想要有一点变化。我们需要一直听小狗是否叫了,是否需要出去。可是有时候我们会听不见,小狗就会尿在家里。能否让门在小狗叫的时候自动... 阅读全文

Head.First.Object-Oriented.Design.and.Analysis《深入浅出面向对象的分析与设计》读书笔记(二)

2010-07-20 07:18 by Virus-BeautyCode, 2468 阅读, 收藏, 编辑
摘要:今天的话题是收集需求。  Gathering Requirements  每个人都喜欢满意的客户。我们已经知道做一个好的软件的第一步是确保软件做了客户想要做的事情。但是你如何理解客户到底想要什么呢?如何确保客户知道他们自己想要什么呢?  个人认知:  个人觉得有时候用户也不太确定他们想要系统做什么具体的功能,也就是说他们也提不出来什么需求。但是他们有问题要解决,他们上系统的目的是解决问题。他们可以... 阅读全文

Head.First.Object-Oriented.Design.and.Analysis《深入浅出面向对象的分析与设计》读书笔记(一)

2010-07-18 21:47 by Virus-BeautyCode, 3558 阅读, 收藏, 编辑
摘要:题外话  又是一本Head.First系列的书,这个系列很多,包括:SQL、设计模式、C#、面向对象分析与设计、软件开发等。里面的语言生动活泼,很好的以故事的形式引出正文,而不是枯燥的文字。  书中开篇的建议  1、放慢速度。理解的越多,需要记忆的越少。  不要只是读,要停下来思考。当书中出现一个问题的时候,不要着急浏览答案,假设真的有人问你这个问题。你强迫你的大脑思考的越深,越是你学习和记忆的好... 阅读全文

《深入浅出设计模式-中文版》读书笔记-工厂模式(五)

2010-07-16 12:46 by Virus-BeautyCode, 2828 阅读, 收藏, 编辑
摘要:今天给大家带来的是:工厂模式。  我们在代码中创建一个对象,我们会很自然的想到new。其实,除了new意外,我们还有很多的方式可以创建对象。不说复杂的模式,就说简单的语法,其实.NET框架中还有下面的方法。根据需要创建的对象的类型,动态创建对象。  [代码]  通过前面我们已经讲过一条原则:  针对接口编程,不针对实现编程。  使用new创建对象很明显就是一个针对实现编程,new后面需要一个具体的... 阅读全文

系统内部模块(子系统)之间的耦合以及模块(子系统)划分

2010-07-14 13:02 by Virus-BeautyCode, 7084 阅读, 收藏, 编辑
摘要:题外话  最近已经在努力学习了,学习基本功,学习设计模式,学习成熟框架,学习软件架构。发现越是学习的多,越是发现自己知道的少。    引言  本篇中的系统使用的技术背景是:.NET平台,C#语言,数据库是SQL Server,其他平台没有参与过,所以没有验证过。  简写解释  BA,Business Access,业务访问  DA,Data Access,数据访问  Entity,实体  Serv... 阅读全文

自定义ORM系列(一)利用attribute实现简单的reader=>entity和reader=>List<entity>映射

2010-07-09 15:27 by Virus-BeautyCode, 3552 阅读, 收藏, 编辑
摘要:我不知道NH的ORM具体如何实现的,我的想法就是通过字段名称和属性名称的对应关系来实现赋值。  简单的类型比较好做,直接赋值就可以了。简单类型是说int,string之类的。  有几个需要注意的地方:  1 属性的类型是另外一个类  2 属性是一个集合  3 类有两个属性的类型是同一个类,例如:种子有用量及其单位,和产量及其单位,用量的单位和产量的单位是一个类型  4 属性嵌套,就是属性的这个类型里面的属性还可能是另外一个类    解决办法:  1 用不同的attribute,普通的类型直接赋值,另外一个类的话就交给另外一个类去负责具体的映射  2 分两次映射,然后集合赋值给商品的属性,觉得不 阅读全文

《深入浅出设计模式-中文版》读书笔记-观察者模式(四)

2010-07-06 06:34 by Virus-BeautyCode, 2341 阅读, 收藏, 编辑
摘要:今天要接触的是观察者模式Observer。  提到观察者,肯定会想到还应该有被观察者,也就是观察的内容,或者说是观察的主题。  首先让我们看看报纸和杂志的订阅是怎么回事:  报社的业务就是出版报纸。  向一家报社订阅报纸,只要有新报纸,就会给你送过来。只要你是他们的订阅者,就一直会收到。  当你不想继续看报纸的时候,可以取消订阅,他们就不会再送报纸过来。  只要报社存在,就会一直有人订阅或者是取消... 阅读全文

《深入浅出设计模式-中文版》读书笔记-继承与组合(三)

2010-07-03 16:53 by Virus-BeautyCode, 1985 阅读, 收藏, 编辑
摘要:经过上一次的改造,鸭子类不是靠继承行为接口而拥有行为,而是靠调用者指定行为的方式。例如:指定叫声的形式和飞的形式。保留了灵活性,将权利交给调用者,鸭子本身不再负责行为的初始化。具体的行为表现交给指定的行为方式处理。如果需要有新的行为方式定义,只要实现行为的接口,然后给鸭子指定新定义的行为方式即可。  就像上一回的例子中,将几个类结合起来使用,这就是组合composition。这种做法和“... 阅读全文

《深入浅出设计模式-中文版》读书笔记 策略模式(二)

2010-07-02 07:25 by Virus-BeautyCode, 2253 阅读, 收藏, 编辑
摘要:接着上回的“针对接口编程,不针对实现编程”原则说。  假设开始我们设计了一个鸭子基类,发声、游泳和显示外观是鸭子类的功能。发声和游泳是通用的方法,放在基类实现,显示外观由于鸭子的不同而不同,放在继承类实现。可以设计出下面的类结构。  代码 Code highlighting produced by Actipro CodeHighlighter (freeware)http... 阅读全文

《深入浅出设计模式-中文版》读书笔记 开篇乱弹(一)

2010-07-01 06:42 by Virus-BeautyCode, 4099 阅读, 收藏, 编辑
摘要:oreilly的《Head.First设计模式》,《深入浅出设计模式》是一本好书,用生动的语言讲解设计模式。而且是逐级深入,并没有一上来就gof23,就一大套设计模式的理论。而是用例子切入,使得读者逐步的理解设计模式的好处,理解设计模式可以解决的问题,使我们有了继续读下去的理由和勇气,而不至于被大片的理论所击倒。  更加容易入门,为以后读那些理论打下坚实的基础。  感谢作者写出一本这么好的书。  ... 阅读全文

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2010-06-05 00:48 by Virus-BeautyCode, 1864 阅读, 收藏, 编辑
摘要:组件提供了一种将功能划分的方式,可以分开安装和部署。  组件设计的常用原则  在设计组件的时候,可以参考下面的原则:  对于组件中的类,应该遵守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, 2358 阅读, 收藏, 编辑
摘要:如果你的应用是通过服务来提供功能,将服务分离出来一层是相当重要的。这篇将介绍服务的设计,和设计服务的过程中可能遇到的问题,以及服务的设计步骤。  在服务层,你定义服务接口的实现,以及数据契约。一个重要的概念就是服务不应该暴露实现的细节,已经在应用内部使用的业务实体。确保你的业务实体不至于过度影响数据契约。服务层应该提供翻译数据契约和业务实体的组件。    上图中的深黑色框中的就是服务层。服务层通常... 阅读全文

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

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

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

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

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

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

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

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

NET 应用架构指导 V2 学习笔记(十一) 业务逻辑层指导

2010-05-31 07:19 by Virus-BeautyCode, 2630 阅读, 收藏, 编辑
摘要:业务逻辑层简介    上图的粗黑色边框的部分就是业务逻辑层,可以包含下面的内容:   application facade应用外观。这个可选的组件为业务逻辑组件提供一个简单的接口,通常会将多个业务操作合并为一个操作,使得业务逻辑层更容易使用。可以减少依赖,因为外部调用者不需要知道业务逻辑组建的实现细节和他们之间的关系。  业务逻辑组件。在任何应用中,业务逻辑的定义都会集中在获取数据、处理数据、传输... 阅读全文

NET 应用架构指导 V2 学习笔记(十) 表现层的主要技术及设计步骤

2010-05-30 14:55 by Virus-BeautyCode, 2105 阅读, 收藏, 编辑
摘要:主要的技术及常用的模式。  移动应用  在设计移动应用的时候可以参考下面的原则:  如果你想要构建一个基于windows的完全在线、偶尔在线、离线的应用,可以考虑使用windows compact framework。  如果你想构建一个支持各种移动设备,或者是需要WAP协议,compact HTML的联网应用,可以考虑使用ASP.NET 。  富客户端应用  在设计富客户端应用的时候可以参看下面... 阅读全文

NET 应用架构指导 V2 学习笔记(九) 表现层指导

2010-05-29 06:51 by Virus-BeautyCode, 1931 阅读, 收藏, 编辑
摘要:本章将会讲述在表现层的设计中的关键问题。帮助你理解在典型的分层应用架构中表现层是怎么杨的?通常包括什么?设计表现层会碰到的关键问题?你将会看到设计指导,推荐的设计步骤,相关的设计模式,可以选择的技术。  表现层组件的实现包括用来显示的用户接口,以及对于用户交互的管理。显示包括用户输入和显示的控件,还有管理用户的交互行为。下图中的粗黑线框中的内容就是表现层。    表现层通常包括下面的部分:   U... 阅读全文

NET 应用架构指导 V2 学习笔记(八) 分层应用指导

2010-05-28 07:24 by Virus-BeautyCode, 2315 阅读, 收藏, 编辑
摘要:本章将讨论将逻辑组件分组之后分布在不同的层,这样的一种应用。层集中关注单个逻辑和功能组件,不考虑组件的物理存放位置。逻辑层可以放在不同的物理层,也可以放在同一个物理层。本章将会交给你如何将你的应用分解为不同的逻辑层,如果选择合适的功能布局,应用如何支持多种客户端类型。  分清楚逻辑层和物理层的区别是非常重要的,逻辑层描述的是功能逻辑和组件的分组,物理层描述的是功能和组件在不同机器上的部署分布。尽管... 阅读全文

NET 应用架构指导 V2 学习笔记(七) 软件架构和设计方法

2010-05-27 07:23 by Virus-BeautyCode, 2054 阅读, 收藏, 编辑
摘要:本篇详细介绍架构的步骤  1、确定架构的目标  架构的目标就是你的结构和设计过程的目的和限制,练习的范围,帮助你决定什么时候算是完成了。在你确定架构的目标的时候,可以参考下面的几个关键点:  首先确定架构的目的。你花在架构和设计的每一个阶段的总时间,将会依赖于这些目的。例如:你是否建立原型?是否测试潜在的路径?是否为一个新的应用已经开始长期的架构过程?  确定谁将会消费你的架构。确定你的架构是否会... 阅读全文

NET 应用架构指导 V2 学习笔记(六) 软件架构和设计方法

2010-05-26 07:17 by Virus-BeautyCode, 2190 阅读, 收藏, 编辑
摘要:输入、输出和设计步骤  设计输入可以帮助确定你的架构一定要满足的需求和限制。通常输入就是用例和使用方案,功能需求,非功能需求(包括质量特性,例如:性能、安全、可靠性、和其他的),技术需求,目标部署环境,和其他限制。  在设计的过程中,你将会建立多个架构的用例,架构问题包括特殊的关注点,满足在设计过程中定义的需求和限制的候选架构方案。常用的方法就是不断的重新设计,直到满足所有的需求,保持了所有的限制... 阅读全文

NET 应用架构指导 V2 学习笔记(五) 软件架构的模式和风格

2010-05-24 23:17 by Virus-BeautyCode, 2401 阅读, 收藏, 编辑
摘要:n-tier/3-tier architecture style   n层/3层架构风格  n-tier和3-tier是一种描述架构部署风格的,用来将功能分为不同的部分,有点像分层架构模式,但是一个部分可以部署到不同的物理机器。  n-tier应用架构分解应用的功能,服务组件,分布式部署,提供改进的扩展性,可管理性。每一层都独立于其它层,除非他们是上下层关系。第n层只需要指导如何处理来自n+1层的... 阅读全文

NET 应用架构指导 V2 学习笔记(四) 软件架构的模式和风格

2010-05-23 08:08 by Virus-BeautyCode, 1902 阅读, 收藏, 编辑
摘要:Layered Architecture Style分层架构风格  分层的架构模式集中在将应用的不同功能分组,进而成为不同的层,就好像栈一样,竖方向一层在一层上面。每一层的功能和一个常用的角色或者职责相关。层之间暴露通信接口,松散耦合。将你的应用分层可以很好的分离关注点,换句话说,支持灵活性和易维护性。  分层的架构风格被描述为倒金字塔行的复用,每一层都集中了一些职责,对它的直接下一层都是抽象的。... 阅读全文

.NET 应用架构指导 V2 学习笔记(三) 软件架构的模式和风格

2010-05-22 07:23 by Virus-BeautyCode, 1928 阅读, 收藏, 编辑
摘要:组件为基础的架构风格  组建为基础的架构描述了一种设计和开发软件系统的软件工程方法。主要集中在将系统划分为单个功能或者是逻辑的组件,组件定义好用来通信的方法、事件和属性。相比面向对象设计原则来说,提供了更高层的抽象,不主要考虑通信协议和状态共享。  组件为基础的风格的关键点是组件的使用:  可重用,通常会将组件设计为在不同的应用、不同的方案中都可以使用。但是,也会设计一些专用的组件。  可替代性,... 阅读全文

.NET 应用架构指导 V2 学习笔记(二) 软件架构的模式和风格

2010-05-21 06:57 by Virus-BeautyCode, 3109 阅读, 收藏, 编辑
摘要:本节主要讨论在目前的应用中,经常使用的高层的模式和原则。通常会涉及架构风格,包括模式,例如:C/S,分层架构,组件为基础的架构,消息总线架构,SOA架构。对于每一种架构,都会从整体、主要原则、主要优点,和帮助你的应用选择合适的架构风格上讲述一些信息。描述不同类型的应用的风格很重要。例如:一些架构模式描述部署模式,一些描述结构和设计问题,另外一些描述通信因素。因此,在本章中,一个典型的应用将会组合包... 阅读全文

.NET 应用架构指导 V2 学习笔记(一) 软件架构的关键原则

2010-05-20 00:34 by Virus-BeautyCode, 3846 阅读, 收藏, 编辑
摘要:原著名称《.NET Application Architecture Guide,2nd Edition》,应该可以从微软的官网下载到,是微软的模式与实践小组的大作。Patterns & Practices在http://www.codeplex.com/上面有很多的好作品,其实.NET平台也有很好的开源项目,也有很广的选择面,只是这些不像java那么开放,.NET的开源是微软主导的。  ... 阅读全文

用微软.NET架构企业解决方案 学习笔记(三)设计原则

2010-05-19 07:09 by Virus-BeautyCode, 2939 阅读, 收藏, 编辑
摘要:原版书名《Architecting Microsoft .NET Solutions for the Enterprise》  前言  设计软件系统是非常有挑战性的,因为一方面需要你集中在今天的需求,同时要求可以适应未来对功能的修改和增加。  尤其是在过去的二十年,在IT行业中,使得软件开发过程系统化,已经做了很多的工作。方法论,设计原则,设计模式,都是用来帮助指导架构和构建系统,以一种规范的方式... 阅读全文

关于日志模块的设计

2010-05-12 19:46 by Virus-BeautyCode, 6793 阅读, 收藏, 编辑
摘要:目录1 使用技术以及外部框架... 12 详细描述... 12.1概况... 12.1.1记录的内容... 12.1.2日志记录的位置及相应的内容... 22.1.3日志的类型... 22.1.4日志功能的配置... 32.1.5配置节类的用法... 112.2数据库日志... 122.3文件日志... 132.3.1记录方式... 132.3.2文件日志的格式... 131 使用技术以及外部框架... 阅读全文

[Translation]Silverlight 4-MVVM with Commanding and WCF RIA Services

2010-04-09 22:26 by Virus-BeautyCode, 2088 阅读, 收藏, 编辑
摘要:原文地址:Silverlight 4 - MVVM with Commanding and WCF RIA Services   在我的前一篇文章“WCF RIA Services and a guide to use DTO/”Presentation Model””,我提到要写一篇文章来讲述ViewModel。在这篇文章中,我将向你展示如何利用Silverlight 4 Commanding 和ViewModel来实现MVVM模式。在文章中我将使用Unity作为依赖注入框架将我的Repository注入DomainService,为了达到目的,我们需要创建自己的DomainServiceF 阅读全文

Wonderful hyperlinks of MVVM(Model-View-ViewModel)Design Pattern

2010-04-02 00:43 by Virus-BeautyCode, 1625 阅读, 收藏, 编辑
摘要:MVVP(Model-View-ViewModel)是一种新的设计模式,主要应用于WPF/Silverlight,其实也可以说专门是为他们两个打造的模式。  主要是WPF/Silverlight提出了新的绑定模式,双向绑定,对以前winform中的databind有了长足的发展,使用双向绑定可以帮助实现验证和动态更新等自动化功能。  具体的可以参看下面的链接,我在以后的文章中也会分析它和以前的MVC,MVP模式的联系和区别。  WPF Apps With The Model-View-ViewModel Design Pattern  WPF中的MVVM模式   Overview of the 阅读全文

.NET应用访问数据库之数据库的开销问题 后续篇(二)通信量和通信次数的较量

2010-03-12 11:55 by Virus-BeautyCode, 2065 阅读, 收藏, 编辑
摘要:通信量是说一次通信传输的数据量,可以使用KB或者MB来衡量的量。通信次数是说一次打开数据库,执行数据库操作,然后返回数据(或者没有返回),算作一次通信。  今天就这个问题在MSN中和几个人进行了交流,一个是MVP,一个是在群里,一个是和一位数据库方面的高手。具体内容如下:  和MVP的交流内容,将MVP的姓名替换了。  代码Code highlighting produced by Actipro... 阅读全文

在Silverlight+WCF中应用以角色为基础的安全模式(一)基础篇之角色为基础的安全模式简介

2010-03-01 09:48 by Virus-BeautyCode, 1698 阅读, 收藏, 编辑
摘要:引言  最近一直在研究Silverlight+WCF应用中的安全问题,如何设计一个安全,又符合Silverlight和WCF的规范的应用呢?又可以将以前的角色为基础的开发框架拿来主义呢?  我们知道WCF在安全方面提供了很多的绑定协议,可是Silverlight3+WCF的话,只有basicHttpBinding可以使用,这就使得我们的选择不多,还有就是项目本身是一个互联网应用,还是使用比较通用的... 阅读全文

软件工程之开发流程小总结

2010-02-24 15:07 by Virus-BeautyCode, 9540 阅读, 收藏, 编辑
摘要:观看本文的讨论的开发流程的时候,有两点需要注意: 首先,流程不是狭义的流程,也就是说不是单只写代码这个过程,包括了软件工程整个流程。 其次,我所讲的这个流程不见得正确,准确的说是肯定不能适用于全部软件开发项目,也就是说不是银弹,其实说起来连大部分都涵盖不了,顶多就是一部分吧。 可行性分析 这个一般都是做战略的专家来做的,他们更加有市场的前瞻性,俗话说就是看的更远一些,搞市场分析、调研,看看我们的想法到底是否可行,可行性有多大,可能会遇到的问题,我们的优势在哪里,可以利用的资源有哪些,需要引进那些资源,有多少对手,他们都进行到了什么程度等等。 这个阶段的文档成果是:可行性分析报... 阅读全文

关于【商品计量单位以及这些计量单位换算】的设计

2010-02-22 12:23 by Virus-BeautyCode, 4343 阅读, 收藏, 编辑
摘要:前言  大家在开发一些进销存系统的时候,肯定会遇到商品货物录入之类的需求,输入货物100吨,1000千克,进销存还简单一些,是内网应用,一个厂商不大可能又有重量单位的产品又有体积单位的产品。但是,如果是一个电子商务平台呢?上面的货物来自多个厂商,这就种类繁多了。在想一步,如果平台国际化了呢?加入国外厂商了,就会出现国际标准,甚至是一些国家的自己的标准(因为人家看的自己的标准舒服,你不能让人家都看你... 阅读全文

NHibernate学习总结:(一)NHibernate的使用和配置

2010-01-08 17:27 by Virus-BeautyCode, 6677 阅读, 收藏, 编辑
摘要:从今天开始学习NHibernate,同时记录一些遇到的问题和学习的经验,希望对大家有一些帮助。NHibernate的具体作用之类的,我就不介绍了,直接开始它的使用。开发工具:VS2008 SP1开发环境:Win2003 、.NET 3.5 SP1、MS SQL Server 2005同时我也参考了: NHibernate之旅系列,是一个很好的教程,替作者广告一下,哈哈。http://www.cnblogs.com/lyj/archive/2008/10/15/1312089.html在数据库中新建如下图的数据库结构,数据库的名称为NHibernate,包括Customer、Order、Prod 阅读全文

关于.NET大数据量大并发量的数据连接池管理

2010-01-08 12:02 by Virus-BeautyCode, 25052 阅读, 收藏, 编辑
摘要:首先声明,本人以前做的都是小应用,还没有设计过百万、千万数据量的应用,并发量上万的应用,很多时候都是Applicatiion Server和DB Server在一台机器,或者将DB Server分离出来,单独在一台机器。由于最近的工作需要,故产生很多疑问,想要和大家一起探讨,向大家学习,希望大家不吝赐教,感谢大家的参与。 首先提一下本文的需求来源和具体的需求。 需求的来源: 本文的需求产生于公司最... 阅读全文

Design Pattern 设计模式【观察者】

2009-11-26 09:33 by Virus-BeautyCode, 1577 阅读, 收藏, 编辑
摘要:观察者设计模式中存在两种角色: 观察者和被观察者。  最经典的例子就是“猫叫了,老鼠跑了,惊醒了主人。”,这个例子也是我以前去微软面试的时候碰到的一个面试题,当时就是让我设计一下这个过程的实现框架。  在这个例子中,老鼠和主人其实就是观察者,而猫属于被观察者,老鼠和主人观察猫的变化,猫有了动作,老鼠和主人就要做出响应。被观察者,就是这个过程,也可以叫做整个事件的根本原因,亦可以叫直接导火索。  从上面这个例子不难看出,观察者和被观察者的关系通常是n:1,也就是多个多个观察者观察一个被观察者。  这样就给我们一个小小的提示,通过这个提示就可以很容易的找出被观察者。猫,也就是观察的内容,或者观察的 阅读全文

c#,委托,回调,事件,系列,一,

2008-06-03 22:55 by Virus-BeautyCode, 2243 阅读, 收藏, 编辑
摘要:C#调用C++回调函数的问题C++的回调函数中有一个参数是,是返回一个字符串,原则如下: typedef void (*TDataEvent)(char *AData ,int ALen); 其中char *AData是从DLL中返回一个字符串,串的内存已经在DLL中分配了 下面中我在C#中定义的委托 public delegate void TDataEvent(Byte[] AData, int ALen); 下面是回调函数的设置代码: Event = new clReceivelDllPoxy.TDataEvent(getDate); ReceDllPoxy 阅读全文

面向构件开发SOA

2008-01-28 11:43 by Virus-BeautyCode, 411 阅读, 收藏, 编辑
摘要:这是我这两三个星期的工作总结,做了一些调研工作之后,对工作的一点总结和认识。不知道大家有什么意见,说说吧,谢谢! 阅读全文

IOC容器

2008-01-20 17:22 by Virus-BeautyCode, 545 阅读, 收藏, 编辑
摘要:IoC是一种模式 IoC(Inversion of Control)中文译为控制反转,目前Java社群中流行的各种轻量级容器的实现都是以IoC模式作为基础的。控制反转意味着在系统开发过程中,设计的类将交由容器去控制,而不是在类的内部去控制,类与类之间的关系将交由容器处理,一个类在需要调用另一个类时,只要调用另一个类在容器中注册的名字就可以得到这个类的实例,与传统的编程方式有了很大的不同,”不用你找,我来提供给你”,这就是控制反转的含义。 阅读全文

[原创]singleton,design pattern

2007-09-22 12:04 by Virus-BeautyCode, 247 阅读, 收藏, 编辑
摘要:thank you for your readusing System;using System.Collections.Generic;using System.Text;namespace ConsoleApplication1{ //single thread public class Singleton { private static Singleton instance; private Singleton() { } public static Singleton Instance { get { if (instance == null) return new Singleto 阅读全文

[原创]关系,依赖,

2007-08-24 10:33 by Virus-BeautyCode, 283 阅读, 收藏, 编辑
摘要:依赖 dependency通常情况下,依赖关系体现在某个类的方法使用另一个类作为参数。也可以说依赖另一个类才可以完成自己的工作。在UML中你可以在其它的事物之间使用依赖关系,特别是包和节点之间。一般化 generalization就是继承,is a ,关联 association关联是一种结构化的关系,指一种对象和另一种对象有联系。给定有关联的两个类,可以从一个类的对象得到另一个类的对象。有1对1,1对多,多对多等聚合 基本聚合有聚合关系的关联指出,某个类是另外某个类的一部分。在一个聚合关系中,子类实例可以比父类存在更长的时间。为了表现一个聚合关系,你画一条从父类到部分类的实线,并在父类的关联 阅读全文