Our overarching goal in writing this book was to give ASP.NET developers the power to quickly and easily create visually stunning Internet applications, coupled with rich interactivity to fully immerse the user in a new online experience. Silverlight gives you everything you need to do just this, and in serious style!
As well as taking you through each feature that ships with Silverlight, this book will make sure you’re able to debug, troubleshoot, and performance-tune your Silverlight applications, as well as seamlessly hook into your existing ASP.NET architecture and code base.
This book is aimed at .NET developers and architects who want to quickly get up to speed with all that Silverlight 2 has to offer.
As well as covering the breadth of features that Silverlight 2 provides, this book makes a point of demonstrating where necessary how the particular feature can be integrated tightly with the ASP.NET host application. An example is in Chapter 7, where the ASP.NET Profile service is utilized directly from within Silverlight to obtain user-specific data.
It’s fair to say that although this book is aimed at ASP.NET developers, it covers all of the salient features of Silverlight 2 to the degree that it’s a useful programming resource for developers not using ASP.NET also.
If you’re fresh to .NET development, however, you might want to check out a beginning .NET book first, to help you overcome the syntax and set-up queries when learning a new language. Otherwise, take a deep breath and dive in!
This book covers the full feature set of Silverlight 2, diving into each of the subject areas to give depth and breadth coverage. As well as teaching you about the component parts of the Silverlight API, the book also covers debugging, troubleshooting, and performance-tuning your Silverlight applications, arming you with all the skills and knowledge you’ll need to create advanced Silverlight-based applications in record time.
Importantly, this book covers the integration points between ASP.NET and Silverlight, taking you through the different techniques you can use to seamlessly augment your existing or new ASP.NET web sites with the power of Silverlight.
If you want to program in Silverlight and potentially use ASP.NET as the host, then this book covers it all.
The book is split into two distinct parts. Part I is titled “Silverlight Fundamentals for ASP.NET Developers,” and Part II is titled “Developing ASP.NET Applications with Silverlight.” Part I is intended to give you grounding in what Silverlight is as a technology and how it fits into the Web-based landscape. The component pieces of a Silverlight application are also laid out at a high level, and any knowledge required before putting an application together is explained.
Part II is written to give you depth of knowledge across the Silverlight feature-set and show you how to leverage the power of both Silverlight and ASP.NET to create compelling applications.
A brief synopsis of the content follows:
-
“Silverlight in a Nutshell”—This will teach you at a high level what Silverlight is and how it can help you deliver engaging, immersive web applications. Differentiating Silverlight from other Web-based technologies is also covered here, and a description of the required development environment is provided. In short, after reading this, you’ll be able to describe Silverlight and explain why you’d want to use it and what gives it the edge over the competition.
-
“Silverlight Architecture”—Silverlight allows you to rapidly build a well-rounded application with a great user interface, but if you encounter any problems during development, it is going to be important for you to understand the underlying architecture upon which you are developing. This outlines the core features of Silverlight 2 and guides you around the building blocks of this highly flexible framework, paying particular attention throughout to your ASP.NET heritage.
-
“XAML Condensed”—Quickly getting up to speed with XAML is what this is all about, helping you brush aside the syntax queries and get to grips with the basics of this multi-purpose declarative language. Hooking the XAML files up to .NET code is also shown here, helping you inject dynamic event-driven actions into your Silverlight UI. Finally, one technique for the dynamic creation of XAML is shown, followed by a tour of Expression Blend.
-
“Programming Silverlight”—By the time you get here, you’ll be itching to start coding, and code you will as the feature-agnostic programming constructs that make up a Silverlight application are covered in detail. The composition of a Silverlight application is laid bare and its constituent parts explained at length, as well as detailing the Silverlight application lifetime and how to hook into it. The different options for embedding the Silverlight plug-in within your application are covered, followed by a brief overview of JavaScript and its associated DOM. This then leads onto a discussion of the Silverlight Object Model, explaining how the visual tree is constructed to form the UI. Another technique for dynamically creating XAML and adding it to the visual tree is also shown here. Finally, the Silverlight event model, browser interaction, and threading model are covered for you.
-
“Creating the User Interface”—You now know how to program Silverlight and how to write XAML. This shows you how to put it all together to start laying out the user interface of your Silverlight application. Each of the layout controls that ship with Silverlight is covered here—Canvas
, Grid
, StackPanel
, and TabControl
—including information on when to use which one. Information on how to create a scalable UI is also provided, followed finally by a section that details how to localize your application, thereby making it available to other languages and cultures.
-
“Silverlight Controls”—Silverlight 2 provides an assortment of controls that can be used to display and capture data. In this, you’ll learn to work with user input controls, items controls, and media controls and see how they can be put to use to build interactive and rich user interfaces. You’ll also learn how to use controls such as the MultiScaleImage
control to work with Silverlight’s Deep Zoom technology.
-
“Styles and Templates”—Altering the look and feel of your application is the crux here, with the different techniques for applying styling information to the controls that comprise it demonstrated here. As well as this, integrating with the ASP.NET Profile service via WCF is detailed, giving you the ability to personalize your Silverlight application on a per-user basis.
-
“User Interaction”—What’s the point of having a great technology like Silverlight 2 if we can’t interact with it? We review the different ways that you can interact with your application, understanding how the UIElements
work with input devices like the keyboard, mouse, and stylus. We also explore the different ways to navigate around the application and present the different options that we have and in which scenarios each one is preferred.
-
“Communicating with the Server”—The ability to access data located at distributed sources is key in many Silverlight 2 applications. You learn different networking technologies that are available and see how they can be put to use. Several different topics are covered such as creating and calling ASMX and WCF services, calling REST APIs, working with JavaScript Object Notation (JSON) data, pushing data from a server to a client with sockets, and leveraging HTTP Polling Duplex functionality.
-
“Working with Data”—It is all about data! One of my colleagues always says, “If you are not using data binding in Silverlight 2, you are doing something wrong!” This explains the data framework available within your applications and then deeps dive into the inner workings of data binding, showing you the different approaches that you may take. In order to understand how the data is retrieved, we explain the different technologies and techniques to get the most of Silverlight 2 data using the available data controls. Finally, this explains how you can manipulate the data using LINQ and LINQ to XML.
-
“Creating Custom Controls”—This will take you on a journey in order to discover the different options that you have available to customize the Silverlight 2 controls. We start exploring the user control model that ASP.NET developers are used to, and then we dig into the internals of visual customization. You will be amazed by this powerful new model. Finally, for those who need to push the technology to the limit, this explains how to create a complete custom control from scratch.
-
“Securing Your Silverlight Application”—Whether you’re an Enterprise developer or a Silverlight hobbyist, you are going to want to release your application out to the wild at some point. In doing so, you are providing a high level of exposure to your application, and therefore security should not be an afterthought. Thankfully, Silverlight 2 has a security framework built into the run time, which will give you the peace of mind of working within a secure environment. This introduces you to the Silverlight security framework, but also talks you through your security responsibilities as a Silverlight developer.
-
“Audio and Video”—Embedding high-fidelity audio and video in your Silverlight application is sure to capture your users’ imaginations, and this shows you how you can do just this using the Silverlight-provided MediaElement
control and the ASP.NET Media Server Control. Playback control is demonstrated, as is the more advanced topic of providing synchronization points within your chosen media. This will definitely help you put the WOW factor into your web sites.
-
“Graphics and Animation”—A detailed tour of the graphics API that ships with Silverlight is first discussed here, including the Shape
-derived objects that can be rendered to screen and also the Geometry
-derived objects that can be created and then rendered via a Path
object. Brush
objects are covered next, demonstrating the SolidColorBrush
, LinearGradientBrush
, RadialGradientBrush
, ImageBrush
, and VideoBrush
, and their usage. Next up is the very cool DeepZoom technology, covering the creation of DeepZoom-enabled images using the DeepZoom Composer and their usage in your Silverlight application via the MultiScaleImage
control. Finally, the different animation techniques that you can use within your Silverlight application are covered, ranging from the basic From/To/By type to the more advanced Key frame types, including the different transition mechanisms within.
-
“Troubleshooting Silverlight Applications”—Writing an application from start to finish without any development issues is still quite some way off. This introduces you to a range of techniques and tools to help you through the hard times when your application isn’t behaving as you would expect it to. Besides retrospectively fixing problems within your application, this concludes with the more proactive approach of ensuring that your application hits a known quality bar before you are satisfied that it is ready to be released. Silverlight’s testing framework is the flavor of the day here.
-
“Performance”—Silverlight is an incredibly powerful and flexible framework. Its inherent flexibility often means that there are several ways to achieve your goals. In choosing an alternative path, you will often find that the penalty is poor performance. This gives a series of best-practice advice to allow you to make an informed decision when you hit those forks in the road. In addition, you will learn how to instrument your code in order to simply identify the bottlenecks within your application.
To get the most out of this book, it’s recommended that you code along with the examples provided, either by copying the code shown in the chapters or by downloading the samples and running them yourself.
To do this, you’re going to need Visual Studio 2008, which is available to download from MSDN, provided you have a subscription. As well as this, you’ll also need to download and install the Silverlight Tools for Visual Studio 2008, which allows you to create Silverlight-based applications within Visual Studio. This install will also take care of installing the Silverlight run time and SDK for you. You can download this installer from www.silverlight.net
/getstarted
.
If you want to follow the examples that use Microsoft Expression Blend or the Deep Zoom Composer, you can also download these from www.silverlight.net/getstarted
.
As well as these software requirements, you will need a basic working development knowledge of Microsoft .NET and have experience in Web-based development. A passion for creating rich web applications is advantageous, although not necessary!
Introduction.
Part I: Silverlight Fundamentals for ASP.NET Developers.
Chapter 1: Silverlight in a Nutshell.
Uphill Struggle.
Rich Client or Web Reach?
Silverlight Steps In.
The Impact of Silverlight on Your Existing ASP.NET Real Estate.
What You Should Still Do in ASP.NET.
The Development Environment Overview.
Summary.
Chapter 2: Silverlight Architecture.
Client/Server Architecture Overview.
Platforms.
Architecture.
ASP.NET Integration.
Application Life Cycle.
Summary.
Chapter 3: XAML Condensed.
Why All ASP.NET Developers Should Know the Basics.
XAML Syntax and Terminology.
Piecing It All Together.
Summary.
Chapter 4: Programming Silverlight.
How a Silverlight Application Is Composed.
JavaScript — How Much You Need to Know.
JavaScript — The Basics.
The Silverlight Object Model.
Events, Threading, and Browser Interaction.
Part II: Developing ASP.NET Applications with Silverlight.
Chapter 5: Creating the User Interface.
Expression Suite — A Whirlwind Tour.
ASP.NET versus Silverlight Layout.
Summary.
Chapter 6: Silverlight Controls.
Introduction to Silverlight Controls.
Media Controls.
Silverlight Toolkit Controls.
Summary.
Chapter 7: Styles and Templates.
Styles.
Templating.
Integrating with ASP.NET.
ImplicitStyleManager.
Summary.
Chapter 8: User Interaction.
The Silverlight Interaction Context.
Navigation.
Summary.
Chapter 9: Communicating with the ServerSilverlight Networking and Communication Features.
Cross-Domain Support.
Creating Services for Silverlight.
Calling Services with Silverlight.
Calling REST APIsSummary.
Chapter 10: Working with Data.
Data Framework.
Data-Binding Essentials.
Retrieving and Storing Data.
Data Controls.
Manipulating Data.
LINQ.
LINQ to XML.
Validation
Summary..
Chapter 11: Creating Custom Controls.
User Controls.
Customizing Current Controls.
Custom Controls.
Summary.
Chapter 12: Securing Your Silverlight Application.
You’re under Attack!
The Security Model.
Working in a Sandbox.
Cross-Domain Security.
Integrating with ASP.NET Security.
Obfuscation.
Cryptography.
Summary.
Chapter 13: Audio and Video.
First Steps.
Finer Control.
Summary.
Chapter 14: Graphics and Animation.
Breathing Life into ASP.NET.
Graphics in Silverlight.
Image Handling.
Animating Your User Interface.
Summary.
Chapter 15: Troubleshooting.
Is There a Problem?
Common Types of Problems.
Your Toolkit.
Reducing the Likelihood of Problems.
Summary.
Chapter 16: Performance.
Performance Bottlenecks.
Instrumentation.
Improving Performance.
Summary.
Index.