eBook
Related collections and offers
Overview
Full Color Code samples appear as they do in Visual Studio and Expression Blend!
Printed entirely in color, with helpful figures and syntax coloring to make code samples appear as they do in Visual Studio and Expression Blend!
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 uses XAML, with tools like Expression Design and Expression Blend, to create astonishing UI effects (such as gradients, compositions, and animations.) In addition to the richness of the UI elements, 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). The author brings you up to speed very quickly with numerous hands-on examples.
- Use XAML to create state-of-the-art user interfaces
- Create XAML transforms and animations
- Design compelling user experiences with Microsoft Expression Blend
- Integrate media into your rich Internet applications
- Program Silverlight with both JavaScript and .NET languages
- Deploy Silverlight content to web pages
- Encode videos with Expression Media Encoder
- Make the most of Silverlight elements, resources, and styles
- Use templates to quickly change your application’s look and feel
- Efficiently debug Silverlight code
- Use design tools to create graphics that import seamlessly into Silverlight
Laurent Bugnion has been a software engineer since 1996. He has worked with many programming languages and environments, including C, C++, Java, HTML/CSS/JavaScript, and, since 2002, the Microsoft .NET platform. He has been honored twice as a Microsoft MVP: first for ASP.NET and now for Client Application Development. He blogs about Silverlight and related technologies at http://blog.galasoft.ch.
ON THE WEB:
Download all examples and source code presented in this book from informit.com/title/9780672330148
Category: Microsoft Programming/Web Programming
Covers: Microsoft® Silverlight 2
User Level: Beginning—Intermediate
Product Details
ISBN-13: | 9780768685824 |
---|---|
Publisher: | Pearson Education |
Publication date: | 10/15/2008 |
Series: | Sams Teach Yourself |
Sold by: | Barnes & Noble |
Format: | eBook |
Pages: | 608 |
File size: | 8 MB |
About the Author
Laurent Bugnion works as a senior software developer and architect in Switzerland, where he lives with his wife, Chi Meei, and his two daughters, Alise (2001) and Laeticia (2004). Originally an electronics engineer from the Engineering School of Yverdon (Switzerland), his interests quickly moved to software, and he achieved a post-graduate degree in software engineering in 1999 in the Engineering School of Rapperswil (Switzerland). Currently, his interests are very much set on WPF, Silverlight, and other .NET 3.5 technologies, which he helped introduce, teach, and coach at Siemens for the past three years. Prior to that, he first wrote embedded C/C++, and then moved to desktop computers in Java, JavaScript, and eventually .NET (WinForms and ASP.NET). After more than 12 years spent developing various software products at Siemens, Laurent is employed since December 2008 by IdentityMine, one of the world’s leading firms in WPF and Silverlight development and design.
Privately, Laurent has also been active, developing websites and web applications in HTML, JavaScript, CSS, ASP, and currently ASP.NET. He has done his best to contribute to various developers communities, first in the JavaScript newsgroups, and then in Microsoft’s forums related to ASP.NET, C#, WPF, and Silverlight. He blogs regularly on http://blog.galasoft.ch and publishes articles, prototypes, and demos related to the mentioned technologies. Laurent became a Microsoft Most Valuable Professional (MVP) in 2007 for ASP.NET and then in 2008 for Client Application Development. In 2008, he also earned an MCTS for Windows Presentation Foundation.
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 Café.. 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
Preface
Introduction Introduction
With the release of Windows Presentation Foundation (a new graphical user interface framework for Windows desktop applications) in 2006 and of Silverlight in 2008, client application development took a turn for the best. Microsoft boldly decided to abandon some concepts and technologies that had been used since the first release of Windows and to do something new and better. While it sometimes seems difficult to keep up with the pace of change imposed on software developers, this one is really worth it. Microsoft's bet on Silverlight and WPF is huge, and it cannot fail. These technologies represent the future of client application development.
Because it runs on multiple platforms in a web browser plug-in that will soon be available on most of the rich clients accessing the Internet, because it can be deployed as easily as any web content and be served from any web server without additional infrastructure, and because of the rich graphic interfaces it allows to be built and the amazingly easy connectivity to remote services that it offers, Silverlight will be a major player in the world of rich interactive applications (RIA). Silverlight is also a gateway to Windows Presentation Foundation, the client application technology that represents the future of Microsoft Windows programming for desktop computers.
In a World Wide Web where Adobe Flash currently has a leading edge, Silverlight represents much more than just an alternative: It is the .NET way! Every .NET programmer will feel at home with Silverlight, because the libraries, the programming languages (C#, VB.NET, Ruby, Python), and the development environment (Visual Studio, Expression Studio) are the same. In addition, new concepts developed and refined in Windows Presentation Foundation are made available to Silverlight programmers, such as data binding, separation of behavior and looks, lookless controls that can be styled and templated at will in powerful design tools such as Expression Blend, a rich animation system, media integration, and so on. XAML, the new XML-based Application Markup Language developed by Microsoft, can be leveraged as a bridge between developers and designers to enable new workflows.
This book is not and was never intended to be a complete reference of the Silverlight platform. Honestly, I am not even sure that you need a book for this: The Internet is at your disposal and has a better, more complete, and more actual reference base than any book can ever offer. No, this book is here to help you discover why programming is fun and why Silverlight is even more fun, and to contaminate you with the Silverlight virus. Complex concepts are explained in simple terms, with many hands-on demos and figures so that beginners as well as advanced developers quickly will feel at home.
About Code in This BookWe tried to keep formatting as consistent as possible throughout the book and to make the code look like it does in Visual Studio. The code is color coded to help you work faster and recognize key concepts in XAML, C#, JavaScript, and HTML in Studio and in Expression Blend.
The source code lines are only numbered where it is relevant, for example, when the text makes explicit reference to a line number.
The whole source code for this book is available online at http://www.galasoft.ch/SL2U/Code. For C# code, a translation in VB.NET is also available, courtesy of this book's technical editor, J. Boyd Nolan.
One Year OlderI started working on this book in September 2007, and I am now exactly one year older. Professionally speaking, it has been the most interesting year of my life. Since I started working as a developer in 1996, I have worked with many client technologies and programming languages, including C, VB, Java, HTML, CSS, JavaScript, ASP.NET, Windows Forms and finally Windows Presentation Foundation and Silverlight. In all these years, I have never been as excited about a new programming platform. Writing a book is hard, and it's a lot of work. But it was also fun and so interesting that I always felt right doing it. If I had to do it again, I would sign without hesitation. And now that it's going to be published, I can't wait to see what you, the reader, will create in Silverlight. Software has much to do with art, and Silverlight is the richest palette you can imagine. So grab the book and your computer, start coding and designing, and show the world what you can do. I will be waiting.
Happy coding!
Laurent
© Copyright Pearson Education. All rights reserved.