Friday, September 9, 2011

Silverlight Enterprise Application Development

Silverlight is a popular platform for building enterprise applications because of its ease of delivery via the web and consistency across browsers and platforms. Most of the existing guidance is simple with introductory examples and basic content for building applications. Enterprise developers need a resource that provides a set of repeatable best practices and patterns to empower them to quickly and efficiently build line of business solutions using Silverlight. I wanted to tap into my years of experience building large commercial applications using Silverlight to provide the solutions to common and advanced scenarios that are often encountered when architecting software solutions. While I've tried to cover some of that through my blog, my readers have been asking for something far more in-depth and comprehensive.

A common complaint I receive from developers at large, via blog comments and at user group meetings, is that they cannot find a substantial resource that provides best practices and patterns for building large, scalable, modular Silverlight applications in the enterprise. I wanted to tackle advanced topics such as methods to move data across the wire, ways of sharing behavior between the client and the server, when to build modular extensions that load on demand and how to debug and profile Silverlight applications. The end result thanks to Addison-Wesley is a book that will not only provide a step-by-step approach with rich code examples for each topic, but will relate the solutions to actual case studies of production enterprise applications that the I have worked with. The book focuses on Silverlight 5 which will be released at the end of 2011. Silverlight has remained backwards compatible since version 3 and therefore any concepts or techniques should be relevant for future versions of the product as well. I also set out to provide valuable alternative perspectives for seasoned Silverlight developers.

I'm very excited to announce Designing Silverlight Business Applications: Best Practices for Using Silverlight Effectively in the Enterprise (Microsoft .NET Development Series)— a reference book with mini-tutorials that provides rich code examples, application frameworks, and case studies. It will include a rich glossary and set of references for existing tools and resources to supplement the information provided. A set of source projects supplements the book and will be hosted on the publisher web site for easy access and download by the reader.

While this book will not be available until early 2012, I wanted to share with you the opportunity to help influence how it is written and what topics are covered. Safari Books has a program called "Rough Cuts" that allows me to publish drafts of the book before they are published. You can read the text, receive updates as the book evolves and provide feedback to me about the book so I can help make it the best possible product when it goes to market. It is for the readers of the blog that I took on the project to write this book and I hope you will take the opportunity to read, provide feedback, and help me evolve this book to fit your needs for writing quality Silverlight code for line of business applications.

You can access the Rough Cuts version of the book online at this link. Even if you're not interested in the program, I suggest trying the link because it provides some limited previews of the existing chapters. For those of you interested, the current table of contents looks like this:

  1. Introduction
  2. Getting Started
  3. Introduction to XAML
  4. Advanced XAML
  5. The Visual State Manager
  6. Data-binding
  7. Model-View-ViewModel (MVVM)
  8. The Managed Extensibility Framework (MEF)
  9. Testing
  10. Navigation
  11. The Service Layer
  12. Persistence and State Management
  13. Out-of-Browser Applications
  14. Silverlight in the Enterprise
  15. Debugging and Performance Optimization

I'm excited to be a part of the project and to share it with you. I can't tell you how many times I've been asked via e-mail or at a user's group "So when are you going to write a book about this?" The answer is, "Right now!" Preview the free excerpts and participate in feedback as I write and edit the final chapters at Safari Rough Cuts online.

Jeremy Likness


  1. Wow! Congrats on the book deal. I always enjoy your insight on your blog and will definitly be buying your book. Keep up the good work!

  2. Hi, I do not see in what this book is particularly usefull for building LOB applications... The content of the chapters look like any other Silverlight book. Not that I judge the quality of something I did not read. Just from here, I don't see what this book will bring me that other non LOB oriented books do bring as well...

  3. @mj1856 - thanks for the kind words!

  4. @John, I appreciate your feedback.

    The higher level topics covered are similar to other books. The difference is in the detail within those chapters. For example: in Xaml I'm not just giving an inventory of controls but rather cover more advanced topics like custom type converters and custom markup extensions. Navigation doesn't just give lip service to the navigation framework but dives into region management and other more advanced patterns, the service layer goes in depth on strategies for getting objects across the wire (i.e. WCF RIA vs. JSON vs. WCF etc.) and handling sequential asynchronous operations, etc.

    It also provides many links into case studies for actual projects and how the problems were solved, which is something I'm asked a lot.

    I believe the most important factor is something that is unique to every book - that it's written in my voice, style, and approach. That doesn't make it better than other approaches, just different. People learn in different ways and I'm taking cues from the feedback I've received from readers who have shared what they enjoy about my approach to teaching content.

  5. Just wanted to say I like what I've read so far. Appreciate the fact that you're writing in what feels to me more like an application scale rather than at a more atomic level of detail.

  6. I like your articles. An advanced silverlight book from an expert - the dreams come true :)

  7. Jeremy,
    Love your Jounce work so much, On reading this I've instantly signed up to buy and download the book. I'm looking forward to watching it's progress over the coming months.
    I'd also recommend other readers of this post to check what Jeremy has to say, as I've found his approach to many of the issues that crop up during large scale developments have always proven to be sound.
    Thank you for investing in the development community as a whole.
    Kind regards,
    Perth, Australia.

  8. are you only going to cover MEF? Or is there some room for a (small) PRISM chapter?

  9. @Darrix, thanks for the feedback!

    @Denis, I appreciate you!

    @Sam, thanks for sharing your thoughts and jumping in early, that will certainly help improve the quality of the final product. You will see that Jounce features prominently in the examples as the book progresses.

    @Geert, the book covers MVVM/MEF comprehensively after they are introduced using Jounce and all of the concepts/techniques should be applicable to Prism as well.

  10. For long i was loking for a book for Silverlight Enterprise Application development especially with MVVM/MEF. Your book seems to be the one i will consider to buy, but the contents listed doesnt include anything about authentication, authorization, authorization based xap download and security. I hope you can include these topics too.