Learn your way! Get started

Exploring Silverlight 2

with expert Dino Esposito


Course at a glance

Included in these subscriptions:

  • Dev & IT Pro Video
  • Dev & IT Pro Power Pack

Release date 6/20/2008
Level Intermediate
Runtime 10h 50m
Closed captioning N/A
Transcript N/A
eBooks / courseware N/A
Hands-on labs N/A
Sample code Included
Exams Included
Platform Internet Explorer Only


Enterprise Solutions

Need reporting, custom learning tracks, or SCORM? Learn More



Course description

In this course, you will learn about Microsoft Silverlight, the new cross-browser, cross-platform, and cross-device plug-in that helps you deliver rich interactive Web applications. You will see what Silverlight 1.0 plug-in was designed for, and how 2 takes Silverlight to the next level. You will learn how the coding of a Web page using Silverlight 2 works with .NET, AJAX and other Web-based applications.

Meet the expert

Dino Esposito is a sought-after trainer and consultant specializing in Microsoft .NET technologies. He is the author of several books for developers, including ASP.NET titles for Microsoft Press. He is also a frequent speaker at industry events worldwide and a columnist for MSDN Magazine.

Course outline



Module 1

Why Use Silverlight? (35:58)
  • Introduction (04:23)
  • Richer Web Experience (01:42)
  • What About AJAX (00:49)
  • Limits of Web UI (02:12)
  • Evolution of Web UI (05:30)
  • Plug-ins (00:18)
  • Enter Silverlight (04:59)
  • Objectives - Silverlight 1.0 (02:02)
  • Objectives - Silverlight 2 (02:11)
  • Silverlight v. AJAX (05:13)
  • Silverlight v. Smart Client (02:15)
  • Silverlight vs XBAP (03:47)
  • Summary (00:30)
First Look at Silverlight (40:28)
  • Introduction (00:35)
  • What"s a Silverlight App? (05:01)
  • Cross-platform (02:42)
  • The Silverlight Plug-in (02:09)
  • object type (04:05)
  • Silverlight 1 JavaScript (03:54)
  • Silverlight Host Function (00:50)
  • CreateSilverlightHost() (04:14)
  • Silverlight Control (01:19)
  • Plug-in Properties (01:55)
  • Plug-in Events (01:39)
  • Make Silverlight Classes (04:33)
  • Demo: Silverlight App (06:49)
  • Summary (00:36)

Module 2

Silverlight App Mechanics (31:07)
  • Introduction (00:39)
  • Inside a Silverlight App (03:33)
  • Plug-in Architecture (02:24)
  • What is XAML? (02:11)
  • XAML in Action (02:30)
  • Downloading XAML (04:50)
  • Windowed v. Windowless (02:44)
  • XAML Object Model (03:01)
  • Ref. XAML Elements (01:13)
  • x:Class Attribute (01:36)
  • Dynam Gen XAML (01:27)
  • Demo: Linking the Plug-in (04:35)
  • Summary (00:18)
XAP Packages (25:04)
  • Introduction (00:30)
  • From XAML to XAP (02:13)
  • XAP Packages (04:51)
  • Inside XAP (02:18)
  • XAP on the Client (03:31)
  • Manifest (03:36)
  • Downloaded Files (01:19)
  • Instancing (02:24)
  • On-Demand XAML (02:09)
  • On-Demand Assemblies (01:48)
  • Summary (00:20)
On-Demand and XML (20:59)
  • Introduction (00:35)
  • Demo: OnDemand (03:58)
  • Demo: Download Event (03:25)
  • Demo: Add - Remove Stuff (04:42)
  • Downloader Class (03:24)
  • Downloader Class Code (03:43)
  • Rerunning the Sample App (00:51)
  • Summary (00:17)
Accessing Page DOM (23:33)
  • Introduction (00:34)
  • Interop Layer (02:26)
  • Accessing Page DOM (03:03)
  • Updating Page DOM (01:00)
  • Window Object (01:23)
  • CreateInstance (01:12)
  • Demo: Page DOM (04:51)
  • Demo: Change Title (01:46)
  • Demo: JavaScript Alert (01:03)
  • Demo: Query String (01:26)
  • HTML / C# Interaction (01:31)
  • Demo: Random Number C# (02:49)
  • Summary (00:23)

Module 3

Using Silverlight from DOM (22:07)
  • Introduction (00:35)
  • DOM-to-Silverlight (02:25)
  • Invoke C# from JS (02:42)
  • Access the XAML Tree (01:43)
  • Scriptable Members (05:06)
  • Scriptable - Creatable (04:35)
  • OrderFx and Order (04:31)
  • Summary (00:27)
Essential WPF (28:09)
  • Introduction (00:36)
  • WPF at a Glance (02:16)
  • WPF Applications (02:10)
  • Silverlight Prog Model (01:50)
  • Silverlight WPF App (02:55)
  • WPF UI Framework (01:08)
  • Layout Manager (01:32)
  • Grid (01:44)
  • StackPanel (01:08)
  • Canvas (01:55)
  • Attached Properties (03:54)
  • WPF Silverlight Controls (01:17)
  • Demo: Controls (04:07)
  • CheckBox & Buttons (01:08)
  • Summary (00:22)
Controls and Binding (47:49)
  • Introduction (00:43)
  • Silverlight Controls (02:25)
  • Styling Controls (04:39)
  • Control Templates (05:56)
  • Demo: Buttons (02:38)
  • Buttons in StackPanel (02:58)
  • ControlTemplate Block (03:03)
  • Resources (04:39)
  • Simple Data Binding (05:38)
  • DataContext (07:49)
  • Data Binding Modes (01:30)
  • Binding to a Collection (05:16)
  • Summary (00:28)

Module 4

LINQ and Silverlight (26:17)
  • Introduction (00:43)
  • In-Memory Data (02:30)
  • LINQ at a Glance (04:23)
  • LINQ in Pseudo-code (01:23)
  • Query-able Types (03:09)
  • IQueryable (01:50)
  • Flavors of LINQ (01:09)
  • LINQ Syntax (03:21)
  • LINQ to Objects (02:42)
  • SilverBCL (04:41)
  • Summary (00:21)
Silverlight and Threading (30:19)
  • Introduction (00:48)
  • Threading (04:52)
  • Threading Considerations (03:30)
  • Demo: Update UI Thread (03:25)
  • BackgroundWorker Class (05:48)
  • Threading Gotchas (01:23)
  • Timers (02:38)
  • Timer in Action (03:21)
  • Demo: Timer (04:05)
  • Summary (00:23)
Isolated Storage (23:41)
  • Introduction (00:44)
  • MethodAccessException (02:20)
  • LocalStorage (02:49)
  • Isolated Storage API (03:00)
  • User Scoped Storage (01:14)
  • Where Are Files Located? (01:28)
  • IsolatedStorageFile API (00:56)
  • IsolatedStorageFileStream (01:10)
  • Writing to Streams (01:55)
  • Locating Files (01:23)
  • Reading from Streams (01:14)
  • Demo: Read and Write Files (04:58)
  • Summary (00:25)

Module 5

Local Storage in Silverlight (19:07)
  • Introduction (00:39)
  • OpenFile Dialog Box (03:12)
  • OpenFileDialog in Action (02:49)
  • Demo: OpenFileDialog (05:00)
  • Storage Concepts (01:21)
  • Quota (03:00)
  • Occasional Connection (02:29)
  • Summary (00:34)
XML in Silverlight (40:20)
  • Introduction (00:36)
  • XML in .NET (05:12)
  • XML in Silverlight (02:43)
  • Pulling XML Data (01:10)
  • XmlWriter (02:18)
  • Writers in Action (02:46)
  • Creating XML Content (03:27)
  • XMLReader (02:12)
  • Readers in Action (01:18)
  • Using the Reader (03:02)
  • Walkthrough: XmlWriter (07:22)
  • Demo: XmlWriter (01:02)
  • Read an XML File (01:51)
  • Read in the Real World (04:35)
  • Summary (00:39)
LINQ to XML (16:44)
  • Introduction (00:49)
  • LINQ to XML (03:28)
  • Demo: LINQ to XML (02:00)
  • Demo: ParseWithLinq (02:18)
  • Demo: Update the UI (01:56)
  • Application Settings (03:18)
  • Custom Containers (02:21)
  • Summary (00:29)

Module 6

Networking (44:06)
  • Introduction (00:37)
  • Communication Facts (01:55)
  • Communication APIs (01:33)
  • WebClient (03:15)
  • On-Demand Download (00:58)
  • Demo: WebClient Class (04:49)
  • DownloadStringCompleted (00:58)
  • Parsing the Content (03:55)
  • UpdateUI (02:20)
  • buttonBar (02:25)
  • WebRequest (04:05)
  • Helper Streams (01:45)
  • Demo: WebRequest (06:34)
  • Response Stream (05:49)
  • DataContractJsonSerializer (02:35)
  • Summary (00:26)
Cross-Domain Calls (17:39)
  • Introduction (00:39)
  • Synchronous Calls (05:03)
  • Deadlocks (01:36)
  • Sync Call to Remote URL (03:44)
  • Evergreen Approach (01:09)
  • Cross-Domain Calls (02:20)
  • CrossDomain.xml (01:16)
  • ClientAccessPolicy.xml (01:15)
  • Summary (00:34)

Module 7

WCF (43:48)
  • Introduction (00:32)
  • Data and Services (03:09)
  • Silverlight and Services (03:17)
  • Four Moves (04:08)
  • WCF Services (01:31)
  • ABCs of WCF (01:28)
  • Defining the Contract (01:19)
  • Defining the Data Contract (01:24)
  • Implement the Service (00:57)
  • Publish the Service (04:03)
  • Invoke the Service (02:54)
  • Call the Proxy Class (01:56)
  • Get Data from Service (01:32)
  • Create WCF Service (03:07)
  • IStockService Interface (00:50)
  • Create the Endpoint (01:17)
  • Edit Web.config (01:26)
  • Config the Web Service (05:42)
  • Using Data from the Service (02:24)
  • Summary (00:44)
Securing Services (39:05)
  • Introduction (00:35)
  • Considerations (02:06)
  • JSON, SOAP, AJAX (05:54)
  • XML vs JSON (03:16)
  • JSON in Silverlight (02:03)
  • Services in Silverlight (01:46)
  • Security for Services (01:07)
  • Securing Public Services (01:51)
  • Securing Backend Services (02:29)
  • Graphically Speaking (01:27)
  • Protecting the Page (01:17)
  • ASP.NET Changes (01:59)
  • Authentication (00:46)
  • Inside the Service (01:41)
  • ASP.NET Compatibility (01:43)
  • Outside Callers (00:38)
  • Demo: Protected Service (07:46)
  • Summary (00:33)

Module 8

Security Models (19:19)
  • Introduction (00:25)
  • Security and RIA (01:23)
  • ActiveX (03:24)
  • Balancing Security (01:55)
  • Code Access Security (01:30)
  • Human Factor (01:29)
  • CAS or Not? (01:00)
  • Silverlight Security (01:39)
  • Transparent Code (01:36)
  • Critical Code (01:46)
  • SecurityCritical Attribute (00:54)
  • Safe-Critical Code (01:52)
  • Summary (00:21)
Critical Code (22:42)
  • Introduction (00:32)
  • Why Critical Code? (01:08)
  • Critical & Safe-Critical (02:01)
  • Graphically Speaking (02:31)
  • App vs Platform Code (01:05)
  • Detecting Platform Code (01:25)
  • Inheritance Rules (01:48)
  • Override Safe-Critical Code (04:24)
  • Demo: Critical Code (07:14)
  • Summary (00:29)
WPF and Silverlight (31:59)
  • Introduction (00:35)
  • Can You Reuse XAML? (01:48)
  • Sharing XAML (02:43)
  • Demo: WPF User Control (02:30)
  • Separation of Concerns (02:32)
  • Inside the Code-Behind (02:16)
  • Model-View-Presenter (03:05)
  • M-V-P Illustrated (01:17)
  • Structure of Presenter (03:00)
  • Demo: M-V-P Pattern (07:27)
  • Model-View-ViewModel (04:07)
  • Summary (00:34)