Bibliography

Chapter 1: Introduction | Chapter 2: Architecture | Chapter 3: jQuery UI Widgets - Resources | Chapter 4: Design and Layout - Useful Design Tools | Chapter 5: Modularity | Chapter 6: Client Data Management and Caching | Chapter 7: Manipulating Client-Side HTML | Chapter 8: Communication | Chapter 9: Navigation | Chapter 10: Application Notifications | Chapter 11: Server-Side Implementation | Chapter 12: Security | Chapter 13: Unit Testing Web Applications | Chapter 14: Widget QuickStart | How to: Check UIElement Properties Using Coded UI Test | How to: Create an Automated Negative Test Case Using Coded UI Test | How to: Create a Web Client UI Test Using Coded UI Test

Chapter 1: Introduction

For information on the designer role, see Chapter 4, "Design and Layout."

For information on unit testing, see Chapter 13, "Unit Testing Web Applications."

Crockford, Douglas. JavaScript: The Good Parts. O'Reilly Media, 2008.

Stefanov, Stoyan. JavaScript Patterns. O'Reilly Media, 2010.

"ASP.NET MVC 3 Overview, The Razor View Engine" on ASP.NET:
https://www.asp.net/mvc/mvc3#BM_The_Razor_View_Engine

"ASP.NET MVC 3 Overview, Dependency Injection Improvements" on ASP.NET:
https://www.asp.net/mvc/mvc3#BM_Dependency_Injection_Improvements

"Loosen Up: Tame Your Software Dependencies for More Flexible Apps" in MSDN Magazine:
https://msdn.microsoft.com/en-us/magazine/cc337885.aspx

"Entity Framework 4.1 Released" on the ADO.NET team blog:
https://blogs.msdn.com/b/adonet/archive/2011/04/11/ef-4-1-released.aspx

"Entity Framework 4.1 Update 1 Released" on the ADO.NET team blog:
https://blogs.msdn.com/b/adonet/archive/2011/07/25/ef-4-1-update-1-released.aspx

jQuery Documentation Main Page:
http://docs.jquery.com/Main_Page

ASP.NET MVC 3:
https://www.asp.net/mvc/mvc3

NuGet version 1.4 or later:
https://nuget.org/

Internet Explorer 9:
https://windows.microsoft.com/en-US/windows/downloads/internet-explorer

Modernizr:
http://www.modernizr.com/

Chapter 2: Architecture

For more information on jQuery UI widgets see Chapter 3, "jQuery UI Widgets," and Chapter 5, "Modularity."

For more information on jQuery templates in Mileage Stats, see Chapter 7, "Manipulating Client-Side HTML."

For more information on pinned sites, see Chapter 10, "Application Notifications."

For more information on modularity in Mileage Stats, see Chapter 5, "Modularity."

For more information about the pub/sub implementation in Mileage Stats, see Chapter 8, "Communication."

For more information about navigation and the layout manager, see Chapter 9, "Navigation."

For more information about data management and caching, see Chapter 6, "Client Data Management and Caching."

For more information about the libraries and guidelines discussed in this chapter, see the following:

jQuery:
http://jquery.org

jQuery Templates:
http://api.jquery.com/category/plugins/templates/

Backbone.js:
https://documentcloud.github.com/backbone/

Knockout.js:
http://knockoutjs.com/

SproutCore:
http://www.sproutcore.com

YUI:
http://developer.yahoo.com/yui

Dojo Toolkit:
http://dojotoolkit.org

"jQuery BBQ: Back Button & Query Library" on Ben Alman's blog:
http://benalman.com/projects/jquery-bbq-plugin/

"Filling the HTML5 Gaps with Polyfills and Shims" from Rey Bango's MIX11 session:
https://channel9.msdn.com/Events/MIX/MIX11/HTM04

"Making HTML5 and CSS3 work with polyfills and shims" by Rey Bango on .net magazine:
http://www.netmagazine.com/features/making-html5-and-css3-work-polyfills-and-shims

Chapter 3: jQuery UI Widgets

For more information about the QuickStart or to walk through the process of building it, see Chapter 14, "Widget QuickStart."

For more information about the pub/sub engine, see Chapter 8, "Communication."

For more information on the dataManager, see Chapter 6, "Client Data Management and Caching."

Widget Factory documentation on the jQuery UI wiki:
http://wiki.jqueryui.com/w/page/12138135/Widget-factory

jQuery Documentation for Plugins/Authoring:
http://docs.jquery.com/Plugins/Authoring

jQuery UI Developer Guidelines:
http://jqueryui.com/docs/Developer_Guide

jQuery UI source code:
https://github.com/jquery/jquery-ui

Resources

Microsoft Ajax Content Delivery Network (CDN) addresses:
https://www.asp.net/ajaxlibrary/cdn.ashx

Chapter 4: Design and Layout

Krause, Jim. Design Basics Index. How, 2004.

Lidwell, William, Kritina Holden, Jill Butler. Universal Principles of Design: 100 Ways to Enhance Usability, Influence Perception, Increase Appeal, Make Better Design Decisions, and Teach through Design. Rockport Publishers, 2003.

Norman, Donald. The Design of Everyday Things. Doubleday Business, 1990.

Samara, Timothy. Design Elements – A Graphic Style Manual. Understanding the rules and knowing when to break them. Rockport Publishers, 2007.

Snyder, Carolyn. Paper Prototyping: The Fast and Easy Way to Design and Refine User Interfaces. Morgan Kaufmann, 2003.

Tidwell, Jenifer. Designing Interfaces – Patterns for Effective Interaction Design. Second edition. O'Reilly Media, 2011.

Weinman, Lynda and William Weinman. <creative html design.2>: a hands-on web design tutorial. Waite Group Press, 2001.

White, Alexander. The Elements of Graphic Design: Space, Unity, Page Architecture, and Type. Allworth Press, 2002. Web Form Design: Filling in the Blanks:
http://www.lukew.com/resources/web_form_design.asp

A Book Apart: Brief books for people who make websites:
http://www.abookapart.com/

A List apart: For People Who Make Websites:
http://www.alistapart.com/

Smashing Magazine:
http://www.smashingmagazine.com/

Six Revisions: Useful Information for Web Developers & Designers:
http://sixrevisions.com/

"10 Usability Tips Based on Research Studies" by Cameron Chapman on Six Revisions:
http://sixrevisions.com/usabilityaccessibility/10-usability-tips-based-on-research-studies/

Tuts+:
http://tutsplus.com/

52 weeks of UX: A discourse on the process of designing for real people:
http://52weeksofux.com/

UX Booth: User Experience & Usability Blog:
http://www.uxbooth.com/

Web Content Accessibility Guidelines (WCAG) 2.0:
http://www.w3.org/TR/2008/REC-WCAG20-20081211/

Marcotte, Ethan. Responsive Web Design. Available on A Book Apart:
http://www.abookapart.com/products/responsive-web-design

User Stories:
http://en.wikipedia.org/wiki/User_story

Behavior Driven Development:
http://en.wikipedia.org/wiki/Behavior_Driven_Development

Introducing Behavior Driven Design:
http://dannorth.net/introducing-bdd/

"Why Mood Boards Matter" by Mindy Wagner:
http://www.webdesignerdepot.com/2008/12/why-mood-boards-matter/

"Website Mood Boards: A Successful Precursor to Visual Prototyping" by Kevin Flahaut:
http://weblog.404creative.com/2007/02/14/website-mood-boards-a-successful-precursor-to-visual-prototyping/
"8 Definitive Web Font Stacks Article" by Aaron Boodman:
http://www.sitepoint.com/eight-definitive-font-stacks/

Windows Internet Explorer Developer Tools:
https://msdn.microsoft.com/en-us/ie/aa740478

Herding Code 108: Jin Yang and Nathan Bowers on Web Design:
http://herdingcode.com/?p=309

"Design Fundamentals for Developers" by Robby Ingebretsen on Channel 9:
https://channel9.msdn.com/Events/MIX/MIX09/02W

Useful Design Tools

Microsoft Expression® Web
https://www.microsoft.com/expression/

Balsamiq:
http://balsamiq.com/

SketchFlow:
https://www.microsoft.com/expression/products/Sketchflow_Overview.aspx

PhotoShop:
http://www.photoshop.com/

Typekit:
http://typekit.com/

Kuler:
http://www.adobe.com/products/kuler/

Image compression tools:

Chapter 5: Modularity

jQuery Plug-in Authoring Guidelines: http://docs.jquery.com/Plugins/Authoring

For more information about how to build widgets, see Chapter 3, "jQuery UI Widgets" and Chapter 14, "Widget QuickStart."

To learn more about data abstraction in Mileage Stats, see Chapter 6, "Client Data Management and Caching."

For more information on enabling communication between widgets, see Chapter 8, "Communication."

For more information about how the tile widget performs its animation, see Chapter 9, "Navigation."

For more information about unit testing, see Chapter 13, "Unit Testing Web Applications."

For other examples of JavaScript libraries and frameworks, see "Architectural Alternatives" in Chapter 2, "Architecture."

For examples of other libraries that support a modular design, see:

Chapter 6: Client Data Management and Caching

For more information on jQuery UI widgets, see Chapter 3, "jQuery UI Widgets."

For more information on the global Ajax error handler, see Chapter 10, "Application Notifications."

For more information on data validation, see Chapter 11, "Server-Side Implementation."

HTML 5 Web Storage:
http://dev.w3.org/html5/webstorage/

jQuery:
http://jquery.com/

jQuery ajax() method:
http://api.jquery.com/jQuery.ajax/

jQuery data() method:
http://api.jquery.com/data/

jQuery ajaxError() method:
http://api.jquery.com/ajaxError/

Ajax Programming on Wikipedia:
http://en.wikipedia.org/wiki/Ajax_(programming)

Chapter 7: Manipulating Client-Side HTML

jQuery Home Page: http://jquery.com

jQuery Browser Compatibility: http://docs.jquery.com/Browser_Compatibility

jQuery Selectors: http://api.jquery.com/category/selectors

jQuery Templates: http://api.jquery.com/category/plugins/templates

For more information on how the server can provide the correct initial HTML to the client, see "Providing HTML Structure" in Chapter 11, "Server-Side Implementation."

For more detail on the BBQ plug-in and the use of a state object, see Chapter 9, "Navigation."

Chapter 8: Communication

For more information about the Publish/Subscribe pattern, see https://msdn.microsoft.com/en-us/library/ms978603.aspx.

For more information on how to use JavaScript to implement the Publish/Subscribe pattern, see "Understanding the Publish/Subscribe Pattern for Greater JavaScript Scalability" at https://msdn.microsoft.com/en-us/scriptjunkie/hh201955.aspx .

For more information about closure, see the Wikipedia entry: http://en.wikipedia.org/wiki/Closure_(computer_science).

For more information on how to expose and invoke methods on widgets, see "Public Methods" in Chapter 3, "jQuery UI Widgets."

For more information on the widget pseudo selector see "Using the Pseudo Selector" in Chapter 3, "jQuery UI Widgets."

For more information on raising and handling events, see "Events" in Chapter 3, "jQuery UI Widgets."

Chapter 9: Navigation

For more information about the BBQ plug-in, see http://benalman.com/projects/jquery-bbq-plugin/.

For more information about Modernizr, see http://www.modernizr.com/.

For the RFC 3986 Uniform Resource Identifier generic syntax, see http://www.ietf.org/rfc/rfc3986.txt.

To learn more about the layout manager's _subscribeToGlobalEvents method and how the layout manager invokes widgets, see Chapter 8, "Communication."

Chapter 10: Application Notifications

For a comprehensive look at input validation error messages, see Chapter 11, "Server-Side Implementation."

For detailed information on the inner workings of the Mileage Stats pub/sub implementation, see Chapter 8, "Communication."

For more information about the isFunction method, see jQuery.isFunction():
http://api.jquery.com/jQuery.isFunction/

For more information about Pinned Sites, see the Pinned Sites developer documentation:
https://msdn.microsoft.com/en-us/library/gg491731(v=VS.85).aspx

Chapter 11: Server-Side Implementation

Evans, Eric. Domain-Driven Design: Tackling Complexity in the Heart of Software. Addison-Wesley Professional, 2003.

Nilsson, Jimmy. Applying Domain-Driven Design and Patterns: With Examples in C# and .NET. Addison-Wesley Professional, 2006.

ADO.NET Entity Framework on MSDN®:
https://msdn.microsoft.com/library/bb399572.aspx

The Repository Pattern on MSDN:
https://msdn.microsoft.com/en-us/library/ff649690.aspx

Unit of Work Pattern:
http://www.martinfowler.com/eaaCatalog/unitOfWork.html

Catalog of Patterns of Enterprise Application Architecture:
http://martinfowler.com/eaaCatalog/

Understanding Models, Views, and Controllers on ASP.NET:
https://www.asp.net/mvc/tutorials/understanding-models-views-and-controllers-cs

Best Practices for ASP.NET MVC:
https://blogs.msdn.com/b/aspnetue/archive/2010/09/17/second_2d00_post.aspx

Dependency Injection in MSDN Magazine:
https://msdn.microsoft.com/en-us/magazine/cc163739.aspx

Unity Application Block on MSDN:
http://www.msdn.com/unity

Post/Redirect/Get Pattern:
http://en.wikipedia.org/wiki/Post/Redirect/Get

For more information on how clients can consume and use data- attributes, see Chapter 6, "Client Data Management and Caching" and "Using Data- Attributes" in Chapter 7, "Manipulating Client-Side HTML."

For more information on unit testing see Chapter 13, "Unit Testing Web Applications."

Chapter 12: Security

"ASP.NET Web Application Security" on MSDN:
https://msdn.microsoft.com/en-us/library/330a99hc.aspx

"How to set up SSL on IIS 7":
http://learn.iis.net/page.aspx/144/how-to-set-up-ssl-on-iis-7/

"UrlHelper.Action Method" on MSDN:
https://msdn.microsoft.com/en-us/library/dd505232.aspx

"Understanding the Forms Authentication Ticket and Cookie" on Microsoft Support:
https://support.microsoft.com/kb/910443

"Authenticating Users with Forms Authentication" on ASP.NET:
https://www.asp.net/mvc/tutorials/authenticating-users-with-forms-authentication-cs

Protecting Connection Information (ADO.NET) on MSDN:
https://msdn.microsoft.com/en-us/library/89211k9b(v=VS.100).aspx

"How To: Secure an ASP.NET Application on a Shared Server" on MSDN:
https://msdn.microsoft.com/en-us/library/ms228096.aspx

"A Guide to Claims–based Identity and Access Control" on MSDN:
https://msdn.microsoft.com/en-us/library/ff423674.aspx

"OWASP Top 10 Project" on OWASP.org:
https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project

"JSON Hijacking" on Phil Haack's blog:
http://haacked.com/archive/2009/06/25/json-hijacking.aspx

"Best Practices for ASP.NET MVC" on the ASP.NET and Web Tools Developer Content Team's blog: https://blogs.msdn.com/b/aspnetue/archive/2010/09/17/second_2d00_post.aspx

"Prevent Cross-Site Request Forgery (CSRF) using ASP.NET MVC's AntiForgeryToken() helper" on Steve Sanderson's blog:
http://blog.stevensanderson.com/2008/09/01/prevent-cross-site-request-forgery-csrf-using-aspnet-mvcs-antiforgerytoken-helper/

"Hack Proofing Your Microsoft ASP.NET Web Forms and MVC Applications" by Adam Tuliper on Channel 9:
https://channel9.msdn.com/Events/TechEd/NorthAmerica/2011/DEV333

Chapter 13: Unit Testing Web Applications

Meszaros, Gerard. xUnit Test Patterns: Refactoring Test Code. Addison-Wesley, 2007.

Kaner, Cem, Jack Falk, and Hung Q. Nguyen. Testing Computer Software, 2nd Edition. Wiley, 1999.

patterns & practices Acceptance Test Engineering Guidance on CodePlex:
http://testingguidance.codeplex.com/

Performance Testing Guidance for Web Applications on MSDN®:
https://msdn.microsoft.com/en-us/library/bb924375.aspx

Guidance for Build, Deploy and Test Workflows on MSDN:
https://msdn.microsoft.com/en-us/library/ff972305.aspx

QUnit unit testing framework on the jQuery website:
http://docs.jquery.com/QUnit

xUnit.net on CodePlex:
http://xunit.codeplex.com.

Moq on CodePlex:
http://moq.codeplex.com

"Testing the User Interface with Automated UI Tests" on MSDN:
https://msdn.microsoft.com/en-us/library/dd286726.aspx

"How to: Create a Coded UI Test" on MSDN:
https://msdn.microsoft.com/en-us/library/dd286681.aspx

Resharper:
http://www.jetbrains.com/resharper/

TestDriven.NET:
http://testdriven.net

For more information on dependency injection in Mileage Stats, see Chapter 11, "Server-Side Implementation."

For more information about testing in Project Silk, see the following:

Chapter 14: Widget QuickStart

For more information about the jQuery UI widget factory, see the following resources:

How to: Check UIElement Properties Using Coded UI Test

Testing the User Interface with Automated UI Tests on MSDN

How to: Create a Coded UI Test on MSDN

For other topics about testing in Project Silk, see the following:

How to: Create an Automated Negative Test Case Using Coded UI Test

Testing the User Interface with Automated UI Tests on MSDN

How to: Create a Coded UI Test on MSDN

For other topics about testing in Project Silk, see the following:

How to: Create a Web Client UI Test Using Coded UI Test

Testing the User Interface with Automated UI Test on MSDN.

How to: Create a Coded UI Test on MSDN.

For other topics about testing in Project Silk, see the following:

Next | Previous | Home | Community