E-Book, Englisch, 576 Seiten
Czernicki Silverlight 4 Business Intelligence Software
2. ed
ISBN: 978-1-4302-3061-8
Verlag: Apress
Format: PDF
Kopierschutz: 1 - PDF Watermark
E-Book, Englisch, 576 Seiten
ISBN: 978-1-4302-3061-8
Verlag: Apress
Format: PDF
Kopierschutz: 1 - PDF Watermark
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 business intelligence. Currently, we are in the second generation of business intelligence software-called BI 2.0-which is focused on writing business intelligence 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, RIAs 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 business intelligence and deliver it to an average user on the Web. Silverlight 4 Business Intelligence Software provides developers, designers, and architects with a solid foundation in business intelligence design and architecture concepts for Microsoft Silverlight. This book covers key business intelligence 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. Business intelligence isn't just for the executive branch of a Fortune 500 company-it is for the masses. Let Silverlight 4 Business Intelligence Software show you how to unlock the rich intelligence you already have.
Bart Czernicki has been playing around with computers since 1988 and has spent years as a professional in the information technology field. He currently works as a senior software architect at a software development company.
Autoren/Hrsg.
Weitere Infos & Material
1;Title Page ;1
2;Copyright Page ;2
3;Table of Contents ;4
4;About the Author;15
5;About the Technical Reviewer;16
6;Introduction;17
6.1;Who Should Read This Book?;18
6.1.1;Silverlight Developers or Architects;18
6.1.2;BI Professionals;18
6.1.3;Strategic Decision Makers in Technology;19
6.2;Technical and Nontechnical Audiences;19
6.3;Why Should You Invest in This Book?;20
6.4;Chapter Roadmap;21
6.5;What Is Not Covered in This Book?;22
6.5.1;Why Aren’t Data Services Covered in This Book?;22
6.6;Following the Coding Exercises in the Book;23
6.6.1;Software You Need to Follow the Exercises;23
6.7;Companion Web Site;24
6.8;What about Silverlight 3 Support?;26
6.9;Author on the Internet;26
7;Chapter 1: Business Intelligence 2.0 Defined;27
7.1;The Need to Make Better Decisions;27
7.2;Decision Support Systems;28
7.3;Business Intelligence Is Born;29
7.4;Business Intelligence Defined;30
7.4.1;BI Terms;30
7.5;Architecture of a Business Intelligence System;32
7.5.1;Component Overview of a BI Architecture;32
7.5.2;Data Feeds;33
7.5.3;Extract-Transform-Load Process;34
7.5.4;The Data Warehouse;35
7.5.5;The BI Presentation Layer (Presentation of Knowledge);36
7.5.6;Challenges of Bringing the BI Tiers Together;36
7.6;Business Intelligence 1.0 Implementation;37
7.6.1;BI 1.0’s Intended Audience;37
7.6.1.1;Two Distinct Users of BI 1.0;38
7.6.1.1.1;Proper Understanding of BI Models;39
7.6.2;Applications;39
7.6.2.1;Static and Noninteractive Data;42
7.6.3;System Design;43
7.7;Business Intelligence 2.0 Implementation;44
7.7.1;How BI 2.0 Came to Be;44
7.7.1.1;Web 2.0;45
7.7.1.2;Agile Development Methodologies;45
7.7.1.3;Service Orientation;45
7.7.2;BI 2.0’s Intended Audience;46
7.7.2.1;Empowering the BI 2.0 User;47
7.7.3;Applications;48
7.7.4;System Design;49
7.8;Comparison of Business Intelligence 1.0 and 2.0;50
7.9;Summary;51
8;Chapter 2: Advantages of Applying Business Intelligence 2.0 Using Microsoft Silverlight;52
8.1;Industry Trends;53
8.1.1;Delivery to Multiple Platforms;53
8.1.1.1;The Desktop Platform;54
8.1.1.2;The Web Platform;54
8.1.1.3;The Mobile Platform;55
8.1.1.4;The Tablet Platform;56
8.1.2;Value in Services;56
8.1.3;Virtualizing Resources on the Cloud;56
8.2;What Is Silverlight?;58
8.2.1;The Silverlight Solution;58
8.2.1.1;Less Plumbing, More Designing;59
8.2.1.2;Leveraging the Power of .NET;59
8.2.1.3;It’s All on the Client (Well, Mostly);60
8.2.1.4;Next-Generation Interaction with Multitouch;60
8.2.1.5;Multiple Platforms and the Cloud;61
8.3;Silverlight vs. Other RIA Technologies;64
8.3.1;Current State of RIA Technology;64
8.3.2;Silverlight’s Position Among RIAs;66
8.3.3;Silverlight vs. HTML 5;67
8.3.3.1;Key New Features of HTML 5;67
8.3.3.2;HTML 5 Limitations;68
8.4;Silverlight: The Business RIA;69
8.4.1;Lessons from the Past;70
8.4.2;Leveraging Existing Development Investments;70
8.4.3;Moving to the Cloud More Easily;70
8.4.4;Integrating with Microsoft Products;71
8.4.5;Overcoming Silverlight’s Weaknesses;73
8.5;The Microsoft Business Intelligence Platform and Silverlight;73
8.5.1;SQL Server BI;73
8.5.2;Microsoft Office BI;74
8.5.3;What Does Silverlight Have to Offer BI?;74
8.6;Summary;75
9;Chapter 3: Silverlight as a Business Intelligence Client;77
9.1;Client Distributed Architecture;78
9.1.1;Distributed Architectures Defined;78
9.1.2;Problems with N-Tier Architecture;80
9.1.3;Scaling BI with the Client Tier;82
9.1.4;Is Business Intelligence on the client viable?;84
9.1.4.1;Microsoft Excel;85
9.1.4.2;PowerPivot for Microsoft Excel 2010;86
9.1.4.3;Pivot for Silverlight;88
9.1.4.4;Disconnected MOLAP;89
9.1.4.5;Summary;90
9.1.5;Business Logic on the Silverlight Client;90
9.1.5.1;First-Class Data Structures and Querying;90
9.1.5.2;Local Access to the DOM;91
9.1.5.3;Isolated Storage;91
9.1.5.4;Multithreading;91
9.1.5.5;Open and Save Dialogs;91
9.1.5.6;Visual Intelligence;92
9.1.5.7;OData Support;92
9.1.5.8;COM Automation Support;92
9.1.5.9;Printing Support;93
9.1.5.10;F# Language Support;93
9.1.5.11;Improvements to Expression Blend 4;93
9.2;Common Scenarios Handled with Silverlight;94
9.2.1;Coding Scenario: Working with Business Data;95
9.2.1.1;Querying Large Data Sets with LINQ;95
9.2.1.2;Lessons Learned;102
9.2.2;Coding Scenario: Decoupling Business Algorithms;103
9.2.2.1;Applying Business Logic with Data Binding and Value Converters;103
9.2.2.2;Lessons Learned;110
9.2.3;Coding Scenario: Persisting Local Data;111
9.2.3.1;In-Memory and Isolated Storage Caching;111
9.2.3.2;Lessons Learned;119
9.3;Summary;120
10;Chapter 4: Adding Interactivity to Business Intelligence Data;121
10.1;User Interactivity;122
10.1.1;Importance of Good User Interactivity;122
10.1.2;Touch Interactivity;122
10.1.3;Silverlight and Interactivity Support;124
10.2;Interactivity with Business Intelligence Data;125
10.2.1;Types of Data Interactivity;125
10.2.1.1;Sorting;126
10.2.1.2;Data Paging;127
10.2.1.3;Filtering;127
10.2.1.4;Searching;127
10.2.1.5;Grouping and Pivoting Data;127
10.3;Applying Interactivity in Business Intelligence with Silverlight;129
10.3.1;Common Silverlight Controls for Data Lists;129
10.3.1.1;Data Grid;129
10.3.1.2;List Box;130
10.3.1.3;Tree View;131
10.3.2;Coding Scenario: Lazy Loading List Box Data;132
10.3.2.1;Importance of Lazy Loading;133
10.3.2.2;Lessons Learned;142
10.3.3;Coding Scenario: Interactive Data Paging with the Slider Control;143
10.3.3.1;Lessons Learned;151
10.3.3.2;Possible Enhancements;151
10.3.4;Coding Scenario: Fluent Data Filtering with the Slider Control;151
10.3.4.1;Lessons Learned;154
10.3.4.2;Possible Enhancements;154
10.3.5;Coding Scenario: Searching Data with the AutoCompleteBox Control;154
10.3.5.1;Lessons Learned;157
10.4;Summary;157
11;Chapter 5: Introduction to Data Visualizations;159
11.1;What Are Data Visualizations?;160
11.2;Characteristics of a Data Visualization;161
11.2.1;Respect the Data;161
11.2.2;Simple and to the Point;162
11.2.3;Animations and Transitions;163
11.2.4;Interactivity;165
11.2.5;Widgets and Dashboards;166
11.3;Data Visualizations and Business Intelligence 2.0;166
11.3.1;BI for the Masses;166
11.3.2;Controlled Analysis;166
11.3.3;Ease of Use;166
11.3.4;Rich Interfaces;167
11.4;Challenges of Implementing Data Visualizations;167
11.4.1;Custom Controls;167
11.4.2;Need for Designers;167
11.4.3;Reinventing the Insight Wheel;168
11.4.4;Presenting Proper Insight;168
11.4.5;Not Knowing the Target Audience;168
11.4.6;Data Visualizations Might Not Be Enough;168
11.5;Data Visualizations and Silverlight;169
11.5.1;Out-of-the-Box Data Visualizations;169
11.5.2;Rich Rendering Engine and Design Tools;170
11.5.3;Data-Centric Processing;171
11.5.4;Integration with Microsoft Enterprise Services;172
11.5.5;Descry Framework;173
11.6;Coding Scenarios;175
11.6.1;Chart Data Visualizations;175
11.6.1.1;Lessons Learned;181
11.6.2;Building a Tag Cloud;181
11.6.2.1;Lessons Learned;186
11.6.2.2;Possible Improvements;186
11.6.3;Using Geographic Visualizations;187
11.6.3.1;Lessons Learned;196
11.7;Summary;197
12;Chapter 6: Creating Data Visualizations for Analysis;198
12.1;Choosing a Visualization for Analysis;199
12.1.1;Determining Types of Analysis for Silverlight Visualizations;202
12.1.1.1;Comparing Parts of a Whole;202
12.1.1.2;Visualizing Trend Analysis;211
12.1.1.3;Comparing Ratios (Before and After);215
12.1.1.4;Text Data;216
12.1.1.5;Geographical Data;216
12.1.1.6;Hierarchical Data;217
12.1.1.7;Other Visualization Types;219
12.1.2;Comparing Metrics to Organizational Goals;219
12.1.2.1;Reference Lines;220
12.1.2.2;Creating Visual KPIs for Scorecard Dashboards;222
12.2;Word-Sized Chart Visualizations;229
12.2.1;Types of Word-Sized Chart Visualizations;229
12.2.1.1;Sparklines;229
12.2.1.2;Column Charts;234
12.2.1.3;Data Bars;239
12.2.2;Other Candidates for Word-Sized Charts;240
12.3;Summary;240
13;Chapter 7: Enhancing Visual Intelligence in Silverlight;241
13.1;Workflow Visualizations;242
13.1.1;Workflows in Silverlight;243
13.2;Using Graphical Symbols;244
13.2.1;Creating Graphical Assets;245
13.2.2;Visualization Layout;247
13.3;Creating Composite Visuals for Analysis;249
13.3.1;Creating a Cross-Tab Data Visualization;249
13.3.2;Silverlight Cross-Tab Implementation;250
13.3.2.1;Why a Cross-Tab Implementation?;256
13.3.3;Improving the Implementation;256
13.4;Visualizations for the Environment;258
13.5;Comparing Non-Silverlight Solutions;260
13.5.1;Other Development Environments;261
13.5.2;Visual Intelligence Vendors;261
13.5.3;Silverlight as a Visual Intelligence Engine;262
13.6;Coding Scenario: Providing the User Visualization Options;262
13.6.1;Lessons Learned;271
13.6.2;Possible Improvements;271
13.7;Summary;272
14;Chapter 8: Applying Collective Intelligence;273
14.1;What Is Collective Intelligence?;274
14.1.1;Collective Intelligence and Web 2.0;274
14.1.1.1;The User Is Always Right;274
14.1.1.2;Content Is the User;275
14.1.1.3;Classifying Collective Intelligence Data;277
14.1.2;Collective Intelligence as BI 2.0 Applied;279
14.1.3;Advantages of Applying Collective Intelligence;279
14.1.3.1;Measuring Collective Intelligence;281
14.2;Collecting and Displaying User Content;281
14.2.1;Collecting User-Generated Data;282
14.2.1.1;Keeping It Simple;282
14.2.1.2;Explicit Data Collection;283
14.2.1.3;Implicit Data Collection;285
14.2.1.4;Data Collection in Silverlight;286
14.2.2;Displaying User-Generated Data;287
14.2.3;Example of Collective Intelligence in Blogs;290
14.2.4;Collective Intelligence UIs with Silverlight;291
14.2.5;Collective Intelligence in the Enterprise;292
14.3;Coding Scenarios;293
14.3.1;Coding Scenario: Working with the Rating Control;293
14.3.2;Lessons Learned;302
14.3.3;Possible Improvements;303
14.4;Summary;303
15;Chapter 9: Predictive Analytics (What-If Modeling);304
15.1;What Is Predictive Analytics?;305
15.1.1;Predictive Analytics Overview;305
15.1.1.1;Classic Predictive Analytics with What-If Analysis;307
15.1.2;Delivering Predictive Analytics Faster with BI 2.0;309
15.1.3;Choosing Correct Data Sets for Predictive Models;311
15.1.4;Implementing the Proper Tier for Predictive Analysis;311
15.2;Benefits of Applying Predictive Analytics;312
15.2.1;Bringing Out Additional Value to Existing Data;312
15.2.2;Translating Assumptions into Decisions;313
15.2.3;Being Proactive Instead of Reactive;313
15.2.4;Gaining Competitive Advantage;314
15.3;Applying Forward-Looking Models in Silverlight;314
15.3.1;Using a Functional Language (F#);315
15.3.2;Designing Predictive Models Using Silverlight;315
15.3.2.1;Predictive Models with Aggregated Data Sets;317
15.3.2.2;Building the Profit Forecast Control;317
15.3.2.3;Communicating Between Local Controls;319
15.3.2.4;Key Highlights;321
15.3.3;Deployment Using the Plug-In Model;322
15.4;Coding Scenario: Applying a Statistical Model to Predict Future Behavior;322
15.4.1;Part 1: Creating the UI and Applying a Static Predictive Model;324
15.4.2;Part 2: Creating an Interactive and Visual Predictive Model;331
15.4.3;Lessons Learned;336
15.4.4;Possible Improvements;336
15.5;Summary;337
16;Chapter 10: Improving Performance with Concurrent Programming;338
16.1;Concurrent Programming Defined;339
16.1.1;Processor Architecture Shift to Multiple Cores;339
16.1.2;Taking Advantage of Multicore Architectures;342
16.1.3;Multithreading vs. Parallelism;343
16.1.3.1;Multithreading;343
16.1.3.2;Parallelism;344
16.2;Silverlight Concurrent Programming Features;348
16.2.1;Multithreading Support;348
16.2.1.1;Silverlight Multithreading Essentials;349
16.2.1.2;Using the BackgroundWorker Class;352
16.2.1.3;Asynchronous Workflows in F#;353
16.2.1.4;Using the Network Stack Asynchronously;354
16.2.2;Concurrency and Rendering;355
16.2.2.1;Improving Business Application Performance;357
16.2.3;Silverlight Concurrent Programming Limitations;358
16.2.3.1;No Parallel Extension Support;358
16.2.3.2;Missing Concurrency Programming Essentials;359
16.2.3.3;Do Not Block the UI Thread;359
16.2.3.4;Missing Implementations in the Framework;360
16.3;Coding Scenarios;361
16.3.1;Coding Scenario: Improving the Performance of the UI;361
16.3.1.1;Lessons Learned;372
16.3.1.2;Possible Improvements;372
16.3.2;Coding Scenario: Improving Computational Processing Performance;373
16.3.2.1;Part 1: Getting the Project Ready for Concurrency;374
16.3.2.2;Part 2: Designing a Two-Thread Solution to Improve Performance;378
16.3.2.3;Part 3: Dynamic Concurrency and Performance Analysis;382
16.3.2.4;Lessons Learned;386
16.3.2.5;Possible Improvements;386
16.3.3;Additional Coding Scenarios on the Companion Web Site;386
16.4;Summary;386
17;Chapter 11: Integrating with Business Intelligence Systems;388
17.1;Architecting for Business Intelligence Systems;389
17.1.1;Infrastructure and Software Requirements;389
17.1.1.1;Non-Microsoft Infrastructures;393
17.1.2;New BI 2.0 Applications;394
17.1.3;Integrating with Existing BI Investments;396
17.1.3.1;Basic Integration;397
17.1.3.2;Communicating Between Separate Silverlight Applications;397
17.2;Silverlight in the SaaS Model;401
17.2.1;SaaS for BI;401
17.2.2;SaaS Features Implemented in Silverlight;401
17.2.2.1;Centralized Management of Service Delivery;401
17.2.2.2;SaaS Maturity Model;404
17.2.2.3;SaaS in the Virtualized Cloud;409
17.3;Summary;410
18;Chapter 12: Mobile Intelligence;411
18.1;What Is Mobile Intelligence?;412
18.1.1;Mobile Intelligence for the Consumer;413
18.2;Silverlight Mobile Intelligence Platforms;414
18.2.1;Windows Phone 7;415
18.2.1.1;Developing for the Windows Phone 7;415
18.2.2;Windows XP OS and Windows 7 OS Tablets;417
18.2.3;Windows Embedded Compact 7;418
18.2.4;Other Platforms;418
18.3;Implementing Silverlight Mobile Intelligence;419
18.3.1;Adding Interactivity;419
18.3.2;Word-Sized Visualizations;421
18.3.3;Mobile Dashboards;422
18.3.4;Leveraging Microsoft Services and Components;424
18.4;Coding Scenarios;424
18.4.1;The Bing Maps Silverlight Control on Windows Phone 7;424
18.4.1.1;Lessons Learned;429
18.4.2;Concurrent Programming on Windows Phone 7;430
18.4.2.1;Lessons Learned;440
18.5;Summary;440
19;Chapter 13: Surfacing Silverlight Business Intelligence in SharePoint;442
19.1;Why SharePoint for Business Intelligence?;443
19.1.1;SharePoint 2007 Business Intelligence Capabilities;443
19.1.2;SharePoint 2010 Business Intelligence Capabilities;444
19.2;SharePoint 2007 and Silverlight Integration;446
19.2.1;Object HTML Tag;446
19.2.2;Custom Web Parts;447
19.2.2.1;Two Types of Web Parts;447
19.2.2.2;The Relationship between Silverlight and Web Parts;448
19.2.2.3;Why Silverlight Web Parts?;448
19.3;SharePoint 2010 and Silverlight Integration;449
19.3.1;Silverlight Web Part;450
19.3.2;Client Object Model;452
19.3.3;SharePoint 2010 Development Story;453
19.4;Implementing Silverlight Business Intelligence Scenarios in SharePoint;453
19.4.1;Adding Silverlight to an existing SharePoint BI SharePoint Site;453
19.4.2;Exposing Complete Silverlight BI tools in SharePoint;454
19.4.3;Communication Between Silverlight Web Parts;456
19.5;Coding Scenarios;457
19.5.1;Coding Scenario: Self-Service Silverlight Application Hosting;458
19.5.1.1;Lessons Learned;460
19.6;Summary;460
20;Chapter 14: Using the Silverlight PivotViewer;462
20.1;What Is the PivotViewer?;463
20.1.1;Which Pivot Technology Is this?;463
20.1.1.1;PivotTable;463
20.1.1.2;Power Pivot;464
20.1.2;PivotViewer Components & Architecture;465
20.1.3;Installing the PivotViewer Platform;466
20.1.3.1;Prerequisites;466
20.1.3.2;PivotViewer & Pivot Collection Tools;466
20.1.4;Running the Sample Silverlight PivotViewer Application;467
20.2;PivotViewer User Interface;468
20.2.1;PivotViewer User Interface Components;468
20.2.1.1;Top Bar;469
20.2.1.2;Filter Panel;471
20.2.1.3;Imagery Canvas;476
20.2.1.4;Info Panel;476
20.2.2;PivotViewer Collections;477
20.2.2.1;Learning Coding Scenario: Consuming an existing PivotViewer Collection;480
20.2.2.2;Learning Coding Scenario: Using the Pivot Collection Tool for Microsoft Excel;482
20.3;PivotViewer and Business Intelligence 2.0;489
20.4;Summary;490
21;Appendix A: Prototyping Applications with Dynamic Data;491
21.1;Blend’s Dynamic Data Tools;491
21.1.1;Defining New Sample Data;492
21.1.2;Customizing Sample Data Sources;494
21.1.3;Customizing Properties;497
21.1.4;Customizing Collections;497
21.1.5;Generating data from image collections;499
21.2;Behind the Scenes of Dynamic Data;501
21.2.1;Autogenerated Files;501
21.2.2;Using the Dynamic Data;503
21.3;Summary;504
22;Appendix B: Creating a Bullet Graph User Control;505
22.1;What Is a Bullet Graph?;506
22.1.1;Using the Bullet Graph to Gain Business Intelligence Insight;508
22.1.2;Comparing the Bullet Graph to Traditional Gauges;510
22.2;Specification of the Silverlight Bullet Graph;513
22.2.1;Implementation Roadmap;513
22.2.2;Mashing Up the Control with Silverlight Controls;515
22.2.3;Creating a Fluid Layout;517
22.2.3.1;Leveraging the Silverlight Layout Controls;518
22.2.4;Bullet Graph Configuration Properties;522
22.2.4.1;Implementing Dependency Properties;523
22.3;Implementing the Bullet Graph in Silverlight;532
22.3.1;Bullet Graph Layout and Adding Main Components;532
22.3.1.1;Starting the Project;533
22.3.1.2;Building the Layout;533
22.3.1.3;Adding the Bullet Graph Components;535
22.3.2;Styling Qualitative Ranges & Adding Dynamic Content;537
22.3.2.1;Styling the Qualitative Ranges;538
22.3.2.2;Adding the Quantitative Scale;540
22.3.3;Implementing Dependency Properties & Design-Time Logic;544
22.3.3.1;Adding Category & Property Descriptions;545
22.3.3.2;Additional Calculations and Notes;547
22.3.4;Using the Bullet Graph Control;549
22.3.4.1;Proving Business Intelligence Scenarios;549
22.3.4.2;Data Binding & Animations;550
22.3.5;Alternate Implementations;550
22.4;Summary;551
23;Index;552




