随笔分类 - Asp.Net MVC 3
Asp.net MVC 3 Razor 确实是一个优秀的值得学习的好框架
摘要:今天有园友问我一个问题,问题的大致意思就是新建了一个项目,在vs中调试都可以正常,但是在iis访问就会出现各种问题。我个人认为这个问题都很容易解决,因为园友和我离的挺远,只能通过QQ视频来操作,但是我发现这种方式的沟通确实不太方便。索性把这些问题整理一下,这样更容易的可以处理方法说明清楚。因为我目前的项目没有这个问题存在,所以我只能是新建一个简单的项目,然后在本地操作,尽量让这个问题出现,也因为我从来没有整理过这方面额问题,现在整理一下,然后再把我遇到的一些问题整理一下,说明一下如何解决这类问题。如果你还有一些问题出现,但是我现在没有想到,那么请你给我留言,我来把这些问题再做整理。首先说第一个
阅读全文
摘要:最近看了几篇讲述httpHandler和HttpModuler的文章,总的来说还是Fish li的那篇文章给力,但是他是大牛,他写出来的文章技术含量太高,对于像我这样的小兵,要完全看懂估计需要看几遍。虽然说没有完全了解底层操作,但是我也算明白了一个请求从进入IIS到最后输出都经历了哪些过程。说实话,原来我以为.Net的类的子类都是设计者自己设计的,没有考虑到真正的程序员是否可以完全掌握。了解了底层操作,我发现我的那个观点是多么的无知,每个.Net的类都是对应现实中的一种对象,比如说Mvc3 中的路由就包括RouteData和HttpContext,至于为什么要这样包含?只有了解了iis的触发过
阅读全文
摘要:.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来进行查找,通常会分成两步,一步就是创建索引,另一步就是查找索引。因为创建好的索引属于结构化数据,所以可以很快的进行查找。并
阅读全文
摘要:Ioc(Inversion of Control)或者叫依赖注入DI(Dependency Injection) 如果一个接口有两个实现类,但是在实现过程中,用到了这两个具体的实现类。 如果采用IOC,则只能是注册一个接口类型,那么如何确保IOC在合适的时候传入不同类的实例?这是我突然间想到的一个问题,希望园友们可以帮忙解答一下! 所谓IOC(控制反转)或者说是依赖注入,就是将你设计好的类交给系统去控制,而不是在你的类内部控制,控制权发生了变化,就称为控制反转。 IOC的使用时机就是在一个接口有多个实现类的情况下,并且还可能存在扩展这个接口的可能性的情况下使用我个人觉得是最好的。 我们...
阅读全文
摘要:本来我打算采用ajax提交请求,异步的请求获取数据,但是我发现如果这样的话就会拖慢开发的进度,拖长时间。所以在这篇博客中仿照首页的列表设计其实和左侧列表网站分类采用了同样的方式,通过局部视图的方式呈现。我在显示的时候采用了htmlHelper的RenderAction方法,至于我为什么特别喜欢用这个方法来组件一个页面?我的回答可能就是个人喜好,毕竟我看的Mvc书籍中也没有说必须采用哪种方法,或者哪种方法更好,但是我记得在哪个博客中看到过html.Action和html.RenderAction的性能差异?RenderAction的性能会好那么一点点?只是一点点。所以我记住了这个方法,如果没有特
阅读全文
摘要:可以说,在未来几年中,Web form的使用会逐渐减少,而取而代之的就是MVC。可能你不会同意我的观点,那么我就试着阐述一下我的观点,如果你还是不能接受,那么请你反驳我。学习一个新语言或者是新架构是需要时间的,我们需要摒弃原来学习的很深入并且用的很熟练的架构来迎合新架构嘛?是的,如果让我说,我的回答是否,但是我需要看清这个新架构究竟和原来的架构有哪些改进,是否真的需要我们投入大量的时间去学习?Mvc 是一种架构模式,它带来了全新的和asp时代同样的开发体验(注:我不是说这是倒退)。下面我就来阐述一下对于Web form,MVC是否值得我们去学习。1.View State相信大家对于这个视图状态
阅读全文
摘要:在前一篇文章Asp.net MVC 3 开发企业网站系统仿照博客园部分功能--总体设计中介绍了数据库的总体设计,现在呢我们就来实现博客园的左侧网站分类效果实现。当然因为我的前端功底实在不敢恭维,所以我采用博客园的CSS和JS脚本,这样我们可以提高网站的实现速度,而不用为了前端的显示界面调整浪费时间(注:前端很重要)。下面我就来说明我的这个分类的实现方式,如果您有更好的建议,欢迎您提出来!在具体说明实现之前,我要说明一下这个网站系统我采用的架构或者说目录实现方式(通过QQ截图显示):现在我来说一下我这么设计结构的原因:1.IDBServices:这个是访问数据库以及对数据库进行操作的接口。2.I
阅读全文
摘要:在使用Asp.net MVC3 开发企业网站系统的提议得到了广大园友的热情鼓励,也使我更加有信心和决心把这个简单的系统完成的希望。前两篇索引:Asp.net MVC 3 开发一个简单的企业网站系统 Asp.net MVC 3 开发简单的企业系统开篇--数据库麻雀虽小,五脏俱全。做一个小的企业网站我们也不能例外,上篇我们说了做这个网站应该具有的数据库设计阶段。按照工程理论来说,我们应该进行的就是总体设计了。好吧,废话不多说,咱们一起来讨论一下这个简单网站的总体设计应该如何进行。首先,我们确定具体的功能以及采用的实现接口。1.登录、用户注册。说实话,在 企业网站中一般不需要用户的注册,但是因为我.
阅读全文
摘要:本来准备自己做一个单独的系统(Asp.net MVC 3 开发一个简单的企业网站系统)玩一玩,没想到引来了大家的关注,令我非常激动啊,在这里非常感谢支持鼓励我的朋友们、园友们,谢谢您们。虽然是要做一个简单的网站系统来练习一个主流的框架的使用,好让我自己更加熟悉自己的缺陷,看到大家的热情。我作出了一个重大的决定,咱模仿一下博客园吧。虽然说肯定没有博客园做的那么好(有人要鄙视我了,这是必须的)。我之所以选择博客园,是因为博客园的功能大家都明白,这样大家就可以指出我开发中的不足之处。好吧,光说不练假把戏,今天就开始我们的开发之旅把。首先就是要设计数据库了,因为博客园的功能实在是太多,凭我个人之力要想
阅读全文
摘要:最近我想把我学过的一些东西进行一下整合,来验证我最近学习的效果,所以我决定做一个简单的可以实现基本功能的Asp.net MVC 3 的企业网站系统,因为我的美术功底比较差,所以界面做出来可能会很丑陋。现在我列一下可能会用到的技术以及可能采取的方式:如果有需要,还会继续添加首先就是Asp.net MVC 3框架,这时我研究了很长时间的一个框架结构。Jquery ,这时开发交互体验的前提条件就是要引入这个包装的很好的js库AutoFac,这是一个具有高效率的依赖注入(IOC)框架,很简单但是很有效的依赖注入框架Entity framework 或者是Nhibernate 框架,Orm框架结构,实现
阅读全文
摘要:Asp.net MVC routing是一个独立于FrameWork的独立组件。Introduce to Routing :Routing within the Asp.net MVC framework serves two main purposes:It matches incoming requests that would not otherwise match a file on the file system and maps the request to a controller action. Url会匹配输入的请求但是并不是匹配文件系统上的某一个文件,而是映射到某一个Con
阅读全文