快速业务通道

使用asp.net mvc再造一个digg 第一部分

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-20

本文译者:第一控制.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

使用asp.net mvc再造一个digg 第一部分

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

使用asp.net mvc再造一个digg 第一部分

用户请求了

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号