ASP.NET MVC的必备知识

时间:2009-04-15 14:43:58

标签: asp.net asp.net-mvc .net-3.5

在尝试学习ASP.NET的Arcana后感到沮丧,我决定尝试使用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推荐哪些先决条件知识?我上面列出的任何/所有人?其他?或者也许我只是很慢,大多数人都会很好地做我做的事情。

14 个答案:

答案 0 :(得分:16)

我已经成为ASP.Net开发人员仅仅3年了。我从朋友那里得到了一个项目,并决定使用ASP.Net MVC开发它来学习这些新东西。 我必须承认我在开始时感到迷茫,但后来我在ASP.Net/MVC网站上看到了一些非常有趣的文章。在底部是7次迭代,它将为您提供非常详细的信息,让您在执行操作时正在执行的操作。

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

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

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

答案 1 :(得分:10)

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

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

非常有用的是对多层架构的理解,因为这次您必须首先考虑如何组织应用程序,与WebForms中的控件直接黑客攻击相反。

此外,您不会避免使用HTML / CSS,也许是JavaScript。

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

在这里可以找到许多非常有用的教程:ASP.NET MVC Tutorials

还阅读ASP.NET MVC“parent”中的博客:

http://haacked.com

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

http://www.hanselman.com/

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

答案 2 :(得分:7)

我有类似的背景。我从一开始就使用过.Net / C#,但所有系统都相关,没有网络体验。大约8个月前,我决定要了解网络并决定对我来说ASP.NET MVC似乎是正确的方法。我不认为我缺乏ASP.NET经验是一个太大的障碍。我使用http://www.asp.net/mvc/网站作为我学习的中心。所有视频都很好,加上教程和所有示例项目。我已经下载了大部分内容并且有足够的熟悉度,当我无法解决问题时,我会转到其中一个具有类似要求的下载项目,并查看它是如何编码的。我不懂网络技术,还订购了关于HTML,CSS,JAVA脚本,AJAX和Jquery的书籍。对我来说,最好的学习方法是开发一个项目,这就是我所做的。新MVC书籍的大多数作者也有博客,有很多好的信息。当我开始学习MVC时,MVC书籍尚未发布,但我确信现在有一些好的或者即将推出。

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

答案 3 :(得分:4)

我认为,一旦人们围绕MVC使用路由直接将请求直接指向类(使用模型进行连接和显示视图)而不是显示“实际”页面的想法进行了解决,MVC的概念在Web应用程序确实更清晰。由于“概念难度”不在考虑范围内,因此考虑这些属性并决定MVC是否适合特定应用程序要容易得多。

编辑 - 说过,如果我是ASP.NET的新手,我可能会首先解决表单版本,并在进入MVC之前很好地理解事件,回发和该系统的方法,因为ASP。 NET MVC实际上是在该系统之上处理的。

编辑2 - 我认为在完成编辑之前我被拒绝了: - (

答案 4 :(得分: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 NayyeriSimone Chiaretta都是活跃的ASP.NET MVC博主。测试下载here的示例章节。我读过它应该在2009年6月底上市吗?

Manning: ASP.NET MVC in Action ---这本书是Ben ScheirmanJeffrey PalermoJimmy 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示例应用程序和阅读器附带的书。它由一些非常聪明的微软人员撰写:Rob ConeryScott GuthrieScott HanselmannPhil Haaaaaaaaaaaaack,他们掌握了为什么使用框架做出某些决定的内部信息。现已上市。

Packt: ASP.NET MVC 1.0 Quickly ---作者Maarten Balliauw有一个非常好的博客,讨论各种ASP.NET MVC问题,包括testing。现已上市。

Sams: ASP.NET MVC Framework Unleashed ---作者Stephen Walther负责ASP.NET早期1.0版的一些流行的ASP.NET Unleashed书籍,现在他正在写一本关于ASP.NET MVC的书。您可以从即将出版的书籍和其他ASP.NET MVC相关帖子中查看他的blog示例内容。 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 :(得分:3)

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

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

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

答案 6 :(得分:3)

如果您还不了解Webforms,那么现在就坚持学习MVC,这样就不会让自己感到困惑。 Webforms是一个有用的东西,因为你已经了解Winforms,所以后来学习起来不应该太难。

MVC和Webforms都在ASP.NET下工作,因此在玩MVC时你将学到的很多东西都会转移到Webforms上。

答案 7 :(得分:2)

我从一开始就一直在关注ASP.Net MVC,我不得不说,我喜欢它。结合Unity(或另一个DI框架),它只是很好地流动。无论如何,我总是喜欢某种关注点分离原则,并且比PHP(和经典ASP)更喜欢ASP.Net。我并不总是喜欢ASP.Net的控件模式。 MVC非常适合。 Json()和PartialView()用于与jQuery.getJSON()和$(“#mydiv”)交互的返回类型。在服务器端,load()非常简化。遵循SOLID设计原则也很有效......

对于更多交互点,它有助于深入理解HTML和JavaScript(AJAX,DHTML)。它也有助于思考MVC模式,或者不考虑控制器和数据的混乱。

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

答案 8 :(得分:2)

在学习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应用程序集成。实际情况是,大多数工作涉及使用现有的代码库,而不是从头开始。

答案 9 :(得分:2)

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

你会快速选择Rails(一周或两周左右的黑客攻击),Rails惯例的解释将引导你进入与Asp.Net MVC非常接近的思维模式办法。它可能会帮助您了解MVC的动机,并且您肯定会对Asp.net MVC中的“应该”如何工作提出意见。

答案 10 :(得分:1)

除了别人推荐的内容之外,我会建议以下两本书:

  • Spring in Action:这不是ASP.NET MVC,它是关于Spring的,但基础是相似的,而且写得非常好。
  • Pro ASP.NET MVC 2 Framework:它以一种易于理解的方式解释了这些概念,它有助于将DI引入ASP.NET MVC。

答案 11 :(得分:0)

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

如果您知道什么是httpapplication,httpruntime,请求,响应等,请跳过我的回答。

答案 12 :(得分:0)

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

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

答案 13 :(得分:0)

ASP.Net MVC的第一个基本要点是路由概念。先学会好。您还可以通过System.Web.Routing命名空间了解更多信息。路由只是告诉IIS,是否有对特定扩展的请求,然后重定向到此处理程序。

接下来的事情是“约会过度配置”。对于MVC,您需要具有特定的文件夹结构,如Controller,Model和Views。这里没有更多的谜。