You are previewing Silverlight 4 Business Intelligence Software.
O'Reilly logo
Silverlight 4 Business Intelligence Software

Book Description

Business Intelligence (BI) software allows you to view different components of a business using a single visual platform, which makes comprehending mountains of data easier. BI is everywhere. Applications that include reports, analytics, statistics, and historical and predictive modeling are all examples of BI. Currently, we are in the second generation of BI software—called BI 2.0—which is focused on writing BI software that is predictive, adaptive, simple, and interactive.

As computers and software have evolved, more data can be presented to end users with increasingly visually rich techniques. Rich Internet Application (RIA) technologies such as Microsoft Silverlight can be used to transform traditional user-interfaces filled with boring data into fully interactive analytical applications that quickly deliver insight from large data sets. Furthermore, RIA applications now include 3D spatial-design capabilities that move beyond a simple list or grid and allow for interesting layouts of aggregated data. BI 2.0 implemented via an RIA technology can truly bring out the power of BI and deliver it to an average user on the Web.

Next-Generation Business Intelligence Software with Silverlight 4 provides developers, designers, and architects with a solid foundation in BI design and architecture concepts for Microsoft Silverlight. This book covers key BI design concepts and how they can be applied without an existing BI infrastructure. Author Bart Czernicki provides you with examples of how to build small BI applications that are interactive, highly visual, statistical, predictive—and most importantly—intuitive to the end-user.

BI isn't just for the executive branch of a Fortune 500 company—it is for the masses. Let Next-Generation Business Intelligence Software with Silverlight 4 show you how to unlock the rich intelligence you already have.

Table of Contents

  1. Copyright
  2. About the Author
  3. About the Technical Reviewer
  4. Introduction
    1. Who Should Read This Book?
      1. Silverlight Developers or Architects
      2. BI Professionals
      3. Strategic Decision Makers in Technology
    2. Technical and Nontechnical Audiences
    3. Why Should You Invest in This Book?
    4. Chapter Roadmap
    5. What Is Not Covered in This Book?
      1. Why Aren't Data Services Covered in This Book?
    6. Following the Coding Exercises in the Book
      1. Software You Need to Follow the Exercises
    7. Companion Web Site
    8. What about Silverlight 3 Support?
    9. Author on the Internet
  5. 1. Business Intelligence 2.0 Defined
    1. 1.1. The Need to Make Better Decisions
    2. 1.2. Decision Support Systems
    3. 1.3. Business Intelligence Is Born
    4. 1.4. Business Intelligence Defined
      1. 1.4.1. BI Terms
    5. 1.5. Architecture of a Business Intelligence System
      1. 1.5.1. Component Overview of a BI Architecture
        1. 1.5.1.1. Data Feeds
        2. 1.5.1.2. Extract-Transform-Load Process
        3. 1.5.1.3. The Data Warehouse
        4. 1.5.1.4. The BI Presentation Layer (Presentation of Knowledge)
        5. 1.5.1.5. Challenges of Bringing the BI Tiers Together
    6. 1.6. Business Intelligence 1.0 Implementation
      1. 1.6.1. BI 1.0's Intended Audience
        1. 1.6.1.1. Two Distinct Users of BI 1.0
        2. 1.6.1.2. Proper Understanding of BI Models
      2. 1.6.2. Applications
        1. 1.6.2.1. Static and Noninteractive Data
      3. 1.6.3. System Design
    7. 1.7. Business Intelligence 2.0 Implementation
      1. 1.7.1. How BI 2.0 Came to Be
        1. 1.7.1.1. Web 2.0
        2. 1.7.1.2. Agile Development Methodologies
        3. 1.7.1.3. Service Orientation
      2. 1.7.2. BI 2.0's Intended Audience
        1. 1.7.2.1. Empowering the BI 2.0 User
      3. 1.7.3. Applications
      4. 1.7.4. System Design
    8. 1.8. Comparison of Business Intelligence 1.0 and 2.0
    9. 1.9. Summary
  6. 2. Advantages of Applying Business Intelligence 2.0 Using Microsoft Silverlight
    1. 2.1. Industry Trends
      1. 2.1.1. Delivery to Multiple Platforms
        1. 2.1.1.1. The Desktop Platform
        2. 2.1.1.2. The Web Platform
        3. 2.1.1.3. The Mobile Platform
        4. 2.1.1.4. The Tablet Platform
      2. 2.1.2. Value in Services
      3. 2.1.3. Virtualizing Resources on the Cloud
    2. 2.2. What Is Silverlight?
      1. 2.2.1. The Silverlight Solution
        1. 2.2.1.1. Less Plumbing, More Designing
        2. 2.2.1.2. Leveraging the Power of .NET
        3. 2.2.1.3. It's All on the Client (Well, Mostly)
        4. 2.2.1.4. Next-Generation Interaction with Multitouch
        5. 2.2.1.5. Multiple Platforms and the Cloud
          1. 2.2.1.5.1. The Desktop
          2. 2.2.1.5.2. The Web
          3. 2.2.1.5.3. Mobile
          4. 2.2.1.5.4. The Tablet
          5. 2.2.1.5.5. The Cloud
    3. 2.3. Silverlight vs. Other RIA Technologies
      1. 2.3.1. Current State of RIA Technology
      2. 2.3.2. Silverlight's Position Among RIAs
      3. 2.3.3. Silverlight vs. HTML 5
        1. 2.3.3.1. Key New Features of HTML 5
        2. 2.3.3.2. HTML 5 Limitations
    4. 2.4. Silverlight: The Business RIA
      1. 2.4.1. Lessons from the Past
      2. 2.4.2. Leveraging Existing Development Investments
      3. 2.4.3. Moving to the Cloud More Easily
      4. 2.4.4. Integrating with Microsoft Products
      5. 2.4.5. Overcoming Silverlight's Weaknesses
    5. 2.5. The Microsoft Business Intelligence Platform and Silverlight
      1. 2.5.1. SQL Server BI
      2. 2.5.2. Microsoft Office BI
      3. 2.5.3. What Does Silverlight Have to Offer BI?
    6. 2.6. Summary
  7. 3. Silverlight as a Business Intelligence Client
    1. 3.1. Client Distributed Architecture
      1. 3.1.1. Distributed Architectures Defined
      2. 3.1.2. Problems with N-Tier Architecture
      3. 3.1.3. Scaling BI with the Client Tier
      4. 3.1.4. Is Business Intelligence on the client viable?
        1. 3.1.4.1. Microsoft Excel
        2. 3.1.4.2. PowerPivot for Microsoft Excel 2010
        3. 3.1.4.3. Pivot for Silverlight
        4. 3.1.4.4. Disconnected MOLAP
        5. 3.1.4.5. Summary
      5. 3.1.5. Business Logic on the Silverlight Client
        1. 3.1.5.1. First-Class Data Structures and Querying
        2. 3.1.5.2. Local Access to the DOM
        3. 3.1.5.3. Isolated Storage
        4. 3.1.5.4. Multithreading
        5. 3.1.5.5. Open and Save Dialogs
        6. 3.1.5.6. Visual Intelligence
        7. 3.1.5.7. OData Support
        8. 3.1.5.8. COM Automation Support
        9. 3.1.5.9. Printing Support
        10. 3.1.5.10. F# Language Support
        11. 3.1.5.11. Improvements to Expression Blend 4
    2. 3.2. Common Scenarios Handled with Silverlight
      1. 3.2.1. Coding Scenario: Working with Business Data
        1. 3.2.1.1. Querying Large Data Sets with LINQ
        2. 3.2.1.2. Lessons Learned
      2. 3.2.2. Coding Scenario: Decoupling Business Algorithms
        1. 3.2.2.1. Applying Business Logic with Data Binding and Value Converters
        2. 3.2.2.2. Lessons Learned
      3. 3.2.3. Coding Scenario: Persisting Local Data
        1. 3.2.3.1. In-Memory and Isolated Storage Caching
        2. 3.2.3.2. Lessons Learned
    3. 3.3. Summary
  8. 4. Adding Interactivity to Business Intelligence Data
    1. 4.1. User Interactivity
      1. 4.1.1. Importance of Good User Interactivity
      2. 4.1.2. Touch Interactivity
      3. 4.1.3. Silverlight and Interactivity Support
    2. 4.2. Interactivity with Business Intelligence Data
      1. 4.2.1. Types of Data Interactivity
        1. 4.2.1.1. Sorting
        2. 4.2.1.2. Data Paging
        3. 4.2.1.3. Filtering
        4. 4.2.1.4. Searching
        5. 4.2.1.5. Grouping and Pivoting Data
    3. 4.3. Applying Interactivity in Business Intelligence with Silverlight
      1. 4.3.1. Common Silverlight Controls for Data Lists
        1. 4.3.1.1. Data Grid
        2. 4.3.1.2. List Box
        3. 4.3.1.3. Tree View
      2. 4.3.2. Coding Scenario: Lazy Loading List Box Data
        1. 4.3.2.1. Importance of Lazy Loading
        2. 4.3.2.2. Lessons Learned
      3. 4.3.3. Coding Scenario: Interactive Data Paging with the Slider Control
        1. 4.3.3.1. Lessons Learned
        2. 4.3.3.2. Possible Enhancements
      4. 4.3.4. Coding Scenario: Fluent Data Filtering with the Slider Control
        1. 4.3.4.1. Lessons Learned
        2. 4.3.4.2. Possible Enhancements
      5. 4.3.5. Coding Scenario: Searching Data with the AutoCompleteBox Control
        1. 4.3.5.1. Lessons Learned
    4. 4.4. Summary
  9. 5. Introduction to Data Visualizations
    1. 5.1. What Are Data Visualizations?
    2. 5.2. Characteristics of a Data Visualization
      1. 5.2.1. Respect the Data
      2. 5.2.2. Simple and to the Point
      3. 5.2.3. Animations and Transitions
      4. 5.2.4. Interactivity
      5. 5.2.5. Widgets and Dashboards
    3. 5.3. Data Visualizations and Business Intelligence 2.0
      1. 5.3.1. BI for the Masses
      2. 5.3.2. Controlled Analysis
      3. 5.3.3. Ease of Use
      4. 5.3.4. Rich Interfaces
    4. 5.4. Challenges of Implementing Data Visualizations
      1. 5.4.1. Custom Controls
      2. 5.4.2. Need for Designers
      3. 5.4.3. Reinventing the Insight Wheel
      4. 5.4.4. Presenting Proper Insight
      5. 5.4.5. Not Knowing the Target Audience
      6. 5.4.6. Data Visualizations Might Not Be Enough
    5. 5.5. Data Visualizations and Silverlight
      1. 5.5.1. Out-of-the-Box Data Visualizations
      2. 5.5.2. Rich Rendering Engine and Design Tools
      3. 5.5.3. Data-Centric Processing
      4. 5.5.4. Integration with Microsoft Enterprise Services
      5. 5.5.5. Descry Framework
    6. 5.6. Coding Scenarios
      1. 5.6.1. Chart Data Visualizations
        1. 5.6.1.1. Lessons Learned
      2. 5.6.2. Building a Tag Cloud
        1. 5.6.2.1. Lessons Learned
        2. 5.6.2.2. Possible Improvements
      3. 5.6.3. Using Geographic Visualizations
        1. 5.6.3.1. Lessons Learned
    7. 5.7. Summary
  10. 6. Creating Data Visualizations for Analysis
    1. 6.1. Choosing a Visualization for Analysis
      1. 6.1.1. Determining Types of Analysis for Silverlight Visualizations
        1. 6.1.1.1. Comparing Parts of a Whole
          1. 6.1.1.1.1. Applying Chart Styles in Silverlight
        2. 6.1.1.2. Visualizing Trend Analysis
        3. 6.1.1.3. Comparing Ratios (Before and After)
        4. 6.1.1.4. Text Data
        5. 6.1.1.5. Geographical Data
        6. 6.1.1.6. Hierarchical Data
        7. 6.1.1.7. Other Visualization Types
      2. 6.1.2. Comparing Metrics to Organizational Goals
        1. 6.1.2.1. Reference Lines
        2. 6.1.2.2. Creating Visual KPIs for Scorecard Dashboards
          1. 6.1.2.2.1. Shape KPI Visuals (Stoplight indicators)
          2. 6.1.2.2.2. Trend KPI Visuals (Directional indicators)
          3. 6.1.2.2.3. Progress KPI Visuals (Rating indicators)
          4. 6.1.2.2.4. Advantages of Silverlight KPIs
    2. 6.2. Word-Sized Chart Visualizations
      1. 6.2.1. Types of Word-Sized Chart Visualizations
        1. 6.2.1.1. Sparklines
          1. 6.2.1.1.1. Applying Sparklines in Silverlight
        2. 6.2.1.2. Column Charts
          1. 6.2.1.2.1. Applying Word-Sized Column Visualizations in Silverlight
        3. 6.2.1.3. Data Bars
      2. 6.2.2. Other Candidates for Word-Sized Charts
    3. 6.3. Summary
  11. 7. Enhancing Visual Intelligence in Silverlight
    1. 7.1. Workflow Visualizations
      1. 7.1.1. Workflows in Silverlight
    2. 7.2. Using Graphical Symbols
      1. 7.2.1. Creating Graphical Assets
      2. 7.2.2. Visualization Layout
    3. 7.3. Creating Composite Visuals for Analysis
      1. 7.3.1. Creating a Cross-Tab Data Visualization
      2. 7.3.2. Silverlight Cross-Tab Implementation
        1. 7.3.2.1. Why a Cross-Tab Implementation?
      3. 7.3.3. Improving the Implementation
    4. 7.4. Visualizations for the Environment
    5. 7.5. Comparing Non-Silverlight Solutions
      1. 7.5.1. Other Development Environments
      2. 7.5.2. Visual Intelligence Vendors
      3. 7.5.3. Silverlight as a Visual Intelligence Engine
    6. 7.6. Coding Scenario: Providing the User Visualization Options
      1. 7.6.1. Lessons Learned
      2. 7.6.2. Possible Improvements
    7. 7.7. Summary
  12. 8. Applying Collective Intelligence
    1. 8.1. What Is Collective Intelligence?
      1. 8.1.1. Collective Intelligence and Web 2.0
        1. 8.1.1.1. The User Is Always Right
        2. 8.1.1.2. Content Is the User
        3. 8.1.1.3. Classifying Collective Intelligence Data
      2. 8.1.2. Collective Intelligence as BI 2.0 Applied
      3. 8.1.3. Advantages of Applying Collective Intelligence
        1. 8.1.3.1. Measuring Collective Intelligence
    2. 8.2. Collecting and Displaying User Content
      1. 8.2.1. Collecting User-Generated Data
        1. 8.2.1.1. Keeping It Simple
        2. 8.2.1.2. Explicit Data Collection
        3. 8.2.1.3. Implicit Data Collection
        4. 8.2.1.4. Data Collection in Silverlight
      2. 8.2.2. Displaying User-Generated Data
      3. 8.2.3. Example of Collective Intelligence in Blogs
      4. 8.2.4. Collective Intelligence UIs with Silverlight
      5. 8.2.5. Collective Intelligence in the Enterprise
    3. 8.3. Coding Scenarios
      1. 8.3.1. Coding Scenario: Working with the Rating Control
        1. 8.3.1.1. Lessons Learned
        2. 8.3.1.2. Possible Improvements
    4. 8.4. Summary
  13. 9. Predictive Analytics (What-If Modeling)
    1. 9.1. What Is Predictive Analytics?
      1. 9.1.1. Predictive Analytics Overview
        1. 9.1.1.1. Classic Predictive Analytics with What-If Analysis
      2. 9.1.2. Delivering Predictive Analytics Faster with BI 2.0
      3. 9.1.3. Choosing Correct Data Sets for Predictive Models
      4. 9.1.4. Implementing the Proper Tier for Predictive Analysis
    2. 9.2. Benefits of Applying Predictive Analytics
      1. 9.2.1. Bringing Out Additional Value to Existing Data
      2. 9.2.2. Translating Assumptions into Decisions
      3. 9.2.3. Being Proactive Instead of Reactive
      4. 9.2.4. Gaining Competitive Advantage
    3. 9.3. Applying Forward-Looking Models in Silverlight
      1. 9.3.1. Using a Functional Language (F#)
      2. 9.3.2. Designing Predictive Models Using Silverlight
        1. 9.3.2.1. Predictive Models with Aggregated Data Sets
        2. 9.3.2.2. Building the Profit Forecast Control
        3. 9.3.2.3. Communicating Between Local Controls
        4. 9.3.2.4. Key Highlights
      3. 9.3.3. Deployment Using the Plug-In Model
    4. 9.4. Coding Scenario: Applying a Statistical Model to Predict Future Behavior
      1. 9.4.1. Part 1: Creating the UI and Applying a Static Predictive Model
      2. 9.4.2. Part 2: Creating an Interactive and Visual Predictive Model
      3. 9.4.3. Lessons Learned
      4. 9.4.4. Possible Improvements
    5. 9.5. Summary
  14. 10. Improving Performance with Concurrent Programming
    1. 10.1. Concurrent Programming Defined
      1. 10.1.1. Processor Architecture Shift to Multiple Cores
      2. 10.1.2. Taking Advantage of Multicore Architectures
      3. 10.1.3. Multithreading vs. Parallelism
        1. 10.1.3.1. Multithreading
        2. 10.1.3.2. Parallelism
    2. 10.2. Silverlight Concurrent Programming Features
      1. 10.2.1. Multithreading Support
        1. 10.2.1.1. Silverlight Multithreading Essentials
        2. 10.2.1.2. Using the BackgroundWorker Class
        3. 10.2.1.3. Asynchronous Workflows in F#
        4. 10.2.1.4. Using the Network Stack Asynchronously
      2. 10.2.2. Concurrency and Rendering
        1. 10.2.2.1. Improving Business Application Performance
      3. 10.2.3. Silverlight Concurrent Programming Limitations
        1. 10.2.3.1. No Parallel Extension Support
        2. 10.2.3.2. Missing Concurrency Programming Essentials
        3. 10.2.3.3. Do Not Block the UI Thread
        4. 10.2.3.4. Missing Implementations in the Framework
    3. 10.3. Coding Scenarios
      1. 10.3.1. Coding Scenario: Improving the Performance of the UI
        1. 10.3.1.1. Lessons Learned
        2. 10.3.1.2. Possible Improvements
      2. 10.3.2. Coding Scenario: Improving Computational Processing Performance
        1. 10.3.2.1. Part 1: Getting the Project Ready for Concurrency
        2. 10.3.2.2. Part 2: Designing a Two-Thread Solution to Improve Performance
        3. 10.3.2.3. Part 3: Dynamic Concurrency and Performance Analysis
        4. 10.3.2.4. Lessons Learned
        5. 10.3.2.5. Possible Improvements
      3. 10.3.3. Additional Coding Scenarios on the Companion Web Site
    4. 10.4. Summary
  15. 11. Integrating with Business Intelligence Systems
    1. 11.1. Architecting for Business Intelligence Systems
      1. 11.1.1. Infrastructure and Software Requirements
        1. 11.1.1.1. Non-Microsoft Infrastructures
      2. 11.1.2. New BI 2.0 Applications
      3. 11.1.3. Integrating with Existing BI Investments
        1. 11.1.3.1. Basic Integration
        2. 11.1.3.2. Communicating Between Separate Silverlight Applications
    2. 11.2. Silverlight in the SaaS Model
      1. 11.2.1. SaaS for BI
      2. 11.2.2. SaaS Features Implemented in Silverlight
        1. 11.2.2.1. Centralized Management of Service Delivery
        2. 11.2.2.2. SaaS Maturity Model
          1. 11.2.2.2.1. Enterprise Composite Applications
        3. 11.2.2.3. SaaS in the Virtualized Cloud
    3. 11.3. Summary
  16. 12. Mobile Intelligence
    1. 12.1. What is Mobile Intelligence?
      1. 12.1.1. Mobile Intelligence for the Consumer
    2. 12.2. Silverlight Mobile Intelligence Platforms
      1. 12.2.1. Windows Phone 7
        1. 12.2.1.1. Developing for the Windows Phone 7
      2. 12.2.2. Windows XP OS and Windows 7 OS Tablets
      3. 12.2.3. Windows Embedded Compact 7
      4. 12.2.4. Other Platforms
    3. 12.3. Implementing Silverlight Mobile Intelligence
      1. 12.3.1. Adding Interactivity
      2. 12.3.2. Word-Sized Visualizations
      3. 12.3.3. Mobile Dashboards
      4. 12.3.4. Leveraging Microsoft Services and Components
    4. 12.4. Coding Scenarios
      1. 12.4.1. The Bing Maps Silverlight Control on Windows Phone 7
        1. 12.4.1.1. Lessons Learned
      2. 12.4.2. Concurrent Programming on Windows Phone 7
        1. 12.4.2.1. Lessons Learned
    5. 12.5. Summary
  17. 13. Surfacing Silverlight Business Intelligence in SharePoint
    1. 13.1. Why SharePoint for Business Intelligence?
      1. 13.1.1. SharePoint 2007 Business Intelligence Capabilities
      2. 13.1.2. SharePoint 2010 Business Intelligence Capabilities
    2. 13.2. SharePoint 2007 and Silverlight Integration
      1. 13.2.1. Object HTML Tag
      2. 13.2.2. Custom Web Parts
        1. 13.2.2.1. Two Types of Web Parts
        2. 13.2.2.2. The Relationship between Silverlight and Web Parts
        3. 13.2.2.3. Why Silverlight Web Parts?
    3. 13.3. SharePoint 2010 and Silverlight Integration
      1. 13.3.1.
        1. 13.3.1.1. Silverlight Web Part
        2. 13.3.1.2. Client Object Model
        3. 13.3.1.3. SharePoint 2010 Development Story
    4. 13.4. Implementing Silverlight Business Intelligence Scenarios in SharePoint
      1. 13.4.1. Adding Silverlight to an existing SharePoint BI SharePoint Site
      2. 13.4.2. Exposing Complete Silverlight BI tools in SharePoint
      3. 13.4.3. Communication Between Silverlight Web Parts
    5. 13.5. Coding Scenarios
      1. 13.5.1. Coding Scenario: Self-Service Silverlight Application Hosting
        1. 13.5.1.1. Lessons Learned
    6. 13.6. Summary
  18. 14. Using the Silverlight PivotViewer
    1. 14.1. What is the PivotViewer?
      1. 14.1.1. Which Pivot Technology is this?
        1. 14.1.1.1. PivotTable
        2. 14.1.1.2. Power Pivot
      2. 14.1.2. PivotViewer Components & Architecture
      3. 14.1.3. Installing the PivotViewer Platform
        1. 14.1.3.1. Prerequisites
        2. 14.1.3.2. PivotViewer & Pivot Collection Tools
      4. 14.1.4. Running the Sample Silverlight PivotViewer Application
    2. 14.2. PivotViewer User Interface
      1. 14.2.1. PivotViewer User Interface Components
        1. 14.2.1.1. Top Bar
        2. 14.2.1.2. Filter Panel
          1. 14.2.1.2.1. Search Text Box
          2. 14.2.1.2.2. String Facet Categories
          3. 14.2.1.2.3. Numerical Facet Categories
        3. 14.2.1.3. Imagery Canvas
        4. 14.2.1.4. Info Panel
      2. 14.2.2. PivotViewer Collections
        1. 14.2.2.1. Learning Coding Scenario: Consuming an existing PivotViewer Collection
          1. 14.2.2.1.1. Lessons Learned
        2. 14.2.2.2. Learning Coding Scenario: Using the Pivot Collection Tool for Microsoft Excel
          1. 14.2.2.2.1. Lessons Learned
    3. 14.3. PivotViewer and Business Intelligence 2.0
    4. 14.4. Summary
  19. A. Prototyping Applications with Dynamic Data
    1. A.1. Blend's Dynamic Data Tools
      1. A.1.1. Defining New Sample Data
      2. A.1.2. Customizing Sample Data Sources
      3. A.1.3. Customizing Properties
      4. A.1.4. Customizing Collections
      5. A.1.5. Generating data from image collections
    2. A.2. Behind the Scenes of Dynamic Data
      1. A.2.1. Autogenerated Files
      2. A.2.2. Using the Dynamic Data
    3. A.3. Summary
  20. B. Creating a Bullet Graph User Control
    1. B.1. What is a Bullet Graph?
      1. B.1.1. Using the Bullet Graph to Gain Business Intelligence Insight
      2. B.1.2. Comparing the Bullet Graph to Traditional Gauges
    2. B.2. Specification of the Silverlight Bullet Graph
      1. B.2.1. Implementation Roadmap
      2. B.2.2. Mashing Up the Control with Silverlight Controls
      3. B.2.3. Creating a Fluid Layout
        1. B.2.3.1. Leveraging the Silverlight Layout Controls
      4. B.2.4. Bullet Graph Configuration Properties
        1. B.2.4.1. Implementing Dependency Properties
          1. B.2.4.1.1. Data Binding with Dependency Properties
          2. B.2.4.1.2. Expression Blend 4 Best Practices and Design-Time Experience
          3. B.2.4.1.3. Dependency Property Syntax
          4. B.2.4.1.4. Dependency Property Best Practices
    3. B.3. Implementing the Bullet Graph in Silverlight
      1. B.3.1. Bullet Graph Layout and Adding Main Components
        1. B.3.1.1. Starting the Project
        2. B.3.1.2. Building the Layout
        3. B.3.1.3. Adding the Bullet Graph Components
      2. B.3.2. Styling Qualitative Ranges & Adding Dynamic Content
        1. B.3.2.1. Styling the Qualitative Ranges
        2. B.3.2.2. Adding the Quantitative Scale
      3. B.3.3. Implementing Dependency Properties & Design-Time Logic
        1. B.3.3.1. Adding Category & Property Descriptions
        2. B.3.3.2. Additional Calculations and Notes
      4. B.3.4. Using the Bullet Graph Control
        1. B.3.4.1. Proving Business Intelligence Scenarios
        2. B.3.4.2. Data Binding & Animations
      5. B.3.5. Alternate Implementations
    4. B.4. Summary