Project Silk subjective review part 1

Microsoft’s Patterns & Practices published a new guidance called Silk (

Project Silk provides guidance for building cross-browser web applications with a focus on client-side interactivity. These applications take advantage of the latest web standards like HTML5, CSS3 and ECMAScript 5 along with modern web technologies such as jQuery, Internet Explorer 9, and ASP.NET MVC3.

Inspired by Ayende’s review of a similar app I decided to write my own.


Silk release coincides with rumors about windows 8. When you look side by side on new win8 shots and silk they look quite similar. I belive Silk quidance will be to Windows 8 just like Prism(CAL) was to WPF and Silverlight.

If it seems to be that important it’s really worth to have a closer look.


Project Silk seems to have a broader perspective,  for now only one reference implementation is provided:

To illustrate this guidance, the project includes a reference implementation called Mileage Stats that enables its users to track various metrics about their vehicles and fill-ups. Much of the effort in building Mileage Stats was applied to the usability and interactivity of the experience. Animations were included to enhance the enjoyment of the site and AJAX is used to keep the interface responsive and immersive. A great deal of care was also taken to ensure the client-side JavaScript facilitates modularity and maintainability. To accomplish these design goals, the JavaScript code was structured into ?widgets? that benefit from the jQuery UI Widget Factory.


Silk project is really interesting, definitely worth a look and there are some very cool parts. But in my opinion you shouldn’t follow any guidance blindly. In my review I will focus on parts which in my personal opinion have room for improvements. Anyway i’m open to discussion should you have different opinion.

PS: My review is based on Project Silk Community Drop 13 – July 12, 2011.

Tagged , ,

3 thoughts on “Project Silk subjective review part 1

  1. Don Smith says:

    Hey Bartek,

    First of all, thank you for taking the time to review Project Silk. I’m on the Silk team and I would like to make myself available to you to answer questions if you have any. You should be able to see my email address on this comment.

    Just so you know, the project has not yet been finalized, but the team is finished with the code and working on finalizing the last few chapters in the guide. The form of feedback you’re providing isn’t the easiest for the team to work with (many people take pause with negative-only reviews), but we’ll take any feedback we can get – it’s very important to us. Perhaps I can be the most helpful if I understand your motivations with this effort ? what inspired you about Ayende’s review? For now, I’ll just try to add clarity in the areas you’re speculating.

    Politics. I can certainly see where you would come to the conclusion that Project Silk has something to do with Windows 8, especially with regard to the recent announcements. In this case, it’s just coincidence. The Windows team is being VERY secretive about what’s coming. We started this project in January (way before anyone knew anything) and most of us still don’t know anything about what’s coming (myself included). We did this project because there was an obvious trend that modern web development is putting a lot more focus on incorporating a well-designed UI with a focus on usability. This is traditionally not the strength of many web developers on the Microsoft platform. Most only focus on the server-side technologies. We didn’t spend a lot of time on the server-side part of Mileage Stats. Most of the team still thinks we spent too much time there. Based on what we were primarily focused on, we should have just used MVC Scaffolding and called it a day so we could get back to the front-end.

    Mileage Stats. Yes, you are correct. Mileage Stats is the only reference implementation in Project Silk. We also have a QuickStart that illustrates how jQuery UI widgets can be used and how they interact with each other, but it’s pretty small. The only other part of Project Silk is the written guide.

    I would encourage you to give diligence to not only the parts you feel have room for improvement, but call out the parts you agree are areas of guidance so your review is balanced and will be the most valuable to your readers.

    Thanks again,
    Don Smith

  2. Hi Don,

    Thanks for taking time to read my posts.

    Hm, I’m kind of dissapointed that code development is already finished. I can imagine that negative feedback may cause people to stall, but you already did an internal review of your own right?

    Ayende’s post inspired me because he clearly takes the voice when he sees things that upset him. That is the case with _parts_ of silk in my case. Silk is a guidance coming from P&P that means devs should look at it, learn and write apps in same (or close) way. I would expect it to be elegant, clear and not over-engineered(again i’m talking about parts, not app as the whole). Now, when beginner starts to learn develop software with Microsoft technologies she looks at the guidances and apps from Microsoft( at least I did) and tries to create software in similar way, but when those apps contain stuff that is questionable it’s repeated over and over (I also did). So such guidance’s should be top notch in any way.

    I can understand that Microsoft teams may a bit frustrated that some of the apps which get published( for example: silk, that guidance from ayende’s post or that wcms system but I forgot the name ) cause stirr and discussion, but hey we expect the best from you guys.

    Ok, Win 8 similarity may be just a coincidence.

    We didn?t spend a lot of time on the server-side part of Mileage Stats. Most of the team still thinks we spent too much time there. Based on what we were primarily focused on, we should have just used MVC Scaffolding and called it a day so we could get back to the front-end.

    I definitely agree that Silk would benefit from focus on UI and using only simple CRUD on the server side, without DDD-esque or CQRS-esque architecture, and call it only frontend guidance or composite js guidance.

    Thanks for the encouraging words but the really interesting parts – jquery widgets, javascript event aggregators are already covered in your docs. So maybe as a last post in series i just point to that.

    Thanks for feedback!

  3. […] Silk best practices. One independent developer who definitely perceives this trend is Poland-based Bartek Szafko, who wrote last July, "When you look side by side on new Win8 shots and silk they look quite similar. I believe Silk […]

Leave a Reply

Your email address will not be published. Required fields are marked *