ASP.NET MVC 的必备知识

Posted

技术标签:

【中文标题】ASP.NET MVC 的必备知识【英文标题】:Prerequisite knowledge for ASP.NET MVC 【发布时间】:2010-10-19 14:49:46 【问题描述】:

在尝试学习 ASP.NET 的奥秘感到沮丧之后,我决定尝试 ASP.NET MVC。

我在 C# 2.0 方面拥有丰富的经验,除了 ASP.NET 之外,我几乎可以做所有事情(WinForms、Windows 服务、远程处理……)。我编写 php 的时间比编写 .NET 的时间还要长。有了所有这些经验,我认为我已经为 ASP.NET MVC 做好了准备。我现在看到我正在同时学习以下内容并且有点困难:

一般的 MVC 模式 ASP.NET ASP.NET MVC .NET 3.5.

我目前大约完成了NerdDinner 免费图书章节的 1/2。我并没有完全迷失,但我确实觉得我没有像我想的那样追赶(因为我一次学习了 4 件事——有时不清楚哪个技能来自哪个抽象层)。

对于 ASP.NET MVC,您会推荐哪些必备知识?我上面列出的任何/所有?其他的?或者也许我只是很慢,大多数人会很好地做我所做的。

【问题讨论】:

这是一个非常好的问题,大多数 ASP.net MVC 中的 kickstarter 都有。 【参考方案1】:

我成为 ASP.Net 开发人员仅 3 年。我从朋友那里得到了一个项目,并决定使用 ASP.Net MVC 来开发它来学习这些新东西。 我必须承认我一开始也感到迷茫,但后来我在 ASP.Net/MVC 网站上看到了一些非常有趣的文章。底部是 7 次迭代,它可以让您非常详细地了解您正在做的事情。

我使用了他们在那里的 Products 示例,并将 sortof 应用于我自己的项目。 经过所有的迭代,我现在觉得我有一个很好的基础来开始学习更高级的 MVC 实现。 (JQuery 插件/Ajax/...)

http://www.asp.net/learn/mvc/

我认为对 ASP.Net 有一些基本的了解是基本要求。如果你有这个,你应该能够通过一点点动力来度过这个难关。

【讨论】:

【参考方案2】:

“一般的 MVC 模式” - 不需要但很有用。 ASP.NET - 也没有必要。

.NET 3.5 - 是的。它将成为你的工作工具,你应该掌握它。

了解多层架构非常有用,因为此时您必须首先考虑如何组织应用程序,而不是直接使用 WebForms 中的控件进行黑客攻击。

你也不会回避 html/CSS 的知识,也许是 javascript

不要害怕。一步一步做,你就会得到它。只是不要读太多。练习一下。

这里有很多非常有用的教程:ASP.NET MVC Tutorials

还可以阅读来自 ASP.NET MVC“父母”的博客:

http://haacked.com

http://weblogs.asp.net/scottgu/default.aspx

http://www.hanselman.com/

http://stephenwalther.com/blog/Default.aspx

【讨论】:

【参考方案3】:

我有类似的背景。我从一开始就使用.Net/C#,但所有系统相关,没有网络经验。大约 8 个月前,我决定要学习 Web,并认为 ASP.NET MVC 对我来说似乎是正确的选择。我不觉得我缺乏 ASP.NET 经验是一个太大的障碍。我使用http://www.asp.net/mvc/ 站点作为我的学习中心。所有的视频都很好,还有教程和所有示例项目。我已经下载了其中的大部分并且已经足够熟悉,以至于当我无法弄清楚某些东西时,我会去下载一个具有类似要求的项目并查看它是如何编码的。由于不懂网络技术,我还订购了有关 HTML、CSS、JAVA 脚本、AJAX 和 Jquery 的书籍。对我来说,最好的学习方式是开发一个项目,让它成为我所做的。新 MVC 书籍的大多数作者也拥有包含大量有用信息的博客。当我开始学习 MVC 时,MVC 书籍还没有出版,但我相信现在已经有一些不错的书籍,或者即将面世。

我很享受新的体验并学到了很多东西,我认为新技术很棒。祝你好运!

【讨论】:

【参考方案4】:

我建议购买一本关于 ASP.NET MVC 的书,并通过书中的示例进行操作。不要太担心 MVC 设计模式的历史,或者它 1979 年起源于 Xerox PARC。我不会费心阅读更多关于实际 MVC 模式的内容,而不是 MSDN 上的这篇简单文章:Cutting Edge: ASP.NET Presentation Patterns

我最近完成了 Steve Sanderson 的 Pro ASP.NET MVC 框架,我可以推荐它。它有一个多章示例应用程序,可让您快速开始使用 ASP.NET MVC,然后是 10 个左右的后续章节,深入涵盖相关主题(控制器、视图、安全性等)。本书重点关注单元测试和依赖注入,还涵盖了使用 LINQ to SQL 的基本对象关系映射。还有一些章节介绍了 jQuery 与 ASP.NET MVC 的集成,以及如何利用传统 WebForms 应用程序中的框架组件(授权、成员资格、角色、个性化、缓存等)。

Steve's Blog 有很多正面评价,这也是获取更多 ASP.NET 信息的良好来源。 Amazon.com 的书上有几个positive reviews(我需要空闲时添加我的)。您也可以在 Google 图书上preview some of the book。


现在或即将推出的其他一些书籍是:

Wrox: Beginning ASP.NET MVC 1.0 --- 作者 Keyvan Nayyeri 和 Simone Chiaretta 都是活跃的 ASP.NET MVC 博主。有一个关于测试的示例章节供下载here。我听说它应该在 2009 年 6 月末上市?

Manning: ASP.NET MVC in Action --- 这本书的作者是Ben Scheirman、Jeffrey Palermo 和Jimmy Bogard。他们都有涵盖 ASP.NET MVC 相关主题的有趣博客。如果我没听错的话,这本书应该会在 2009 年 8 月出版。您可以预订这本书(MEAP = Manning Early Access Program)here 并可以访问前 11 章(我认为未经编辑或编辑松散)。补充本书的CodeCampServer 参考应用程序非常强大,涵盖了使用 nHibernate (ORM)、Castle Windsor (DI / IoC)、DDD、单元、集成和回归测试。

Wrox: Professional ASP.NET MVC 1.0 --- 这是不久前发布的NerdDinner 示例应用程序和阅读器随附的书。它由一些非常聪明的 Microsoft 人员撰写:Rob Conery、Scott Guthrie、Scott Hanselmann 和 Phil Haaaaaaaaaaaaack,他们掌握了有关为什么使用该框架做出某些决定的内部信息。现已上市。

Packt: ASP.NET MVC 1.0 Quickly --- 作者Maarten Balliauw 有一个相当不错的博客,讨论了包括testing 在内的各种ASP.NET MVC 问题。现已上市。

Sams: ASP.NET MVC Framework Unleashed --- 作者 Stephen Walther 从 ASP.NET 的早期 1.0 时代开始负责许多流行的 ASP.NET Unleashed 书籍,现在他正在写一本关于 ASP.NET MVC 的书。您可以查看他的 blog 以获取即将出版的书籍和其他 ASP.NET MVC 相关帖子中的示例内容。 Amazon 说这本书将于 2009 年 7 月上市。

Wrox: ASP.NET MVC Website Programming Problem Design Solution --- 这似乎是本书Wrox: ASP.NET 2.0 Website Programming: Problem Design Solution 的后续,欢迎作者Marco Bellinaso 回归,并向项目Nick Berardi 和Al Katawazi 介绍两位新作者。本书的示例应用程序是Beerhouse CMS,可在 CodePlex 上下载。该书的网站称将于 2009 年 6 月发行。

【讨论】:

【参考方案5】:

我认为一旦有人想到 MVC 使用路由将请求直接定向到类(使用模型进行连接和视图进行显示)而不是显示“实际”页面,MVC 的概念在Web 应用程序确实更清晰地呈现自己。消除“概念困难”后,考虑这些属性并决定 MVC 是否适合特定应用程序会容易得多。

编辑——话虽如此,如果我是 ASP.NET 的新手,我可能会先处理表单版本,并在进入 MVC(因为 ASP.NET)之前对该系统的事件、回发和方法有一个很好的理解。 NET MVC 确实是在该系统之上处理的。

编辑 2 - 我想我在完成编辑之前被否决了 :-(

【讨论】:

【参考方案6】:

这是来自 Martin Fowler 的好 introduction。他详细讨论了 GUI 架构。

开始阅读有关以下主题的一些材料,它们将真正帮助您适应任何 MVC。以下是一些您可以在线查找的主题:

路由。 MVC 模式。 控制器和操作。 映射参数。 操作结果。 错误处理。 动作过滤。 将数据传递给视图。 HTML 助手。 视图呈现可扩展性。 在 ASP.NET MVC 中使用 jQuery。 视图、控制器和模型的最佳实践技巧。 MVC 反模式。

【讨论】:

【参考方案7】:

如果您还不了解 Webforms,那么现在就坚持只学习 MVC,这样您就不会迷惑自己。 Webforms 是一个有用的知识,既然你已经知道 Winforms,那么以后学习它应该不会太难。

MVC 和 Webforms 都在 ASP.NET 下工作,因此您在使用 MVC 时学到的很多东西都将适用于 Webforms。

【讨论】:

【参考方案8】:

从不同的角度了解 Asp.Net MVC 可能会有所帮助:阅读 Agile Web Development With Rails 一书,跟随(使用 Rails 实现),并尝试实现类似范围的项目到 ASP.Net MVC 中那本书的内容。

你会很快学会 Rails(每晚大约花几个小时的一两个星期),并且对 Rails 约定的解释将引导你进入与 Asp.Net MVC 相当接近的思维模式大大地。它可能会帮助您了解 MVC 的动机,并且您肯定会对 Asp.net MVC 中的“应该”如何工作有意见。

【讨论】:

...假设工具/环境完全按照描述工作,根据我使用 Ruby/Rails 的经验,它们没有。永远。【参考方案9】:

在学习 ASP.NET MVC 之前,我会先花一些时间在 ASP.NET 上。请记住,ASP.NET MVC 基于 ASP.NET。传统 ASP.NET 中的某些内容不会与 MVC 模型(用户控件,(ASCX 和 ASPX 文件))一起使用,但仍然了解这些内容是件好事。如果您想专注于 MVC,请先学习 ASP.NET,但不要花时间研究常用控件或数据绑定。

当您执行 ASP.NET MVC 时,ASP.NET 的其余部分(HttpModules、HttpHandlers、web.config 文件、成员资格提供程序等)仍然有用,我想说可能是真正使用的先决条件ASP.NET MVC 很好。

也就是说,与 ASP.NET MVC 相比,ASP.NET 的工作量要多得多。一些雇主正在寻找了解 MVC 的人,但他们主要这样做是因为他们正在寻找对学习新事物充满热情的人。我对 ASP.NET MVC 的担忧是我看不到如何将它与传统的 ASP.NET 应用程序集成。现实情况是,大多数工作都涉及使用现有代码库,而不是从头开始。

【讨论】:

【参考方案10】:

我从一开始就一直在关注 ASP.Net MVC,我不得不说,我喜欢它。结合 Unity(或其他 DI 框架),它就可以很好地运行。无论如何,我一直喜欢某种关注点分离原则,并且喜欢 ASP.Net 而不是 PHP(和经典 ASP)。不过,我并不总是喜欢 ASP.Net 的控制模式。 MVC 更适合。并且使用 Json() 和 PartialView() 用于返回类型,与 jQuery.getJSON() 和 $("#mydiv").load() 交互在服务器端非常简化。在遵循 SOLID 设计原则时,它也能很好地工作...

它确实有助于对 HTML 和 JavaScript(AJAX、DHTML)有更多的交互点有一个扎实的理解。从 MVC 模式的角度考虑也很有帮助,或者不考虑让控制器和数据变得混乱。

我不太在意的一件事是缺少内置的皮肤系统,用于网络应用程序上的多个皮肤。我已经解决了这个问题,并且拥有源代码真的很有帮助。我会说,正如其他人所建议的那样,请关注以下博客(并回读) Phil Haack, Scott Guthrie,和 Scott Hanselman。他们都有重要的信息。除此之外,如前所述,ASP.Net MVC Website 上的演示非常好。

【讨论】:

哇,我刚刚查看了 Unity,我印象非常深刻!在阅读其他内容时不小心偶然发现一些很酷的东西总是很高兴。【参考方案11】:

除了其他人推荐的书,我建议以下两本书:

Spring in Action : 不是 ASP.NET MVC,是关于 Spring 的,但是基础差不多,写的很好。 Pro ASP.NET MVC 2 Framework :它以一种易于理解的方式解释了这些概念,并有助于将 DI 引入 ASP.NET MVC。

【讨论】:

【参考方案12】:

以前的所有帖子都太酷了 :) 但我想添加我自己的观点。如果没有一些基础的 asp.net 运行时机制,您将无法编写出好的应用程序。您可以从基本级别的 dino esposito 书(他有两本关于 asp.net 2.0 - 基础和高级级别的书)中获得此信息 - 有一章是关于处理传入请求的 - 你只能阅读这一章。

如果您知道什么是 httpapplication、httpruntime、request、response 等,请跳过我的回答。

【讨论】:

【参考方案13】:

我在 Ruby on Rails 工作的短暂时间里知道,回到 ASP.NET 并使用 MVC 很容易将我从 RoR 学到的知识应用到 ASP.NET MVC。说实话,ASP.NET MVC 实际上只是 VC 部分,而不是模型,因为 ASP.NET 不必非常基于 REST,而 RoR 实际上强制执行它。

我发现的问题是,当人们从 ASP.NET 本身开始学习 MVC 时,他们试图让他们学习正确的 MVC 约定。就像其他人提到的那样,学习真正的 MVC 平台(在本例中为 RoR)可能是一个好主意,因为尝试将您对 ASP.NET 的了解应用于 MVC 架构。从 RoR 开始的一个好地方是 http://railsforzombies.org/ 这也很有趣,并且会为您提供在理想 REST MVC 场景中真正去向的基础知识。然后将您所知道的应用到 MVC for ASP.NET。

【讨论】:

【参考方案14】:

ASP.Net MVC 的首要和基本的事情是路由概念。先好好学习一下。您还可以通过 System.Web.Routing 命名空间了解更多关于此的想法。路由只是告诉 IIS 存在对特定扩展的请求,然后重定向到此处理程序。

接下来是“约定优于配置”。对于 MVC,您需要有一个特定的文件夹结构,例如 Controller、Model 和 Views。这里没有什么更神秘的了。

【讨论】:

以上是关于ASP.NET MVC 的必备知识的主要内容,如果未能解决你的问题,请参考以下文章

网站国际化必备Asp.Net MVC 集成Paypal(贝宝)快速结账 支付接口 ,附源码demo

必备知识点

SpringMvc必备面试知识点

Java找工作必备知识——day02操作系统必备知识

Java找工作必备知识——day01计算机网络必备知识

ASP.NET MVC+Ajax前后端交互