Fork me on GitHub

2011年4月26日

摘要: 概述 在软件开发系统中,客户程序经常会与复杂系统的内部子系统之间产生耦合,而导致客户程序随着子系统的变化而变化。那么如何简化客户程序与子系统之间的交互接口?如何将复杂系统的内部子系统与客户程序之间的依赖解耦?这就是要说的Façade 模式。重新进行类的设计,将原来分散在源码中的类/结构及方法重新组合,形成新的、统一的接口,供上层应用使用。 Facade所面对的往往是多个类或其它程序单元,通过重新组合各类及程序单元,对外提供统一的接口/界面。 意图为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。[GOF 《设计模式》]示意 阅读全文
posted @ 2011-04-26 09:10 HackerVirus 阅读(182) 评论(0) 推荐(1)

2011年4月25日

摘要: 原文发表地址:VS 2010 SP1 (Beta) and IIS Express原文发表时间:January 03, 2011 10:56 PM上个月我们发布了VS 2010 服务包1(SP1) Beta版。你能从Jason Zander的两篇博文和Scott Hanselman涵盖SP中可用新功能的博文中获取更多相关信息。你可以从这里下载和安装VS2010 SP1 Beta。IIS Express夏初我发表过一篇关于IIS Express的博文。 IIS Express是为开发人员场景进行了优化的IIS 7.5免费版。 我们认为它整合了如今内置在VS中的ASP.NET Web 服务器(ak 阅读全文
posted @ 2011-04-25 18:03 HackerVirus 阅读(567) 评论(0) 推荐(0)
摘要: 最近研究了个全文搜索的,Lucene.net,很有名的开源组件(有Java版本)。其实谈不上研 究,就是以前客户有个需要,要能搜索上传文件(如 word Excel Txt 等等),项目中这些附件都存在一个image字段中的,一直没有办法来搜索,本文就讲一下如何利用Lucene.net对附件做搜索功能,并且利用com 组件来读取office内容。 介绍一下Lucene.net的使用,使用了Lucene.Net.dll2.1 Highlighter.Net.dll 2.0(高亮) Lucene.Net.Analysis.Cn.dll 1.3(划词引擎): 1 添加索引 ///<summar 阅读全文
posted @ 2011-04-25 13:36 HackerVirus 阅读(358) 评论(0) 推荐(0)
摘要: 1、Lucene 的认识提到 Lucene 很多人都知道这个开源的搜索工具,其魅力也是很大的。它让我们对搜索引擎的认识不在那么神秘,也不会在觉得百度和 google 的技术多么的高深没测,其实其原理都是一样的,只是他们要做的更好,走的更远罢了。Lucene 可以对任何的数据做索引和搜索,说这样的话其实不过分,真的就是这样,只要你能处理好这些数据,交给 Lucene 去建立索引它都可以帮你把这些数据给检索出来,是不是很好玩了。真正好玩的地方还在后面呢。2、Lucene 的学习前面已经对 Lucene 有了一些了解,现在我们想象它怎么去搜索这些数据呢,如果知道倒排索引,你就知道了,其实 lucen 阅读全文
posted @ 2011-04-25 09:47 HackerVirus 阅读(204) 评论(0) 推荐(0)

2011年4月24日

摘要: 概述组合模式有时候又叫做部分-整体模式,它使我们树型结构的问题中,模糊了简单元素和复杂元素的概念,客户程序可以向处理简单元素一样来处理复杂元素,从而使得客户程序与复杂元素的内部结构解耦。描述Composite模式的最佳方式莫过于树形图。从抽象类或接口为根节点开始,然后生枝发芽,以形成树枝节点和叶结点。因此,Composite模式通常用来描述部分与整体之间的关系,而通过根节点对该结构的抽象,使得客户端可以将单元素节点与复合元素节点作为相同的对象来看待。意图将对象组合成树形结构以表示“部分-整体”的层次结构。Composite模式使得用户对单个对象和组合对象的使用具有一致性。[GOF 《设计模式》 阅读全文
posted @ 2011-04-24 23:24 HackerVirus 阅读(159) 评论(0) 推荐(0)
摘要: 本文要说明的是如果要在项目中加入NVelocity引擎模板。而且在使用和操作起来更加的方便! NVelocity是一个基于.NET的模板引擎(template engine)。它允许任何人仅仅简单的使用模板语言(template language)来引用由.NET代码定义的对象。至于其他的一些别的NVelocity的的解释、和一些用法这里就不在提及。具体的使用方法:1,定义Velocity辅助类(VelocityHelper.cs)提供下载 当然,这个辅助类需要添加NVelocity.dll的引用。2,aspx页面和Template的结构说明 这个其实是需要根据个人喜好来定!为了更好的能看清自 阅读全文
posted @ 2011-04-24 21:08 HackerVirus 阅读(256) 评论(0) 推荐(0)

2011年4月23日

摘要: 概述在软件系统中,有时候我们会使用继承来扩展对象的功能,但是由于继承为类型引入的静态特质,使得这种扩展方式缺乏灵活性;并且随着子类的增多(扩展功能的增多),各种子类的组合(扩展功能的组合)会导致更多子类的膨胀。如何使“对象功能的扩展”能够根据需要来动态地实现?同时避免“扩展功能的增多”带来的子类膨胀问题?从而使得任何“功能扩展变化”所导致的影响将为最低?这就是本文要讲的Decorator模式。一个场景是我们要为一个对象动态添加新的职责,这个职责并不修改原有的行为,而是在原有行为基础上添加新的功能,就好比装饰工人为一座新居的墙上涂抹上色彩缤纷的颜料一般。意图动态地给一个对象添加一些额外的职责。就 阅读全文
posted @ 2011-04-23 22:05 HackerVirus 阅读(202) 评论(0) 推荐(0)

2011年4月22日

摘要: NVelocity用法 Net版(完全整理) 摘要: 本文采用NVelocity 1.1.1最新版 下载地址http://sourceforge.net/projects/castleproject/files/NVelocity/1.1/CastleNVelocity-1.1.1.zip/download。所有标签功能都经过测试通过。一、NVelocity介绍 1.1 Velocity是 ...本文采用NVelocity 1.1.1最新版 下载地址<http://sourceforge.net/projects/castleproject/files/NVelocity/1.1/Cas 阅读全文
posted @ 2011-04-22 17:52 HackerVirus 阅读(726) 评论(0) 推荐(0)
摘要: 本文短址:http://s8.hk/2e0在ASP.NET MVC的一个开源项目MvcContrib中,为我们提供了几个视图引擎,例如NVelocity, Brail, NHaml, XSLT。那么如果我们想在ASP.NET MVC中实现我们自己的一个视图引擎,我们应该要怎么做呢?我们知道呈现视图是在Controller中通过传递视图名和数据到RenderView()方法来实现的。好,我们就从这里下手。我们查看一下ASP.NET MVC的源代码,看看RenderView()这个方法是如何实现的:protected virtual void RenderView(string viewName, 阅读全文
posted @ 2011-04-22 13:54 HackerVirus 阅读(358) 评论(0) 推荐(0)
摘要: 在我的这篇博文中,有这么一段话:“我一直在想,有没有办法可以单独限制View中的代码的访问权限,类似于trust level,只是这个trust level是用来限制模板中的代码。”。有读者johngeng问,为什么要用trust level来锁住view,他不是很理解。我的本意是,希望在view中,开发人员只能写某一些特定功能的代码,调用某一些特定开放的API,对于大部分安全级比较高的代码,比如读写文件等API或类库,不允许在view当中使用。这对于我们将模板开放出来,在线提供给我们的用户去修改的需求下是非常重要的。而目前,不管WebForm还是Razor,都是非常自由的模板,在View能做 阅读全文
posted @ 2011-04-22 11:51 HackerVirus 阅读(228) 评论(0) 推荐(0)