Introducing Silverlight 4

Introducing Silverlight 4

von: Ashish Ghoda

Apress, 2011

ISBN: 9781430229926 , 744 Seiten

Format: PDF, OL

Kopierschutz: Wasserzeichen

Windows PC,Mac OSX geeignet für alle DRM-fähigen eReader Apple iPad, Android Tablet PC's Online-Lesen für: Windows PC,Mac OSX,Linux

Preis: 34,99 EUR

Mehr zum Inhalt

Introducing Silverlight 4


 

Title Page

1

Copyright Page

2

Table of Contents

4

About the Author

17

About the Technical Reviewer

18

Acknowledgments

19

Introduction

20

PART 1 Introduction to Silverlight

22

Chapter 1 Introducing Silverlight

23

Cross-Platform Frameworks

24

Qt

24

The Java Platform

24

Adobe Flash/Flex/AIR

25

Microsoft ASP.NET AJAX

25

Microsoft Silverlight

25

The History of Silverlight

26

Silverlight 1

26

Silverlight 2

27

Silverlight 3

29

Silverlight 4

31

Design and Development Tools for Silverlight

34

Visual Studio

34

Expression Blend

35

SketchFlow

35

Expression Encoder

36

Deep Zoom Composer

36

Eclipse Tools for Silverlight (eclipse4SL)

36

Creating a Silverlight 4–based Application

36

Working with Expression Blend

39

Demonstrating Local Image Files Integration Using Drag-and- Drop Functionality

41

Summary

46

Chapter 2 Silverlight Concepts

47

Silverlight Architecture

47

Silverlight and XAML

49

Developing a Sample Application

49

Defining User Interface Using XAML Code

50

Defining User Interface Using Code-Behind

50

The XAML Controls Structure

52

Namespaces

53

Dependency Property System

54

Dependency Properties

55

The Root of Visual Elements: DependencyObject

59

Type Converters

59

Markup Extensions

60

Resource Dictionaries, Referencing Static Resources, and Implicit Styling

60

Data Binding

64

Template Binding

67

Microsoft .NET for Silverlight

68

Core .NET Assemblies for Silverlight Applications

68

Managed Code-Behind .NET Integration

69

Summary

76

Chapter 3 Silverlight User Interface Controls

77

Building Blocks

77

DependencyObject

78

Threading and the user interface

79

UIElement

79

FrameworkElement

83

The Control Class

86

Enhancements in Silverlight 4

88

Layout Management and Grouping Controls

89

Canvas

89

StackPanel

90

Grid

91

DockPanel

94

WrapPanel

97

TabControl

98

ViewBox

100

Forms Controls

101

The Button Controls

101

Button

103

HyperlinkButton

103

RepeatButton

103

Toggle Buttons: CheckBox and RadioButton

104

TextBox

105

PasswordBox

107

RichTextBox

108

AutoCompleteBox

111

Data Integration and Data Manipulation Controls

115

ItemsControl

116

ListBox

116

The ListBoxItem Class

118

ComboBox

118

The ComboBoxItem Class

119

TreeView

119

The TreeViewItem Class

121

HeaderedItemsControl

122

ContentControl

123

HeaderedContentControl

123

DataGrid

124

DataForm

124

DataPager

125

Label

125

DescriptionViewer

125

ValidationSummary

126

Functional Controls

126

Border

126

GridSplitter

127

TextBlock

129

Popup

131

ToolTipService

132

ScrollViewer

133

The RangeBase Class

135

ScrollBar

135

Slider

136

ProgressBar

137

Calendar and DatePicker

138

Image

141

MultiScaleImage

141

MediaElement

142

InkPresenter

142

Strokes and StylePoints

142

Dialog Boxes

144

OpenFileDialog

145

SaveFileDialog

147

ChildWindow

150

WebBrowser

153

Navigation

154

The Frame Class

154

The Page Class

156

Summary

157

PART 2 Content Integration in Silverlight Applications

158

Chapter 4 Media Integration

159

Media Integration Enhancements in Silverlight 4

159

Images

160

The Image Class

160

Bitmap APIs

165

Silverlight Hardware Acceleration

170

GPU Hardware Acceleration

171

Bitmap Caching

171

Cache and Frame Rate Counter Visualization

172

Multi-scale Images and the Deep Zoom Feature

173

Developing an Example Using Deep Zoom Composer

176

Media (Video and Audio)

180

Supported Media Format

181

Unsupported Media Format

182

The MediaElement Class

182

Timeline Markers

190

Web Camera and Microphone Integration

192

The CaptureDeviceConfiguration Class

192

The CaptureDevice, AudioCaptureDevice, and VideoCaptureDevice Classes

194

The CaptureSource Class

195

Developing an Example

197

Windows Azure Platform–based Hosting and Media Delivery Services for Silverlight Applications

201

Subscribing to Windows Azure Platform Services

201

Publishing Silverlight Applications Video Content

201

Streaming Packaged Images and Media Files

202

Summary

202

Chapter 5 Network Communication

203

Networking Enhancements in Silverlight 4

203

Enabling Cross-Domain Communication

203

Cross-Domain Policy Files

204

The crossdomain.xml File

205

The clientaccesspolicy.xml File

205

Trusted Applications

207

Network-Aware Applications

209

Consuming Web Services with WCF

209

Creating a WCF Service Consumable by Silverlight

210

XAML to Consume Information

213

Invoking Services from Silverlight

214

Silverlight Service Utility Tool

215

Asynchronous Communication

217

Handling Errors

220

Communicating Directly over HTTP

225

The WebClient Class

225

The HttpWebRequest Class

229

Communicating via Sockets

231

Controlling Client Access via a Socket Policy Server

231

The System.Net Namespace

232

The Socket Class

232

The SocketAsyncEventArgs Class

234

Building a Socket-Based Sample Text Chat Application

235

The PolicyServer Windows Service Project

236

The MessengerServer Windows Service Project

241

The Message.cs File

246

The MainPage.xaml File

246

The MainPage.xaml.cs Code-Behind File

247

Executing the Text Chat Application

248

UDP Multicast

250

The UdpAnySourceMulticastClient Class

250

The UdpSingleSourceMulticastClient Class

252

Considerations for Using Networking

254

Summary

254

Chapter 6 Working with Data

255

Enhancements in Silverlight 4

255

Displaying Data

256

Data Binding

256

Enabling Data Change Notification

261

Rich Data Binding Support in Visual Studio 2010

263

Data Validation

264

IDataErrorInfo Interface for Client-Side Validation

267

INotifyDataErrorInfo Interface for Asynchronous Server-Side Validation

269

XAML Element Data Binding / Element-to-Element Binding

278

DependencyObject Binding

279

Type Converters

280

StringFormat

281

BindingBase.FallbackValue and BindingBase.TargetNullValue Properties

282

Binding to String Indexers

283

The DataGrid Control

284

Implementing Grouping, Sorting, Filtering, and Paging

285

DataGrid Editing Events

291

DataGrid Column Sizing

292

Clipboard Support

294

Cell-Level Data Validation

295

Row-Level Data Validation

295

The DataForm Control

297

IEditableObject Interface Implementation

300

Customized Display of DataForm Fields

300

Field-Level Validation

301

The CollectionViewSource

302

WCF Data Services

302

Entity Data Model (EDM)

303

Silverlight Client Library for WCF Data Services

304

The DataServiceContext Class

304

The DataServiceQuery Class

306

The DataServiceCollection (T) Class

307

Silverlight Application using WCF Data Service

307

Create ADO .NET Entity Data Model

308

Create WCF Data Service

309

Create WCF Data Services Proxy and Retrieve the Records

312

Two-Way Binding with DataServiceCollection Class

314

Handling Deferred Content

315

Processing XML Data

317

Parsing XML

318

Serializing XML

319

Using LINQ

320

Saving State on the Client

321

Summary

327

PART 3 Improving User Experience

328

Chapter 7 Extending User Experience of LoB Applications

329

Enhancements in Silverlight 4

329

Drag-and-Drop Functionality

330

Properties of UIElement to Enable Drag-and-Drop Functionality

330

Events of UIElement to Enable Drag-and-Drop Functionality

330

Processing Dropped File(s)

331

Developing an Example

331

Defining User Control

331

Implementing Code-Behind of the User Control

333

Adding ChildWindow as an Image Viewer

337

Mouse-Wheel Support

340

Developing an Example

340

Limitations

342

Right-Click Context Menu Support

342

Printing Capabilities

345

PrintDocument Class

346

PrintPageEventArgs Class

346

Implementing the Printing Function

347

Printing the Application Screen

347

Printing Selected Control

349

Custom Printing

350

Clipboard Access

352

Globalization and Localization of Silverlight Applications

354

Globalization

354

CultureInfo Class

355

Developing an Example

356

Localization

358

Hub-and-Spoke Model

358

Implementing an Example

360

Preparing for Global Silverlight Application

368

Enhancements in XAML Features

368

Flexible Root XAML Namespace

368

XmlnsDefinitionAttribute

369

Direct Content

369

Whitespace Handling

369

Custom IDictionary Support

370

Summary

370

Chapter 8 Styling and Templating

371

Enhancements in Silverlight 4

371

Using Styles

371

Style Inheritance/Style Cascading

376

Style Override/Style Resetting

377

Merged Resource Dictionaries

379

Implicit Styling

380

Style Setter

381

Using Control Templates

382

Creating a Control Template

382

Visual State Manager (VSM)

384

Custom Button Control using Control Template

390

Control Templates for Other Controls

393

Developing a Templated Control

394

Summary

397

Chapter 9 Graphics

398

Enhancements in Silverlight 4

398

2D Graphics

398

Using Geometries

399

Simple Geometries

399

Path Geometries

402

Grouping Geometries

405

Clipping with Geometries

405

Using Shapes

406

Ellipse

407

Line

408

Rectangle

408

Polyline

408

Polygon

408

Path

408

Transforms

410

Translation

411

Rotation

411

Skewing

412

Scaling

413

Arbitrary Linear Transforms

414

Combining Multiple Transformations

416

Composite Transformation

416

3D Effects Using Perspective Transforms

418

Pixel Shaders

420

Brushes

422

The SolidColorBrush

423

The Tile Brushes

423

The ImageBrush

424

The Video Brush

424

The Gradient Brushes

425

The LinearGradientBrush

426

The RadialGradientBrush

427

Transparency and Opacity Masks

427

Summary

429

Chapter 10 Animation

430

Introduction to Silverlight Animation

430

Timelines

431

AutoReverse

433

BeginTime

434

Duration

435

FillBehavior

436

RepeatBehavior

436

SpeedRatio

436

Storyboards and Animation

438

From/To/By Animations

438

Foreground Animation: An Example

439

Shimmering Effect for Background Animation: An Example

445

Keyframe Animations

446

Interpolation

448

Animation Easing

452

Understanding Animation-Easing Functions

454

Procedural Animation

456

Bubble User Control

456

DemoPage User Control

458

Animating with Expression Blend

462

3D Animation

466

Summary

467

PART 4 Advanced Topics

468

Chapter 11 Advanced Silverlight Features

469

Silverlight Navigation Framework

469

Understanding the Navigation Framework

471

The Frame Class

471

Start-Up Page and Application Navigation Features

473

Navigation Pages

476

Navigation History and Integration with Browser

476

Implementing Custom Navigation

477

The INavigationContentLoader Interface

477

Extending the Example

479

Deep Linking

485

Search Engine Optimization

485

Additional References

488

Out-of-Browser Functionality

488

Enabling the Out-of-Browser Functionality

489

Installing Out-of-Browser Applications

491

In-Browser Install: Default Option

491

In-Browser Install: Custom Developed Option

492

Silent Install

493

Uninstalling Out-of-Browser Applications

494

The Default Option

494

The Silent Uninstall Option

494

Trusted Out-of-Browser Applications

495

Customizing Out-of-Browser Applications

496

Custom Icons

496

Window Manipulation and Customization

497

Working with the Networking and Offline APIs

498

Incorporating an Updated Version

502

Files Management

504

Notification API

508

COM Automation

511

Commanding Support

516

The Model Class

518

The ViewModel Class

518

The View.xaml File

519

Cross-Silverlight Application Communication

520

Using the System.Windows.Messaging Namespace

521

Seeing an Example in Action

522

Creating the Sender Silverlight Application

523

Creating the Receiver Silverlight Application

524

Hosting the Sender and Receiver Applications on the Same Page

526

Summary

528

Chapter 12 Threading in Silverlight

529

Using Threading

529

The Thread Class

530

Creating and Managing Threads

533

The Dispatcher

535

The BackgroundWorker Class

536

Working with Shared Data

540

Using Timers

543

Using the DispatcherTimer

544

Using the System.Threading Timer

545

Summary

546

Chapter 13 WCF RIA Services and Silverlight for Mobile

547

WCF RIA Services for Silverlight

547

Setting Up a Development Environment

548

Introducing Silverlight Business Application Template

549

Running the Default Project

551

Implementing Windows Authentication

554

ADO .NET Entity Data Model for Data Integration

555

Domain Service Class for Data Integration

556

Reading and Displaying Data from the Data Source

557

Updating Data to the Data Source

559

Additional References

559

Silverlight for Windows Mobile

560

Setting Up a Development Environment

560

Developing a Sample Twitter Application

560

Create a Windows Phone Application Project

561

Defining the User Interface

561

Code-Behind for Twitter Integration

564

Testing Silverlight Windows Mobile Application Using Windows Phone 7 Emulator

565

Summary

567

Chapter 14 Dynamic Languages and Dynamic .NET for Silverlight

568

Dynamic Languages

568

Dynamic Languages for Silverlight

569

IronRuby

570

IronPython

570

Dynamic Language Runtime (DLR) for Silverlight

570

DLR Scripting Assemblies

571

The Microsoft.Scripting.Silverlight.DynamicApplication Class

572

Setting Up the Development Environment

573

The Traditional Approach with the Chiron.exe File

573

The “Just-Text” Approach

574

Creating Silverlight Applications Using the “Just-Text” Approach

577

Hosting a HTML File

577

In-Line IronRuby/IronPython Code in Hosting HTML File

577

In-Line XAML Code in Hosting HTML File

578

Externalizing XAML and IronRuby/IronPython Code

578

Developing an Interactive Bing Maps Application with Silverlight and IronRuby

579

Installing Microsoft Bing Maps Silverlight Control SDK

579

Include Bing Maps Control to the Solution

579

Include Bing Maps Control within the dlr.xap File

580

Include Bing Maps Control As an External ZIP File

580

Create a SilverlightMap.xaml File

581

Creating a SilverlightMap.html File

581

Adding 3D Animation within the SilverlightMap.xaml File

582

Creating a SilverlightMap.rb IronRuby File and Adding Map Mode

583

Add Rotate Map Capabilities

584

Targeting Pre-defined Locations

588

Summary

590

Chapter 15 Security

591

.NET Security in the CLR

591

Silverlight Security Model

592

Enhancements in Silverlight 4

594

Configuring Silverlight 4 Applications to Run with Elevated Trust

594

Digitally Signing Out-of-Browser Silverlight Applications

597

Elevated-Trusted Silverlight Applications vs. Partially Trusted Silverlight Applications

599

Application-Level Security

601

Securing Information in Transit

601

Securing Information with Cryptography

601

Hash Algorithms and Message Authentication Codes

602

Encrypting/Decrypting Data

604

User Access Control

608

Same-Domain and Cross-Domain Communication

619

Division of Responsibility

621

Summary

624

PART 5 Testing and Deploying Silverlight RIAs

625

Chapter 16 Testing and Debugging

626

Testing

626

Unit Testing

627

Silverlight Unit Testing Framework

627

Automated User Interface Testing

638

UI Spy Tool

639

Implementing UI Automation Testing

640

Debugging

644

The Debugging Process

644

Conditional Compilation

645

Debugging Silverlight Applications with Visual Studio

646

Controlling the Debugger

647

Configuring Startup for Debugging

648

Debugging Out-of-Browser Applications

651

Handling Unhandled Exceptions

651

Summary

655

Chapter 17 Packaging and Deploying Silverlight Applications

656

Client Considerations

656

Disabling Silverlight Plug-In Using Web Browser

657

Silverlight Configuration

658

Silverlight Deployment Package Definition

661

Core Runtime Library

662

Silverlight Application Package (XAP File)

662

Application Manifest File

664

Application Startup Assembly File

665

Optional Files

667

In-Package and On-Demand Files

667

Copy Local Property

668

Build Action Property

669

Hosting Silverlight Applications

670

Server-Side Silverlight RIA Deployment

672

Setting the IIS MIME Type

673

Same-Domain and Cross-Domain Deployment

673

Custom Initialization Parameters

673

Embedding Silverlight Plug-Ins to the Web Page

674

HTML object Element

674

Silverlight.js JavaScript Helper File

677

Custom HTML Object Element Error Handling for Better User Experience

678

Silverlight and the Build Process

678

Building a Silverlight Application Visual Studio Project (.csproj) with MSBuild

679

Building a Silverlight Application MsBuild Project (.proj) with MSBuild

681

Silent Installer for Silverlight Out-of-Browser Applications

684

Summary

685

Index

686