摘要: 软件开发为什么需要UML(软件越来越复杂),开发人员仍然沿用25年前的方法来开发,这就是问题的根本所在 。--IvarJacobson 掌握软件开发的方法就能不断的复制成功。 你应该使用UML吗?一个字:是!旧的面向对象符号正在快速地消逝。它们还会残留在UML稳固前出版的书上面,但新的书、文章等等将会全部以UML作为符号。如果你正在使用旧的符号,你就应该在1998年间转换到UML。如果你正要开始使用建模符号,你就该直接学习UML。 --Martin Fowler, 1997 用UML进行软件开发是一个可以积累的软件开发的过程。可以防止知识和信息的流失。UML 建模的一般过程 0.业务 1.需. 阅读全文
posted @ 2012-01-16 16:18 spring yang 阅读(4585) 评论(1) 推荐(7) 编辑
摘要: 概要 为时20多天的sharepoint开发学习笔记系列终于写完了,从基本的配置到web part开发,再到time job开发等等,其中由于自己才接触sharepoint一年的时间,很多认识还很浅,暂时先记下来,让自己能坚持学习的时候不忘写博客的习惯.系例导航步步为营 SharePoint 开发学习笔记系列 一、简介步步为营 SharePoint 开发学习笔记系列 二、安装和配置步步为营 SharePoint 开发学习笔记系列 三、创建Web Application和创建Site步步为营 SharePoint 开发学习笔记系列 四、创建sub site和创建list步步为营 SharePoi 阅读全文
posted @ 2011-08-03 23:13 spring yang 阅读(7175) 评论(5) 推荐(8) 编辑
摘要: 历时一个多月的时间,代码重构系列终于写完了,代码的坏味道大家一看都不会陌生,绝对是在我们的编程中如影随形的,现在把相应的重构方法和设计模式总结出来,以供大家参考.因为不论是重构还是应用设计模式,一切的目的都是为了软件构架的“优雅”,而不是炫耀技术。步步为营 .NET 代码重构学习笔记系列 步步为营 .NET 代码重构学习笔记 一、为何要代码重构步步为营 .NET 代码重构学习笔记 二、提炼方法(Extract Method)步步为营 .NET 代码重构学习笔记 三、内联方法(Inline Method)步步为营 .NET 代码重构学习笔记 四、临时变量(Temporary Variable)步 阅读全文
posted @ 2011-06-06 21:04 spring yang 阅读(3142) 评论(5) 推荐(6) 编辑
摘要: 设计模式我从开篇到23种设计模式的讲解总共花了进两个月的时间,其间有很多读者给我提出了很好的建议,同时也指出了我的不足,对此我表示感谢,正是由于很多读者的支持我才能坚持的写到最后.在此表示我真诚的谢意.系列导航步步为营 .NET 设计模式学习笔记 一、开篇(设计模式之泡妞二十三招)步步为营 .NET 设计模式学习笔记 二、Abstract Factory(抽象工厂)步步为营 .NET 设计模式学习笔记 三、Strategy(策略模式)步步为营 .NET 设计模式学习笔记 四、Singleton(单例模式)步步为营 .NET 设计模式学习笔记 五、Prototype(原型模式)步步为营 .NE. 阅读全文
posted @ 2011-05-05 23:51 spring yang 阅读(4198) 评论(12) 推荐(10) 编辑
摘要: 这个系列我一共写了八篇,从什么是三层架构到一个简单的三层架构从数据库设计、SQLHelper设计、Modle设计、DAL设计、BLL设计到UI的设计作了简单的说明,在这其中有很多读者提出了很好的意见,我很高兴,我只是把我的理解粗略的写出来分享,以此来回顾以前做过的一些项目的总结,希望自己在这其中有些启发,同时也接受读者给我的批评,来使自己有所提高。步步为营 .NET三层架构解析系列步步为营 .NET三层架构解析 一、什么是三层架构步步为营 .NET三层架构解析 二、数据库设计步步为营 .NET三层架构解析 三、SQLHelper设计步步为营 .NET三层架构解析 四、Model设计(四种设计. 阅读全文
posted @ 2011-03-30 23:09 spring yang 阅读(10668) 评论(10) 推荐(11) 编辑
摘要: 概述 双工(Duplex)模式的消息交换方式体现在消息交换过程中,参与的双方均可以向对方发送消息。基于双工MEP消息交换可以看成是多个基本模式下(比如请求-回复模式和单项模式)消息交换的组合。双工MEP又具有一些变体,比如典型的订阅-发布模式就可以看成是双工模式的一种表现形式。双工消息交换模式使服务端回调(Callback)客户端操作成为可能。 在Wcf中不是所有的绑定协议都支持回调操作,Ba... 阅读全文
posted @ 2013-12-05 18:38 spring yang 阅读(8591) 评论(8) 推荐(4) 编辑
摘要: 概述 需求 有时我们的系统需要支持多种数据库,如即要支持MSSQL server又要同时支持Oracle database.而如果我们为些实现两套数据库操作的方式,就会不能很好的达到软件设计的目标:高内聚,低偶合。 设计 采取策略模式(Strategy),它定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法的变化不会影响到使用算法的客户。 优点: ... 阅读全文
posted @ 2013-03-17 14:04 spring yang 阅读(4050) 评论(7) 推荐(3) 编辑
摘要: 概述 状态机工作流由一组状态组成。一个状态被指示为初始状态。每个状态都可以接收一组特定事件。视事件而定,可以转换到另一个状态。状态机工作流可以有最终状态。当转换到最终状态时,工作流将完成。 场景 针对我上篇博客设计的一个简单的状态机工作流,流程图如下: 我们来设计个用设计模式中的状态模式来设计这个工作流。 设计 先看看它的User Case功能设计: 再看看它的Class d... 阅读全文
posted @ 2013-03-13 18:31 spring yang 阅读(25558) 评论(2) 推荐(9) 编辑
摘要: 概述 BPEL:全称为Business Process Execution Language,即业务流程执行语言,是一种使用XML编写的编程语言。用于自动化业务流程,也曾经被称作WSBPEL和 BPEL4WS。广泛使用于Web服务相关的项目开发中,优点为具有可移植性和有效保护了投资。 BPEL是一门用于自动化业务流程的形式规约语言。 用XML文档写入BPEL中的流程能在Web 服务之间以标... 阅读全文
posted @ 2013-03-11 13:40 spring yang 阅读(10859) 评论(2) 推荐(7) 编辑
摘要: 概述 System.Type 类对于反射起着核心的作用。但它是一个抽象的基类,Type有与每种数据类型对应的派生类,我们使用这个派生类的对象的方法、字段、属性来查找有关该类型的所有信息。 Type Assembly的用途: (1)使用Assembly定义和加载程序集,加载在程序集清单中列出模块,以及从此程序集中查找类型并创建该类型的实例。 (2)使用Modul... 阅读全文
posted @ 2012-05-28 14:43 spring yang 阅读(2886) 评论(1) 推荐(3) 编辑
摘要: 概述 Windows Communication Foundation (WCF) 是.NET Framework 的扩展,用来创建互连的系统。WCF 提供了创建安全的、可靠的、事务服务的统一框架,WCF 整合和扩展了现有分布式系统的开发技术,如Microsoft .Net Remoting、Web Services、Web Services Enhancements (WSE)等等,来开发统一... 阅读全文
posted @ 2012-05-24 17:27 spring yang 阅读(2311) 评论(2) 推荐(4) 编辑
摘要: 概述 XML:Extensible Markup Language(可扩展标记语言)的缩写,是用来定义其它语言的一种元语言,其前身是SGML(Standard Generalized Markup Language,标准通用标记语言)。它没有标签集(tag set),也没有语法规则(grammatical rule),但是它有句法规则(syntax rule)。任何XML文档对任何类型的应用以及... 阅读全文
posted @ 2012-05-21 21:33 spring yang 阅读(4294) 评论(4) 推荐(4) 编辑
摘要: 概述 Unity是一个轻量级的可扩展的依赖注入容器,支持构造函数,属性和方法调用注入。Unity可以处理那些从事基于组件的软件工程的开发人员所面对的问题。构建一个成功应用程序的关键是实现非常松散的耦合设计。松散耦合的应用程序更灵活,更易于维护。这样的程序也更容易在开发期间进行测试。你可以模拟对象,具有较强的具体依赖关系的垫片(轻量级模拟实现),如数据库连接,网络连接,ERP连接,和丰富的用户界面... 阅读全文
posted @ 2012-05-17 17:40 spring yang 阅读(8751) 评论(2) 推荐(7) 编辑
摘要: 概述 在我以前做项目时,读DbDataReder里的值时都会用Reader.Read()然后根据名字来逐个读出.自从学会利用反射来读后,一切变得很容易. 以前的做法 定义一个Entity public class FileInformationModel { #region Public Property /// <summary> ... 阅读全文
posted @ 2012-03-31 19:25 spring yang 阅读(6507) 评论(3) 推荐(10) 编辑
摘要: 概述 项目中要在操作数据库的异常处理中加入写Log日志,对于商业上有要求,写log时对其它操作尽可能影响小,不能因为加入log导致耗时太多. 设计思想 在写入日志时利用Queue来管理,写日志有一个专门的backgroud线程来处理,如果没有日志要写,这个线程处于wait状态,这就有了线程的异步处理. 简单的实现方式 //<summary> //Wri... 阅读全文
posted @ 2012-03-30 19:04 spring yang 阅读(10391) 评论(26) 推荐(18) 编辑