MVC架构已深得人心,微软也不甘落后,推出了Asp.net MVC。小编特意整理博客园乃至整个网络最具价值的MVC技术原创文章,为想要学习ASP.NET MVC技术的学习者提供一个整合学习入口。本文从Why,What,How三个角度整理MVC 的学习资源,让学习者第一时间找到最有价值的文章,获取最彻底的ASp.NET MVC 框架知识,Let’s go!
1. Why :为什么需要ASP.NET MVC
本章主要为大家汇总了为什么学习Asp.net MVC替代WebForms,产生ASP.NET MVC 的需求是什么,只有更好的理解了为什么需要MVC,出于什么目的开发的MVC 框架,用MVC 框架来弥补什么或是提升什么,才能利用其开发出最高效最满意的Web系统。
说明:本文摘自InfoQ,是作者 Jonathan Allen 2007年发布的一篇的文章,首先描述了 WebForms的优缺点,由此引出MVC框架出现集成了WebForm的优点,弥补其缺点等。
说明:本文摘自InfoQ,是作者Jon Arild Tørresdal于2009年发布的文章,从“不推荐学习”到“所有ASP.NET开发人员都应该学习”,各种不同的观点层出不穷。这篇文章列举了使用MVC框架的就、理由。
说明:本文主要讨论了为什么微软如此热衷于丢弃传统的APS.NET Webform而转向ASP.NET MVC,从六个方面列举了为什么MVC会更好一些。
说明: 本文主要区别了ASP.NET MVC与WebForm,通过对比可解决困惑。
2. What :ASP.NET MVC 框架介绍
在学习ASP.NET MVC 之前 这篇文章主要介绍ASP.NET MVC 的基础知识,帮助你了解ASP.NET MVC的轮廓。
ASP.NET MVC 概述 是MSDN的ASP.NET MVC的官方说明文档,因此是学习MVC框架首要了解的内容,没有比官网更权威的说明式文章了。
以下系列文章分别详解了MVC框架的三部分,因此能够帮助初学者深入了解MVC框架
Asp.Net MVC(创建一个任务列表应用程序) - Part.1
Asp.Net MVC(理解模型、视图和控制器) - Part.2
ASP.NET MVC中使用View Model分离领域模型
3. How: 如何使用Asp.net MVC 框架进行开发, Asp.net MVC 入门教程及实例开发
七天学会ASP.NET MVC 5系列教程,该系列入门教程由浅至深,介绍了MVC5的使用,涉及了一些安全方面的功能(授权认证,角色管理,异常处理)。
七天学会ASP.NET MVC (六)——线程问题、异常处理、自定义URL
七天学会ASP.NET MVC (五)——Layout页面使用和用户角色管理
七天学会ASP.NET MVC (三)——ASP.Net MVC 数据处理
七天学会ASP.NET MVC (二)——ASP.NET MVC 数据传递
七天学会ASP.NET MVC (一)——深入理解ASP.NET MVC
ASP.NET MVC 5 系列教程,该系列教程,从一个web网站示例开始讲解,全文最终完成了一个管理影片的小系统,非常适合新手入门ASP.NET MVC 5 (新增、删除、查询、更新) ,并由此开始开发工作。
ASP.NET MVC 5– 使用Wijmo MVC 5模板1分钟创建应用
ASP.NET MVC 5 - 查询Details和Delete方法
ASP.NET MVC 5 - 验证编辑方法(Edit method)和编辑视图(Edit view)
ASP.NET MVC 5 - 创建连接字符串(Connection String)并使用SQL Server LocalDB
Asp.net MVC4入门教程 :为您讲解使用微软的Visual Studio Express 2012或Visual Web Developer 2010 Express Service Pack 1 来建立一个ASP.NET MVC4 Web应用程序所需要的基础知识。
Asp.Net MVC4入门指南(9):查询详细信息和删除记录
Asp.Net MVC4入门指南(8):给数据模型添加校验器
Asp.Net MVC4入门指南(7):给电影表和模型添加新字段
Asp.Net MVC4入门指南(6):验证编辑方法和编辑视图
Asp.Net MVC4入门指南(5):从控制器访问数据模型
ASP.NET MVC 小牛之路系列文章是博客园中比较经典的MVC 框架学习文章,总共18+3讲,后3讲主要讲解MVC中一些高级知识点和最新技术,目前博文还在更新中。
[ASP.NET MVC 小牛之路]01 - 理解MVC模式
[ASP.NET MVC 小牛之路]02 - C#知识点提要
[ASP.NET MVC 小牛之路]03 - Razor语法
[ASP.NET MVC 小牛之路]04 - 依赖注入(DI)和Ninject
[ASP.NET MVC 小牛之路]05 - 使用 Ninject
[ASP.NET MVC 小牛之路]06 - 使用 Entity Framework
[ASP.NET MVC 小牛之路]07 - URL Routing
[ASP.NET MVC 小牛之路]08 - Area 使用
[ASP.NET MVC 小牛之路]09 - Controller 和 Action (1)
[ASP.NET MVC 小牛之路]10 - Controller 和 Action (2)
[ASP.NET MVC 小牛之路]12 - Section、Partial View 和 Child Action
[ASP.NET MVC 小牛之路]13 - Helper Method
[ASP.NET MVC 小牛之路]14 - Unobtrusive Ajax
[ASP.NET MVC 小牛之路]15 - Model Binding
[ASP.NET MVC 小牛之路]16 - Model 验证
[ASP.NET MVC 小牛之路]17 - 捆绑(Bundle)
[ASP.NET MVC 小牛之路]18 - Web API
[ASP.NET MVC 大牛之路]02 - C#高级知识点概要(1) - 委托和事件
[ASP.NET MVC 大牛之路]03 - C#高级知识点概要(2) - 线程和并发
无废话MVC 入门教程:MVC入门教程,写的很基础,简单易懂,够入门了。
ASP.NET MVC 入门系列教程,一个居于ASP.NET MVC Beta的系列入门文章
ASP.NET MVC 入门2、项目的目录结构与核心的DLL
ASP.NET MVC 入门4、Controller与Action
ASP.NET MVC 入门7、Hellper与数据的提交与绑定
ASP.NET MVC 入门8、ModelState与数据验证
ASP.NET MVC 入门9、Action Filter 与 内置的Filter实现(介绍)
ASP.NET MVC 入门10、Action Filter 与 内置的Filter实现(实例-防盗链)
使用ASP.NET MVC 开发实例开发教程,原文内容出自微软的 MusicStore。该系列文章从以音乐商店系统为例,从基础知识开始,逐步深入介绍,因此,初学者有很好的学习体验。示例程序使用 ASP.NET MVC3 完成,视图部分使用 Razor 引擎,数据库访问使用 EF CodeFirst。
ASP.NET MVC 音乐商店 - 5. 通过支架创建编辑表单
ASP.NET MVC 音乐商店 - 5 通过支架创建编辑表单 续
ASP.NET MVC 音乐商店 - 6. 使用 DataAnnotations 进行模型验证
ASP.NET MVC 音乐商店 - 8. 使用 Ajax 更新的购物车
ASP.NET MVC 音乐商店 - 10. 完成导航和站点的设计
这一系列的博客比较早,是ASP.NET MVC 1.0的学习,如需了解一些基本的,原始知识,可从这系列博客中获取
从零开始学习 ASP.NET MVC 1.0 (五) ViewEngine 深入解析与应用实例
从零开始学习 ASP.NET MVC 1.0 (四) View/Model 全解
从零开始学习 ASP.NET MVC 1.0 (三) Controller/Action 深入解析与应用实例
从零开始学习 ASP.NET MVC 1.0 (二) 识别URL的Routing组件
从零开始学习ASP.NET MVC 1.0 (一) 开天辟地入门篇
4. 使用ASP.NET MVC 解决高级问题
本系列文章讲解了ASP.NET MVC中视图片断缓存方式,视图片断缓存非常重要,因为它缓存的也是页面内容,这表示它比更低级别的缓存更有效率,也比静态页等整页内容缓存的适用面要大得多。
适合ASP.NET MVC的视图片断缓存方式(中):更实用的API
适合ASP.NET MVC的视图片断缓存方式(下):页面输出原则
由于早期的MVC 框架缺少异步Action功能,因此博主自行编写了扩展:完整,方便,并且非常轻巧——核心逻辑代码只有200行左右,确保了扩展的稳定,高效并且拥有较好的向后兼容性。
其他高级功能
使用Model Binder绑定Action参数字段时的取舍问题
在ASP.NET MVC中使用IIS级别的URL Rewrite
英文学习资源
其他
5. 选择工具提升效率
工欲善其事,必先利其器,葡萄城的 ComponentOne Studio ASP.NET MVC 是针对MVC平台的控件包。它与Visual Studio无缝集成,完全与MVC6和ASP.NET 5.0兼容。将大幅提高效率,能提供从桌面到移动设备的体验,不用任何妥协就能创建触控优先的现代化解决方案。
它包含的控件涉及表格及数据管理、数据可视化、日程安排、输入和编辑、导航和布局、报表和文档、系统提升工具等几个方面。其中的常用控件包括表格、图表、仪表盘、子弹图、金融图表、报表、日历、输入控件等。
它具有移动优先的特点。不用损耗性能就能提供桌面到移动设备的体验。您的用户会爱上它的轻便性,您也会喜欢其内嵌的触控支持。它与Visual Studio集成是无缝的,您可以从安装开始一步步入门。ComponentOne Studio包括了项目和编辑器模板,同时IntelliSense和微软最新framework的支持将大幅提高效率。如果您想迅速了解它,请运行在线演示。
6. 推荐学习ASP.NET MVC 书籍
Apress 社的 《Pro ASP .NET MVC 4》,中文译本叫做《精通ASP.NET MVC4》,1-5章是ASP.NET MVC的基础知识,第6章介绍了单元测试与Moq,7-11一个具体的练习,12-26高级知识。
《ASP.NET MVC 4 Web编程》.NET开发者学习MVC的必备圣典!
《ASP.NET MVC 4框架揭秘(微软6任MVP,高级软件顾问蒋金楠新作)》
id="iframe_0.17336173496345442" src="data:text/html;charset=utf8,%3Cimg%20id=%22img%22%20src=%22http://images.china-pub.com/ebook3020001-3025000/3021513/zcover.jpg?2013-1-25%252011:17:07&_=0.10618304864608619%22%20style=%22border:none;max-width:711px%22%3E%3Cscript%3Ewindow.onload%20=%20function%20()%20%7Bvar%20img%20=%20document.getElementById('img');%20window.parent.postMessage(%7BiframeId:'iframe_0.17336173496345442',width:img.width,height:img.height%7D,%20'http://www.cnblogs.com');%7D%3C/script%3E" frameborder="0" scrolling="no" style="margin: 0px; padding: 0px; border-style: none; border-width: initial; width: 148px; height: 200px;">
《ASP.NET MVC 3高级编程》(Microsoft 内部编写,创建数据驱动型动态Web程序的最新框架)
本书由Microsoft公司内部团队编写,深入阐述了如何利用ASP.NET MCV 3的新特性及其激动人心的功能。本书首先简单介绍了ASP.NET MVC框架,然后一步步地向您展示如何安装和创建ASP.NET MVC项目。
id="iframe_0.31632986204037006" src="data:text/html;charset=utf8,%3Cimg%20id=%22img%22%20src=%22http://images.china-pub.com/ebook3660001-3665000/3661033/zcover.jpg?2012-12-19%252017:10:17&_=0.22971839918116443%22%20style=%22border:none;max-width:711px%22%3E%3Cscript%3Ewindow.onload%20=%20function%20()%20%7Bvar%20img%20=%20document.getElementById('img');%20window.parent.postMessage(%7BiframeId:'iframe_0.31632986204037006',width:img.width,height:img.height%7D,%20'http://www.cnblogs.com');%7D%3C/script%3E" frameborder="0" scrolling="no" style="margin: 0px; padding: 0px; border-style: none; border-width: initial; width: 140px; height: 200px;">
《ASP.NET MVC实战》
mvc作为一种流行的应用程序开发框架已经存在多年。现在,microsoft公司也加入了这个社区,asp.net mvc框架为应用程序开发人员提供利用成熟开发模式,开发易于理解、易于测试和易于维护的应用程序的新利器。
id="iframe_0.2344526131111515" src="data:text/html;charset=utf8,%3Cimg%20id=%22img%22%20src=%22http://images.china-pub.com/ebook50001-55000/54187/zcover.jpg?2012-9-4%252015:18:17&_=0.9184640054676911%22%20style=%22border:none;max-width:711px%22%3E%3Cscript%3Ewindow.onload%20=%20function%20()%20%7Bvar%20img%20=%20document.getElementById('img');%20window.parent.postMessage(%7BiframeId:'iframe_0.2344526131111515',width:img.width,height:img.height%7D,%20'http://www.cnblogs.com');%7D%3C/script%3E" frameborder="0" scrolling="no" style="margin: 0px; padding: 0px; border-style: none; border-width: initial; width: 159px; height: 200px;">
主要分成3篇。基础观念篇介绍了开发人员在学习asp.net mvc之前需要了解的技术和观念,以及mvc架构的基础知识。
id="iframe_0.74393545906565" src="data:text/html;charset=utf8,%3Cimg%20id=%22img%22%20src=%22http://images.china-pub.com/ebook195001-200000/197768/zcover.jpg?2012-12-21%252014:48:36&_=0.3313376002359414%22%20style=%22border:none;max-width:711px%22%3E%3Cscript%3Ewindow.onload%20=%20function%20()%20%7Bvar%20img%20=%20document.getElementById('img');%20window.parent.postMessage(%7BiframeId:'iframe_0.74393545906565',width:img.width,height:img.height%7D,%20'http://www.cnblogs.com');%7D%3C/script%3E" frameborder="0" scrolling="no" style="margin: 0px; padding: 0px; border-style: none; border-width: initial; width: 143px; height: 200px;">
本书由asp.net小组成员编写,scott guthrie首先提供了一个说明如何构建应用程序的完整演示,然后深入介绍mvc的基本概念和历史,并快速过渡到讨论asp.net mvc模式如何实现这些概念。
id="iframe_0.0421543363184429" src="data:text/html;charset=utf8,%3Cimg%20id=%22img%22%20src=%22http://images.china-pub.com/ebook50001-55000/50744/zcover.jpg?2012-12-19%252017:07:07&_=0.42945780332083405%22%20style=%22border:none;max-width:711px%22%3E%3Cscript%3Ewindow.onload%20=%20function%20()%20%7Bvar%20img%20=%20document.getElementById('img');%20window.parent.postMessage(%7BiframeId:'iframe_0.0421543363184429',width:img.width,height:img.height%7D,%20'http://www.cnblogs.com');%7D%3C/script%3E" frameborder="0" scrolling="no" style="margin: 0px; padding: 0px; border-style: none; border-width: initial; width: 141px; height: 200px;">