Project Silk: Client-Side Web Development for Modern Browsers

On this page: Download:
Summary | Intended Audience | System Requirements | Resources | Guidance Assets | Feedback and Support | Team Blogs | Authors and Contributors

Download code samples

Download PDF

Download Paperback


patterns & practices Developer Center

September 2011


Project Silk provides guidance for building maintainable cross-browser web applications that are characterized by an intentional design, rich interactivity, and a responsive user interface (UI), resulting in an immersive and engaging user experience (UX). Such applications take advantage of the latest web standards, including HTML5, CSS3, and ECMAScript version 5, and modern web technologies such as jQuery and ASP.NET MVC3.

An intentional design indicates that deliberate attention was paid to the modularity of the JavaScript code, and the usability of the application was an explicit focus. Under the direction of the team's web designer, UI and UX concerns received special attention, and this guidance aims to help you be successful addressing these concerns in your own applications. Modularity is important when building highly interactive web applications because they often require a significant amount of JavaScript code. This guidance aims to help you understand how to write maintainable JavaScript code that reaps the many benefits of a modular design.

Project Silk also illustrates how you can take advantage of the fast JavaScript engines of the modern, standards-based web browsers to achieve a user experience and execution speeds that rivals desktop applications. Windows Internet Explorer 9 further enriches the user experience by taking advantage of integration with the operating system and hardware-accelerated graphics processing.

The concepts explained in the Project Silk written guidance are demonstrated via a real-world customer-facing web application called the Mileage Stats Reference Implementation (Mileage Stats). Mileage Stats allows users to track and compare their vehicles' fuel efficiency, usage, and operating costs, and to schedule vehicle maintenance reminders.

Intended Audience

This guidance is intended for web developers and assumes you have some hands-on experience with HTML, CSS, JavaScript, jQuery, and ASP.NET MVC. Mileage Stats relies heavily on a few important JavaScript and jQuery concepts that you need to understand. They include:

  • JavaScript: Object literals, immediate functions, closures, object prototypes, scoping rules, and use of the this keyword
  • jQuery: Selectors, wrapped sets, and chaining

If you are not familiar with these concepts or have not used them in your own projects, please refer to these resources:

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

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

jQuery Documentation Main Page:

System Requirements

Mileage Stats was designed to run on the Microsoft Windows 7 or Windows Server 2008 operating system. It has been smoke tested on Windows Vista and Windows XP. Before you can use Mileage Stats, the following must be installed:

Mileage Stats requires several external libraries which cannot be included in the download. These fall into two categories: NuGet packages and JavaScript libraries, which are explained in the Readme.


The following table contains links to help you get started with Project Silk.


Project Silk on the Microsoft Download Center

Project Silk book in PDF format

Project Silk guidance in .chm format (Note: the .chm is also included in the Project Silk download.)

Order Book

Project Silk: Client-Side Web Development for Modern Browsers is also available in paperback from

Getting Started

Read Me (includes installation instructions)


Mileage Stats Video


HTML5 Single-page Interfaces

Modular JavaScript with Plugins, and Widgets

Community Feedback and Support

CodePlex Community Site


End User Licensing Agreement (EULA)

Guidance Assets


The documentation provides an architectural overview of rich web applications and chapters that cover the design, concepts, patterns, security, testing, and implementation of Mileage Stats. This guidance also includes documentation that covers the Widget QuickStart and How-to topics on automated testing.

Table of Contents for Project Silk: Client-side Web Development for Modern Browsers.

Mileage Stats Reference Implementation (Mileage Stats)

Comprehensive sample application demonstrating a real-world, interactive, cross-browser, consumer-facing, rich web application. The reference implementation is intentionally incomplete, but does illustrate the core concepts, design patterns, coding patterns, security requirements, web technologies, and unit testing necessary for you to be successful.

Widget QuickStart

Small sample application that demonstrates how to use and develop jQuery UI Widgets.

Feedback and Support

To provide feedback about this deliverable, or to get help with any problems, visit the online Community site on CodePlex.

Project Silk is designed to be reused, customized, and extended. It is not a Microsoft product. Code-based guidance is shipped "as is" and without warranties. Customers can obtain support through Microsoft Support Services for a fee, but the code is considered user-written.

To provide feedback, please create and vote on work items in the CodePlex issue tracker.

Team Blogs

Stay informed and up to date about Project Silk and patterns & practices.


Blogs and Home Pages


Karl Shifflett


Don Smith


patterns & practices


Authors and Contributors

Project Silk was produced by the following individuals:

patterns & practices Team:

Microsoft Corporation

Christopher Bennage, Larry Brader, Bob Brumfield, Nelly Delgado, Alex Homer, Michael Puleio, Karl Shifflett, Don Smith

Southworks SRL

Geoff Cox

RDA Corporation

Dwayne Taylor


Poornimma Kaliappan, Hailin Wei, Hongran Zhou

Content Master Ltd

Aaron Sun, Nancy Michell


Ara Pehlivanian

Modeled Computation LLC

Colin Campbell, Roberta Leibovitz, and Katie Niemer

Many thanks to the following advisors who provided invaluable assistance:

Scott González, Mike Hostetler, Jonathan Sharp, and Andrew Wirick of appendTo, LLC; Adam Sontag of the jQuery UI Project; Mark M. Baker of BNA Software; Norman Headlam; Michael Kenyon of IHS, Inc.; Chris Love of Tellago; Dave Ward of Encosia; Bill Wilder; Rob Zelt of Digital Commute LLC

Rachel Appel, Rey Bango, John Bristowe, Doris Chen, Dan Dole, Barry Dorrans, Damian Edwards, Phil Haack, Simon Ince, Tim Laverty, Stuart Leeks, Steve Sanderson, Giorgio Sardo, Justin Saint Clair, Brandon Satrom, Chris Sells, Amanda Silver, and Brad Wilson of Microsoft Corporation


Next | Community