使用asp.net mvc再造一个digg 第一部分
本文译者:第一控制.NET 学习怎样使用asp.net mvc, LINQ to SQL and ASP.NET AJAX打造一个digg类型的应用程序。 前言 前面一段时间,我一直试着学习新的ASP.NET MVC framework,我看到了很多这方面的高级话题的讨论,比如ioc容器/依赖注入,View Engine,Controller factory等。但是我找不到一篇简单的文章来展现ASP.NET MVC framework的能量。当然,知道那些高级话题确实有一些额 外的好处,但是他们并不能对你你在ASP.NET MVC Framework开发上有所帮助。在DotNetSlackers team打造的这篇文章里,我将用asp.net mvc 开发一个简单的类似Digg / DotNetKicks类型的程序。你可以在下面的地址里查看这个程序: 【程序演示】 注意:这篇文章和代码都是基于ASP.NET 3.5 Extensions的第一个预览版。每当新的预览出来的时候,我们将相应的更新。 译注:貌似mix08版很快就要出来的样子。 准备 scottgu关于ASP.NET MVC Framework的一套介绍: ASP.NET MVC 框架 简介 ASP.NET MVC 教程 (第一部分) ASP.NET MVC 教程 (第二部分: URL路径选择) ASP.NET MVC 教程 (第三部分: 把ViewData从控制器传到视图) ASP.NET MVC 教程 (第四部分: 处理表单编辑和提交场景) 译注:以上链接全部换为博客堂scottgu博客中文版链接,并比原文增加了第四部分的链接。 Scott Hanselman的一段很酷的视频教程Screencast。 概述 MVC (模式-视图-控制器)是一套开发ui为中心应用程序中很流行的模式。他建立在一个简单的概念上:把整个应用分割成三个逻辑模块 Model,模式 View,视图 Controller.控制器 ASP.NET MVC Framework是mvc模式的一套实现,并且内置了开发web应用的能力。让我们快速浏览一下这三个模块。 图一:MVC Framework Model:是你程序的领域逻辑。通常来说,model的状态会存储在数据库里。在开发一个n层应用程序中,他是介于领域模型和商业逻辑之间的 中间层。 View: 典型的用户界面,他负责把model的数据展示给用户,并且接受用户输入。 Controller:处理用户的动作。他是整个ASP.NET MVC Framework的终极驱动力量。建立在用户动作之上,他决定了使用怎样的方法到model 里取得数据,把这些数据组织成view data并且最终决定使用什么样的View去展示这些数据。 跟web form模型相比,ASP.NET MVC Framework是一套更棒的开发web应用程序的方法。他给我们提供了一下能力: 清晰的分层思路,一个模块专注于处理一类问题。并且在开发过程中给了我们绝佳的TDD (测试驱动开发)体验。在单元测试中我们完全不用 顾及其他模块,因为在framework中绝大多数的模块都是interface-based的所以这就允许我们为他们创建模仿对象。 整个framework都是非常容易扩展的。可以在不影响其他模块的前提下轻松替换或者自定义每一个模块。 Pretty/SEO (搜索引擎优化) URLs. URLs的设置和创建权牢牢的掌握在我们手里。跟URL重写彻底说再见吧。 真正的无状态网页。我们再也不需要处理postbacks和ViewState了。 玩去控制HTML代码产生。这意味着再也没有多余的标签了。 可以利用现有的ASP.NET的一些特性,比如Providers, Caching, Configuration等等。 译注:我主要还是喜欢clean url和clean html。 请求流程 在asp.net web form程序中,URLs经常被映射到物理磁盘上的文件。当请求一个url时,于该文件相关的代码将被执行。但是,在ASP.NET MVC Framework中,URLs在Controllers就结束了,而不是传统的物理文件。Routing Handler把URL映射到Controller。当应用程序启动时,他 需要注册URL筛选规则。当请求来临时,Routing Handler使用这些规则把请求映射到controller。让我们来快速浏览一下在ASP.NET MVC Framework中请求在不同层之间的流转过程: 图二:The Request Flow 用户请求了 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |