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:
- OptiPNG:
http://optipng.sourceforge.net/ - Pngcrush:
http://pmt.sourceforge.net/pngcrush/ - jpegtran:
http://sylvana.net/jpegcrop/jpegtran/ - CSS Compressor on CSSDrive.com:
http://www.cssdrive.com/index.php/main/csscompressor/ - CSS Optimizer:
http://www.cssoptimiser.com/ - Code Beautifer:
http://www.codebeautifier.com/ - CSS Tidy:
http://csstidy.sourceforge.net/
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:
- Prototype:
http://prototypejs.org - Script.aculo.us:
http://script.aculo.us
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:
- "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 14: Widget QuickStart
For more information about the jQuery UI widget factory, see the following resources:
- Chapter 3, "jQuery UI Widgets"
- "jQuery UI API Developer Guide" on jQuery UI:
http://jqueryui.com/docs/Developer_Guide - "Widget factory" on the jQuery UI wiki:
http://wiki.jqueryui.com/w/page/12138135/Widget-factory - "Tips for Developing jQuery UI 1.8 Widgets" on Eric Hynds' blog:
http://www.erichynds.com/jquery/tips-for-developing-jquery-ui-widgets/ - "Understanding jQuery UI widgets: A tutorial" on bililite.com:
http://bililite.com/blog/understanding-jquery-ui-widgets-a-tutorial/
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
- How to: Create a Web Client UI Test Using Coded UI Test
- Chapter 13, "Unit Testing Web Applications"
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: Check UIElement Properties Using Coded UI Test
- How to: Create a Web Client UI Test Using Coded UI Test
- Chapter 13, "Unit Testing Web Applications"
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: