摘要:
.Net 3.0 添加了一个语法糖就是扩展方法,其实扩展方法的本质就是对类的静态方法的调用,虽然扩展方法只是改变了我们写代码的方式,但是如果我们使用得当,可以给我们带来巨大的编码效率的提升。对于C#扩展方法的使用,我就不细说了,贴段代码说明扩展方法的使用,大家就会回忆起来。1 public static class Extensions2 {3 public static string EndWith(this string str)4 {5 return str + "@";6 }7 }对于这段非... 阅读全文
摘要:
经过接近半个月的努力,今天我总算完成了博客园找找看功能的大部分实现,说实话,干编程真是费脑细胞啊。我本着不能白干的原则来描述一下我的本地模拟博客园找找看功能的实现。 首先我先说明一下我采用的结构,采用Lucene.net 2.9 作为全文检索的工具,并配合盘古分词进行中文分词。其实我当时是通过NuGet获取到的Lucene.net 3.0 的最新版本,但是和盘古分词一起使用的时候出现了各种问题,无奈之下,只能采用Lucene.net 2.9,如果各位有更好的中文检索方案,可以介绍一下。 网站的结构我就不说了,在前面的博客中我都介绍了,这里的重点就是Lucene.net。我通过这次认识到了一个. 阅读全文
摘要:
说到asp.net MVC,我相信很多开发者都会和我一样,赞扬一番,把我们开发者的开发速度又可以提高,并且可以随意的控制生成的html,这应该是Mvc时代如果到来的话,最可能使它成功的原因了。但是赞扬归赞扬,既然他是一种开发模式,我们必须要学习,而且要好好学习。元旦几天假让我放松了一下,今天正式回归正常,开始我的技术之旅。今天探讨一下Mvc中的分部视图。提到分部视图,我相信大家会想到和web form时代的对应物ascx分部控件,我们在Mvc时代可以更加轻松的控制分部视图。要说明分部视图,我们先来讨论一下分部视图可以带给我们的优点:分部视图可以使系统插件化 。我现在非常推崇一个原则,就是可以. 阅读全文
摘要:
我记得在园子里有园友提出博客园的搜索功能是采用的Lucene.net,具体是不是我也不确定,但是宁可信其是,所以我在仿照博客园 搜索功能的时候采用的也是Lucene.net,有园友给我提意见,就是我以前的博客中提到的那些框架,例如log4net,Quartz.net等都是片面的讲解一个框架结构,只能作为练习用,而不能真正的在项目中使用,具体原因就是在实战中会遇到各种问题,没对应的策略,所以今天我就来把我这个仿照系统的搜索功能的实现简单的描述一下,重点说明的是在项目中使用这些框架应该注意的地方,这样才会更贴切实战,也更有用一些。利用Lucene.net 进行搜索,应该分为三步走战略利用Index 阅读全文
摘要:
说实话,我并不是太想写这篇文章,因为我承诺过要完成博客园的部分功能,所以一直都在积极的利用下班时间来完善这个系统,但是我又不想让看我源代码的朋友不知道我写的代码是什么意思,所以我还是单独写一个文章,叙述一下我对管理日志的看法,当然主要是log4net的使用。为了写这篇文章,我查看了博客园的很多关于log4net的文章,但是结果令我很不满意,因为他们对于log4net的介绍基本上都是大同小异,我不敢说他们写的有错,因为确实就是那么写的,但是为什么我还要写这篇博客呢,因为我想以一个学习者的心态来分析这个框架结构,而不是以一个老师来分析。从一个学习者到老师需要很多的路要走的,他们都省略了学习者入门时 阅读全文
摘要:
这几天感觉我自己比较懒,除了偶尔的写了一点博客以外,对于那个重要的仿照博客园功能的项目我竟然忘记更新了。失误了,天天脑子里的事太多了,有点乱,程序员,伤不起啊。还是不能不谦虚啊,今天继续项目的开发,不做那些费时的工作了,那个等我星期休息的时候再做,今天来做一个异常处理的功能。 众所周知,在asp.net世界中,对于异常的处理就是try catch,当然这个是在方法内部,还有Page_Error 页面级别的错误,application_error 应用程序级别的错误,这几个地方可以用来处理异常信息。一般情况下,我们对于已知的可能出现的错误会直接在try catch中捕获并且处理,但是对于那些我们 阅读全文
摘要:
好几天没有写博客了,突然间有种写博客的冲动,虽然我的技术能力还是在努力的进步,但是和那些大牛比起来,我确实是小菜一枚,不过这并没有打击我的积极性,反而让我有种冲动,去超越他们。哈哈我记得在几天前我说过一个Lucene.net,是从java中借鉴过来的,现在我来说一下Npoi吧,当然这个也是从java借鉴过来的,不过这个语法没有Lucene.net那么恶心,Lucene.net是完全的java版,但是npoi.net最起码有点和.net联系在了一起。好东西都是java的,.net大牛们,你们在干嘛,开发一些优秀的东西吧,别总让java鄙视我们。好了,说说Npoi.net吧,Npoi是对Excel 阅读全文
摘要:
在前一篇博客中使用正则表达式抓取博客园列表数据,我通过正则表达式抓取了博客园的部分数据作为测试数据,现在测试数据也有了,就应该进行数据的分页显示了。但是如何分页这倒是让我犹豫了好几分钟,是自己写javascript来自定义分页显示,还是通过现成的控件来进行分页,通过自定义分页可以完全的对分页进行控制,但是会很耗费时间,这对于js功能很差的我就是个难题,但是为了尽快的能实现这个分页功能,我依然采用了分页控件进行分页,如果以后有机会我再手动写一个分页js来进行分页。因为我使用的是MVC 3 Razor引擎,所以我找了一个我在web form时代使用的aspNetPager同一个作者的MvcPage 阅读全文
摘要:
鉴于我在要完成的asp.net MVC 3 仿照博客园企业系统要用到测试数据,我自己输入太累,所以我就抓取了博客园的部分列表数据,还请dudu不要见怪。在抓取博客园数据的时候采用了正则表达式,所以有不熟悉正则表达式的朋友可以参考相关资料,其实很容易掌握,就是在具体的实例中会花些时间。现在我就来把我抓取博客园数据的过程叙述一下,如果有朋友有更好的意见,欢迎提出来。要使用正则表达式抓取数据,首先就要创建一个正则表达式进行匹配,我推荐使用regulator,这个正则表达式工具,我们可以先使用这个工具把我们要使用的正则表达式拼接出来,然后在程序中使用。我发现博客园的首页列表可以通过http://www 阅读全文
摘要:
在我将要实现的仿照博客园搜索功能的简易网站中,需要用到Lucene.net进行查询,因此我整理了一下我收集的资料。现实世界中包含两种类型的数据:结构化数据和非结构化数据结构化数据很容易进行搜索,比如数据库包含的就是结构化数据,可以利用sql进行查询。但是对于非结构化数据,比如word、txt文件中包含的内容则属于非结构化数据。要对这些数据进行查找,只能采用顺序扫描的方式,但是顺序扫描的方式速度很慢。但是在Lucene的世界中,把所有数据都作为字符串来处理,通过Lucene来进行查找,通常会分成两步,一步就是创建索引,另一步就是查找索引。因为创建好的索引属于结构化数据,所以可以很快的进行查找。并 阅读全文