Announcing Next Generation Business Intelligence Software with Silverlight

I have been excited about Silverlight since Silverlight 1.1 Alpha was announced in early 2007. I have seen tremendous potential in the RIA technology from its inception. Being through the .NET 1.0 release in 2002 and seeing how Microsoft can make a powerful framework that can integrate with across their products made me feel secure that Silverlight was going to get full integration support by Microsoft. Fast forward to 2009 and we are in the third release of Silverlight. Silverlight has evolved tremendously and has caught up feature-wise with Adobe's RIA products (Flash, Flex, AIR) and is ahead in some features. If you have been following this blog or my identity online, you are aware I am very passionate about the technology well beyond a Flash alternative. I think Silverlight often gets compared to other RIAs and does not properly distinguish its attributes that make it a great business RIA. Features like enterpise service integration (WCF, .NET RIA Services), HD Smooth Streaming, SharePoint (web parts), Bing SDK/Map integration, cloud computing (Azure), mobile, parallel computing, etc., are not amplified enough.
One of my complaints is that the message of what this technology can accomplish in a business environment is currently being under-represented by the online community and Microsoft. It is easy to find an article on how to do a flip animation or bind to a datagrid. However, I think Silverlight needs to be represented better as a busines tool and how the RIA architecture can be applied to solve real business problems. Take a look at the list of books available for Silverlight (http://www.silverlightshow.net/Books.aspx). Looking at the list, you will notice that a majority of the books are essentially intros to Silverlight features. Some of the books have different names, but essentially you are not getting an application of the technology to solve business scenarios. Don't get me wrong; some of the books I have read truly stand out (i.e., John Papa's Data Driven Services, SharePoint Dev using Silverlight, Jeff Paries's Foundation Silverlight Animation) and go well beyond listing object properties and show you how to apply advanced engineering concepts using Silverlight. However, I saw an opportunity to provide a resource that shows how Silverlight can be applied to solve business problems.
Over the last two years, I have had the opportunity to use Silverlight in the enterprise and saw its potential for delivering Business Intelligence (BI) solutions. Silverlight's ability to execute on the client and deliver visual intelligence makes it a fanastic option to surface interactive Business Intelligence analytical modules. I decided to combine my experience of designing Business Intelligence solutions and apply these principles to Silverlight in a new book. After about six months of work, I am pleased to announce my book Next Generation Business Intelligence Software with Silverlight 3. The book will be available in the October/November timeframe and is currently listed as a pre-order on Amazon, Barnes and Noble, etc.
What will you learn from investing in this resource?
Covering the entire scope of BI and applying these concepts to Silverlight applications is simply not realistic in one single resource. Even if I had the option of writing 750 pages or more, important facets of BI would be missed. Therefore, I decided to focus on the presentation tier of Business Intelligence applications. For example, I didn't think it was fair to focus on the data and services tier with these technologies going through a rapid implementation and tooling evolution (RIA Services, WCF REST, Oslo, ADO.NET Data Services 1.5, etc.). However, Silverlight's rendering and client processing engine is mature enough to warrant a guide on how to implement client-side BI concepts. Therefore, topics like visual intelligence, data visualizations, predictive analytics, collective intelligence, interactive tools, parallel computing, working with large data sets, etc., are covered in my book on the presentation tier.
Who is this book for?
This book has three intended audience segments and their goals:
- Silverlight Developers - Learn how to extend your Silverlight knowledge in real-world applications. Learn the basics of Business Intelligence 2.0.
- Business Intelligence Professionals - Get a better understanding of how Silverlight can help you overcome some of the challenges to implement simple BI tools.
- Strategic Decision Makers (architects, CIO, technical director, etc.) - Understand if Silverlight is the right platform to deliver BI software.
What is the chapter list?
- The first chapter (Business Intelligence 2.0 Defined) is an introductory chapter to Business Intelligence. This chapter will introduce BI and the new wave of BI 2.0. The content will show how Business Intelligence is evolving and embracing new software development advancements. This chapter will contrast classic BI and BI 2.0 by showing numerous examples of current software offerings. Lastly, this section will define the core items of BI 2.0 which will be implemented throughout this book using Silverlight.
- The second introductory chapter (Advantages of Applying BI 2.0 Using Microsoft Silverlight) introduces the Microsoft RIA technology: Silverlight. This chapter is dedicated to analyzing the current Microsoft Business Intelligence product vertical and providing opinions why Silverlight is a good fit for implementing Business Intelligence tenets. After reading this chapter, you will understand the key enterprise and business integration features of Silverlight that will be discussed in this resource.
- Chapter Three (Silverlight as a BI Client) looks at what makes an effective BI client. It goes on to specifically detail Silverlight tools and features that can be used to create a fantastic functioning analytical experience. The chapter goes into specific functionality such as LINQ data queries, business algorithm implementations and local storage.
- In Chapter Four (Adding Interactivity to BI Data), the information from the previous chapters is used to show how to use Silverlight to bring interactivity to BI applications. This chapter will teach by example on how to add simple interactions that can make a BI client easier to use and feel more fluid. It concludes with how these concepts can be leveraged for future designs with multi-touch screens to create the ultimate interactive experience.
- Chapter Five (Introduction to Data Visualizations) is the first chapter in a series of chapters about Visual Intelligence. The content in this chapter will show the empirical advantages of creating a visual representation of data versus classic tabular layouts. This chapter shows how visualizing data has matured and grown over the last several years. The concept of natural visualizations is introduced by defining the different characteristics and Silverlight implementations.
- Chapter Six (Creating Data Visualizations for Analysis) continues to build on the visual intelligence topic by showing how to enhance data visualizations with features to make turn them into analytical tools. This chapter will show you how to create advanced visualizations by extending the default Silverlight data visualization presentation.
- Chapter Seven (Enhancing Visual Intelligence in Silverlight) is the last chapter that focuses on creating complex composite data visualizations. You will also see how Silverlight as a professional visual intelligence environment can implement BI 2.0 functionality.
- Chapter Eight (Applying Collective Intelligence) introduces collective intelligence as a form of social Business Intelligence. This chapter defines the importance of Collective Intelligence on the web today. Furthermore, you will see how Silverlight can be used to gather and surface Collective Intelligence to users.
- Chapter Nine (Predictive Analytics) will describe how to integrate forward-looking data structures in our client logic to perform "what-if" scenarios. This chapter will also show how statistics used on aggregates can deliver instant insight on future events.
- Chapter Ten (Improving Performance with Concurrent Programming) is an advanced chapter that covers additional enhancements that can be gained by using multiple cores to aid in BI calculations. You will see how you can enhance the performance of BI modules by leveraging Silverlight’s advanced CPU and GPU programming features.
- Chapter Eleven (Integrating with Business Intelligence Systems) is a chapter that shows you how to apply the concepts that you have learned and integrate them into new solutions or existing BI systems. Silverlight in an SaaS delivery model as well as Silverlight web parts are covered in this chapter.
- Appendix A (Prototyping Applications with Dynamic Data) includes a short primer on prototyping data applications in Microsoft Expression Blend 3. This short section provides a quick overview on how to use Blend’s dynamic data feature to quickly create and add data to UI functionality without having to spend time architecting databases and services. This is a powerful tool to prototype BI 2.0 analytical modules without needing access to large-scale data repositories.
Companion Web Site
In addition to providing the source code and samples with this book, I have decided to create a companion web site for this resource. I don't think it would be fair for me to claim that this book can be fully understood by non-Silverlight developers if all that was provided was a zip file with source code. The companion web site will include all of coding scenarios as live demos which will allow readers without the full Silverlight development environment to fully understand the content. Furthermore, it will include the source code and samples that were not covered in detail in the book. I plan to use the companion web site as a vehicle to deliver further information on Business Intelligence and Silverlight in the form of web resource links, training videos, whitepapers and more advanced examples. I am currently working on the companion web site and it will be launched when the book is closer to being published.
If you are a Silverlight developer or interested in Business Intelligence, I encourage you to give my book a try to see how visual and interactive analytical tools can be delivered to average users with Silverlight.
Sample Content of What You Will See In This Book
Creating a Silverlight Predictive Analytics Tool to estimate future sales revenue
Optimizing Data Processing with Concurrent Programming (looks scary; it really isn't)
Learn about distributive client-side architecture for BI
Silverlight as an enterprise Visual Intelligence Environment (Trellis Data Visualization with KPI goals)
Don't worry if this is all alien to you...I will walk you through BI 2.0 fundementals as well...

Beginning Silverlight 2 From Novice to Professsional - Book Review
Quick Summary
Pros:
- Excellent book for anyone getting into Silverlight 2
- Detailed step-by-step exercises cover the core of Silverlight
- Code is simple and easy to follow. Does not introduce unecessary syntax sugar/advanced techniques that could confuse a beginner reader
- Well organized. This resource is a perfect example why a Silverlight novice should bye a book and not try to read from blog articles (which can contain misleading information)
- Code exmamples work (I did not try all of them). The ones I tried work spot on.
- Delivers what it promises: a very good introduction to the core foundation of Silverlight 2 that can be built upon in future training or resources
Cons: - Does not cover some basic steps that could confuse Silverlight novices
- A chapter dedicated to installing the Silverlight 2 SDK, plug-in, Control Toolkit and Expression Blend 2 SP1 together would have been welcome
- "Introduction to Expression Blend" chapter completely fails to mention that SP1 is required for Silverlight 2 development. Having this critical piece of information missing from the resource is completely inexcusable as it will make the exercises unusable.
- Does not provide much "resource value". Once the reader has consumed the core information, only several chapters are worthy of several re-reads.
- Truly for beginners only. If you have done some WPF development or have done some basic prototyping with Silverlight, this book is not for you.
Detailed Chapter Overview
Chapter 1 - Welcome to Silverlight 2
This chapter introduces Silverlight 2 to the reader. The introduction is short and to the point and explains what Silverlight is and what other analogous technologies are out there. Not much to say about this chapter other than it is a good introduction.
Chapter 2 - Introduction to Visual Studio 2008
My least favorite chapter in the book. It feels completely out of place. This chapter introduces Visual Studio 2008 and goes over some key new features inside Visual Studio 2008: JavaScript intellisense, Multi-Targeting Support and Transparent Intellisense Mode (These features are not used throughout the book). The chapter introduces us with the first exercise "Building Your First Silverlight Application". The exercise is very detailed (includes screen shots in key areas) and to the point. If you are at a book store and considering this book, focus on the exercise starting on Page 29 as it is very indicative of type of exercises you will see in the book. This chapter feels like it belongs as an appendix resource. I would have rather seen this chapter replaced with a chapter on installing Silverlight 2 SDK, Visual Studio 2008, Expression Blend 2 SP1 together.
Chapter 3 - Layout Management in Silverlight
This chapter is very good on explaining how layout management works in Silverlight. It introduces the main controls that govern layer control: canvas, stackpanel and grid. There are plenty of exercises with screen shots that describe what each one does. The layout management topic is absolutely essential in order to be able to understand how Silverlight design works. The location of this chapter in regard to the other chapters is perfect. Developers that are not coming from a WPF/RIA background will find this chapter very informative and valuable in understating how Silverlight applications should be designed.
Chapter 4 - Silverlight Form Controls
This chapter introduces some of the base controls that make up the Silverlight 2 runtime. The former part of the chapter introduces the syntax, properties and events associated with controls. The latter part deals with some exercise dealing with several controls. This chapter is very similar to Chapter 3 in that it is very well positioned in the book and the exercises do a very good job in conveying the necessary information.
Chapter 5 - Data Binding and Silverlight List Controls
This part of the resource introduces how binding works in Silverlight and then gives some detailed examples using the DataGrid/List controls. Binding is a critical component of data-driven applications and how their information is consumed by the UI controls. The binding component of this chapter is very well put together. It introduces the concept and gives the reader just enough information for them to "be dangerous". Binding in Silverlight has many facets to it and can be complex. This chapter doesn't try to overwhelm the reader with all of that information. Having said that, if you are familiar with WPF binding, this part of the chapter will be nothing new (WPF data binding is signifigantly more complex than Silverlight's model).
The latter part of the chapter deals with consuming the data via binding inside a DataGrid and a List control. The exercises show the reader the basics of consuming the data and presenting it in a nice way to the end user. This part is very well done and one of the strengths of the book.
Chapter 6 - Data Access and Networking
This chapter talks about a very important concept in Silverlight of being able to request data from outside storage. Silverlight cannot consume data directly from a database; therefore, understanding the network stack is essential for a Silverlight beginner. This chapter covers two essential types of network communication in Silverlight: services and sockets. Examples of both are provided in the book. They are good examples; however, they are geared more for the beginner. You would not want to follow these techniques in a real-world scenario; however, this does not fault the book in any way as it is meant as a novice introduction.
Chapter 7 - Local Storage in Silverlight
This is probably the most "fun" chapter for the reader as it covers the topic of local storage very well. Furthermore, at this point in the book, the reader is finally presented with a well-crafted Silverlight exercises that shows off the power of Silverlight. I really like the way the author presented the chapter and then introduces an exercise that builds on itself. Isolated Storage is another one of those concepts that makes Silverlight unique and not just another fancy Web 2.0 technology. It is a very powerful tool and the exercise presented in the chapter reinforces this very well.
Chapter 8 - Introduction to Expression Blend
This chapter is all about the design tool arm of Silverlight: Expression Blend 2 SP1. The chapter starts off by speaking to the necessity of having a design tool because of Silverlight's rich UI. My problem with this chapter (and the book as a whole) is that it doesn't provide all the information on Blend. For Silverlight 2 development, Blend 2 SP1 is required. Otherwise, your XAML design will simply not work. This omission is completely inexcusable. Furthermore, some links and overview of Expression Studio would have been nice. This is a very frequent hiccup to developers new to Silverlight as they get confused by what Expression is.
The core of this chapter essentially introduces the tool and all its parts. Even though I am critical of some of the omissions I listed above, the information here is very good for the beginner to understand where to find the design tools and how Blend is organized spacially in panels/toolboxes.
Chapter 9 - Styling in Silverlight
This is another fantastic chapter in this book, which is finally getting into some "meaty" parts of Silverlight. This chapter covers the topic of styling. The author does a real good job of introducing styling from inline properties, user control styles to application styles via XAML and Blend. The author goes over a key part of styling that other blog articles constantly miss, which is the styling hierarchy and how it is applied to the control. The concepts are presented with examples and screen shots like other chapters; however, this is where the layout of the book shines as it conveys a not so easy topic with ease.
Chapter 10 - Transformations and Animation
This part of the resource covers animations which are a core component of the Silverlight framework. This chapter is very solid; however, the novice reader absolutely must try the examples provided to fully comprehend the information. To no fault of the book, the different animations and transformations available in Silverlight are much easier appreciated online rather than the book. On a website you can clearly see what the animation/transformation is supposed to do.
Chapter 11 - Custom Controls
The last chapter in this book covers custom controls and why/how you would want to write them. This chapter is definitely the most complex part of the book and it is rightfully located as the last chapter. The chapter introduces the best practice model (Parts & States) that Microsoft recommends in creating custom Silverlight controls. Furthermore, dependency properties are explained and why they are key in custom controls. The latter part of the chapter covers an example of creating a custom button following the best practice of creating custom controls. This was one of my favorite chapters; however, I am not sure it fits well into an intro book for Silverlight. One could make the argument that this chapter could have been replaced with a chapter exclusively on the Silverlight Control Toolkit or Silverlight's rich media capabilities (which is suprisingly missing from the book completely).
Summary
Robert Lair's Beginning Silverlight 2 book is an excellent resource for developers that want to get learn Silverlight 2. The book is laid out very well chronologically and each section is clear and includes step by step examples and screen shots. The code examples are written in C# using concise and simple syntax, which allows the reader to focus on understanding the new concepts rather than trying to understand syntactic sugar. One of my presonal tests for using a book rather than online material is how much material does it offer beyond online resources (which are largely free). Robert's book does that very well in that regard as trying to find all of the core Silverlight knowledge in one place without having a lot of misinformation is hard. However, the book is missing a section on installing a Silverlight development with all the tools and I think that would be very valuable for Silverlight novices. If find that many developers new to Silverlight are suprised how many tools are out there from the obvious ones like Blend to the less prevelant ones like Expression Web or Media Encoder. This book delivers an intro to Silverlight spot on. However, it does this almost too well as anyone familiar with WPF/Flash won't get too much out of this as a resource. In conclusion, I would definitely recommend this book to any developer that wants to invest in the future and get their head around the core foundation of Silverlight.