COVID-19 Response at Fishpond.com.au

Read what we're doing...

Silverlight 2 Unleashed
By

Rating

Product Description
Product Details

Promotional Information

Silverlight is Microsoft's new web-based User Interface (UI) technology, based on Windows Presentation Foundation (WPF), which is introducing many revolutionary concepts in the world of UI development. Silverlight utilizes XAML, which tools like Expression Design and Expression Blend use to create astonishing UI effects (such as gradients, compositions, and animations.) In addition to the richness of the UI elements (comparable to Adobe Flash), Silverlight 2 allows the use of C# or VB in addition to JavaScript to automate web pages. With Silverlight, you have the power of .NET on multiple platforms (IE and Firefox on Windows, Firefox and Safari on Macintosh, and Firefox on Linux). Starting from scratch, Sams Teach Yourself Silverlight 2 in 24 Hours introduces XAML, .NET, and Silverlight, using a lot of hands-on examples to consolidate his advance through this technology. The author, a rising star in the Microsoft development world, brings you up to speed very quickly, with numerous hands-on demos, starting in the very first chapter.

Table of Contents

Introduction 1 About Code in This Book.... 1 One Year Older..... 2 1 Introducing Silverlight 3 Where Does Silverlight Come From?... 4 Automating Web Pages with JavaScript.. 4 Cascading Style Sheets... 5 Progressing to DHTML... 6 Communicating in a Richer Way with AJAX. 7 Using Third-Party Plug-Ins.... 7 Using Java Applets.... 7 Using ActiveX Controls... 8 Using Flash Applications... 8 Running on Multiple Platforms... 9 Making the Web Application Secure... 10 Introducing Silverlight.net.... 11 What Do You Need to Run Silverlight?.. 11 Updating Your Runtime-Automatically.. 12 Trying Silverlight Demos.... 12 Playing Chess Against Silverlight.. 13 Planning Your Trips with the Airline Application. 14 DeepZooming into the Hard Rock Cafe.. 15 Finding More Demos... 15 What Do You Need to Develop Silverlight?.. 16 Expression Studio.... 16 Visual Studio 2008.... 17 Reading the Documentation... 17 Browsing the Online Reference.. 18 Finding More Documentation... 18 Learning with Tutorials... 18 Looking into Silverlight's Future... 19 Is ASP.NET/HTML/JavaScript Dead?.. 19 Summary..... 20 2 Understanding XAML 21 Using XML for Data.... 21 Using XML for User Interfaces... 23 Understanding XML Namespaces... 23 Defining Additional Namespaces... 24 Creating a Canvas with Children... 25 Attaching Properties: Canvas.Left and Canvas.Top.. 26 Documenting Your Markup with XML Comments. 27 Testing XAML Markup.... 27 Using SilverlightPad... 27 Using KaXaml.... 29 Setting Properties in XAML.... 30 Changing Brushes.... 32 Composing Scenes in XAML... 32 Saving Typing, Saving Space... 34 Summary..... 35 3 Playing with XAML Transforms and Animations 37 Transforming Visuals.... 37 Types of Transforms.... 39 RotateTransform.... 39 TranslateTransform.... 40 ScaleTransform.... 41 SkewTransform.... 42 MatrixTransform.... 43 Composing Transforms.... 44 Creating a Basic Animation.... 46 Understanding the Animation's Elements.. 47 Adding a Scale Animation.... 49 Using Other Types of Animations... 50 Navigating the Property Path... 51 Deploying the Scene to a Web Page... 52 Summary..... 52 4 Expression Blend 53 The Expression Studio in Short... 53 Installing Expression Blend.... 54 Starting Expression Blend.... 54 Setting Options..... 55 Creating a New Project.... 56 Understanding the Panels.... 57 Looking at the Files.... 58 Executing in the Web Browser... 59 Working with Shapes.... 59 Using the Properties Panel.... 60 Using the Color Picker.... 61 Creating a LinearGradientBrush... 61 Changing the Gradient Vector... 62 Creating a RadialGradientBrush... 63 Creating a 3D Border Effect Using RadialGradientBrush. 63 Resetting Properties to Their Default Value.. 64 Composing the Elements Hierarchy... 64 Summary..... 65 5 Using Media 67 Mixing Colors..... 67 Why FF?..... 68 Seeing Through the Transparency Channel.. 69 Seeing Through the Opacity... 71 Using Vector Graphics.... 72 Adding Media to Your Scenes... 74 Laying Out the Application... 74 Adding Pictures.... 76 Adding Video.... 76 Testing the Result Quickly in a Web Browser. 77 Refining the Layout.... 78 Adding Yet Another Image... 79 Controlling Sound and Video... 80 Switching Auto-Play Off... 80 Creating an Endless Loop... 80 Pausing and Playing the Video.. 82 Setting a "Hand" Cursor... 82 Checking the Other Properties... 83 Filling the Space.... 83 Hiding the Media from Mouse Input.. 83 Using Media to Write.... 84 Writing with Video.... 84 Writing with Images... 85 Transforming Media.... 86 Using Web-Based Media.... 86 Summary..... 87 6 Blending a Little More 89 Creating Transforms.... 89 Creating an OpacityMask.... 90 Using Paths..... 92 Creating a Path from Scratch... 92 Using Splines to Modify a Path.. 93 Combining Shapes... 93 Clipping Path..... 94 Paths in XAML.... 95 Grouping Controls.... 95 Grouping Elements... 95 Trying Other Panels... 96 Scrolling the Thumbnails... 97 Making a User Control.... 98 Creating a User Control... 98 Using the User Control... 100 Working on the Thumbnails Gallery... 101 Adding a Display Frame... 101 Adding a Reflection under the Thumbnails. 102 Reflecting Video.... 104 Just One Last Thing... 104 Summary..... 105 7 Deploying to a Web Page 107 Creating a Test Page.... 107 Understanding the object Tag... 109 Attributes.... 109 Parameters.... 110 Modifying the Attributes and Parameters. 111 Deploying with JavaScript... 114 Detecting Silverlight.... 114 Integrating Silverlight in an Existing Web Page.. 115 Understanding the Original Code.. 116 Getting the XAP file... 117 Modifying the Markup... 117 Testing the Result... 119 Referencing a XAP on Another Web Server. 119 Getting Web Space.... 120 Web Server Requirements... 121 Finding a Provider.... 121 Getting Started with FTP.... 122 Setting Up an FTP Client... 122 Connecting to Your Server... 123 Copying Your Silverlight Application... 124 Testing Your Work... 126 Summary..... 126 8 Programming Silverlight with JavaScript 129 Learning the Basics.... 130 Comments.... 130 Semicolons.... 130 Case Sensitivity.... 131 Variables.... 131 Functions.... 132 Prototype, this, new... 132 Types..... 132 Built-In Objects and Libraries.. 133 alert..... 133 undefined.... 134 null..... 135 Handling Events.... 135 Understanding the Concept of Objects.. 136 Interfacing with Other Instances.. 137 Storing Stuff Globally... 137 Using the Literal Notation JSON... 138 Creating Objects with JSON... 139 Static Members..... 140 Loading Scripts in a Web Page... 141 Understanding the Context... 142 Integrating Silverlight in an Existing Web Page Using JavaScript 143 Finding Silverlight.js... 144 Using Silverlight.js... 144 Detecting Silverlight Versions.. 149 Detecting JavaScript... 150 Modifying the Web Page During Runtime. 150 Debugging..... 150 Summary..... 151 9 Understanding .NET 153 History of .NET..... 153 Versions, Versions, Versions.. 154 Managed Versus Unmanaged.. 155 Downloading and Installing Visual Studio 2008. 156 Creating a Silverlight 2 Application in Visual Studio 2008. 156 Building and Running the Application.. 157 Finding Compilation Errors... 158 Exploring the Files... 158 Running the (Empty) Application.. 161 Intellisense..... 162 Programming C# with Basic Constructs.. 163 Types..... 163 Type Conversion.... 165 if then else.... 166 for..... 167 foreach..... 168 while..... 169 do...while.... 170 switch...case.... 170 Operators.... 171 Summary..... 174 10 Progressing with .NET 175 Programming with Objects in C#... 175 Breaking Your Problem into Smaller Ones. 175 Namespaces and the using Directive.. 176 Visibility..... 177 Properties.... 178 Inheritance.... 180 Adding Interactivity to the Thumbnails Application. 181 Adding Event Handlers in Code.. 181 Displaying the Expanded Media.. 182 Overloading Methods.... 185 Raising Events and Using Delegates.. 186 Creating an EventArgs... 187 Declaring the Event... 188 Subscribing to the Event... 189 Storing Data on the Client.... 190 Understanding the Isolated Storage Security Restrictions 190 Creating Objects.... 190 Reading from the Isolated Storage.. 195 Writing to the Isolated Storage.. 195 Updating the User Interface... 196 Multibrowser Compatibility... 197 Summary..... 197 11 Progressing with Animations 199 Animating Elements in Blend... 199 Testing the Application... 201 Editing the Animation's Properties.. 202 Easing In and Out.... 203 Synchronizing Animations.... 204 Understanding the Animation Elements. 204 Reversing a Storyboard.... 206 PointAnimation..... 206 Starting and Stopping the Animation... 208 Working on the Thumbnails Gallery... 210 Making a Scenario... 210 Setting the Stage.... 210 Making the Draft Animation... 211 Easing the Translate Animation.. 212 Triggering the Animation in Code.. 213 Creating the "Fading" Animation in Code. 219 Summary..... 221 12 Encoding Videos with Expression Encoder 223 Before We Start....... 223 Introducing Expression Encoder... 224 Setting Options..... 224 Understanding the Panels... 225 Importing a Video.... 226 Saving your Changes.... 227 Specifying the Output Type... 227 Editing the Video Size and Aspect.. 228 Advanced Processing and Codec Settings. 230 Adding a Leader and Trailer Video.. 230 Testing Before Encoding.... 231 Setting Metadata.... 232 Adding Your Own Metainformation.. 232 Creating Chapters... 233 Creating Captions... 234 Encoding the Video for Silverlight... 235 Checking the Result.... 236 Playing the Video in Full Screen.. 237 Advanced Parameters.... 237 Summary..... 238 13 Progressing with Videos 239 Why Streaming?.... 239 Publishing on Your Own Website... 240 Copying the Files.... 240 Adding an Overlay.... 241 Adding an Icon or a Video... 242 Setting Advanced Properties... 242 Adding an XAML Overlay... 243 Letting Your Users Choose the Player.. 245 Copying the Files.... 245 Modifying the Files... 245 Creating the Video... 247 How Does It Work?... 249 Publishing on Microsoft Silverlight Streaming Servers. 250 Signing Up.... 250 Installing, Setting Up the Plug-in, Publishing. 251 Testing the Output... 251 Adding the Application in an Existing Web Page. 252 Using an iframe.... 253 Using JavaScript and a Live Control.. 254 Firing Script Commands (and Catching Them).. 254 Modifying the Player Template in Blend.. 256 Adding a Full Screen Button... 256 Handling the Event in Script... 258 Testing the Result... 259 Summary..... 259 14 Letting .NET and JavaScript Talk 261 Making .NET Available to JavaScript... 261 Using the ScriptableMember Attribute.. 261 Registering the Object... 262 Handling .NET Events in JavaScript... 263 Preparing the scriptable Class.. 263 Raising the Event.... 264 Subscribing to the Event on the JavaScript Side. 265 Testing the Code.... 267 Calling JavaScript Methods from .NET.. 267 Calling .NET Methods from JavaScript.. 269 Adding a "Login" Dialog to the Thumbnails Application. 270 Extending the User Object... 270 Handling Multiple Users... 274 Modifying the Page Class... 278 Adding a "Login" Label... 280 Adding a Web Project... 282 Checking the Media Files' Build Action.. 282 Adding the HTML Login Dialog.. 283 Blending the Silverlight Application with HTML. 285 Catching the .NET Event... 285 Wiring Up the Scripts... 287 Handling the HTML Events... 288 Summary..... 289 15 Digging into Silverlight Elements 291 Exploring the Class Hierarchy... 291 Exploring the Object... 292 Exploring the DependencyObject.. 292 Exploring the UIElement... 292 Exploring the FrameworkElement.. 293 Choosing XAML or Code-Behind... 293 Packing and Laying out with Panels... 296 Composing Elements... 297 Discovering the Canvas... 297 Using a Canvas to Drag an Element.. 298 Stacking Elements in a StackPanel.. 301 Using a StackPanel for "Flow Layout".. 301 Using a Grid to Align Elements.. 302 Setting Up a Minimum and Maximum Size. 305 Adding Elements to a Grid... 305 Adding Elements to a Grid in Code-Behind. 307 Scrolling and Bordering.... 307 Using a ScrollViewer to Scroll Big Areas. 307 Surrounding an Element with a Border.. 308 Using Pop-Ups..... 310 Drawing Shapes.... 311 The Data Property.... 312 Summary..... 313 16 Digging Deeper into Silverlight Elements 315 Understanding the Control Class... 315 Enabling and Disabling Controls.. 316 Styling and Templating Controls.. 316 About Fonts.... 317 Discovering Basic Controls... 317 Presenting and Inputting Text.. 317 Discovering the ButtonBase... 319 Scrolling and Dragging... 320 Presenting Media.... 324 Picking Dates with Calendar and DatePicker.. 325 Using the Calendar.... 325 Using the DatePicker... 326 Catching Errors.... 327 Writing with Ink..... 327 Making a Simple Drawing Application.. 328 Preparing the Scene... 328 Handling the Events... 330 Running the Application... 335 Presenting Data with ItemsControls... 335 Using the TabControl... 336 Deep Zooming Your Image Collection.. 337 How Does It Work?... 337 Creating a DeepZoom Image Pyramid.. 337 The MultiScaleImage Control.. 339 Summary..... 340 17 Using Resources, Styling, and Templating 341 Storing Items in Collections... 342 Implementing Interfaces... 342 Using ResourceDictionaries in Silverlight.. 343 Storing Resources... 344 Using Resources in Code-Behind.. 345 What's the Point Anyway?... 345 Using Resources in XAML... 345 Storing Resources in App.xaml.. 347 Styling a Control.... 348 Creating a Style.... 348 Using a Style.... 349 Priority of Property Setters... 349 Creating a Style in Blend... 350 Editing a Style in Blend... 351 Styling the Thumbnails Application... 352 Styling the TextBlocks... 352 Styling the Thumbnails... 353 Moving Resources in Blend... 354 Embedding Fonts in the Application... 354 Embedding a Font in Blend... 354 Embedding a Font in Visual Studio.. 356 Templating the Lookless Control... 356 But the Control Has a Look!... 357 Editing the Template... 357 Modifying the States... 358 Binding the Template to the Control.. 359 Presenting Content... 360 Summary..... 361 18 Data Binding and Using Data Controls 363 Understanding Data Binding... 363 Creating a Data Object... 364 Creating the Data Object in Resources. 365 Writing to the Data Object with a Binding. 366 Getting Notified, Finding Binding Errors. 367 Converting Values in Bindings.. 368 Digging in the Binding Class... 369 Setting the DataContext.... 370 Using Data Controls.... 372 Using a ListBox.... 372 Using the DataGrid.... 380 Using XML Data Sources.... 386 Summary..... 386 19 Creating User Controls and Custom Controls 387 Creating a Thumbnails Viewer User Control.. 387 Creating the Data Objects... 388 Packing the ThumbnailsViewerControl.. 391 Communicating with the Outside World. 393 Creating the Items and Designing a DataTemplate. 397 Creating the Media Instances in XAML.. 397 Designing a DataTemplate... 399 Removing the Test Data Source.. 401 Moving the Media Files... 401 Connecting the ThumbnailsViewer to the Real Data 403 Raising and Handling the SelectionChanged Event 403 Creating a MediaInfoDisplay Custom Control.. 405 Making a Blueprint... 405 Creating the "Shell"... 406 Handling the States... 410 Handling the Part.... 411 Applying the Template... 413 Summary..... 414 20 Taking Silverlight 2 One Step Further 415 Creating a Default Template for the MediaInfoDisplay Control 415 Using the MediaInfoDisplay Control... 417 Adding Test Data.... 417 Adding the Control to the Scene.. 418 Creating a Template... 419 Making Transitions... 420 Removing the Test Data... 421 Wiring Up.... 421 Digging Deeper.... 422 Scrolling the Items.... 422 Creating a New RepeatButton Template.. 425 Creating the Template... 425 Changing the Transitions... 426 Binding the Template... 427 Testing the New Button... 427 Styling the RepeatButton... 427 Styling the Other Button... 428 Exporting Classes to an External Assembly and Refactoring 429 Creating a Silverlight Class Library.. 429 Using an External Class Library.. 432 Talking About the Application Object... 434 Using Generics..... 436 Summary..... 437 21 Taking Silverlight 2 Even Further 439 Registering Multiple JavaScript Event Handlers. 440 Finding Silverlight Elements in JavaScript.. 441 Accessing the HTML Page From .NET.. 443 Exchanging Data Between .NET and JavaScript. 445 Attempting Conversion... 446 Passing Standard Formats... 448 Converting the ScriptObject Class.. 449 Passing Initialization Parameters... 453 Setting Initialization Parameters.. 453 Retrieving Initialization Parameters.. 453 Attaching .NET Events to HTML Elements.. 454 Using the HtmlEventArgs Class.. 456 Publishing Directly from Visual Studio.. 457 Debugging Your Silverlight Application.. 458 Comparing Debug Version and Release Version 458 Creating the Release Version.. 458 Stepping Through the Code... 459 Inspecting and Modifying Variables.. 462 Debugging in a Web Site Project.. 463 Debugging JavaScript... 463 Debugging Running Applications.. 464 Debugging Silverlight Running on a Macintosh. 465 Summary..... 465 22 Connecting to the Web 467 Creating and Loading an XML File... 467 Removing the Media Information from the Application 467 Showing and Hiding a Startup Screen.. 468 Loading the XML Media Information File. 469 Sending the Request... 471 Getting a Response... 472 Reading an XML File with LINQ.. 473 Parsing Enums.... 476 Triggering the Request... 477 Handling the Results... 477 Testing the Application... 480 Loading a Zip File and Showing Progress.. 480 Creating the Zip File... 480 Extending the MediaEx Class to Store the Stream. 481 Loading the Zip File... 482 Reading the Zipped Files... 483 Updating the UI.... 486 Making Requests to WCF Services... 488 Moving the User and DataFile Classes to the Server 488 Changing the DataFile to Run on the Server. 489 Creating the WCF Service... 491 Implementing the Service... 492 Updating the Client Application.. 494 More Connectivity.... 497 Summary..... 498 23 Placing Cross-domain Requests and Handling Exceptions 499 Placing Cross-domain Requests... 499 Using the Flash Cross-domain Policy File. 500 Using the Silverlight Cross-domain Policy File. 501 Understanding the Restrictions.. 502 Communicating with Third-Party Services.. 503 Accepting the Flickr Terms of Services.. 503 Getting a Flickr API Key... 504 Preparing and Sending the Request.. 504 Handling the Response... 508 Updating the UI.... 514 Placing POST Requests.... 516 Throwing and Catching Exceptions... 517 Bubbling Exceptions... 518 Understanding an Exception's Properties. 521 Catching Unhandled Exceptions.. 522 Creating Custom Exceptions... 523 Handling Silverlight Errors in JavaScript. 524 Summary..... 525 24 Silverlight: Continuing the Journey 527 Updating a Service Reference... 527 Killing a Process.... 528 Killing the Process in Debug Mode.. 530 About Protecting Your Work... 530 Protecting Your Work Anyway.. 530 Binding in Special Configurations... 531 Setting a Binding in Blend... 531 Handling Validation Errors... 533 Binding Through a Converter, ConverterParameter, ConverterCulture 534 Binding to an Object Rather Than a Property. 535 Using the ASP.NET Controls Silverlight and MediaPlayer. 536 Using the Silverlight ASP.NET Control.. 537 Using the MediaPlayer ASP.NET Control. 538 Creating Unit Tests for Silverlight... 541 Installing the Silverlight Unit Test Framework. 541 Creating a New Silverlight Test Application. 542 Creating the TryFindResource Extension Method. 544 Making the Test Pass... 545 Implementing Recursion... 545 Learning More About Unit Test.. 548 Reusing Microsoft Unit Tests.. 549 Making or Buying XAML Resources... 549 Using Expression Design... 549 Finding XAML Resources Online.. 550 Converting Files to XAML... 551 Using Third-Party Controls and Libraries.. 552 Reading Silverlight-Related Blogs... 553 Summary..... 553 TOC, 0672330148, 10/3/08

About the Author

Laurent Bugnion has been employed by Siemens as a software engineer since 1996. He has worked with many different programming languages and environments, starting with embedded C, and moving to embedded C++, then Java, and finally .NET in 2002. He has been a Microsoft MVP, first for ASP.NET, and currently for Client Application Development. He has a popular blog at http://geekswithblogs.net/lbugnion/Default.aspx. He lives just outside of Zurich, Switzerland.

Ask a Question About this Product More...
Write your question below:
Look for similar items by category
People also searched for
How Fishpond Works
Fishpond works with suppliers all over the world to bring you a huge selection of products, really great prices, and delivery included on over 25 million products that we sell. We do our best every day to make Fishpond an awesome place for customers to shop and get what they want — all at the best prices online.
Webmasters, Bloggers & Website Owners
You can earn a 8% commission by selling Silverlight 2 Unleashed on your website. It's easy to get started - we will give you example code. After you're set-up, your website can earn you money while you work, play or even sleep! You should start right now!
Authors / Publishers
Are you the Author or Publisher of a book? Or the manufacturer of one of the millions of products that we sell. You can improve sales and grow your revenue by submitting additional information on this title. The better the information we have about a product, the more we will sell!
Item ships from and is sold by Fishpond.com, Inc.
Back to top