Mastering LOB Development for Silverlight 5: A Case Study in Action
Introduction
A lot of developers find themselves faced with the challenge of of creating a Line Of Business (LOB) application without much direction beyond the technical specifications of the application/system. Having been in that situation, working in a technology you may be unfamiliar with in a greenfield situation, I can attest to the fact that it is a daunting proposition. Especially with something as complex and powerful as Silverlight 5. When I was facing my first LOB application I would have cut a deal with the devil to have a fully fleshed example application that I could walk through and understand before I took on the challenge at hand. For those that are facing a situation like this or for even those, like me, that develop LOB apps every day, this is the book for you. Even as a seasoned developer, I found useful information in this book and I am keeping it close as a reference source going forward.
So what about the book?
I can sum it up in one word; Wow. This book is heavy on content and examples delivering
what it promises and more. With most titles that purport to cover the
development of applications, it seems that they are often heavy on theory but
very light on providing examples of how to apply the theory leaving the reader
to flee to The Code Project to find relevant sample code. That is not the case here. In
fact, there are times where the discussion of the samples take up more space
than the chapter that covered the concept being illustrated. This is
specifically why I liked this book. Because it walks the reader through the steps
to actually generate sample applications based on the concepts covered. It is like
a built-in blueprint that teaches you the why then proceeds to show you the
how. As a developer, I found this refreshing and was amazed that I didn’t have
to do any research on my own… everything I needed was in the book. And when I
did want to dive deeper on a subject, the additional resources at the end of
each chapter provided solid jumping-off points to the best content on the
Internet.
Even though the book targets LOB applications specifically,
and browser-based Silverlight more generally, I think there is good material
for any Silverlight developer. The book also covers the challenges/advantages
of OOB Silverlight applications giving the developer what they need to know to
successfully implement an OOB application. ...and I’m glad to say that the chapter
was much more than just ‘Set the OOB check box on in the project properties’. They authors actually address what that check box means and the ramifications on your project. They also cover trusted in-browser execution and what it takes to set that up. Overall, the
patterns and methods presented in the book are applicable across nearly every
type of SL application. I found myself even applying the knowledge gained from
this title to a Windows Phone 7 Silverlight application I’m working on. The
lessons and the knowledge in this book are both deep and wide with it casting a
net that is going to cover nearly everything needed to develop a SL app from
start to finish... whether it is a LOB app or not. As I said in the introduction, this is a book I am going to go back to for some time to come.
It is not only educational the first time through but will be useful as a
reference going forward.
There is a section on testing which I found especially useful since
testing of SL applications seems to be something that isn’t often talked about. It covers both server-side and client-side testing and talks about some of the different test runners, how to setup a SL project for testing, and even how to mock async calls.
Chapters on error handling techniques, consuming WCF web services, integrating
with the hosting HTML and JavaScript facilities, and finally, the section on
application security were all great and really illustrate the idea that the book
is about delivering LOB apps from end to end… Not just getting you to where
something is working and then leaving you to fend for yourself. There is even a
chapter dealing specifically with error handling/logging in SL apps and
demonstrating how to setup a centralized logging server. Admittedly, the example shows
integrating with TFS for bug tracking. I would have liked an example with
Log4Net as the back-end since that seems to be a popular approach. However, the overall
completeness of the case studies and the fact that all of these topics were even
covered was a pleasant surprise. The authors took into consideration the differences between SL 4 and SL 5 letting you know where those differences would impact your work and
provided guidance on how to handle them. (Clearly acknowledging that not everyone is working in SL 5 yet)
If there was something that struck me as missing it was a
chapter on long-polling or SignalR. A lot of applications, especially LOB, need
to be notified of changes on the server or in other clients and a discussion of
techniques to address that would have made this book 100% complete. Especially
since SignalR is going to be integrated into .NET. But, at the same time, I’m
willing to overlook this omission as a topic like SignalR is still relatively
new to the SL scene and, as it isn’t part of a production .NET release yet, I can see people
avoiding it in mission-critical LOB applications.
Conclusion
Overall, I found this to be an excellent book and a very
thorough blueprint for Silverlight LOB applications. If this is an area you
find yourself working in, this would be an excellent title to have on your
bookshelf. I've been so disappointed with so many titles like this before that I was really surprised and pleased on how useful the book is.
History
May 22 2012 - Initial Review
May 23 2012 - Added link to book on publisher's site