Professional Silverlight 2 for ASP.NET Developers
Authors: Jonathan Swift, Salvador Alvarez Patuel, Chris Barker, Dan Wahlin
Venue: Wrox Programmer To Programmer (2009)

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 youre 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. Its 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 its a useful programming resource for developers not using ASP.NET also. If youre 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 youll 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 NutshellThis 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, youll be able to describe Silverlight and explain why youd want to use it and what gives it the edge over the competition. Silverlight ArchitectureSilverlight 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 CondensedQuickly 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 SilverlightBy the time you get here, youll 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 InterfaceYou 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 hereCanvas, Grid, StackPanel, and TabControlincluding 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 ControlsSilverlight 2 provides an assortment of controls that can be used to display and capture data. In this, youll 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. Youll also learn how to use controls such as the MultiScaleImage control to work with Silverlights Deep Zoom technology. Styles and TemplatesAltering 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 InteractionWhats the point of having a great technology like Silverlight 2 if we cant 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 ServerThe 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 DataIt 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 ControlsThis 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 ApplicationWhether youre 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 VideoEmbedding high-fidelity audio and video in your Silverlight application is sure to capture your users imaginat...