Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 963 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
963
Dung lượng
27,65 MB
Nội dung
BOOKS FOR PROFESSIONALS BY PROFESSIONALS ® MacDonald RELATED Pro Silverlight in VB Silverlight is a revolutionary browser plug-in Using it, you can create rich client applications that run inside the browser Impressively, Silverlight applications have crossplatform reach—they run seamlessly in non-Microsoft browsers (like Firefox, Safari, and Chrome) and work on both the Windows and Mac OS operating systems And best of all, Silverlight applications support pure VB code and use a streamlined version of the NET Framework In this book, you’ll learn to: • Develop rich applications that work on all desktop browsers • Design modern user interfaces with Silverlight’s layout tools and fully-stocked control toolkit • Create cutting-edge effects with 2D drawing, 3D drawing, and animation • Incorporate sound and video • Query a database through an ASP.NET web service, and display the records with data binding • Master advanced features like multithreading and networking • Create desktop-like applications that run in their own windows This book is for NET developers encountering Silverlight for the first time No Silverlight experience is required—but if you’ve worked with earlier Silverlight versions, you’ll appreciate the “What’s New” boxes that point out new features at the start of every chapter By the end of this book, you’ll have a solid understanding of the complete Silverlight platform, and you’ll be able to build anything from a slick business front-end to a browser-based game Shelve in NET User level: Intermediate–Advanced SOURCE CODE ONLINE www.apress.com www.it-ebooks.info For your convenience Apress has placed some of the front matter material after the index Please use the Bookmarks and Contents at a Glance links to access them www.it-ebooks.info Contents at a Glance About the Author xxvii About the Technical Reviewer xxviii Acknowledgments xxix Introduction xxx Chapter 1: Introducing Silverlight Chapter 2: XAML 35 Chapter 3: Layout 63 Chapter 4: Dependency Properties and Routed Events .111 Chapter 5: Elements 143 Chapter 6: The Application Model .205 Chapter 7: Navigation 233 Chapter 8: Shapes and Transforms 265 Chapter 9: Brushes, Bitmaps, and Printing 315 Chapter 10: Animation Basics 349 Chapter 11: Advanced Animation .377 Chapter 12: Sound, Video, and Deep Zoom .411 Chapter 13: Silverlight 3D 467 Chapter 14: Styles and Behaviors .511 Chapter 15: Control Templates 539 Chapter 16: Multithreading .583 Chapter 17: Browser Integration 605 Chapter 18: Out-of-Browser Applications 631 Chapter 19: ASP.NET Web Services 679 iv www.it-ebooks.info CONTENTS Chapter 20: Data Binding 709 Chapter 21: Data Controls 763 Chapter 22: File Access 825 Chapter 23: Networking 857 Index 905 v www.it-ebooks.info Introduction Silverlight is a framework for building rich, browser-hosted applications that run on a variety of operating systems Silverlight works its magic through a browser plug-in When you surf to a web page that includes Silverlight content, this browser plug-in runs, executes the code, and renders that content in a specifically designated region of the page The important part is that the Silverlight plug-in provides a richer environment than the traditional blend of HTML and JavaScript that powers ordinary web pages Used carefully and artfully, you can create Silverlight pages that play video, have hardwareaccelerated 3D graphics, and use vector animations Understanding Silverlight Silverlight uses a familiar technique to go beyond the capabilities of standard web pages: a lightweight browser plug-in The advantage of the plug-in model is that the user needs to install just a single component to see content created by a range of different people and companies Installing the plug-in requires a small download and forces the user to confirm the operation in at least one security dialog box It takes a short but definite amount of time, and it’s an obvious inconvenience However, once the plug-in is installed, the browser can process any content that uses the plug-in seamlessly, with no further prompting Figure shows two views of a page with Silverlight content At the top is the page you’ll see if you don’t have the Silverlight plug-in installed At this point, you can click the Get Microsoft Silverlight picture to be taken to Microsoft’s website, where you’ll be prompted to install the plug-in and then sent back to the original page On the bottom is the page you’ll see once the Silverlight plug-in is installed xxx www.it-ebooks.info INTRODUCTION Figure Installing the Silverlight plug-in xxxi www.it-ebooks.info INTRODUCTION Note At the time of this writing, Silverlight is installed on an estimated 75 percent of Internet-connected computers (including desktop and mobile devices) The share is higher if you consider only Windows operating systems or Internet Explorer browsers Although this is impressive, it pales in comparison to Flash, which has version 10 or better installed on a staggering 96 percent of all web devices (To get up-to-date statistics, refer to www.riastats.com.) Silverlight System Requirements With any web-centric technology, it’s keenly important to have compatibility with the widest possible range of computers and devices And although Silverlight isn’t completely cross-platform, its compatibility stacks up well on the majority of desktop computers Currently, Silverlight supports the following: • Windows computers: Silverlight works on PCs with Windows 7, Windows Vista, and Windows XP The minimum browser versions that Silverlight supports are Internet Explorer 6, Firefox 1.5, and Google Chrome 4.0 Silverlight will also work in Windows 2000, but only with Internet Explorer Other browsers, such as Opera and Safari (for Windows), aren’t currently supported • Mac computers: Silverlight works on Mac computers with OS X 10.4.8 or newer, provided they have Intel hardware (as opposed to the older PowerPC hardware) The minimum browser versions that Silverlight supports are Firefox and Safari Silverlight does not run on mobile Apple devices, which includes the iPhone, iPod Touch, and iPad • Linux computers: Although Silverlight doesn’t work on Linux, the Mono team has created an open source Linux implementation called Moonlight The last officially released version supports Silverlight applications, although there is also a released preview version that supports Silverlight Progress is slow, and it’s uncertain when (and if) there will be a Moonlight that supports Silverlight • Windows Phone: Silverlight is also one of two development frameworks for Windows Phone (the other being the game-focused Microsoft XNA) However, developing for Windows Phone raises some unique considerations, and there are some subtle feature differences To learn more about WP7 development, you can refer to a dedicated book, like Pro Windows Phone Development Installing Silverlight requires a small-sized setup (around 6MB) that’s easy to download That allows it to provide an all-important “frictionless” setup experience, much like Flash Silverlight vs Flash The most successful browser plug-in is Adobe Flash, which is installed on more than 90 percent of the world’s web browsers Flash has a long history that spans more than ten years, beginning as a xxxii www.it-ebooks.info INTRODUCTION straightforward tool for adding animated graphics and gradually evolving into a platform for developing interactive content It’s perfectly reasonable for NET developers to create websites that use Flash content However, doing so requires a separate design tool and a completely different programming language (ActionScript) and programming environment (Flex) Furthermore, there’s no straightforward way to integrate Flash content with server-side NET code For example, creating Flash applications that call NET components is awkward at best Using server-side NET code to render Flash content (for example, a custom ASP.NET control that spits out a Flash content region) is far more difficult That’s where Silverlight fits into the picture Silverlight aims to combine the raw power and crossplatform support of Flash with a first-class programming platform that incorporates the fundamental concepts of NET As a result, developers can write client-side code for Silverlight in the same language they use for server-side code (such as C# and VB), and they use many of the same abstractions (including streams, controls, collections, generics, and LINQ) In short, for NET developers Silverlight is both a more convenient and a more powerful choice for rich Internet applications Silverlight vs HTML5 When Silverlight was first created, it was intended as an all-purpose way to build rich web pages and a competitor to Adobe Flash However, in the several Silverlight versions since, the world has changed Although Adobe Flash is still supported by virtually every desktop computer, it’s been locked out of popular Apple products like the iPhone and iPad As a result, the mobile world is gravitating to different solutions, including native applications (which are limited to just one operating system) or HTML5 A broad consensus exists that HTML5 is the future of the Web, someday However, the features that HTML5 promises (when it’s fully adopted) still fall far short of the features that are available today in Flash and Silverlight For some applications, these shortcomings don’t matter And, without doubt, the capabilities of HTML5 will strengthen in the future But in the meantime, developers are forced to choose between features now, if they need them (in which case they’re likely to pick Silverlight) and the broadest possible compatibility for all computers and mobile devices (in which case they’ll probably prefer HTML5) This dilemma is also described as rich versus reach Silverlight is the rich side of this equation—it gives applications the most powerful and mature feature set HTML5 is the reach, because it embraces every modern desktop browser Because of this upheaval, many Silverlight developers are uncertain about exactly where their favorite technology fits into the world of web development And while the future is far from certain, here are a few points to keep in mind: HTML5 isn’t quite here yet: HTML5 support lags in in Internet Explorer Many HTML5 features are promised for the not-yet-released IE 10, some features are available in the relatively recent IE 9, but IE has no HTML5 smarts This is a problem, because IE is the best version of IE that can run on the still-widespread Windows XP platform For all these reasons, HTML5 remains currently has less support than Silverlight, and this situation may take years to change Silverlight has features that have no HTML5 equivalent: Even in the browsers that offer the best possible HTML5 support fall behind Silverlight in a few key areas They can’t offer the same video streaming features, the same hardware-accelerated graphics, or the same deep networking support Nor they support file access, out-of-browser applications, or the ability to call Windows system components And it’s hard to imagine HTML5 ever duplicating some of Silverlight’s more specialized features, like the PivotViewer control that fuses together data filtering, fluid animations, and image scaling in one easy-to-use package (Chapter 21) xxxiii www.it-ebooks.info INTRODUCTION Silverlight has a higher-level programming API: Features such as data binding, styles, and templates may not be essential for building an application, but they are important for building one quickly and efficiently Many things that are possible in HTML5 are a manageability nightmare in all but the most disciplined hands The JavaScript language is notoriously lax in letting syntax errors slide, all animation routines must be written by hand, and multithreading support is clumsy at best Silverlight has top-tier development tools: Thanks to Visual Studio, you can build a Silverlight application just as easily as you build a desktop program Add Expression Blend to the picture, and you also have a way to define and customize rich graphical effects, like animations Silverlight offers ASP.NET integration: In particular, Silverlight makes it easy to query server-side databases through a web service This state of affairs has led some developers to speculate that even when HTML5 does finally conquer the world, Silverlight will remain as a first choice for line-ofbusiness development inside closed company networks No one’s quite sure of Silverlight’s future It may continue on as a first-choice platform for NET developers creating business applications, or it may gradually transition into a more specialized tool for cutting-edge games and video players One thing is settled, however: Silverlight will never replace HTML as the main language for creating traditional, public websites—nor does it intend to Silverlight vs Metro (and Windows 8) When Microsoft announced Windows 8, complete with yet another programming model for rich client applications, Silverlight developers paused Some wondered if that technology—named Metro—would be an eventual Silverlight replacement The answer is clearly “no.” Metro is designed to facilitate an entirely different sort of application: a lightweight, touch-centric, data-consuming application that can run on the future generation of Windows 8–powered tablets In a very real sense, Metro is a competitor to native apps on the iPad, as well as a potential successor to Microsoft’s other rich desktop programming framework, WPF (see the next section) However, Metro applications have no ability to run on non-Microsoft platforms—or any version of Windows other than Windows For that reason, they are of little interest to Silverlight developers In the future, the range of Silverlight applications may narrow, squeezed between cross-platform HTML5 applications that are gradually growing more sophisticated and native Metro or iPad applications for mobile devices However, today Silverlight still occupies the very important space between these other technologies Silverlight and WPF One of the most interesting aspects of Silverlight is the fact that it borrows the model WPF uses for rich, client-side user interfaces WPF is a toolkit for building rich Windows applications WPF is notable because it not only simplifies development with a powerful set of high-level features, it also increases performance by rendering everything through the DirectX pipeline To learn about WPF, you can refer to Pro WPF in VB 2010 (Apress) Silverlight obviously can’t duplicate the features of WPF, because many of them rely deeply on the capabilities of the operating system, including Windows-specific display drivers and DirectX technology However, rather than invent an entirely new set of controls and classes for client-side development, xxxiv www.it-ebooks.info INTRODUCTION Silverlight uses a subset of the WPF model If you’ve had any experience with WPF, you’ll be surprised to see how closely Silverlight resembles its big brother Here are a few common details: • To define a Silverlight user interface (the collection of elements that makes up a Silverlight content region), you use XAML markup, just as you with WPF You can even map data to your display using the same data-binding syntax • Silverlight borrows many of the same basic controls from WPF, along with the same styling system (for standardizing and reusing formatting) and a similar templating mechanism (for changing the appearance of standard controls) • To draw 2D graphics in Silverlight, you use shapes, paths, transforms, geometries, and brushes, all of which closely match their WPF equivalents • Silverlight provides a declarative animation model that’s based on storyboards and works in the same way as WPF’s animation system • To show video or play audio files, you use the MediaElement class, as you in WPF Note WPF is not completely cut off from the easy deployment world of the Web WPF allows developers to create browser-hosted applications called XBAPs (XAML Browser Applications) These applications are downloaded seamlessly, cached locally, and run directly inside the browser window, all without security prompts However, although XBAPs run in Internet Explorer and Firefox, they are still a Windows-only technology, unlike Silverlight The Evolution of Silverlight Silverlight was a relatively modest technology It included 2D drawing features and media playback support However, it didn’t include the CLR engine or support for NET languages, so developers were forced to code in JavaScript Silverlight was a dramatic change It added the CLR, a subset of NET Framework classes, and a user interface model based on WPF As a result, Silverlight was one of the most hotly anticipated releases in Microsoft’s history The versions of Silverlight since haven’t been as ambitious Silverlight keeps the same development model that was established in Silverlight but adds a carefully selected group of features and performance enhancements They highlights include the following: • Performance improvements: Silverlight starts faster, supports 64-bit browsers, and provides cleaner, crisper text rendering at small sizes • Vector printing: Silverlight improves its printing model to use vector printing, when possible (namely, if the print driver supports PostScript) The result is faster printing with less memory overhead (Chapter 9) xxxv www.it-ebooks.info CONTENTS The Storyboard Class 352 Starting an Animation with an Event Trigger 353 Starting an Animation with Code 354 Configuring Animation Properties 355 Animation Lifetime 357 Simultaneous Animations 359 Controlling Playback 360 Animation Easing 363 Using an Easing Function 363 Easing In and Easing Out 364 Easing Function Classes 366 Animation Performance 369 Desired Frame Rate 369 Hardware Acceleration 370 Independent Animations 375 The Last Word 376 Chapter 11: Advanced Animation .377 Animation Types Revisited 377 Animating Transforms 378 Animation Perspective Projections 380 Animating Brushes 382 Animating Pixel Shaders 383 Key-Frame Animation 385 Animations in Code 389 The Main Page 390 The Bomb User Control 392 Dropping the Bombs 393 Intercepting a Bomb 396 xv www.it-ebooks.info CONTENTS Counting Bombs and Cleaning Up 398 Encapsulating Animations .400 Page Transitions 400 The Base Class 401 The Wipe Transition 403 Frame-Based Animation 405 The Last Word 408 Chapter 12: Sound, Video, and Deep Zoom 411 Supported File Types .411 The MediaElement 412 Controlling Playback 413 Handling Errors 414 Playing Multiple Sounds 414 Changing Volume, Balance, and Position 415 Playing Video 418 Trick Play 419 Media Commands 419 Client-Side Playlists 422 Server-Side Playlists 423 Progressive Downloading and Streaming 423 Adaptive Streaming 425 Advanced Video Playback 426 Video Encoding 427 Encoding in Expression Encoder 427 Markers 430 VideoBrush 435 Video Effects 436 Low-Latency Sound .442 xvi www.it-ebooks.info CONTENTS Play a Sound with SoundEffect 442 Changing Playback Settings 443 Overlapping Sounds with SoundEffectInstance 444 Looping Audio 445 Webcam and Microphone Input 445 Accessing a Capture Device 445 Basic Webcam Support 448 Recording Audio Snippets 450 Deep Zoom 455 Creating a Deep Zoom Image Set 457 Using a Deep Zoom Image Set in Silverlight 461 The Last Word 465 Chapter 13: Silverlight 3D 467 Understanding 3D in Silverlight .467 Adding Assembly References 468 Enabling 3D in a Silverlight Project 469 Basic 3D Drawing 470 The 3D Coordinate System 471 Filling the Vertex Buffer 471 Positioning the Camera 475 Configuring the BasicEffect 479 Drawing the Scene 480 Backface Culling 482 Scaling Your Drawing 483 Complex Objects and Textures 484 Drawing a Cube 485 Adding Textures 488 Lighting an Object 493 xvii www.it-ebooks.info CONTENTS Creating Multiple Objects 496 Using Models 500 Movement and Animation 501 Moving a Shape 501 Rotating a Shape 502 Shape Animations 505 Rotating and Moving the Camera 506 The Last Word 510 Chapter 14: Styles and Behaviors .511 Styles .511 Defining a Style 511 Applying a Style 513 Dynamic Styles 514 Style Inheritance 514 Organizing Styles 516 Automatically Applying Styles by Type 516 Style Binding Expressions 517 Behaviors .519 Getting Support for Behaviors 519 Triggers and Actions 520 Creating a Behavior 531 Finding More Behaviors 534 The FluidMoveBehavior 535 The Last Word 537 Chapter 15: Control Templates 539 Template Basics 539 Creating a Template 540 Reusing Control Templates 541 xviii www.it-ebooks.info CONTENTS The ContentPresenter 542 Template Bindings 543 Setting Templates Through Styles 544 Reusing Colors 546 The Parts and States Model 546 Understanding States with the Button Control 548 Showing a Focus Cue 552 Transitions 553 Understanding Parts with the Slider Control 558 Layout Transitions 562 Creating Templates for Custom Controls .565 Planning the FlipPanel Control 566 Creating the Solution 567 Starting the FlipPanel Class 567 Adding the Default Style with Generic.xaml 569 Choosing Parts and States 571 Starting the Default Control Template 573 The FlipButton Control 574 Defining the State Animations 574 Wiring Up the Elements in the Template 576 Using the FlipPanel 578 Using a Different Control Template 579 The Last Word 581 Chapter 16: Multithreading .583 Understanding Multithreading .583 The Goals of Multithreading 584 The DispatcherTimer 585 The Thread Class 585 xix www.it-ebooks.info CONTENTS Marshaling Code to the User Interface Thread 587 Creating a Thread Wrapper 589 Creating the Worker Class 590 Using the Thread Wrapper 592 Cancellation Support 594 The BackgroundWorker 595 Creating the BackgroundWorker 596 Running the BackgroundWorker 596 Tracking Progress 599 Supporting Cancellation 601 The Last Word 603 Chapter 17: Browser Integration 605 Interacting with HTML Elements 606 Getting Browser Information 607 The HTML Window 608 Popup Windows 609 Inspecting the HTML Document 610 Manipulating an HTML Element 612 Handling JavaScript Events 617 Code Interaction 619 Calling Browser Script from Silverlight 620 Calling Silverlight Methods from the Browser 620 Instantiating Silverlight Objects in the Browser 622 Combining Silverlight and HTML Content 624 Sizing the Silverlight Control to Fit Its Content 624 Placing the Silverlight Control Next to an HTML Element 625 Securing HTML Interoperability .628 The Last Word 629 xx www.it-ebooks.info CONTENTS Chapter 18: Out-of-Browser Applications 631 Understanding Out-of-Browser Support 631 Creating an Out-of-Browser Application 633 Installing an Out-of-Browser Application 636 Customizing Icons 638 Tracking Application State 639 Removing and Updating an Application 643 Silent Installation 644 Out-of-Browser Application Features 645 The WebBrowser Control 645 Notification Windows 649 Controlling the Main Window 652 Elevated Trust 654 Installing an Elevated-Trust Application 654 The Abilities of an Elevated-Trust Application 658 Window Customization 659 Child Windows 667 COM 670 P/Invoke 673 Elevated-Trust Applications in the Browser 675 The Last Word 678 Chapter 19: ASP.NET Web Services 679 Building Web Services for Silverlight 679 Creating a Web Service 679 Adding a Service Reference 681 Calling the Web Service 683 Configuring the Web Service URL 685 Using a Busy Indicator 687 xxi www.it-ebooks.info CONTENTS Web Service Data Types 688 Custom Data Classes 689 Web Service Type Sharing 690 More Advanced Web Services .696 Cross-Domain Web Service Calls 696 Monitoring the Network Connection 698 Using ASP.NET Platform Services 699 WCF RIA Services 701 Duplex Services .702 Configuring the Service 703 The Interfaces 704 The Service 705 The Client 706 The Last Word 708 Chapter 20: Data Binding 709 Binding to Data Objects 709 Building a Data Object 710 Displaying a Data Object with DataContext 711 Storing a Data Object as a Resource 713 Null Values and Failed Bindings 714 Editing with Two-Way Bindings 714 Change Notification 716 Debugging a Data Binding Expression 717 Building a Data Service 720 Calling a Data Service 723 Binding to a Collection of Objects 725 Displaying and Editing Collection Items 725 Inserting and Removing Collection Items 729 xxii www.it-ebooks.info CONTENTS Binding to a LINQ Expression 730 Master-Details Display 733 Validation .736 Error Notifications 737 The BindingValidationFailed Event 739 The Validation Class 741 Creating Data Objects with Built-in Validation 741 Data Formatting and Conversion 745 String Formatting 746 Value Converters 748 Formatting Strings with a Value Converter 748 Creating Objects with a Value Converter 750 Applying Conditional Formatting 753 Data Templates 755 Separating and Reusing Templates 757 Implicit Data Templates 758 More Advanced Templates 759 Changing Item Layout 760 The Last Word 761 Chapter 21: Data Controls 763 Better Data Forms 764 The Goal: Data Class Markup 764 The Label 765 The DescriptionViewer 767 The ValidationSummary 769 Data Annotations 771 Raising Annotation Errors 772 The Annotation Attributes 773 xxiii www.it-ebooks.info CONTENTS The DataGrid 780 Creating a Simple Grid 780 How Columns Are Resized and Rearranged 783 Defining Columns 783 Formatting and Styling Columns 787 Controlling Column Width 789 Formatting Rows 792 Row Details 794 Freezing Columns 795 Selection 797 Sorting 797 DataGrid Editing 798 Editing with Templates 798 Validation and Editing Events 800 The PagedCollectionView 803 Sorting 803 Filtering 804 Grouping 804 Paging 807 The TreeView 809 Filling a TreeView 810 A Data-Bound TreeView 811 The PivotViewer .814 Defining the PivotViewer 817 Navigating the PivotViewer 821 The Last Word 823 Chapter 22: File Access 825 Isolated Storage 826 xxiv www.it-ebooks.info CONTENTS The Scope of Isolated Storage 826 What to Put in Isolated Storage 827 Using Isolated Storage 827 Opening an Isolated Store 827 File Management 828 Writing and Reading Data 829 Requesting More Space 831 Storing Objects with XmlSerializer 833 Storing Application Settings 837 Accessing Files Outside of Isolated Storage 837 Reading Files with OpenFileDialog 838 Writing Files with SaveFileDialog 840 Transmitting Files with a Web Service 840 Dragging and Dropping Files 845 File Access in Elevated Trust Applications 849 Accessing User Files 849 Managing Directories and Files 851 Creating a Directory Tree 853 The Last Word 855 Chapter 23: Networking 857 Interacting with the Web .857 Cross-Domain Access 858 HTML Scraping 860 REST and Other Simple Web Services 864 Using Network Credentials 868 Processing Different Types of Data .869 XML 869 Services That Return XML Data 870 xxv www.it-ebooks.info CONTENTS Services That Require XML Data 877 Services That Return SOAP Data 879 Services That Return JSON Data 879 RSS 882 Sockets 885 Understanding Sockets and TCP 885 Understanding Policy Files 887 The Policy Server 889 The Messaging Server 892 The Messenger Client 896 Local Connections 901 Sending a Message 902 Receiving a Message 903 The Last Word 904 Index 905 xxvi www.it-ebooks.info About the Author Matthew MacDonald is an author, educator, and former Microsoft MVP for Silverlight He’s the author of more than a dozen books about NET programming, including Pro WPF in VB 2010, Pro ASP.NET in VB 2010, and Beginning ASP.NET in VB 2010 He’s also the author of Your Brain: The Missing Manual (O’Reilly), a popular look at getting the most from your squishy gray matter Matthew lives in Toronto with his wife and two daughters xxvii www.it-ebooks.info About the Technical Reviewer A prolific writer on cutting-edge technologies, Fabio Claudio Ferracchiati has contributed to more than a dozen books on NET, C#, Visual Basic, and ASP.NET He is a NET Microsoft Certified Solution Developer and lives in Rome, Italy xxviii www.it-ebooks.info Acknowledgments No author can complete a book without a small army of helpful individuals I’m deeply indebted to the whole Apress team, including Adam Heath and Ewan Buckingham, who shepherded the book through its various stages; Fabio Ferracchiati and Damien Foggon, who hunted down stray errors in this and previous editions of the book; and Kim Wimpsett, who copyedited the text Finally, I’d never write any book without the support of my wife and these special individuals: Nora, Razia, Paul, and Hamid Thanks, everyone! xxix www.it-ebooks.info ... the Silverlight plug -in is installed xxx www.it-ebooks.info INTRODUCTION Figure Installing the Silverlight plug -in xxxi www.it-ebooks.info INTRODUCTION Note At the time of this writing, Silverlight. .. for Silverlight in Chapter 19 ADDING SILVERLIGHT CONTENT TO AN EXISTING WEBSITE A key point to keep in mind when considering the Silverlight development model is that in many cases you’ll use Silverlight. .. the future is far from certain, here are a few points to keep in mind: HTML5 isn’t quite here yet: HTML5 support lags in in Internet Explorer Many HTML5 features are promised for the not-yet-released