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 |
patterns & practices Developer Center
September 2011
Summary
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:
http://docs.jquery.com/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:
- Microsoft Visual Studio 2010 Professional, Premium, or Ultimate edition
- Microsoft Visual Studio 2010 SP1
- ASP.NET MVC 3
- Microsoft SQL Server Compact 4.0
- ADO.NET Entity Framework 4.1 - Update 1
- You should download and install Entity Framework from the Microsoft Download Center rather than using NuGet.
- For information about the Entity Framework 4.1 release, see EF 4.1 Released.
- For information about the Entity Framework 4.1 - Update 1 release, see EF 4.1 Update 1 Released.
- NuGet version 1.4 or later
- Internet Explorer 9 or another modern web browser. Firefox 3.x is not supported. Use Firefox 4.0.1 or higher.
- Optional:
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.
Resources
The following table contains links to help you get started with Project Silk.
Downloads |
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 Amazon.com |
Getting Started |
Read Me (includes installation instructions) |
Presentations |
|
Community Feedback and Support |
|
License |
Guidance Assets
Documentation |
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.
Name |
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 |
VanceInfo |
Poornimma Kaliappan, Hailin Wei, Hongran Zhou |
Content Master Ltd |
Aaron Sun, Nancy Michell |
Contractor |
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