ASP.NET MVC - 书籍之战

在任何新的ASP.NET相关技术的RTM周围出来的新书总是有一个挥霍。所有这些地方的作者都在燃烧午夜油,将一个CTP到下一个CTP的变化归咎于β并希望能够反对希望释放候选人和最终的RTM没有填充"breaking changes"这不可避免地意味着他们草案中的整个部分或章节的总重写。然后,出版商之间的比赛正在开启,因为每个人都试图在其他人面前到市场的要约。在这里,我看一下围绕ASP.NET MVC发布的三个标题,并判断他们的票价如何覆盖核心框架,而是ASP.NET MVC设计的关键功能提供:

  • 清洁担心的分离
  • 可扩展性
  • 可测试性
  • 控制HTML

专业ASP.NET MVC 1.0

专业ASP.NET MVC 1.0

Rob Conery,Scott Hanselman,Phil Haack,Scott Guthrie
WROX,ISBN 978-0-470-38461-9
434pp
Code Samples in C#

嗯。四个额头。

Conery,Hanselman和Haack是Microsoft的ASP.NET团队中的所有资深人物。斯科特("The Gu")Guthrie是第21世纪文化的第二个最有影响力的人(Simon Cowell之后),判断数量"惊人的!!你摇滚,斯科特!"评论他的每一个博客话语都吸引。他还"为微软构建一些产品 "。它说,关于Microsoft的开发人员部门(Scott Guthrie实际运行)的MVC框架的感知重要性,这四个人应该创作一本书,然后没有通过Microsoft Press发布它。

这本书分为两部分。第一个部分(第1章),运行164页,由一个端到端的演练组成,显示如何使用新框架来构建应用程序 - nerddinner。这是一个相对简单的应用程序,但它具有在Web应用程序中最常见的CRUD方案的类型,以及其他具有ASP.NET MVC和身份验证/授权的其他功能。它提供了引入MVC框架的主要目的,并提供对这种Web开发风格的所有圆形洞察力。本书的第二部分包括另一个11章 - 其中每个章节更详细地检查ASP.NET MVC框架的各个方面。

我用这本书欺骗了一点点。我已经利用了第一章的PDF版本,在这本书终于发表之前自由提供了一段时间,所以当我收到书本身时,我直接转向第2章,这是一下这本书大约一半。 。它包含一个非常有趣的MVC作为架构模式的概述,并在Web开发中展望其演变。第3章评估了ASP.NET Web表单(Candidly)并建立在ASP.NET横幅下引入MVC框架的原因。这两章让我完全迷上了。非常可读和信息,第三个(和随后的)章节具有许多插图:产品团队aside。在这些中,ASP.NET MVC框架的设计背后的思考被泄露,包括在开发期间进行的决策的解释。随后的章节向路由,控制器,视图,AJAX,过滤器和安全性提供良好的覆盖范围。提供了一篇关于测试驱动的开发和可测试的设计模式,并通过关于混合网页形式和MVC的一章卷起来的书。

在NerdDinner章节形式的ASP.NET MVC的实际介绍是广泛的和信息性的。独自一人,它涵盖了您希望在a中找到的很多信息"开始ASP.NET MVC."书的类型。尽管如此,本书并不旨在满足ASP.NET或Web开发完全新的目的。您需要熟悉某种类型的网络开发,并在C#上练习 - 或者愿意通过本书进行大量参考查找。本书的下半部分提供了一个非常有用的参考,以及更高级主题的指导。

All in all, this book is worth getting. It's clearly structured, well written and does the job it intends to. It covers the core framework well and also clean关注点分离。 While extensibility and testability were covered, ideally I felt that more could have been done in these areas.

ASP.NET MVC. 1.0 Website Programming 问题 - 设计 - 解决方案

ASP.NET MVC. 1.0 Website Programming 问题 - 设计 - 解决方案

Nick Beradi,Al Katawazi,Marco Bellinaso
WROX,ISBN 978-0-470-4105-0
524pp
Code Samples in C#

原始想法背后"问题 - 设计 - 解决方案" series, which first appeared in 2002, was to move away from the typical reference-style of programming book, and to show developers with some experience of the ASP.NET Framework how to structure and implement an application using a Best Practices approach to ensure关注点分离。 It was updated in 2006 following the launch of Version 2.0 of the Framework, and introduced a large number of the new features that version brought to the party. It has been updated again since then to take in version 3.5.

围绕开发Beerhouse应用程序的系列中心,可从CodePlex中获得。该应用程序包含一系列可能出现在任何内容的功能范围"real-world"网站,包括用户会员资格,内容管理,民意调查,评论,时事通讯管理和生成,本地化和电子商务。对于Web表单,开发人员希望提高他们的开发技巧,超出了两层方法,涉及许多涉及代码的方法,这一系列已成为宝贵的人。该系列中的第二本书是我个人收藏中更彻底的拇指纹,我会说这本书在了解如何将我的应用程序中的各个层分开而不是任何其他资源的方式。

MVC版本遵循与其前辈相同的模式,并使用MVC框架演示了Beebhouse应用程序的重写。与此系列中的先前版本一样,应用程序的每个元素都分解为问题陈述,然后进行问题介绍的应用程序设计注意事项,最后是实现的代码或解决方案。不幸的是,与之前的书籍一样与任何相似之处。

MVC框架的覆盖范围作为一种开发技术非常肤浅,在我看来,事实上,作者将读者推荐给MSDN或参考类型书,以便更详细地经常。所以,这本书并非打算教你MVC框架。好的 - 也许这本书旨在成为在现实世界应用中使用ASP.NET MVC时的最佳实践的指南吗?事实上,作为介绍的一部分,作者声称"您将学习基于稳固,可扩展和可扩展的架构的Web开发的许多最佳实践"到你到达书的尽头。大多数评论员在ASP.NET MVC的最佳实践中强烈倡导TDD方法,或者至少最少地测试。这本书忽略了两者。您不会学习如何实现任何类型的测试框架。真正的关注点分离怎么样?不幸的是,任何希望我认为这本书可能在这个方向上有所帮助,当我下载样本应用时,就被吹走了。其中一个视图(文章/索引)包含对DataContext的调用,其中一个PartialViews包含代码后面。这几乎不适合一个概念"clean"关注点分离。

整本书中有许多技术和事实不准确。作者指的是HTML和URL扩展名 班级。他们实际上是延伸 方法。根据作者,ASP.NET 3.5团队介绍了提供商模型和配置文件。它们实际上是在2.0版中引入的。 ALT.NET提供为您可以开发模型的过程。它实际上不是一个过程。这是一个运动,如果有的话,那些股票的信仰。虽然我们大多数人都知道界面是 实施的 由班级,作者将让您相信课程 继承 来自接口。哦 - 你知道GridView是否已过时?不? I.但是在第143页的情况下,我找到了以下内容:

"您可以在此代码中注意到我们使用普通旧表来显示我们的数据,这是因为我们在ASP.NET 2.0中经常使用的GridView控件现在已过时。"

单独地,这些错误可能不会提及。然而,它们的纯粹数量(并且有许多人突出显示的人)震动了我对整个书的技术准确性的信心。让我感觉不足的书的另一个方面是,2.0版本的大型块已被复制并直接进入MVC版本。但是,没有足够的护理审查和修改复制的部分。例如,在“民意调查”部分和论坛部分中,介绍了用于访问数据库的LINQ查询"Stored Procedures"。介绍它们的文本与本书的2.0版本相同,但MVC应用程序中没有存储过程。我无法理解为什么,在本地化的章节中,从2.0版本的本书中保留了ASP.NET 1.x中的本地化的回顾。鉴于自2005年以来2.0曾经和我们在一起,似乎完全无关紧要。

鉴于问题的遗产 - 设计 - 解决方案系列书籍,我热衷于找到对此标题的态度。但我看起来越多,我就越愤怒地刺激(特别是持续参考部分观点"User Controls"),甚至开始感到有点欺骗。我可以被原谅思考新的作者在必须重新写Marco Bellinaso的原始段落方面尽可能少地做。我也怀疑Bellinaso对这本书的唯一贡献,尽管封面作为作者之一出现在封面上,是为了允许他早期的工作重新使用。这可能是为什么他独自在本书开始时没有在致谢部分中产生任何东西。如果您正在寻找一本书来让您开始使用ASP.NET MVC,这对技术来说太浅薄了。如果您正在寻找要引导您参加最佳实践的东西,本书也不提供任何方向。

总之,框架的核心元素的覆盖率薄,并且忽略了可扩展性,可测试性和清洁分离。

Pro ASP.NET MVC框架

Pro ASP.NET MVC框架

Steven Sanderson
安排,ISBN 978-1-4302-1007-8
590pp
Code Samples in C#

这本书遵循类似格式的四个额头的产品,因为它始于许多章节(超过120页),通过MVC通过构建真实的应用程序,介绍许多随附的功能新框架,然后遵循特定区域的暗示覆盖范围 - 路由,视图,控制器,Ajax,安全性,部署以及Web表单和MVC之间的交叉。从四个前额显着不同的情况下,它的测试驱动的开发和设计模式从截止的显着细节覆盖。

ASP.NET MVC.可能会引入测试驱动的开发,控制控制和其他设计模式,以至于现在迄今为止的新观众尚未欣赏他们所全部的内容。桑德隆通过他解释的清晰方式使这些主题非常访问,以及他将它们集成到示例应用程序的方式。该应用程序(在这种情况下练习机)利用NUnit和MoQ进行测试,以及Castle Windsor作为控制容器的反转。 Sanderson也意识到TDD不会适合每个人,并耗费麻烦,将评论分别通过将其放在单独的面板中的实际开发方面进行测试。样本申请并非打算"demo-ware"据桑德森称。他刻意地通过应用程序,声音建筑和许多现代最佳实践建立。结果并不像啤酒馆那样全面齐全,但这是我需要预期的Beradi和Katawazi的方法。

桑德森举行了散步,并用一章召开了"Prerequisites"。在这方面,他做了一个很好的工作,介绍了对ASP.NET MVC很重要的C#3.0语言功能,并且还可以将LINQ简化为SQL的另一个出色的工作,然后他用作他的数据访问技术。在审查框架的核心方面的后续章节中,Sanderson提供了比额头更多的信息更多。他所做的是专注于上面列出的第一个原则,并展示了如何扩展框架。例如,在他对控制器的覆盖范围内,他展示了如何扩展ActionResult类型以生成自定义WaterMarkEdimagerEult,以及如何创建自己的控制器。在“视图”章节中,他讨论并说明了实现自己的视图引擎,并且他看出了核心框架之外的一些功能,例如MVC期货和MVCCONTRIB。关于部署的一章对我来说特别有用,帮助您从基于旧的Web形式的网站到此版本的顺利过渡,托管在IIS 6上。

史蒂文桑德森有一个非常舒适的写作风格。他的语气是相当的对话,他的幽默感在整本书中都很明显。这是一种真正温暖,低估的幽默感 - 他避免这种情况"Geek Humor"这些天疯了。他对他主题和激情的显而易见的知识,因为它流畅,我总是感到他作为我的个人导师的觉得,而不是讲述我。

Sanserson的书在许多方面,尤其是最重要的一件事,特别是他给了我衡量每本书的元素的覆盖范围。他对框架的核心要素的覆盖范围很出色。他常见的例子是扩展框架及其作为样本应用程序的一部分以及使用控制容器的一部分,这本书赢得了手下来。

这显然是史蒂文的第一个编程书。我确定它不会是他的最后一个。

概括

我真的很高兴通过Conery,Hanselman,Haack和Guthrie阅读这本书。我发现他们给予产品团队的思维非常有趣的见解。在自己的本书上,我会非常好地才能开始使用ASP.NET MVC。我肯定会不时捡起它来审查他们对框架的某些方面的关注。不幸的是,我不能想到采取一个充分的理由"问题 - 设计 - 解决方案"再次预订我的架子。我觉得很难描述我在这本书中有多失望。最后,我将难以从我的货架上检索史蒂文桑德森的体积。那是因为它不太可能在那里。我将不得不在晚上追捕其他开发人员的书桌,让它退回它们。或者每副本购买它们。但这本书是如此美好,这将是值得的。