Good book on business apps and silverlight 4
Book review - "Pro Silverlight 4 in C#, by Matthew Mac Donald
ISBN-13: 978-1-4302-2979-7
Hi, I have read several Silverlight 4.0 books, this book happens to be more ?business application oriented?, it is more focused on building lob (line of business) applications in Silverlight. Therefore, it concerns itself more with how to retrieve database data, update, apply business logic and validation etc.
The first couple of chapters are the standard ?intro to Silverlight stuff? we would see in many Silverlight books. Things like what is Silverlight, how to get started with Silverlight, types of developer tools, what is XAML etc.
The really useful stuff starts at Chapter 4 in which the author talks about the Navigation Framework, which is basically what you get when you use the out of the box ?business application Silverlight template? in Visual Studio 2010. The author does a good job at describing the nuances of this navigation framework so developers could understand how to add different views into your Silverlight business application.
Chapter 5 is really useful as it explains how and why to use WCF RIA services. In Silverlight, without some type of service layer (SOA), data cannot usually be retrieved from databases. In other words, Silverlight out relies on service calls, rather than SQL calls to get data from a database server. WCF RIA services is a neat ?code generator? which can build much of the service plumbing (for both client and server side) from an existing database model (typically by using entity framework/linq or POCO objects). A more advanced topic that is also covered is how to create a WCF RIA services class library (dll) which allow greater reuse of RIA services among several Silverlight projects. Chapter 5, also explores the use of alternative service technologies such as WCF services, WCF DATA services (REST protocol) and even just plain HTTP requests (as in WebHTTP services).
Later chapters explore how to build data entry forms with Silverlight and how to ?tie the data? via binding and other ways into the actual live database data. The author goes on to describe how to ?validate the data? using special validator classes. In addition, once the author has built data entry forms, he explores how to submit the changes via change tracking and the ?domain datasource control? which is part of RIA services. It really allows the programmer to hand the responsibility to RIA services and let RIA services determine how the data has changed and how to update the backend database. It is similar in concept to an entity framework update or insert (for those of you who have dealt with entity framework ?contexts??
Chapter 8, is a must read, because it describes how to secure your Silverlight business application. Many business applications require some level of security to restrict access to the application via some sort of login credential. In addition, the level of security (typically these are known as ?roles?) also may be necessary to use to determine what type of operations the user can perform within the Silverlight business application. Many times, with Silverlight, we would user either ASP.NET forms authentication (AKA membership API), or possibly windows security (which would be most likely used for internal company applications).
The author goes on to explain things like styling your application, more advanced user interface topics with XAML and also how to develop your own Silverlight ?controls?.
Chapter 12 is also a must read because it describes the MVVM design pattern that many Silverlight programmers are adopting as the structure of their applications. While there is plenty of different opinions on how to implement MVVM, the consensus is that it makes your application much easier to develop and understand from an application programmers perspective.
Chapter 13 is an interesting read on how to bundle in printing and reporting into your Silverlight applications. One of the most common approaches would be to use a sql server report definition (rdl) or (rdlc). You could then render the output as PDF using native sql server reporting calls and then show the report within your Silverlight business application. This is covered nicely in the chapter.
Later chapters describe features such as out of browser and how to deploy Silverlight business applications.
Conclusion: All in all, this book is quite different from more generic Silverlight 4 books, because it is focused more on what a Silverlight business application would be required to do. It is relatively concise, weighing in at about 550 pages. I was impressed with the knowledge I received from reading the book and feel it is a worthy addition for those inclined to building Silverlight 4 business applications. I would recommend this book.