Author: Nick Lecrenski
Publisher: Wrox, 2010
Aimed at: C# programmers
Pros: Practical and insightful
Cons: Not an easy read
Reviewed by: David Conrad
This is a very unusual book. It isn't a tutorial or a reference work on Silverlight. It takes a project and then works its way through all of the different stages of design and implementation.
The project is also a real web site, www.MyFitnessJournal.com. You can visit it and use its facilities for real and might even get fitter in the process.
The next thing to point out is that this really is a website built using Silverlight. It uses ASP .NET pages to host the Silverlight plug-in and there is discussion of many issues relating to ASP .NET, but this is essentially about how to build a web application in Silverlight. This means that you are going to be using technologies that you might well be familiar with from desktop .NET application development - which is of course the whole point of using Silverlight.
This approach will come as a revelation to many readers and it is a proof in practice that the idea works.
This is not a beginners book and you need to have a grasp of C# programming, building a .NET desktop application, some idea of ASP .NET and web development in general. Chapter 1 provides a complete overview of the entire design. Chapter 2 moves straight on to consider the overall high-level design and how to make the site scalable and maintainable.
From here we have a series of chapters that deal with different aspects of the site. Signing a user up, navigation, a food log, an exercise log, data presentation, summaries and a journal social networking page. Chapter 10 extends the consideration to working with MySpace and Chapter 11 implements banner advertising via Google and payments via Pay Pal. The final chapter considers the hosting and deployment problem.
Each chapter starts with a consideration of the problem and a section called "user stories" helps to build an idea of the requirements. Then the design is considered and finally we move on to implementation.
Some readers may find the author's wide ranging comments on all things to do with programming too personal and off topic even. It is worth making the effort to put up with them because this is a case study in detail that is well worth studying. I say study rather than read because it is a lot of effort to follow, as is any code or project that isn't yours. The listings are also fairly long - which is reasonable for a complete web site - and occasionally difficult to read. You can download the code of course.
Some of the most valuable parts of the book are the comments and discussion around the code so don't feel obliged to study it all in great detail.
This is not a book for beginners but as long as you can program in C# and know something about creating web applications then this book will show you how a realistic project pans out.
This sort of experience is worth a lot and while this is not a book everyone will need to read it certainly is worth the effort if you are thinking of building a web application - it might even make you decide that Silverlight is the only way to do the job.