Skip to main content

Professional ASP.NET MVC 1.0

Professional ASP.NET MVC 1.0

Rob Conery, Scott Hanselman, Phil Haack, Scott Guthrie

ISBN: 978-0-470-38461-9

May 2009

456 pages

Select type: Paperback

Product not available for purchase

Description

This book begins with you working along as Scott Guthrie builds a complete ASP.NET MVC reference application. He begins NerdDinner by using the File->New Project menu command within Visual Studio to create a new ASP.NET MVC Application. You'll then incrementally add functionality and features. Along the way you’ll cover how to create a database, build a model layer with business rule validations, implement listing/details data browsing, provide CRUD (Create, Update, Delete) data form entry support, implement efficient data paging, reuse UI using master pages and partials, secure the application using authentication and authorization, use AJAX to deliver dynamic updates and interactive map support, and implement automated unit testing.

From there, the bulk of the rest of the book begins with the basic concepts around the model view controller pattern, including the little history and the state of the MVC on the web today. We'll then go into the ways that MVC is different from ASP.NET Web Forms. We'll explore the structure of a standard MVC application and see what you get out of the box. Next we dig deep into routing and see the role URLs play in your application. We'll deep dive into controllers and views and see what role the Ajax plays in your applications. The last third of the book focuses entirely on advanced techniques and extending the framework.

In some places, we assume that you're somewhat familiar with ASP.NET WebForms, at least peripherally. There are a lot of ASP.NET WebForms developers out there who are interested in ASP.NET MVC so there are a number of places in this book where we contrast the two technologies. Even if you're not already an ASP.NET developer, you might still find these sections interesting for context, as well as for your own edification as ASP.NET MVC may not be the web technology that you're looking for.

Introduction.

Chapter 1: NerdDinner.

Chapter 2: Model-View-Controller and ASP.NET.

Chapter 3: ASP.NET > ASP.NET MVC.

Chapter 4: Routes and URLs.

Chapter 5: Controllers.

Chapter 6: Views.

Chapter 7: AJAX.

Chapter 8: Filters.

Chapter 9: Securing Your Application.

Chapter 10: Test Driven Development with ASP.NET MVC.

Chapter 11: Testable Design Patterns.

Chapter 12: Best of Both Worlds: Web Forms and MVC .

Index.

NerdDinner 1.0
This is the NerdDinner version 1.0 code to match the pre-publication Chapter 1 “NerdDinner” sample. Later versions of NerdDinner may be available at http://www.codeplex.com/nerddinner.
Download
Chapter 1
Download
Chapter 2
Download
Chapter 3
Download
Chapter 4
Download
Chapter 5
Download
Chapter 6
Download
Chapter 7
Download
Chapter 8
Download
Chapter 9
Download
Chapter 10
Download
Chapter 11
Download
Chapter 12
Download
ChapterPageDetailsDatePrint Run
1Note on Ch 1 Errata,All chapter 1 errata refer to Chapter 1 as it appears in print, not to the free unedited chapter 1 preview.4/20/09
71, 76, 85Error in Code,On pages 71, 76 (2 places), and 85 (2 places):

ModelState.AddRuleViolations(dinner.GetRuleViolations());

Should be:

ModelState.AddModelErrors(dinner.GetRuleViolations());
4/20/09
88Error in Code,ViewData[“countries”] = new SelectList(PhoneValidator.AllCountries,
dinner.Country);

Should be:

ViewData[“Countries”] = new SelectList(PhoneValidator.Countries,
dinner.Country);
4/20/09
89Error in Code,Countries = new SelectList(PhoneValidator.AllCountries,
dinner.Country);

should be

Countries = new SelectList(PhoneValidator.Countries,
dinner.Country);
4/20/09
89Error in Code,Delete this line from the code:

[Authorize]
4/20/09
98Typo in Text,In the first line the extra e after the should be deleted.6/9/09
100Error in Code,<li><%= Html.ActionLink( Find Dinner , Index , Home ) %></li>

Should be

<li><%= Html.ActionLink( Find Dinner , Index , Dinners ) %></li>
5/29/09
107Typo in Text,Second to last paragraph, first line:

PaegeSize

Should be

PageSize
6/9/09
239Typo in Text,Description for JavaScript(...) method:

second line execute

Should be

executed
6/12/09