文章标签 ‘ASP.NET MVC3’
[转载]好书推荐《Pro ASP.NET MVC 3 Framework 3rd Edition》 – Junfeng Liu – 博客园. 花 了两个多星期的时间,从头到尾看了一遍,看此书如沐甘霖,绝对是一本好书。第4章讲的非常精辟,先介绍了架构模式的演化历史,从Smart UI, Model-View, Three-Tier到MVC;并比较了与Model-View-Presenter和Model-View-View Model的区别。然后介绍了领域驱动(Domain-Driven Development)、依赖注入(Dependency Injection)和单元测试(Unit Testing),再后面的章节中贯彻了这三种思想并用在了实例中。第6章介绍的Nject和Moq工具以前也没用过,再不用的话就会感觉很落后。第11 至20章是本书的核心内容,详细讲解了ASP.NET MVC 3 Framework,尤其是15至19章能学到很多新知识。 以前也感觉MVC好用,但是觉得不够快,不能拖一些控件直接到页面上,看完此书才知道并没有把MVC真正的优势发挥出来,当然VS如果能自带多一些MVC的控件就更好了。 另外关于MongoDB,推荐《MongoDB.in.Action》,这本也看了一大半了。 附:目录 Part 1: Introducing ASP.NET MVC 3 第1部分:ASP.NET MVC 3介绍 Chapter 1: What’s the Big Idea? 第1章:伟大的思想 Chapter 2: Getting Ready 第2章:准备工作 Chapter 3: Your First MVC Application [...]
[转载]【翻译】在没有安装ASP.NET MVC3的服务器上运行ASP.NET MVC3的程序-scottgu – liulun – 博客园. 原文地址: http://weblogs.asp.net/scottgu/archive/2011/01/18/running-an-asp-net-mvc-3-app-on-a-web-server-that-doesn-t-have-asp-net-mvc-3-installed.aspx 为了更符合中文阅读习惯,我对原文做了小幅度修改 最近我们发布了一些新的Web产品 – 包括ASP.NET MVC 3。至今为止,我们已经获得了大量的反馈。 有几个朋友在问我一个问题:“我的网站托管服务提供商目前还不支持ASP.NET MVC 3 – 你知道他们将来什么时候会安装吗?” 好消息是,您不必等他们在Web服务器上安装ASP.NET MVC3。 只要您的网站托管服务提供商支持.NET 4,那么您现在就可以构建和部署ASP.NET MVC3应用程序了 – 不用托管供应商做任何事。 下面的文章介绍如何启用此功能。 一些背景: 我们支持两种方式使您可以使用一台机器上的ASP.NET MVC3组件: 1,在一台机器上,将ASP.NET MVC 3组件安装在一个集中的地方,WEB项目在那里引用这些组件 2,把ASP.NET MVC 3的组件复制到您的Web项目的\bin文件夹下,WEB项目在那里引用这些组件 第一种方法是我们使用Visual Studio中使用的默认方法, 这使得我们可以更容易为ASP.NET MVC 3提供升级服务(当发现BUG的时候)。 第二种方法也是得到了完全支持,没有在服务器上安装ASP.NET MVC3,也可以使用它。 你只要把ASP.NET MVC的组件放在你的WEB程序的bin目录中,然后把整个Web程序拷贝到FTP(WEB服务器)上,它就可以工作了。 如果您的网站托管服务提供商还没有在他们的服务器上安装ASP.NET MVC 3,那么您应该使用第二种方法。 方法1:基于GAC引用ASP.NET MVC组件 当您在计算机上安装ASP.NET MVC 3的时候, 一些组件会自动注册到GAC中(全局程序集缓存)。 [...]
[转载][翻译]ASP.NET MVC 3 开发的20个秘诀(十七)[20 Recipes for Programming MVC 3]:卷帘式分页加载 – O2DS – 博客园. 议题 现在很多网站都与数据库进行交互。如果网站流量很大,使用SQL来检索数据会带来非常大的压力。更重要的是,用户希望在点击链接之后15秒 内得到响应的内容,而在页面加载的时,显示之外滚动条下面的内容可能多数内容都是不必要的(滚动条之外没显示的部分)。为了解决这个问题,采取内容“需求 点播”方式加载。页面首先会加载足够的内容,当用户在阅读并向下滚动的时候,页面会在不影响用户阅读体验的情况下继续加载更多的内容。 解决方案 当用户开始滚动网站内容时,使用JQuery将前期加载的内容具体数值传回异步控制器,然后按需加载相关的内容。 讨论 异步控制器可能是MVC程序集中迄今为止被利用最少的或最不为人所知的控制器,当然也有可能是不知道怎么用它。以下内容是摘抄自MSDN网站的介绍信息: 在 可能出现线程不足的应用程序中,您可以配置通过异步方式处理操作。异步请求与同步请求所需的处理时间相同。例如,如果某个请求生成一个需要两秒钟来完成的 网络调用,则该请求无论是同步执行还是异步执行都需要两秒钟。但是,在异步调用的过程中,服务器在等待第一个请求完成的过程中不会阻塞对其他请求的响应。 因此,当有许多请求调用长时间运行的操作时,异步请求可以防止出现请求排队的情况。 在这个示例中,使用异步请求将是个完美的解决方案,当新用户在发起更为重要的请求时,它将会自动释放IIS资源,因为其中用户的大多数“需求点播”是不太重要的,因为大多数人甚至不会注意到正在加载的额外的内容。 在大多数社交网站中,用户的批注信息更多可能包含的是活动信息。在以前的秘诀中,实现了为书记添加评论的功能。在这个例子中,将会修改页面,列出最近的评论。当用户为了查看更多的评论,他们就会开始滚动,一旦用户开始滚动页面,就发起Ajax请求,请求异步控制器获取剩余部分评论。 首先,修改Home/Index视图,使其显示最近的评论信息。提供书籍最近的相关评论并显示查看书籍基本资料的相关链接。创建新的控制器用来显示评论,这个视图将会调用render方法来显示剩下的信息。 @model IEnumerable<MVCApplication4.Models.BookComment> @{ ViewBag.Title = “Home Page”; } <h2>@ViewBag.Message</h2> <p> To learn more about ASP.NET MVC visit <a href=”http://ASP.NET/mvc” title=”ASP.NET MVC Website”> http://asp.net/mvc </a>. </p> <script type=”text/JavaScript”> [...]
[转载]大叔手记(14):利用Routing特性提高ASP.NET MVC3站点的SEO权重 – 汤姆大叔 – 博客园. 简介 我们在开发互联网程序的时候,有个很重要的事情就是做搜索引擎优化(SEO),我们都知道ASP.NET MVC程序提供了友好的URL以及永久重定向的支持,这些友好的URL是利用Routing系统的特性来支持的,但是在这个Routing里有个问题,就 是多个不同的地址和指向同一个action方法,那对于搜索引擎来说就意味着你的站点有很多地址的内容都是重复的。 本章内容将展示如果解决这一问题。 正文 对于SEO,一个地址对应一个唯一独立的内容是保证最好权重的一个重要步骤,所以我们需要确保每一个URL地址对应的内容都是不重复的(对于MVC 来说也就是不同的Action),但ASP.NET MVC3程序默认是有问题的,比如HomtController.Index这个Action方法就可以被对应到多个地址上,例如: http://abc.com (默认) http://abc.com/ (斜杠结尾) http://abc.com/Home (带有Controller) http://abc.com/Home/Action (带有Controller和Action) http://abc.com/home/Action (不同的情况) 等等 要解决这个问题,一个办法是使用IIE URL Rewrite Extension,但是它配置起来挺复杂的,所以在这里我们来利用MVC自己的特性来解决这一问题(通过注册全局的filter),添加如下class: public class RemoveDuplicateContentAttribute : ActionFilterAttribute { public override void OnActionExecuting(ActionExecutingContext filterContext) { var routes = RouteTable.Routes; var requestContext = filterContext.RequestContext; var routeData = requestContext.RouteData; var [...]
[转载]ASP.NET MVC3关于生成纯静态后如何不再走路由直接访问静态页面 – wxj200589 – 博客园. 问题描述:高访问量类型的电子商务网站,需要将一些不是经常变化的页面生成静态页面,然后普通用户就可以直接访问这些静态页面而不用再访问需要连接数据库的动态页面。那么ASP.NET MVC3中如何做到这一点呢? 要解决这个问题,我们需要先了解ASP.NET应用程序的生命周期,先看下面作者整理的一张图片: 从图中我们可以清楚的看到:通用IIS访问应用程序时,每次的单个页面URL访问时,都会先经过HttpApplication 管线处理请求,走过BeginRequest 事件之后才会去走路由访问具体的Controller和Action,最后结束的时候会请求EndRequest事件。下面用一张图来表示这个顺序: 注意图中标示的红色部分就是我们要实现的部分,实现如下: 1 新建MyHandler.cs public class MyHandler:IHttpModule { public void Init(HttpApplication application) { application.BeginRequest += (new EventHandler(this.Application_BeginRequest)); application.EndRequest += (new EventHandler(this.Application_EndRequest)); } private void Application_BeginRequest(Object source, EventArgs e) { // Create HttpApplication and HttpContext objects to access // request and response properties. HttpApplication application [...]


