30
Silverlight 2 Updates, source code, and Wrox technical support at www.wrox.com Professional Silverlight 2 for ASP.NET Developers Jonathan Swift, Chris Barker, Dan Wahlin, Salvador Alvarez Patuel Wrox Programmer to Programmer TM

Who this book is for Silverlight 2 - download.e-bookshelf.de fileProfessional Silverlight ™ 2 for ASP.NET Developers $49.99 USA $59.99 CAN Wrox Professional guides are planned and

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Who this book is for Silverlight 2 - download.e-bookshelf.de fileProfessional Silverlight ™ 2 for ASP.NET Developers $49.99 USA $59.99 CAN Wrox Professional guides are planned and

ProfessionalSilverlight™ 2for ASP.NET Developers

www.wrox.com

$49.99 USA$59.99 CAN

Wrox Professional guides are planned and written by working programmers to meet the real-world needs of programmers, developers, and IT professionals. Focused and relevant, they address the issues technology professionals face every day. They provide examples, practical solutions, and expert education in new technologies, all designed to help programmers do a better job.

Recommended Computer Book

Categories

Web Development

ASP.NET

ISBN: 978-0-470-27775-1

If you want to quickly and easily create visually stunning Internet applications with rich interactivity, then this is the book for you. It covers the full feature set of Microsoft’s Silverlight 2, showing you how to use it to build, debug, troubleshoot, and performance tune your robust applications. You’ll also learn different techniques to seamlessly augment your ASP.NET web sites with the power of this plug-in.

You’ll first discover what Silverlight is as a technology and how it fits into the web-based landscape. The component pieces of a Silverlight application are also explained at a higher level. You’ll gain a strong understanding of its features and discover how to leverage both Silverlight and ASP.NET to create compelling applications.

With this book, you’ll learn how to program in Silverlight and you can discover all the benefits of using ASP.NET as the host. It arms you with all the skills and knowledge you’ll need to build advanced Silverlight-based applications in record time.

What you will learn from this book● Steps for rapidly building a well-rounded application● The different options for embedding the Silverlight plug-in ● How to create a scalable UI and localize your application● Techniques for utilizing the different networking technologies ● Ways to customize the Silverlight 2 controls● Tips for embedding high fidelity audio and video in your

application● How to work within a secure environment using the built-in

security framework● All about troubleshooting Silverlight applications to ensure

performance

Who this book is forThis book is for .NET developers and architects who want to quickly get up to speed with all that Silverlight 2 has to offer.

Silverlight

™ 2fo

r AS

P.NET D

evelo

pers

Swift, Barker, Wahlin, Patuel

Professional

spine=1.344"

Updates, source code, and Wrox technical support at www.wrox.com

Professional

Silverlight™

2for ASP.NET Developers

Jonathan Swift, Chris Barker, Dan Wahlin, Salvador Alvarez Patuel

Wrox Programmer to Programmer TMWrox Programmer to Programmer TM

Page 2: Who this book is for Silverlight 2 - download.e-bookshelf.de fileProfessional Silverlight ™ 2 for ASP.NET Developers $49.99 USA $59.99 CAN Wrox Professional guides are planned and

Get more out of WROX.com

Programmer to Programmer™

InteractTake an active role online by participating in our P2P forums

Wrox Online LibraryHundreds of our books are available online through Books24x7.com

Wrox Blox Download short informational pieces and code to keep you up to date and out of trouble!

Chapters on DemandPurchase individual book chapters in pdf format

Join the CommunitySign up for our free monthly newsletter at newsletter.wrox.com

BrowseReady for more Wrox? We have books and e-books available on .NET, SQL Server, Java, XML, Visual Basic, C#/ C++, and much more!

Contact Us. We always like to get feedback from our readers. Have a book idea? Need community support? Let us know by e-mailing [email protected]

spine=1.344"

Page 3: Who this book is for Silverlight 2 - download.e-bookshelf.de fileProfessional Silverlight ™ 2 for ASP.NET Developers $49.99 USA $59.99 CAN Wrox Professional guides are planned and

Professional Silverlight 2 for ASP.NET Developers

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxi

Part I: Silverlight Fundamentals for ASP.NET Developers 1

Chapter 1: Silverlight in a Nutshell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3Chapter 2: Silverlight Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9Chapter 3: XAML Condensed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31Chapter 4: Programming Silverlight . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

Part II: Developing ASP.NET Applications with Silverlight 119

Chapter 5: Creating the User Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121Chapter 6: Silverlight Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167Chapter 7: Styles and Templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213Chapter 8: User Interaction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243Chapter 9: Communicating with the Server . . . . . . . . . . . . . . . . . . . . . . . . . 285Chapter 10: Working with Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361Chapter 11: Creating Custom Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423Chapter 12: Securing Your Silverlight Application . . . . . . . . . . . . . . . . . . . . 461Chapter 13: Audio and Video . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481Chapter 14: Graphics and Animation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 515Chapter 15: Troubleshooting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 559Chapter 16: Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 589Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 621

77751ffirs.indd 1 12/19/08 8:35:59 AM

Page 4: Who this book is for Silverlight 2 - download.e-bookshelf.de fileProfessional Silverlight ™ 2 for ASP.NET Developers $49.99 USA $59.99 CAN Wrox Professional guides are planned and

77751ffirs.indd 2 12/19/08 8:35:59 AM

Page 5: Who this book is for Silverlight 2 - download.e-bookshelf.de fileProfessional Silverlight ™ 2 for ASP.NET Developers $49.99 USA $59.99 CAN Wrox Professional guides are planned and

Professional

Silverlight™ 2 for ASP.NET Developers

77751ffirs.indd 3 12/19/08 8:35:59 AM

Page 6: Who this book is for Silverlight 2 - download.e-bookshelf.de fileProfessional Silverlight ™ 2 for ASP.NET Developers $49.99 USA $59.99 CAN Wrox Professional guides are planned and

77751ffirs.indd 4 12/19/08 8:35:59 AM

Page 7: Who this book is for Silverlight 2 - download.e-bookshelf.de fileProfessional Silverlight ™ 2 for ASP.NET Developers $49.99 USA $59.99 CAN Wrox Professional guides are planned and

Professional

Silverlight™ 2 for ASP.NET Developers

Jonathan SwiftChris BarkerDan Wahlin

Salvador Alvarez Patuel

77751ffirs.indd 5 12/19/08 8:35:59 AM

Page 8: Who this book is for Silverlight 2 - download.e-bookshelf.de fileProfessional Silverlight ™ 2 for ASP.NET Developers $49.99 USA $59.99 CAN Wrox Professional guides are planned and

Professional Silverlight™ 2 for ASP.NET Developers Published by Wiley Publishing, Inc. 10475 Crosspoint Boulevard Indianapolis, IN 46256 www.wiley.com

Copyright © 2009 by Wiley Publishing, Inc., Indianapolis, Indiana

Published simultaneously in Canada

ISBN: 978-0-470-27775-1

Manufactured in the United States of America

10 9 8 7 6 5 4 3 2 1

Library of Congress Cataloging-in-Publication Data is available from the publisher.

No part of this publication may be reproduced, stored in a retrieval system or transmitted in any form or by any means, electronic, mechanical, photocopying, recording, scanning or otherwise, except as permitted under Sections 107 or 108 of the 1976 United States Copyright Act, without either the prior written permis-sion of the Publisher, or authorization through payment of the appropriate per-copy fee to the Copyright Clearance Center, 222 Rosewood Drive, Danvers, MA 01923, (978) 750-8400, fax (978) 646-8600. Requests to the Publisher for permission should be addressed to the Legal Department, Wiley Publishing, Inc., 10475 Crosspoint Blvd., Indianapolis, IN 46256, (317) 572-3447, fax (317) 572-4355, or online at www.wiley.com/go/permissions.

Limit of Liability/Disclaimer of Warranty: The publisher and the author make no representations or war-ranties with respect to the accuracy or completeness of the contents of this work and specifically disclaim all warranties, including without limitation warranties of fitness for a particular purpose. No warranty may be created or extended by sales or promotional materials. The advice and strategies contained herein may not be suitable for every situation. This work is sold with the understanding that the publisher is not engaged in rendering legal, accounting, or other professional services. If professional assistance is required, the services of a competent professional person should be sought. Neither the publisher nor the author shall be liable for damages arising herefrom. The fact that an organization or Website is referred to in this work as a citation and/or a potential source of further information does not mean that the author or the publisher endorses the information the organization or Website may provide or recommendations it may make. Further, readers should be aware that Internet Websites listed in this work may have changed or dis-appeared between when this work was written and when it is read.

For general information on our other products and services please contact our Customer Care Department within the United States at (800) 762-2974, outside the United States at (317) 572-3993 or fax (317) 572-4002.

Trademarks: Wiley, the Wiley logo, Wrox, the Wrox logo, Wrox Programmer to Programmer, and related trade dress are trademarks or registered trademarks of John Wiley & Sons, Inc. and/or its affiliates, in the United States and other countries, and may not be used without written permission. Silverlight is a trade-mark of Microsoft Corporation in the United States and/or other countries. All other trademarks are the property of their respective owners. Wiley Publishing, Inc., is not associated with any product or vendor mentioned in this book.

Wiley also publishes its books in a variety of electronic formats. Some content that appears in print may not be available in electronic books.

77751ffirs.indd 6 12/19/08 8:35:59 AM

Page 9: Who this book is for Silverlight 2 - download.e-bookshelf.de fileProfessional Silverlight ™ 2 for ASP.NET Developers $49.99 USA $59.99 CAN Wrox Professional guides are planned and

To my wife, Fay.

— Jonathan Swift

In memory of Patricia Barker.

— Chris Barker

I thank my wife, Heedy, and two boys, Danny and Jeffery, for their patience, love,

and support while I was working on this book.

— Dan Wahlin

Dedicado a Marta y a mi familia.

— Salvador Alvarez Patuel

77751ffirs.indd 7 12/19/08 8:35:59 AM

Page 10: Who this book is for Silverlight 2 - download.e-bookshelf.de fileProfessional Silverlight ™ 2 for ASP.NET Developers $49.99 USA $59.99 CAN Wrox Professional guides are planned and

About the AuthorsJonathan Swift worked as an Application Development Consultant for Microsoft in the United Kingdom for a number of years and now finds himself managing the team. This means that he spends most of his time traveling around the country helping clients utilize Microsoft developer technologies effectively. Jonathan has been programming for more than 13 years and has worked with numerous technologies, including but not limited to C, C++, Visual Basic, COM, COM+, SQL, ASP, and, of course, all aspects of .NET. As well as programming, Jonathan also spent part of his career working as a Microsoft Trainer, delivering the full suite of Microsoft Official Curriculum courses and specially-designed courses also.

Jonathan tries to keep his blog (http://blogs.msdn.com/jonathanswift) up to date, but feels that writing a book is a very good excuse for not doing so. (Other popular excuses including playing the XBox and washing his hair.) When he’s not working, Jonathan spends all of his time with his wife and kids, and occasionally gets to exercise his pilot’s license at the flying club.

Chris Barker works as an Application Development Consultant for Microsoft in the United Kingdom (www.microsoft.com/uk/adc). He spends his days traveling around the country visiting customers and consulting on development practices on the Microsoft platform. More recently, his interest has been captured by RIA development, and as a result, he has delivered several customer workshops on Silverlight. Away from the office, Chris likes to get out and about in his home county of Derbyshire, riding a bike, kicking a football, and sinking a few pints of real ale.

Dan Wahlin (Microsoft Most Valuable Professional for Connected Systems) is a .NET development instructor and architecture consultant at Interface Technical Training (www.interfacett.com). Dan founded the XML for ASP.NET Developers web site (www.xmlforasp.net), which focuses on using ASP.NET, Silverlight, AJAX, and XML Web Services in Microsoft’s .NET platform. He’s also on the INETA Speaker’s Bureau and speaks at several conferences. Dan has authored/co-authored numerous books over the years on .NET technologies with his latest being Professional ASP.NET 3.5 AJAX and Professional Silverlight 2 for ASP.NET Developers. Dan also writes for several online technical newslet-ters, blogs at http://weblogs.asp.net/dwahlin, and updates what he’s up to from time to time at www.twitter.com/danwahlin. When he’s not working with technology, he enjoys sports and writ-ing and recording music to relax a little — http://weblogs.asp.net/dwahlin/archive/tags/Music/default.aspx.

Salvador Alvarez Patuel has been in the industry for more than 13 years. Currently a senior application development consultant (ADC) at Microsoft, helping customers to architect and build complex solutions using Microsoft technologies in the United Kingdom. Salvador has also been delivering multiple tech-nical sessions around EMEA on Windows Mobile development and has been answering questions on many ask-the-experts events. Before joining Microsoft, he was the main technical architect for real-time engines on popular auctions, TV channels, and the gaming industry. He holds a software engineering degree from his native Argentina and a specialization in artificial intelligence. When Salva is not think-ing about ones and zeroes, he enjoys climbing, windsurfing, and recently trying to learn how to play golf.

77751ffirs.indd 8 12/19/08 8:35:59 AM

Page 11: Who this book is for Silverlight 2 - download.e-bookshelf.de fileProfessional Silverlight ™ 2 for ASP.NET Developers $49.99 USA $59.99 CAN Wrox Professional guides are planned and

CreditsExecutive EditorRobert Elliott

Development EditorKelly Talbot

Technical EditorDave Friedel

Senior Production EditorDebra Banninger

Copy EditorCate Caffrey

Editorial ManagerMary Beth Wakefield

Production ManagerTim Tate

Vice President and Executive Group PublisherRichard Swadley

Vice President and Executive PublisherJoseph B. Wikert

Project Coordinator, CoverLynsey Stanford

CompositorJames D. Kramer, Happenstance Type-O-Rama

ProofreaderPublication Services, Inc.

IndexerJack Lewis

77751ffirs.indd 9 12/19/08 8:35:59 AM

Page 12: Who this book is for Silverlight 2 - download.e-bookshelf.de fileProfessional Silverlight ™ 2 for ASP.NET Developers $49.99 USA $59.99 CAN Wrox Professional guides are planned and

Acknowledgments

It turns out that writing a book is a much more challenging affair than you think it’s going to be. And I mean by a long way. For the past 18 months since this book was first conceived, there hasn’t been a single day go by when I haven’t worried about falling behind schedule or not getting finished at all. Remember as a kid when you had some homework to hand in or an exam to revise, and every day leading up to it you knew you should be doing something? Well, that’s close to how taking on this book has been, but only close!

This brings me nicely to my first acknowledgement, which is, of course, to my wife, Fay, and our two children, Jonah and Stirling, who’ve put up with me being a little grumpier (just a little, mind …) than usual in recent times owing in the whole to the large project that this book has been. Thanks for putting up with me, and I hope you enjoy laughing at my picture on the front cover as much as the readers will!

Secondly, I’d like to thank the other authors in this book, quite literally without whom this book would be, well, about half as long. Chris, for listening to endless late-night and early-morning phone calls — usually from a train so via a poor signal — and helping me correct coding errors, I thank you. Salvador, for stepping in at short notice and lending your Silverlight expertise to this book, as well as endearing it to the female population via your front cover photo, I thank you. And Dan, for getting through your chapters on schedule, providing useful hints and a professional attitude, I thank you also.

Finally, I’d like to say a big thank you to my parents, Linton and Julie, without whose collective genes I wouldn’t have become the geek I am today. This coupled with inheriting my father’s passion for reading Sci-Fi, of course. Ta very much!

— Jonathan Swift

Contributing to this book has been quite a journey, and I am sure that those around me have felt as though they had been writing the book themselves! With that said, I would like to show my gratitude by giving them a mention here. First and foremost, I would like to thank my family — David Barker, Matt Barker, and Marie Barker. In particular, I would like to thank my late mother, Patricia Barker, whose support in my early years is greatly missed.

— Chris Barker

I’d like to thank my wife, Heedy, and two boys, Danny and Jeffery, for putting up with the long hours I spend in the office studying new technologies and writing books and articles. I love them and sincerely appreciate their patience with me. I’m extremely lucky to have such a great family.

I’d also like to thank my Mom and Dad, Danny and Elaine, for bringing me up in such a positive, caring environment where succeeding in life was always encouraged. I love both of you and am forever in your debt for the years of service you’ve given and the many life lessons you’ve taught me.

— Dan Wahlin

77751ffirs.indd 10 12/19/08 8:35:59 AM

Page 13: Who this book is for Silverlight 2 - download.e-bookshelf.de fileProfessional Silverlight ™ 2 for ASP.NET Developers $49.99 USA $59.99 CAN Wrox Professional guides are planned and

xi

Acknowledgments

I would like to dedicate this book to my wife, Marta, for supporting and loving me. She has given me all the strength needed to embark on this adventure. Marta, I really love you. The other big important part of my life is my family — Graciela (ma) and Daniel (pa); my grandparents, Irene, Angel, Coca, and Hugo; my brother Rodrigo; and my sister Macarena. I want to include them in this dedication as they have given me all their support and love no matter how far we are from each other. To them I say: I owe you everything. Los quiero mucho!

I want also to thank my friends Ata, Gei, Maxi, and Horacio for all the good times that we have shared together across the distance. Also to my “local” friends Amit, Andrew, Ralf, Miguele, and Moises and the many more that I am forgetting. Finally, a special mention to my manager Steve Leaback for all his support.

— Salvador Alvarez Patuel

77751ffirs.indd 11 12/19/08 8:35:59 AM

Page 14: Who this book is for Silverlight 2 - download.e-bookshelf.de fileProfessional Silverlight ™ 2 for ASP.NET Developers $49.99 USA $59.99 CAN Wrox Professional guides are planned and

77751ffirs.indd 12 12/19/08 8:35:59 AM

Page 15: Who this book is for Silverlight 2 - download.e-bookshelf.de fileProfessional Silverlight ™ 2 for ASP.NET Developers $49.99 USA $59.99 CAN Wrox Professional guides are planned and

Contents

Introduction xxi

Silverlight Fundamentals for ASP.NET Developers Part I: 1

Silverlight in a Nutshell Chapter 1: 3

Uphill Struggle 3Rich Client or Web Reach? 4Silverlight Steps In 4The Impact of Silverlight on Your Existing ASP.NET Real Estate 6What You Should Still Do in ASP.NET 6The Development Environment Overview 7Summary 8

Silverlight Architecture Chapter 2: 9

Client/Server Architecture Overview 9Platforms 10

The Server 11The Client 11

Architecture 12Presentation Core 13.NET Framework 16Installed Files 23

ASP.NET Integration 24ASP.NET Composite Controls 25Using ASP.NET Application Services 25Communicating with ASP.NET from Silverlight 26Dynamic Generation of XAML from the Server 26Using the ASP.NET Server Controls for Silverlight 27

Application Life Cycle 27Updating Silverlight 28

Summary 29

77751ftoc.indd 13 12/18/08 9:58:18 AM

Page 16: Who this book is for Silverlight 2 - download.e-bookshelf.de fileProfessional Silverlight ™ 2 for ASP.NET Developers $49.99 USA $59.99 CAN Wrox Professional guides are planned and

xiv

Contents

XAML Condensed 3Chapter 3: 1

Why All ASP.NET Developers Should Know the Basics 31XAML Syntax and Terminology 33

Namespaces 33White Space 34Object and Property Elements 36Type Converters 37Markup Extensions 38Attached Properties 40Basic Drawing 41The Code-Behind 46Dynamically Loading XAML 49Available Tools 56

Piecing It All Together 57Summary 61

Programming Silverlight 6Chapter 4: 3

How a Silverlight Application Is Composed 63Packaging a Silverlight Application 64System.Windows.Application 66Application Instantiation 69A Basic Silverlight Page 72

JavaScript — How Much You Need to Know 76JavaScript — The Basics 77

Object Model 77Adding JavaScript to a Page 77Variable Usage 78Functions 78Conditional Statements 79Handling Events 80DOM Manipulation 80

The Silverlight Object Model 84DependencyObject, UIElement, and FrameworkElement 84Walking the Tree 85

Events, Threading, and Browser Interaction 90Events 90Threading and Asynchrony 95Browser Interaction 105

On-Demand XAP Loading 114System.Net.WebClient 114

Summary 116

77751ftoc.indd 14 12/18/08 9:58:18 AM

Page 17: Who this book is for Silverlight 2 - download.e-bookshelf.de fileProfessional Silverlight ™ 2 for ASP.NET Developers $49.99 USA $59.99 CAN Wrox Professional guides are planned and

xv

Contents

Developing ASP.NET Applications with Silverlight 11Part II: 9

Creating the User Interface 12Chapter 5: 1

Expression Suite — A Whirlwind Tour 121Expression Web 122Expression Blend 123Expression Design 129Expression Media 129Expression Encoder 130Expression Studio 130

ASP.NET versus Silverlight Layout 130Layout Options in ASP.NET 130Layout Options in Silverlight 131Full-Screen Support 154Localization 162

Summary 165

Silverlight Controls 16Chapter 6: 7

Introduction to Silverlight Controls 168Defining Controls in XAML 169Handling Control Events Declaratively 170Handling Control Events Programmatically 171

User Input Controls 172The TextBlock Control 173The TextBox Control 174The PasswordBox Control 176The Button Control 176The HyperlinkButton Control 177The CheckBox Control 178The RadioButton Control 179The RepeatButton Control 180The Slider Control 182The Calendar Control 183The DatePicker Control 186The ToolTip Control 187

Items Controls 188The ListBox Control 189The DataGrid Control 191The ScrollViewer Control 193The ComboBox Control 195The Popup Control 196

77751ftoc.indd 15 12/18/08 9:58:18 AM

Page 18: Who this book is for Silverlight 2 - download.e-bookshelf.de fileProfessional Silverlight ™ 2 for ASP.NET Developers $49.99 USA $59.99 CAN Wrox Professional guides are planned and

xvi

Contents

Media Controls 198The Image Control 199The MediaElement Control 200Displaying Download Progress with the ProgressBar Control 202The MultiScaleImage Control 203

Silverlight Toolkit Controls 205AutoCompleteBox Control 206WrapPanel Control 207TreeView Control 208Chart Control 210

Summary 212

Styles and Templates 21Chapter 7: 3

Styles 213Applying Inline Styles 214Specifying Styles in a Central Location 218

Templating 224ControlTemplate 224TemplateBinding 232

Integrating with ASP.NET 235Using the ASP.NET Profile Provider 235

ImplicitStyleManager 239Summary 242

User Interaction 24Chapter 8: 3

The Silverlight Interaction Context 243Working with UIElements Events 244Interacting with Input Devices 250Getting the Most from Input Devices 258

Navigation 266Silverlight Navigation in the ASP.NET World 266Single Plug-in Navigation 267Multiple Plug-in Navigation 280

Summary 283

Communicating with the Server 28Chapter 9: 5

Silverlight Networking and Communication Features 285What Type of Data Can Silverlight Access and Process? 286Supported Domains and URLs 286

77751ftoc.indd 16 12/18/08 9:58:18 AM

Page 19: Who this book is for Silverlight 2 - download.e-bookshelf.de fileProfessional Silverlight ™ 2 for ASP.NET Developers $49.99 USA $59.99 CAN Wrox Professional guides are planned and

xvii

Contents

Communication Options 286Data-Processing Options 288

Cross-Domain Support 289Flash Cross-Domain Policy Files 290Silverlight Cross-Domain Policy Files 291

Creating Services for Silverlight 292Creating a WCF Service for Silverlight 292Creating an ASP.NET Web Service for Silverlight 301

Calling Services with Silverlight 304Calling a WCF Service 304Calling an ASP.NET Web Service 308

Calling REST APIs 310Making RESTful Calls in Silverlight 310Processing XML Data 314Processing JSON Data 328Working with Syndication Feeds 332Using Sockets to Communicate over TCP 337Using WCF Polling Duplex Services to Communicate over HTTP 347

Summary 359

Working with Data 36Chapter 10: 1

Data Framework 362Exploring the Namespaces 363Is That All? 364

Data-Binding Essentials 365Binding 101 366Binding in Practice 370Conversions 382Dependency Properties 384Performance Considerations 386

Retrieving and Storing Data 387Working with Data Repositories 387Caching 401

Data Controls 401Data Templates 402DataGrid 403

Manipulating Data 407Traditional Handling 407LINQ 408LINQ to XML 412

Validation 416

77751ftoc.indd 17 12/18/08 9:58:18 AM

Page 20: Who this book is for Silverlight 2 - download.e-bookshelf.de fileProfessional Silverlight ™ 2 for ASP.NET Developers $49.99 USA $59.99 CAN Wrox Professional guides are planned and

xviii

Contents

Input Validation 416Using Dynamic Languages 418Data-Binding Validation 419

Summary 420

Creating Custom Controls 42Chapter 11: 3

User Controls 423Understanding User Controls 424Creating User Controls 429

Customizing Current Controls 435Understanding Visual Customization 435Customizing with Styles 437Customizing with Skins 440Putting Everything Together 443

Custom Controls 447What Is a Custom Control? 448Your First Custom Control 449Parts Model 454

Summary 460

Securing Your Silverlight Application 46Chapter 12: 1

You’re under Attack! 461The Security Model 463Working in a Sandbox 466Cross-Domain Security 470Integrating with ASP.NET Security 470Obfuscation 478Cryptography 479Summary 479

Audio and Video 48Chapter 13: 1

First Steps 481Embedding Audio and Video in Your ASP.NET Application 482

Finer Control 491Controlling Playback 491Controlling Playback from ASP.NET 500Timeline Markers 503SetSource 512Streaming 514

Summary 514

77751ftoc.indd 18 12/18/08 9:58:18 AM

Page 21: Who this book is for Silverlight 2 - download.e-bookshelf.de fileProfessional Silverlight ™ 2 for ASP.NET Developers $49.99 USA $59.99 CAN Wrox Professional guides are planned and

xix

Contents

Graphics and Animation 51Chapter 14: 5

Breathing Life into ASP.NET 515Before Silverlight 516Silverlight-Enabled Graphics and Animation 516

Graphics in Silverlight 516The Shape Class 517Path and Geometry Objects 521Painting with Brush Objects 526Transforms 535

Image Handling 540Image and BitmapImage 540Advanced Panning and Zooming with Deep Zoom 542

Animating Your User Interface 547Timeline 547From/To/By Animations 547Key Frame Animations 553

Summary 556

Troubleshooting 55Chapter 15: 9

Is There a Problem? 560Common Types of Problems 560Your Toolkit 562

Visual Studio 563Debugging Your Application 566HTTP Tracers 570Red Gate’s Reflector 575

Reducing the Likelihood of Problems 576Unit Testing 576UI Testing 581Exception Handling 586Instrumentation 587

Summary 587

Performance 58Chapter 16: 9

Performance Bottlenecks 590Developers versus Designers 590High Processor Usage 591Low Frame Rate 591Unresponsive UI 591

77751ftoc.indd 19 12/18/08 9:58:19 AM

Page 22: Who this book is for Silverlight 2 - download.e-bookshelf.de fileProfessional Silverlight ™ 2 for ASP.NET Developers $49.99 USA $59.99 CAN Wrox Professional guides are planned and

xx

Contents

Instrumentation 591Monitoring the Frame Rate 592Manual Timing 594

Improving Performance 596Animation 597Text 597Game Loops 598Windowless 600Transparent Backgrounds 601Opacity and Visibility 602Full-Screen Mode 603Height and Width 605XAML versus Images 606Threading 607JavaScript versus Managed Code 607Element Reuse 611Layouts 612Working with Data 613Reduce Chatty Applications 616Runtime Performance 617

Summary 619

Index 621

77751ftoc.indd 20 12/18/08 9:58:19 AM

Page 23: Who this book is for Silverlight 2 - download.e-bookshelf.de fileProfessional Silverlight ™ 2 for ASP.NET Developers $49.99 USA $59.99 CAN Wrox Professional guides are planned and

IntroductionIf you’re reading this, then you’re about to start programming rich, immersive ASP.NET applications with Silverlight, and you want to make sure you get it right first time. Just buying this book gives you an enormous head start, significantly reducing the learning curve associated with Silverlight 2 develop-ment, and saving you and your company both time and money. You’re off to the right start.

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!

For the first time ever, the power of the .NET Framework has been unleashed in a plug-in that can be embedded in multiple browsers across multiple operating systems, giving developers tremendous capa-bility and flexibility in rich Internet applications development.

As well as taking you through each feature that ships with Silverlight, this book will make sure you’re able to debug, troubleshoot, and performance-tune your Silverlight applications, as well as seamlessly hook into your existing ASP.NET architecture and code base.

It’s fair to say that Silverlight is going to change the way that Internet applications are developed and perceived, and this book will help ensure that both you and your applications keep up!

Who This Book Is ForThis 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 dem-onstrating 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.

It’s fair to say that although this book is aimed at ASP.NET developers, it covers all of the salient fea-tures of Silverlight 2 to the degree that it’s a useful programming resource for developers not using ASP.NET also.

If you’re 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!

77751flast.indd 21 12/18/08 9:57:52 AM

Page 24: Who this book is for Silverlight 2 - download.e-bookshelf.de fileProfessional Silverlight ™ 2 for ASP.NET Developers $49.99 USA $59.99 CAN Wrox Professional guides are planned and

Introduction

xxii

What This Book CoversThis 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 you’ll 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.

How This Book Is StructuredThe 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 compo-nent 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 each chapter now follows:

Part I: “Silverlight Fundamentals for ASP.NET Developers”❑❑

Chapter 1: “Silverlight in a Nutshell”❑❑ — This chapter will teach you at a high level what Silverlight is and how it can help you deliver engaging, immersive web applica-tions. 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 chapter, you’ll be able to describe Silverlight and explain why you’d want to use it and what gives it the edge over the competition.

Chapter 2: “Silverlight Architecture”❑❑ — Silverlight 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 chapter outlines the core features of Silverlight 2 and guides you around the building blocks of this highly flexible frame-work, paying particular attention throughout to your ASP.NET heritage.

Chapter 3: “XAML Condensed”❑❑ — Quickly getting up to speed with XAML is what this chapter 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 in this chapter, followed by a tour of Expression Blend.

77751flast.indd 22 12/18/08 9:57:52 AM

Page 25: Who this book is for Silverlight 2 - download.e-bookshelf.de fileProfessional Silverlight ™ 2 for ASP.NET Developers $49.99 USA $59.99 CAN Wrox Professional guides are planned and

Introduction

xxiii

Chapter 4: “Programming Silverlight”❑❑ — By the time you get to this chapter, you’ll be itching to start coding, and code you will as the feature-agnostic programming con-structs 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, fol-lowed 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.

Part II: “Developing ASP.NET Applications with Silverlight”❑❑

Chapter 5: “Creating the User Interface”❑❑ — You now know how to program Silverlight and how to write XAML. This chapter shows you how to put it all together to start laying out the user interface of your Silverlight application. Each of the layout con-trols that ship with Silverlight is covered here — Canvas, Grid, StackPanel, and TabControl — including information on when to use which one. Information on how to create a scalable UI is also provided in this chapter, followed finally by a sec-tion that details how to localize your application, thereby making it available to other languages and cultures.

Chapter 6: “Silverlight Controls”❑❑ — Silverlight 2 provides an assortment of controls that can be used to display and capture data. In this chapter, you’ll 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. You’ll also learn how to use controls such as the MultiScaleImage control to work with Silverlight’s Deep Zoom technology.

Chapter 7: “Styles and Templates”❑❑ — Altering the look and feel of your application is the crux of this chapter, 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.

Chapter 8: “User Interaction”❑❑ — What’s the point of having a great technology like Silverlight 2 if we can’t interact with it? In this chapter, we are going to 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 differ-ent options that we have and in which scenarios each one is preferred.

Chapter 9: “Communicating with the Server”❑❑ — The ability to access data located at distributed sources is key in many Silverlight 2 applications. In this chapter, you’ll 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 ser-vices, calling REST APIs, working with JavaScript Object Notation (JSON) data, push-ing data from a server to a client with sockets, and leveraging HTTP Polling Duplex functionality.

Chapter 10: “Working with Data”❑❑ — It 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 chapter explains the data framework available within your applications and then

77751flast.indd 23 12/18/08 9:57:52 AM

Page 26: Who this book is for Silverlight 2 - download.e-bookshelf.de fileProfessional Silverlight ™ 2 for ASP.NET Developers $49.99 USA $59.99 CAN Wrox Professional guides are planned and

Introduction

xxiv

dives deep 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 dif-ferent technologies and techniques to get the most of Silverlight 2 data using the avail-able data controls. Finally, the chapter explains how you can manipulate the data using LINQ and LINQ to XML.

Chapter 11: “Creating Custom Controls”❑❑ — This chapter 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 develop-ers 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 technol-ogy to the limit, the chapter explains how to create a complete custom control from scratch. This is a very dynamic chapter that will present the typical scenarios where these options may be applied.

Chapter 12: “Securing Your Silverlight Application”❑❑ — Whether you’re 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 chapter introduces you to the Silverlight security framework, but also talks you through your security responsi-bilities as a Silverlight developer.

Chapter 13: “Audio and Video”❑❑ — Embedding high-fidelity audio and video in your Silverlight application is sure to capture your users’ imaginations, and this chapter shows you how you can do just this using the Silverlight-provided MediaElement control and the ASP.NET Media Server Control. Playback control is demonstrated, as is the more advanced topic of providing synchronization points within your chosen media. This chapter will definitely help you put the WOW factor into your web sites.

Chapter 14: “Graphics and Animation”❑❑ — A detailed tour of the graphics API that ships with Silverlight is first discussed here, including the Shape-derived objects that can be rendered to screen and also the Geometry-derived objects that can be created and then rendered via a Path object. Brush objects are covered next, demonstrating the SolidColorBrush, LinearGradientBrush, RadialGradientBrush, ImageBrush, and VideoBrush, and their usage. Next up is the very cool DeepZoom technology, cov-ering the creation of DeepZoom-enabled images using the DeepZoom Composer and their usage in your Silverlight application via the MultiScaleImage control. Finally, the different animation techniques that you can use within your Silverlight application are covered, ranging from the basic From/To/By type to the more advanced Key frame types, including the different transition mechanisms within.

Chapter 15: “Troubleshooting”❑❑ — Writing an application from start to finish without any development issues is still quite some way off. This chapter introduces you to a range of techniques and tools to help you through the hard times when your applica-tion isn’t behaving as you would expect it to. Besides retrospectively fixing problems within your application, this chapter concludes with the more proactive approach of ensuring that your application hits a known quality bar before you are satisfied that it is ready to be released. Silverlight’s testing framework is the flavor of the day here.

77751flast.indd 24 12/18/08 9:57:52 AM

Page 27: Who this book is for Silverlight 2 - download.e-bookshelf.de fileProfessional Silverlight ™ 2 for ASP.NET Developers $49.99 USA $59.99 CAN Wrox Professional guides are planned and

Introduction

xxv

Chapter 16: “Performance”❑❑ — Silverlight is an incredibly powerful and flexible frame-work. Its inherent flexibility often means that there are several ways to achieve your goals. In choosing an alternative path, you will often find that the penalty is poor performance. This chapter gives a series of best-practice advice to allow you to make an informed deci-sion when you hit those forks in the road. In addition, you will learn how to instrument your code in order to simply identify the bottlenecks within your application.

What You Need to Use This BookTo get the most out of this book, it’s recommended that you code along with the examples provided, either by copying the code shown in the chapters or by downloading the samples and running them yourself.

To do this, you’re going to need Visual Studio 2008, which is available to download from MSDN, pro-vided you have a subscription. As well as this, you’ll also need to download and install the Silverlight Tools for Visual Studio 2008, which allows you to create Silverlight-based applications within Visual Studio. This install will also take care of installing the Silverlight run time and SDK for you. You can download this installer from www.silverlight.net/getstarted.

If you want to follow the examples that use Microsoft Expression Blend or the Deep Zoom Composer, you can also download these from www.silverlight.net/getstarted.

As well as these software requirements, you will need a basic working development knowledge of Microsoft .NET and have experience in Web-based development. A passion for creating rich web appli-cations is advantageous, although not necessary!

ConventionsTo help you get the most from the text and keep track of what’s happening, we’ve used a number of conventions throughout the book.

Boxes like this one hold important, not-to-be forgotten information that is directly relevant to the surrounding text.

Notes, tips, hints, tricks, and asides to the current discussion are offset and placed in italics like this.

As for styles in the text:

We show keyboard strokes like this: ❑❑ Ctrl+A.

We show URLs and code within the text like so: ❑❑ persistence.properties.

We present code in two different ways:❑❑

We use a monofont type with no highlighting for code examples.

We use gray highlighting to emphasize code that’s particularly importantin the present context.

77751flast.indd 25 12/18/08 9:57:52 AM

Page 28: Who this book is for Silverlight 2 - download.e-bookshelf.de fileProfessional Silverlight ™ 2 for ASP.NET Developers $49.99 USA $59.99 CAN Wrox Professional guides are planned and

Introduction

xxvi

Source CodeAs you work through the examples in this book, you may choose either to type in all the code manually or to use the source code files that accompany the book. All of the source code used in this book is avail-able for download at www.wrox.com. Once at the site, simply locate the book’s title (either by using the Search box or by using one of the title lists), and click the Download Code link on the book’s detail page to obtain all the source code for the book.

Because many books have similar titles, you may find it easiest to search by ISBN; this book’s ISBN is 978-0-470-27775-1.

Once you download the code, just decompress it with your favorite compression tool. Alternately, you can go to the main Wrox code download page at www.wrox.com/dynamic/books/download.aspx to see the code available for this book and all other Wrox books.

ErrataWe make every effort to ensure that there are no errors in the text or in the code. However, no one is perfect, and mistakes do occur. If you find an error in one of our books, like a spelling mistake or faulty piece of code, we would be very grateful for your feedback. By sending in errata, you may save another reader hours of frustration, and at the same time, you will be helping us provide even higher-quality information.

To find the errata page for this book, go to www.wrox.com and locate the title using the Search box or one of the title lists. Then, on the book details page, click on the Book Errata link. On this page, you can view all errata that has been submitted for this book and posted by Wrox editors. A complete book list includ-ing links to each book’s errata is also available at www.wrox.com/misc-pages/booklist.shtml.

If you don’t spot “your” error on the Book Errata page, go to www.wrox.com/contact/techsupport.shtml and complete the form there to send us the error you have found. We’ll check the information and, if appro-priate, post a message to the book’s errata page and fix the problem in subsequent editions of the book.

p2p.wrox.comFor author and peer discussion, join the P2P forums at p2p.wrox.com. The forums are a Web-based sys-tem for you to post messages relating to Wrox books and related technologies and interact with other readers and technology users. The forums offer a subscription feature to e-mail you topics of interest of your choosing when new posts are made to the forums. Wrox authors, editors, other industry experts, and your fellow readers are present on these forums.

At http://p2p.wrox.com you will find several different forums that will help you not only as you read this book, but also as you develop your own applications. To join the forums, just follow these steps:

1. Go to p2p.wrox.com and click the Register link.

2. Read the terms of use and click Agree.

77751flast.indd 26 12/18/08 9:57:52 AM

Page 29: Who this book is for Silverlight 2 - download.e-bookshelf.de fileProfessional Silverlight ™ 2 for ASP.NET Developers $49.99 USA $59.99 CAN Wrox Professional guides are planned and

Introduction

xxvii

3. Complete the required information to join as well as any optional information you wish to pro-vide and click Submit.

4. You will receive an e-mail with information describing how to verify your account and com-plete the joining process.

You can read messages in the forums without joining P2P, but in order to post your own messages, you must join.

Once you join, you can post new messages and respond to messages other users post. You can read mes-sages at any time on the Web. If you would like to have new messages from a particular forum e-mailed to you, click the “Subscribe to This Forum” icon by the forum name in the forum listing.

For more information about how to use the Wrox P2P, be sure to read the P2P FAQs for answers to ques-tions about how the forum software works as well as many common questions specific to P2P and Wrox books. To read the FAQs, click the FAQ link on any P2P page.

77751flast.indd 27 12/18/08 9:57:52 AM

Page 30: Who this book is for Silverlight 2 - download.e-bookshelf.de fileProfessional Silverlight ™ 2 for ASP.NET Developers $49.99 USA $59.99 CAN Wrox Professional guides are planned and

77751flast.indd 28 12/18/08 9:57:52 AM