ASP.NET MVC 4 and the Web API
Building a REST Service from Start to Finish
Jamie Kurtz
ASP.NET MVC 4 and the Web API
Copyright 2013 by Jamie Kurtzb
This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the material is concerned, specifically the rights of translation, reprinting, reuse of illustrations, recitation, broadcasting, reproduction on microfilms or in any other physical way, and transmission or information storage and retrieval, electronic adaptation, computer software, or by similar or dissimilar methodology now known or hereafter developed. Exempted from this legal reservation are brief excerpts in connection with reviews or scholarly analysis or material supplied specifically for the purpose of being entered and executed on a computer system, for exclusive use by the purchaser of the work. Duplication of this publication or parts thereof is permitted only under the provisions of the Copyright Law of the Publishers location, in its current version, and permission for use must always be obtained from Springer. Permissions for use may be obtained through RightsLink at the Copyright Clearance Center. Violations are liable to prosecution under the respective Copyright Law.
ISBN-13 (pbk): 978-1-4302-4977-1
ISBN-13 (electronic): 978-1-4302-4978-8
Trademarked names, logos, and images may appear in this book. Rather than use a trademark symbol with every occurrence of a trademarked name, logo, or image we use the names, logos, and images only in an editorial fashion and to the benefit of the trademark owner, with no intention of infringement of the trademark.
The use in this publication of trade names, trademarks, service marks, and similar terms, even if they are not identified as such, is not to be taken as an expression of opinion as to whether or not they are subject to proprietary rights.
While the advice and information in this book are believed to be true and accurate at the date of publication, neither the authors nor the editors nor the publisher can accept any legal responsibility for any errors or omissions that may be made. The publisher makes no warranty, express or implied, with respect to the material contained herein.
President and Publisher: Paul Manning
Lead Editor: Ewan Buckingham
Development Editor: Matthew Moodie
Technical Reviewer: Jeff Sanders
Editorial Board: Steve Anglin, Mark Beckner, Ewan Buckingham, Gary Cornell, Louise Corrigan, Morgan Ertel, Jonathan Gennick, Jonathan Hassell, Robert Hutchinson, Michelle Lowman, James Markham, Matthew Moodie, Jeff Olson, Jeffrey Pepper, Douglas Pundick, Ben Renow-Clarke, Dominic Shakeshaft, Gwenan Spearing, Matt Wade, Tom Welsh
Coordinating Editor: Jill Balzano
Copy Editor: Patrick Meader
Compositor: SPi Global
Indexer: SPi Global
Artist: SPi Global
Cover Designer: Anna Ishchenko
Distributed to the book trade worldwide by Springer Science+Business Media New York, 233 Spring Street, 6th Floor, New York, NY 10013. Phone 1-800-SPRINGER, fax (201) 348-4505, e-mail orders-ny@springer-sbm.com , or visit www.springeronline.com . Apress Media, LLC is a California LLC and the sole member (owner) is Springer Science + Business Media Finance Inc (SSBM Finance Inc). SSBM Finance Inc is a Delaware corporation.
For information on translations, please e-mail rights@apress.com , or visit www.apress.com .
Apress and friends of ED books may be purchased in bulk for academic, corporate, or promotional use. eBook versions and licenses are also available for most titles. For more information, reference our Special Bulk SaleseBook Licensing web page at www.apress.com/bulk-sales .
Any source code or other supplementary materials referenced by the author in this text is available to readers at www.apress.com . For detailed information about how to locate your books source code, go to www.apress.com/source-code/ .
Dedicated to my wife, Kim. After nearly two decades together, she still manages to leave me speechless with her love, joy, peace, patience, kindness, goodness, faithfulness, gentleness, and self-control. Even as my work on this book has been fun and challenging, I know it is but an infinitesimal drop in the bucket of all that life has brought and will continue to bring us.
Contents at a Glance
Contents
Foreword
The site went live a month ago. There have been a few minor problems along the way, but for the most part things have gone smoothly... until today. End-of-month batch processing began about eighteen hours ago, and it isnt going well. We have less than six hours to finish generating the export files that we need to deliver to the credit card statement print vendor, and it doesnt look as though were going to make it. Something is wrong with the interest calculations; they are taking way too long. Even worse, the calculations are incorrect for some of the Platinum accounts!
Another two hours pass. In the meantime, we, with the help of our lead business analyst, have found and fixed the problem with the interest calculation. However, the number of accounts processed per minute is noticeably declining. Theres no way were going to make the deadline at this rate. And if we dont deliver the goods, this whole over-budget project is in serious jeopardy.
The project manager calls the architect and some of us senior developers to his office and asks us how its goingas if the answer to that question isnt obvious enough. So he says, What about that new guy down in IT? Do you think he can help with this problem?
Hmmm, we hadnt thought of asking him. After all, he wasnt part of the project, and it would take him way too long to come up to speed. Or would it? We dont have much to lose. Besides, we have been having him assist us with some of our more puzzling database and networking questions (which have seemed completely elementary to him), so we know he is a smart guy.
We hurry over to the IT department and find The New Guy surrounded by monitors, computer parts, books, and lots of empty Mountain Dew cans. He appears to already be aware of our problem (I suspect our manager has given him a heads-up). Our dashboard page is up on one monitor, and on the other monitors we see SQL Server Query Analyzer and some unfamiliar profiling tools. For the next hour or so, he hits us with a barrage of questions, rifles through our source code, and bangs away at the various diagnostic tools he has up on his screens. Hes indexing tables, modifying stored procedures, and doing all sorts of other crazy stuff onyou got itthe live system. But it seems to be working, in a BIG way. The account processing rate has jumped by orders of magnitude. Were actually going to make the deadline!
Next page