Fork me on GitHub
上一页 1 ··· 3 4 5 6 7 8 下一页
摘要: 服务层的定义Domain Model的设计与实现IRepository的设计与实现Document Message模式和Request-Response模式的探索DataContract的设计与实现Contracts的设计与实现Service的设计与实现Idempotent模式的探索ClientProxy的设计与实现服务门面Facade的设计与实现客户端访问什么是服务层服务层位于表示层和业务层之间,他提供一个接口来定义应用程序的边界以及可供客户端使用的操作,在服务层向客户端描绘的门面后,它将业务逻辑、验证和工作流封装起来并协调业务实体的持久化和和检索工作——《ASP.NET设计模式》接下来,将 阅读全文
posted @ 2012-12-02 03:10 木宛哥说编程 阅读(1983) 评论(1) 推荐(6) 编辑
摘要: 什么是Query Object模式Query Object的架构设计Query Object在服务层的应用测试Query Object模式Query Object:可以在领域服务层构造查询然后传给资源库使用,并使用某种查询翻译器将对象查询(Query)翻译成底层数据库持久化框架可以理解的查询(即翻译成一条Sql 语句)。而Query Object即可以理解为表示数据库查询的对象。且可以构造任意查询,然后传给Repository。Query Object模式的主要好处是它完全将底层的数据库查询语言抽象出来。如果没有某种查询机制,我们的持久化层可能会这样定义方法: public interf... 阅读全文
posted @ 2012-11-14 22:59 木宛哥说编程 阅读(3021) 评论(10) 推荐(6) 编辑
摘要: 什么是Unit Of Work模式Unit Of Work(工作单元)模式用来维护一个由已经被业务事物修改(增加、删除或更新)的业务对象组成的列表。Unit Of Work模式负责协调这些修改的持久化工作以及所有标记的并发问题。在数据访问层中采用Unit Of Work模式带来的好处是能够确保数据完整性。如果在持久化一系列业务对象(他们属于同一个事物)的过程中出现问题,那么应该将所有的修改回滚,以确保数据始终处于有效状态。为了演示Unit Of Work模式,使用一个简单的银行领域对两个账号之间的转账建模。下图给出了服务层(AccountService)与使用了Unit Of Work模式(以 阅读全文
posted @ 2012-10-29 23:57 木宛哥说编程 阅读(8644) 评论(14) 推荐(10) 编辑
摘要: 目录What Is MVPDomain ModelStubRepositotyIView & PresenterViewIoc容器StructureMap开篇忙碌的9月,工作终于落定,新公司里的框架是MVP+Linq,对于MVP虽然不熟,但有MVC的基础,花了两天时间研究了MVP,故作此博文,留作参考。Model-View-Presenter(模型-视图-呈现器,MVP)模式的重点是让呈现器控制整个表示层的逻辑流。MVP模式由如下三个不同部分组成:模型表示视图显示或者修改的业务数据,包括业务逻辑和领域相关的逻辑。视图通过呈现器显示模型数据,并将用户输入委托给呈现器。呈现器被视图调用来显 阅读全文
posted @ 2012-10-21 05:18 木宛哥说编程 阅读(1362) 评论(2) 推荐(1) 编辑
摘要: 生产者消费者例如下场景:某个模块负责产生数据,这些数据由另一个模块来负责处理(此处的模块是广义的,可以是类、函数、线程、进程等)。产生数据的模块,就形象地称为生产者;而处理数据的模块,就称为消费者。我们举一个寄信的例子,假设你要寄一封平信,大致过程如下:你把信写好——相当于生产者制造数据你把信放入邮筒——相当于生产者把数据放入缓冲区邮递员把信从邮筒取出——相当于消费者把数据取出缓冲区邮递员把信拿去邮局做相应的处理——相当于消费者处理数据生产者消费者模式可以用来处理并发问题的。从寄信的例子来看。如果没有邮筒,你得拿着信傻站在路口等邮递员过来收(相当于生产者阻塞);又或者邮递员得挨家挨户问,谁要寄 阅读全文
posted @ 2012-09-12 11:27 木宛哥说编程 阅读(650) 评论(0) 推荐(0) 编辑
摘要: 获取当天最大流水号存储过程 阅读全文
posted @ 2012-09-07 02:18 木宛哥说编程 阅读(750) 评论(0) 推荐(0) 编辑
摘要: 手绘分页控件,配合存储过程的使用即可实现分页 阅读全文
posted @ 2012-09-02 15:19 木宛哥说编程 阅读(1072) 评论(6) 推荐(0) 编辑
摘要: 一个很简单的例子,可以巩固ajax、json,适合新手练习 阅读全文
posted @ 2012-09-02 14:20 木宛哥说编程 阅读(1496) 评论(0) 推荐(2) 编辑
摘要: 我始终认为学习设计模式需要怀着一颗敬畏的心去探索,这一系列23种设计模式并不是一蹴而就,都是前人根据自己的经验逐渐演化出来,所以才会形成非常经典的理论。学习设计模式,我想最好的方式是根据自己的经验逐渐来推导它,这样你才理解了其中奥妙,而不是靠记忆背住了它,所以,这篇博文主要分析三种工厂模式的演变过程:来实现吧,最简单计算器代码能否复用性忘记面向过程吧,面向对象思想的引入多态,简化代码大杀器质的飞跃:简单工厂模式的运用迷途知返:拨开云雾见工厂方法暴走一击:抽象工厂+工厂方法我们先举一个最平常例子——写一个最简单的计算器,我们可能非常快就完成了第一个版本:来实现吧,简易计算器namespace 工 阅读全文
posted @ 2012-08-30 02:51 木宛哥说编程 阅读(3637) 评论(36) 推荐(24) 编辑
摘要: Lambda表达式其实并不陌生,他的前生就是匿名函数,所以要谈Lambda表达式,就不得不谈匿名函数,要谈匿名函数,那又要不得不谈委托。何为委托匿名方法Lambda表达式扩展方法泛型委托A Simple Lambda DemoLambda表达式树何为委托委托非常好理解,类似于C++里面的函数指针(指向了一个方法),并且委托约束了待指向方法的签名(由返回类型和参数组成)。using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace 委托Test{ delegate bo... 阅读全文
posted @ 2012-08-27 17:25 木宛哥说编程 阅读(23681) 评论(60) 推荐(81) 编辑
摘要: Linq为我们提供了许多扩展方法,方便我们对数据源进行操作(Where,Select...)。即使你不了解算法,也能使用Linq当回牛人。扩展方法本质并不是什么高深的技术,说白了就是一个Static静态方法。声明扩展方法步骤:创建一个名为MyHelper的类,约定了此类中的方法均是扩展方法。注意这个类必须是静态类(Static)扩展方法必须是Static静态方法第一个参数为待扩展的类型,前面标注this如果MyHelper在一个类库中,记得对其添加引用并using相关名称空间A simple exampleusing System;using System.Collections.Generi 阅读全文
posted @ 2012-08-27 13:20 木宛哥说编程 阅读(2579) 评论(1) 推荐(3) 编辑
摘要: 上一篇博文《ASP.NET那点不为人知的事(一)》中我们提到HttpApplication有19个标准事件,在HttpApplication的第8个事件PostMapRequestHandlerExcute触发的时候,标志着已经获取了处理当前请求的处理程序对象,在第11个事件PreRequestHandlerExcute之后,HttpApplication将执行这个处理程序,接下来我们继续讨论以下话题:HttpContext状态管理处理HttpApplication的事件常见的HttpModule处理程序处理程序工厂页面处理程序工厂:PageHandlerFactoryReflect反编译网站 阅读全文
posted @ 2012-08-23 04:52 木宛哥说编程 阅读(8980) 评论(31) 推荐(45) 编辑
摘要: 我们上网时,在浏览器地址输入网址:Http://www.cnblogs.com,按下回车,一张网页就呈现在我们眼前。这究竟发生了什么?对于一名优秀的Programmer来说,我想有必要一下熟悉浏览器--->服务器请求的过程。ASP.NETASP.NET是运行在公共语言运行时刻时(CLR)上的应用程序框架。他用来在服务器端构建功能强大的web应用程序。当浏览器请求 ASP.NET 文件时,IIS 会把该请求传递给服务器上的 ASP.NET 引擎,ASP.NET 引擎会逐行地读取该文件,并执行文件中的脚本,最后,ASP.NET 文件会以纯 HTML 的形式返回浏览器。客户端浏览器和服务器之间 阅读全文
posted @ 2012-08-13 04:05 木宛哥说编程 阅读(23632) 评论(112) 推荐(150) 编辑
摘要: 上一篇文章:庖丁解牛——深入解析委托和事件之后,以一题面试题来总结事件using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading;namespace CallChange{ public class Call { static void Main(string[] args) { MessageMonitoring mm = new MessageMonitoring(); ... 阅读全文
posted @ 2012-08-07 02:35 木宛哥说编程 阅读(1275) 评论(1) 推荐(1) 编辑
摘要: 开篇我之前发过一篇博文《两天完成一个小型工程报价系统(三层架构)》,不少朋友向我要源码学习,后来久而久之忘记回复了。今天我再分享一个进销存系统,只为学习,没有复杂的框架和设计模式,有的是我个人的理解,大家互相探讨技术才会提高。当然我的命名不是很规范,兄弟们凑合着看。:)思想和架构在传统的三层架构思想上扩展出N层架构,将业务逻辑层换成WCF服务。抽象工厂的引入提高了程序的扩展性,单利+缓存+反射则提升了程序的性能。数据库则换成了Oracle,所以相应的数据访问层也换成了OracleDal,当然你完全可以写SqlServerDal,因为我数据访问层接口都已定义好。界面和控件的设计美化总体思路和流程 阅读全文
posted @ 2012-08-03 06:47 木宛哥说编程 阅读(18766) 评论(48) 推荐(50) 编辑
摘要: Lucene.NetLucene.net是Lucene的.net移植版本,是一个开源的全文检索引擎开发包,即它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,是一个Library.你也可以把它理解为一个将索引,搜索功能封装的很好的一套简单易用的API(提供了完整的查询引擎和索引引擎)。利用这套API你可以做很多有关搜索的事情,而且很方便.。开发人员可以基于Lucene.net实现全文检索的功能。注意:Lucene.Net只能对文本信息进行检索。如果不是文本信息,要转换为文本信息,比如要检索Excel文件,就要用NPOI把Excel读取成字符串,然后把字符串扔给Lucene.Net。Lu 阅读全文
posted @ 2012-07-31 06:05 木宛哥说编程 阅读(22836) 评论(106) 推荐(77) 编辑
摘要: 开篇平常开发时,由于冗余代码过多,程序员做重复的工作过多势必会影响开发效率。倘若对重复性代码简单的复制、粘贴,虽然也能节省时间,但也需仔细一步步替换,这无疑也是一件费力的事。这时我们急需代码生成工具,根据一套Template快速生成我们需要的代码。代码生成器原理简单,完全可以开发一套适合自己的代码生成器,一个最简单的代码生成器,有几点你需要关注下:查询系统视图:INFORMATION_SCHEMA.TABLES、INFORMATION_SCHEMA.COLUMNS 可以获得数据库中表、列的相关信息。字符串的拼接:StringBuilder的使用,其AppendLine()自动换行。将字符串写入 阅读全文
posted @ 2012-07-27 00:08 木宛哥说编程 阅读(7416) 评论(27) 推荐(23) 编辑
摘要: 看了博客园里一篇文章《一道腾讯前端试题,谁来试试身手》,正好以前了解过位图法,确实不错。位图法适用于大规模数据,但数据状态又不是很多的情况。通常是用来判断某个数据存不存在,如可标记1为存在,0为不存在。 位图法网上资料比较少,我在百度百科找到了对它的描述位图法比较适合于如下这种情况,它的做法是按照集合中最大元素max创建一个长度为max+1的新数组,然后再次扫描原数,遇到几就给新数组的第几位置上1,如遇到 5就给新数组的第六个元素置1,这样下次再遇到5想置位时发现新数组的第六个元素已经是1了,这说明这次的数据肯定和以前的数据存在着重复。这种给新数组初始化时置零其后置一的做法类似于位图的处理方. 阅读全文
posted @ 2012-07-12 23:02 木宛哥说编程 阅读(4640) 评论(5) 推荐(3) 编辑
摘要: 上一篇博客中《两天完成一个小型工程报价系统》,许多朋友向我讨源码。其实我之后没发了,确实那种三层架构没什么意思,只是我个人的孤芳自赏,很多的处理都不是很成熟。所以我重新架构了一番,以一个小例子来阐述我的架构模式,当然,这和企业级的架构还是差距很大,不过,还是值得一读。不积硅步,无以至江海,只有从小细节慢慢领悟,步步为营,才能设计出优秀的企业级架构。 重构后的架构图:解决方案里项目设计:数据库访问层接口设计:IBaseDaoRepository模式这儿使用了Repository模式,抽象出一个公共的接口IBaseDao,IBaseDao接口中定义了一系列契约(CRUD),不管我的我数据访问用了. 阅读全文
posted @ 2012-07-06 13:19 木宛哥说编程 阅读(18316) 评论(71) 推荐(29) 编辑
摘要: 这篇博文我不讲委托和事件的概念,因为大段的文字概念没有任何意义。具体想了解,委托和事件的概念可以MSDN查阅。我这篇文章的主题思路是委托如何一步步进化成事件:何为委托--->委托来实现事件--->用方法对委托的封装--->Event的add,remove方法的引入--->标准事件写法--->反编译探究竟。用几个例子以及Reflector反编译探究委托和事件的关系。不足之处,还望多多指教...何为委托:首先,委托是一种类型,是一种定义了方法签名的类型。委托可以理解为函数指针(安全),并且委托约束了方法的签名(由返回类型和参数组成),所以实例化委托时,可以将其实例与任 阅读全文
posted @ 2012-07-03 14:01 木宛哥说编程 阅读(6154) 评论(21) 推荐(22) 编辑
上一页 1 ··· 3 4 5 6 7 8 下一页
multifunction lasers
访问人数