2012年10月31日

Asp.Net WebForm 仿MVC ModelBinder功能

摘要: 最近在做新加坡的一个项目,自己做了Tab控件,写了很多共通的东西。包括WebForm仿MVC ModelBinder功能。今天起了个早,写微博跟大家分享下,也请大家提出宝贵的意见。去年学过Asp.Net MVC,里面有个非常有意思的功能,就是ModelBinder。它的表现形式是一方面VS会根据具体的某个Model类型生成相应的页面,另一方面VS也能将页面控件的值自动绑定到后台Model里(本人只知道怎么用,具体的原理说明不是很清楚,哪位博友可以分享这方面的文章)。当时觉得很好、很强大。在我接触的寥寥无几的几个项目中基本上是使用的WebForm模式。最初的做法就是手动的给服务器端控件复制或者将 阅读全文

posted @ 2012-10-31 08:57 Gates.Li 阅读(1731) 评论(5) 推荐(3) 编辑

2012年9月20日

ReportViewer控件功能扩展

摘要: 最近在使用Report Service做报表,客户要求报表要以表格形式和图形形式显示,当时我想直接修改ReportViewer的工具栏。于是上网查了相关资料,发现这样方案不太可能,就算能够动态增加按钮,但是对于后台处理也比较麻烦,从通用性上考虑也不太乐观。后来看到客户端的代码,如下:ReportViewer发到客户端其实就是div加table。突然萌生了一种想法,就是通过js前台动态加按钮,然后回传给服务器处理。实现效果图:前台脚本使用的是jQuery,选择jQuery的原因有两个:一、使用起来简单;二、浏览器兼容性支持的好。为了这段代码通用,开发人员用起来方便,利用了jQuery的($.ex 阅读全文

posted @ 2012-09-20 11:38 Gates.Li 阅读(2393) 评论(3) 推荐(3) 编辑

2012年9月14日

查看SQL Server 数据库实例上运行的进程信息

摘要: 在做数据库管理型系统的时候,新手经常会忘记释放数据库连接池,虽然.net 有GC机制,但是它对于数据库访问对象的释放也无能为力。查看数据库X的进程信息可以运行以下t-sqlselect * frommaster.dbo.sysprocesses where [dbid]in( select [dbid] from master.dbo.sysdatabases where name='EPMS')若要访问sysprocesses,必须位于master数据库上下文中,或者必须使用master.dbo.sysprocessesdbid指当前由进程使用的数据库ID 阅读全文

posted @ 2012-09-14 13:40 Gates.Li 阅读(566) 评论(0) 推荐(0) 编辑

2012年8月29日

策略模式与状态模式

摘要: 在设计模式中有两种模式很相似,它们就是状态模式和策略模式。使用场景状态模式:当对象的行为随对象的状态的改变而改变时,我们为了解耦多重判断条件,封装行为的变化,可以定义一个抽象的状态类,提供对象行为接口。具体与状态相关的行为,由它的子类去实现。策略模式:“策略”二字等同于算法,当现实系统中需要对算法动态指定,并且可以互相替换,可以抽象出算法的调用接口,具体的算法实现由具体的策略角色去实现,根据里氏替换原则,任何出现父类的地方都可以使用它的子类去替换,这样符合我们的业务需求。比较虽然两者都是抽象出父类规范调用接口,具体的行为由子类实现,环境对象同时包含父类的引用,但是这两者模式应用的场景完全不同。 阅读全文

posted @ 2012-08-29 23:22 Gates.Li 阅读(1372) 评论(0) 推荐(1) 编辑

2012年8月24日

建造者模式、组合模式和装饰者模式

摘要: 今天将和大家一起讨论建造者模式、组合模式和装饰者模式。先来讨论建造者模式,字里行间很容易明白这是一种对象创建型模式,一般对象的创建是由本身抽象实例化本身,在这里需要通过另外种角色建造者角色去帮我们创建。这是为什么呢?因为在现实系统中,我们遇到的对象往往是很复杂的对象。该对象由很多子对象组成,并且这些子对象的创建步骤是一样,只是它们的创建细节不一样,我们怎么解决该类问题呢!这就要求我们使用“封装机制”来隔离出“复杂对象的各个部分”的变化,这就是要讨论的建造者模式。结构示意图如下:建造者模式中的角色:指导角色:对象创建的指导者,负责将客户的请求传给建造者,控制建造者怎样创建复杂对象。抽象建造者角色 阅读全文

posted @ 2012-08-24 10:52 Gates.Li 阅读(1421) 评论(0) 推荐(0) 编辑

2012年8月23日

代理模式

摘要: “代理”两字经常听到,在公司里有代理服务器,在我的理解里代理就是个中转站,但是在用户的体验里跟不用代理是一样的。代理模式是为一个对象提供代理对象,代理对象封装了被代理对象的引用。模式设计的角色:抽象主题:代理对象和被代理对象公共的接口。具体主题:被代理对象。代理对象:模式的核心对象,包含了被代理对象的引用,实施对被代理对象的控制。结构示意图: /// <summary> /// 抽象主题角色 /// </summary> public abstract class Subject { /// <summary> /// 模仿登录 ... 阅读全文

posted @ 2012-08-23 00:15 Gates.Li 阅读(216) 评论(0) 推荐(0) 编辑

2012年8月22日

适配器模式

摘要: 当我们要将手机SD卡信息搬到电脑上要通过读卡器或者数据线,在这里读卡器和数据线担当了适配器的角色。适配器模式属于设计模式中的结构模式,作用是将已有的源类适配成我们需要的接口,供新系统使用。适配器模式分成两种模式:类的适配器模式和对象的适配器模式。两者的结构图如下: 对象的适配器模式 类的适配器模式对象的适配器模式与类适配器模式的区别在于实现的时候,对象适配器是通过源委派给适配器角色实现的,而类适配器模式是通过适配器角色继承源对象实现适配的。模式中设计到的角色目标角色:... 阅读全文

posted @ 2012-08-22 09:40 Gates.Li 阅读(478) 评论(1) 推荐(0) 编辑

2012年8月17日

原型模式

摘要: 这段时间在研究设计模式,前几天学习了原型模式,今天跟大家讨论下!原型模式属于创建型模式,它与其他创建型模式不一样的是:它通过复制已有对象来产生新的对象。1 结构图如下: 在这里通过原型管理器去管理新生成的对象,用户不需要关心对象的生成细节。先注册原型类,再通过克隆原型生成具体的对象。与工厂方法模式相比,少了很多与产品平行的工厂方法类。2 Demo设计图 这几天做了一个与原型模式配套的小demo,请大家多多指教! 这个小程序主要核心功能模块:画板、调色板、颜色管理器、颜色原型和具体颜色画笔。3 代码实现画板类实现: 画板根据调色板上选择的颜色,画出相应颜色的线,核心代码用... 阅读全文

posted @ 2012-08-17 10:09 Gates.Li 阅读(422) 评论(6) 推荐(0) 编辑

2012年8月16日

删除没有主键的表中的重复数据

摘要: 在做类erp项目的时候因为代码没处理好导致内外部物料匹配表里面出现了很多重复数据,恰巧那张匹配表没有主键,当时删除数据难住了,后来上网查资料找到了解决方案:1 首先内外部匹配表QuoteOutInMatch结构如下:当时需求是当sys_code,out_name,model,brand,origin.material_id全部一样时删除重复数据只留一条。删除脚本如下:set ROWCOUNT 1 --保证每次数据库只处理一条数据while 1=1begin delete from QuoteOutInMatch where out_name in ( select MAX(o... 阅读全文

posted @ 2012-08-16 09:30 Gates.Li 阅读(562) 评论(0) 推荐(0) 编辑

导航