E-Book, Englisch, 912 Seiten
MacDonald Pro Silverlight 4 in C#
3rd ed
ISBN: 978-1-4302-2980-3
Verlag: Apress
Format: PDF
Kopierschutz: 1 - PDF Watermark
E-Book, Englisch, 912 Seiten
ISBN: 978-1-4302-2980-3
Verlag: Apress
Format: PDF
Kopierschutz: 1 - PDF Watermark
Silverlight 4 is Microsoft's cross-browser technology for creating rich user experiences on the Web. Like its predecessor, Silverlight 3, it rides atop the .NET framework for maximum ease of use and coding efficiency. The new technology carries forward much of the work that has been done before and augments it in many important respects, including support for H.264 video, major improvements to the graphics engine (including true 3D rendering), and much richer data-binding options for interfacing with other applications. Pro Silverlight 4 in C# is an invaluable reference for professional developers wanting to discover the features of Silverlight 4. Author Matthew MacDonald's expert advice guides you through creating rich media applications using Silverlight in the environment you're most productive in-no matter what the target platform. As you learn about the features that put Silverlight in direct competition with Adobe Flash, such as rich support for 2D and 3D drawing, animations, and media playback, you'll experience the plumbing of .NET and the design model of WPF through Silverlight-all of the same .NET technology that developers use to design next-generation Windows applications. Matthew MacDonald provides a comprehensive tutorial written from professional developer to professional developer, complete with full-color graphics and screenshots.
Matthew MacDonald is an author,educator, and MCSD developer who has a passion for emerging technologies. He isthe author of more than a dozen books about .NET programming. In a dimly-remembered past life, he studied English literature and theoretical physics.
Autoren/Hrsg.
Weitere Infos & Material
1;Title Page;1
2;Copyright Page;2
3;Contents at a Glance;4
4;Table of Contents;5
5;About the Author;21
6;About the Technical Reviewer;22
7;Acknowledgments;23
8;Introduction;24
8.1;Understanding Silverlight;24
8.1.1;Silverlight System Requirements;26
8.1.2;Silverlight vs. Flash;26
8.1.3;Silverlight and WPF;28
8.1.4;The Evolution of Silverlight;29
8.2;About This Book;30
8.2.1;What You Need to Use This Book;31
8.2.2;The Silverlight Toolkit;31
8.2.3;Code Samples;32
8.2.4;Feedback;32
8.3;The Last Word;32
9;Chapter 1: Introducing Silverlight;33
9.1;Silverlight Design Tools;33
9.1.1;Visual Studio vs. Expression Blend;33
9.1.2;Understanding Silverlight Websites;34
9.2;Creating a Stand-Alone Silverlight Project;35
9.3;Creating a Simple Silverlight Page;38
9.3.1;Adding Event-Handling Code;40
9.3.2;Testing a Silverlight Application;42
9.4;Creating an ASP.NET-Hosted Silverlight Project;44
9.4.1;ASP.NET Controls That Render Silverlight Content;47
9.4.2;Mixing ASP.NET Controls and Silverlight Content;48
9.5;Silverlight Compilation and Deployment;48
9.5.1;Compiling a Silverlight Application;48
9.5.2;Deploying a Silverlight Application;50
9.5.3;Silverlight Core Assemblies;52
9.5.4;Silverlight Add-on Assemblies;53
9.5.5;Assembly Caching;54
9.6;The HTML Entry Page;56
9.6.1;Sizing the Silverlight Content Region;58
9.6.2;Silverlight Parameters;58
9.6.3;Alternative Content;60
9.6.4;Creating a Friendly Install Experience;60
9.6.5;The Mark of the Web;62
9.7;The Last Word;63
10;Chapter 2: XAML;64
10.1;XAML Basics;65
10.1.1;XAML Namespaces;66
10.1.1.1;Core Silverlight Namespaces;66
10.1.1.2;Design Namespaces;67
10.1.1.3;Custom Namespaces;68
10.1.2;The Code-Behind Class;69
10.1.2.1;Naming Elements;70
10.2;Properties and Events in XAML;70
10.2.1;Simple Properties and Type Converters;72
10.2.2;Complex Properties;73
10.2.3;Attached Properties;75
10.2.4;Nesting Elements;76
10.2.5;Events;79
10.2.6;The Full Eight Ball Example;80
10.3;XAML Resources;81
10.3.1;The Resources Collection;81
10.3.2;The Hierarchy of Resources;82
10.3.3;Accessing Resources in Code;84
10.3.4;Organizing Resources with Resource Dictionaries;85
10.4;Element-to-Element Binding;87
10.4.1;One-Way Binding;87
10.4.2;Two-Way Binding;88
10.5;The Last Word;90
11;Chapter 3: Layout;91
11.1;The Layout Containers;91
11.1.1;The Panel Background;93
11.1.2;Borders;95
11.2;Simple Layout with the StackPanel;96
11.2.1;Layout Properties;98
11.2.2;Alignment;99
11.2.3;Margins;100
11.2.4;Minimum, Maximum, and Explicit Sizes;102
11.3;The WrapPanel and DockPanel;104
11.3.1;The WrapPanel;104
11.3.2;The DockPanel;105
11.4;The Grid;107
11.4.1;Fine-Tuning Rows and Columns;109
11.4.2;Nesting Layout Containers;110
11.4.3;Spanning Rows and Columns;112
11.4.4;The GridSplitter;113
11.5;Coordinate-Based Layout with the Canvas;116
11.5.1;Layering with ZIndex;118
11.5.2;Clipping;118
11.6;Custom Layout Containers;120
11.6.1;The Two-Step Layout Process;120
11.6.1.1;MeasureOverride();121
11.6.1.2;ArrangeOverride();122
11.6.2;The UniformGrid;123
11.7;Sizing Pages;128
11.7.1;Scrolling with the ScrollViewer;130
11.7.2;Scaling with the Viewbox;132
11.7.3;Full-Screen Mode;134
11.8;The Last Word;136
12;Chapter 4: Dependency Properties and Routed Events;137
12.1;Dependency Properties;137
12.1.1;Defining and Registering a Dependency Property;138
12.1.2;Dynamic Value Resolution;140
12.1.3;Attached Properties;141
12.1.4;The WrapBreakPanel Example;142
12.2;Routed Events;145
12.2.1;The Core Element Events;145
12.2.2;Event Bubbling;148
12.2.3;Handled (Suppressed) Events;150
12.2.4;An Event Bubbling Example;150
12.3;Mouse Handling;153
12.3.1;Right-Clicks;153
12.3.2;Mouse Movements;154
12.3.3;The Mouse Wheel;154
12.3.4;Capturing the Mouse;156
12.3.5;A Mouse Event Example;157
12.3.6;Mouse Cursors;160
12.4;Keyboard Handling;161
12.4.1;Key Presses;161
12.4.2;Key Modifiers;164
12.4.3;Focus;165
12.5;The Command Model;166
12.5.1;Building a Command;167
12.5.2;Connecting a Command;168
12.6;The Last Word;170
13;Chapter 5: Elements;171
13.1;The Silverlight Elements;171
13.2;Static Text;175
13.2.1;Font Properties;176
13.2.1.1;Font Embedding;179
13.2.2;Underlining;180
13.2.3;Runs;181
13.2.4;Wrapping Text;182
13.2.5;Trimming Text;183
13.3;Images;183
13.3.1;Image Sizing;184
13.3.2;Image Errors;185
13.4;Content Controls;185
13.4.1;The Content Property;187
13.4.2;Aligning Content;189
13.5;Buttons;190
13.5.1;The HyperlinkButton;190
13.5.2;The ToggleButton and RepeatButton;191
13.5.3;The CheckBox;191
13.5.4;The RadioButton;192
13.6;Tooltips and Pop-Ups;193
13.6.1;Customized Tooltips;193
13.6.2;The Popup;195
13.7;Items Controls;197
13.7.1;The ListBox;197
13.7.2;The ComboBox;199
13.7.3;The TabControl;200
13.8;Text Controls;201
13.8.1;The TextBox;202
13.8.2;The PasswordBox;204
13.8.3;The AutoCompleteBox;204
13.8.3.1;Filter Mode;205
13.8.3.2;Custom Filtering;206
13.8.3.3;Dynamic Item Lists;208
13.8.4;The RichTextBox;210
13.8.4.1;Text Elements;210
13.8.4.2;Formatting Text Elements;213
13.8.4.3;Manipulating Text Elements in Code;214
13.8.4.4;Creating a Text Editor;215
13.8.4.5;Saving and Opening Rich Text Files;218
13.8.4.6;Using Hyperlinks and Elements in a RichTextBox;219
13.9;Range-Based Controls;221
13.9.1;The Slider;221
13.9.2;The ProgressBar;222
13.10;Date Controls;222
13.11;The Last Word;226
14;Chapter 6: The Application Model;227
14.1;The Application Class;227
14.1.1;Accessing the Current Application;228
14.1.2;Application Properties;228
14.2;Application Events;229
14.2.1;Application Startup;230
14.2.2;Initialization Parameters;230
14.2.3;Application Shutdown;234
14.2.4;Unhandled Exceptions;234
14.3;Custom Splash Screens;236
14.4;Binary Resources;241
14.4.1;Placing Resources in the Application Assembly;241
14.4.1.1;Programmatically Retrieving a Resource;243
14.4.2;Placing Resources in the Application Package;244
14.4.3;Placing Resources on the Web;245
14.4.3.1;Failing to Download Resources;246
14.4.3.2;Downloading Resources with WebClient;247
14.5;Class Library Assemblies;249
14.5.1;Using Resources in an Assembly;249
14.5.2;Downloading Assemblies on Demand;250
14.5.3;Supporting Assembly Caching;251
14.5.3.1;The Strong Key Name;252
14.5.3.2;The .extmap.xml File;253
14.6;The Last Word;255
15;Chapter 7: Navigation;256
15.1;Loading User Controls;257
15.1.1;Embedding User Controls in a Page;257
15.1.2;Hiding Elements;259
15.1.3;Managing the Root Visual;259
15.1.4;Retaining Page State;261
15.1.5;Browser History;262
15.2;Child Windows;262
15.2.1;Designing a ChildWindow;264
15.2.2;Showing a ChildWindow;265
15.3;The Frame and Page;267
15.3.1;Frames;267
15.3.1.1;Browser URI Integration;270
15.3.1.1.1;What Happens If the Page Has More Than One Frame?;271
15.3.1.1.2;What Happens If the Startup Page Doesn’t Include a Frame Control?;271
15.3.1.1.3;What About Security?;272
15.3.1.2;History Support;272
15.3.1.3;Navigation Failure;273
15.3.2;URI Mapping;274
15.3.3;Forward and Backward Navigation;275
15.3.4;Hyperlinks;276
15.3.5;Pages;277
15.3.5.1;Navigation Properties;277
15.3.5.2;State Storage;278
15.3.5.3;Navigation Methods;279
15.3.6;Navigation Templates;280
15.4;Custom Content Loaders;281
15.4.1;Authentication and Navigation;282
15.4.2;Creating a Custom Content Loader;283
15.4.3;Using the Custom Content Loader;285
15.5;The Last Word;286
16;Chapter 8: Shapes and Geometries;287
16.1;Basic Shapes;287
16.1.1;The Shape Classes;288
16.1.2;Rectangle and Ellipse;289
16.1.3;Sizing and Placing Shapes;291
16.1.4;Sizing Shapes Proportionately with a Viewbox;293
16.1.5;Line;295
16.1.6;Polyline;296
16.1.7;Polygon;297
16.1.8;Line Caps and Line Joins;300
16.1.9;Dashes;302
16.2;Paths and Geometries;304
16.2.1;Line, Rectangle, and Ellipse Geometries;305
16.2.2;Combining Shapes with GeometryGroup;306
16.2.3;Curves and Lines with PathGeometry;308
16.2.3.1;Straight Lines;309
16.2.3.2;Arcs;310
16.2.3.3;Bézier Curves;312
16.2.4;The Geometry Mini-Language;314
16.2.5;Clipping with Geometry;316
16.3;Exporting Clip Art;317
16.3.1;Expression Design;317
16.3.2;Conversion;319
16.3.3;Save or Print to XPS;319
16.4;The Last Word;322
17;Chapter 9: Brushes, Transforms, and Bitmaps;323
17.1;Brushes;323
17.1.1;The LinearGradientBrush Class;324
17.1.2;The RadialGradientBrush Class;327
17.1.3;The ImageBrush;329
17.2;Transparency;330
17.2.1;Opacity Masks;333
17.2.2;Making the Silverlight Control Transparent;334
17.3;Transforms;338
17.3.1;Transforming Shapes;340
17.3.2;Transforms and Layout Containers;342
17.3.3;A Reflection Effect;343
17.4;Perspective Transforms;345
17.4.1;The PlaneProjection Class;346
17.4.2;Applying a Projection;348
17.5;Pixel Shaders;349
17.5.1;BlurEffect;350
17.5.2;DropShadowEffect;350
17.5.3;ShaderEffect;352
17.6;The WriteableBitmap Class;353
17.6.1;Generating a Bitmap;353
17.6.2;Capturing Content from Other Elements;356
17.7;Printing;357
17.7.1;Printing a Single Element;358
17.7.2;Printing Over Multiple Pages;360
17.7.3;Creating a Print Preview;363
17.8;The Last Word;366
18;Chapter 10: Animation;367
18.1;Understanding Silverlight Animation;367
18.1.1;The Rules of Animation;368
18.2;Creating Simple Animations;369
18.2.1;The Animation Class;369
18.2.2;The Storyboard Class;370
18.2.3;Starting an Animation with an Event Trigger;371
18.2.4;Starting an Animation with Code;372
18.2.5;Configuring Animation Properties;373
18.2.5.1;From;373
18.2.5.2;To;374
18.2.5.3;By;375
18.2.5.4;Duration;375
18.2.6;Animation Lifetime;375
18.2.6.1;RepeatBehavior;377
18.2.7;Simultaneous Animations;377
18.2.8;Controlling Playback;378
18.3;Animation Easing;381
18.3.1;Using an Easing Function;381
18.3.2;Easing In and Easing Out;382
18.3.3;Easing Function Classes;384
18.4;Animation Types Revisited;387
18.4.1;Animating Transforms;387
18.4.2;Animation Perspective Projections;390
18.4.3;Animating Brushes;392
18.4.4;Animating Pixel Shaders;393
18.4.5;Key-Frame Animation;395
18.4.5.1;Discrete Key Frames;396
18.4.5.2;Easing Key Frames;397
18.4.5.3;Spline Key Frames;397
18.5;Animations in Code;399
18.5.1;The Main Page;400
18.5.2;The Bomb User Control;402
18.5.3;Dropping the Bombs;403
18.5.4;Intercepting a Bomb;407
18.5.5;Counting Bombs and Cleaning Up;408
18.6;Encapsulating Animations;410
18.6.1;Page Transitions;410
18.6.2;The Base Class;412
18.6.3;The Wipe Transition;413
18.7;Frame-Based Animation;415
18.8;Animation Performance;419
18.8.1;Desired Frame Rate;419
18.8.2;Hardware Acceleration;420
18.8.2.1;Enabling Hardware Acceleration;421
18.8.2.2;Bitmap Caching;421
18.8.2.3;Evaluating Hardware Acceleration;424
18.9;The Last Word;425
19;Chapter 11: Sound, Video, and Deep Zoom;426
19.1;Supported File Types;426
19.2;The MediaElement;427
19.2.1;Controlling Playback;428
19.2.2;Handling Errors;429
19.2.3;Playing Multiple Sounds;429
19.2.4;Changing Volume, Balance, and Position;430
19.2.5;Playing Video;434
19.2.6;Client-Side Playlists;435
19.2.7;Server-Side Playlists;435
19.2.8;Progressive Downloading and Streaming;436
19.2.9;Adaptive Streaming;438
19.3;Advanced Video Playback;439
19.3.1;Video Encoding;439
19.3.2;Encoding in Expression Encoder;440
19.3.3;Markers;442
19.3.3.1;Adding Markers with Expression Encoder;442
19.3.3.2;Using Markers in a Silverlight Application;444
19.3.4;VideoBrush;447
19.3.5;Video Effects;448
19.4;Webcam and Microphone Input;454
19.4.1;Accessing a Capture Device;454
19.4.2;Basic Webcam Support;456
19.4.3;Recording Audio Snippets;459
19.5;Deep Zoom;463
19.5.1;Creating a Deep Zoom Image Set;465
19.5.2;Using a Deep Zoom Image Set in Silverlight;469
19.6;The Last Word;472
20;Chapter 12: Styles and Behaviors;473
20.1;Styles;473
20.1.1;Defining a Style;474
20.1.2;Applying a Style;475
20.1.3;Dynamic Styles;476
20.1.4;Style Inheritance;476
20.1.5;Organizing Styles;478
20.1.6;Automatically Applying Styles by Type;478
20.2;Behaviors;480
20.2.1;Getting Support for Behaviors;480
20.2.2;Triggers and Actions;481
20.2.2.1;Creating an Action;481
20.2.2.2;Connecting an Action to an Element;483
20.2.2.3;Design-Time Behavior Support in Blend;485
20.2.2.4;Creating a Targeted Trigger;487
20.2.3;Creating a Behavior;491
20.2.4;Finding More Behaviors;494
20.3;The Last Word;496
21;Chapter 13: Templates and Custom Controls;497
21.1;Template Basics;497
21.1.1;Creating a Template;498
21.1.2;Reusing Control Templates;499
21.1.3;The ContentPresenter;500
21.1.4;Template Bindings;501
21.1.5;Setting Templates Through Styles;502
21.1.6;Reusing Colors;504
21.2;The Parts and States Model;504
21.2.1;Understanding States with the Button Control;506
21.2.2;Showing a Focus Cue;510
21.2.3;Transitions;511
21.2.3.1;The Default Transition;512
21.2.3.2;From and to Transitions;513
21.2.3.3;Transitioning to a Steady State;514
21.2.3.4;Custom Transition;515
21.2.4;Understanding Parts with the Slider Control;516
21.3;Creating Templates for Custom Controls;520
21.3.1;Planning the FlipPanel Control;521
21.3.2;Creating the Solution;522
21.3.3;Starting the FlipPanel Class;522
21.3.4;Adding the Default Style with Generic.xaml;524
21.3.5;Choosing Parts and States;526
21.3.6;Starting the Default Control Template;528
21.3.7;The FlipButton Control;529
21.3.8;Defining the State Animations;530
21.3.9;Wiring Up the Elements in the Template;532
21.3.10;Using the FlipPanel;534
21.3.11;Using a Different Control Template;535
21.4;The Last Word;537
22;Chapter 14: Browser Integration;538
22.1;Interacting with HTML Elements;539
22.1.1;Getting Browser Information;540
22.1.2;The HTML Window;541
22.1.3;Popup Windows;542
22.1.4;Inspecting the HTML Document;543
22.1.5;Manipulating an HTML Element;545
22.1.5.1;Inserting and Removing Elements;548
22.1.5.2;Changing Style Properties;549
22.1.6;Handling JavaScript Events;550
22.2;Code Interaction;552
22.2.1;Calling Browser Script from Silverlight;553
22.2.2;Calling Silverlight Methods from the Browser;553
22.2.3;Instantiating Silverlight Objects in the Browser;555
22.3;Combining Silverlight and HTML Content;557
22.3.1;Sizing the Silverlight Control to Fit Its Content;557
22.3.2;Placing the Silverlight Control Next to an HTML Element;559
22.4;Securing HTML Interoperability;561
22.5;The Last Word;563
23;Chapter 15: ASP.NET Web Services;564
23.1;Building Web Services for Silverlight;564
23.1.1;Creating a Web Service;564
23.1.2;Adding a Service Reference;566
23.1.3;Calling the Web Service;568
23.1.4;Configuring the Web Service URL;571
23.1.5;Using a Busy Indicator;572
23.2;Web Service Data Types;574
23.2.1;Custom Data Classes;574
23.2.2;Web Service Type Sharing;576
23.2.2.1;Identifying Your Data Classes;576
23.2.2.2;Sharing the Code;577
23.3;More Advanced Web Services;581
23.3.1;Cross-Domain Web Service Calls;581
23.3.2;Monitoring the Network Connection;583
23.3.3;Using ASP.NET Platform Services;585
23.4;Duplex Services;587
23.4.1;Configuring the Service;587
23.4.2;The Interfaces;588
23.4.3;The Service;590
23.4.4;The Client;590
23.5;The Last Word;592
24;Chapter 16: Data Binding;593
24.1;Binding to Data Objects;593
24.1.1;Building a Data Object;594
24.1.2;Displaying a Data Object with DataContext;595
24.1.3;Storing a Data Object as a Resource;597
24.1.4;Null Values and Failed Bindings;598
24.1.5;Editing with Two-Way Bindings;598
24.1.6;Change Notification;600
24.1.7;Building a Data Service;601
24.1.8;Calling a Data Service;605
24.2;Binding to a Collection of Objects;607
24.2.1;Displaying and Editing Collection Items;607
24.2.2;Inserting and Removing Collection Items;612
24.2.3;Binding to a LINQ Expression;612
24.2.4;Master-Details Display;615
24.3;Validation;618
24.3.1;Error Notifications;619
24.3.2;The BindingValidationFailed Event;621
24.3.3;The Validation Class;623
24.3.4;Creating Data Objects with Built-in Validation;623
24.4;Data Formatting and Conversion;627
24.4.1;String Formatting;628
24.4.2;Value Converters;630
24.4.3;Formatting Strings with a Value Converter;630
24.4.4;Creating Objects with a Value Converter;633
24.4.5;Applying Conditional Formatting;635
24.5;Data Templates;637
24.5.1;Separating and Reusing Templates;639
24.5.2;More Advanced Templates;640
24.5.3;Changing Item Layout;641
24.6;The Last Word;642
25;Chapter 17: Data Controls;643
25.1;Better Data Forms;644
25.1.1;The Goal: Data Class Markup;644
25.1.2;The Label;645
25.1.3;The DescriptionViewer;647
25.1.4;The ValidationSummary;649
25.2;Data Annotations;651
25.2.1;Raising Annotation Errors;652
25.2.2;The Annotation Attributes;653
25.2.2.1;Required;654
25.2.2.2;StringLength;654
25.2.2.3;Range;654
25.2.2.4;RegularExpression;655
25.2.2.5;CustomValidation;657
25.3;The DataGrid;659
25.3.1;Creating a Simple Grid;660
25.3.2;How Columns Are Resized and Rearranged;662
25.3.3;Defining Columns;663
25.3.3.1;The DataGridCheckBoxColumn;665
25.3.3.2;The DataGridTemplateColumn;665
25.3.4;Formatting and Styling Columns;666
25.3.5;Controlling Column Width;668
25.3.6;Formatting Rows;670
25.3.7;Row Details;673
25.3.8;Freezing Columns;674
25.3.9;Selection;675
25.3.10;Sorting;676
25.4;DataGrid Editing;677
25.4.1;Editing with Templates;677
25.4.2;Validation and Editing Events;679
25.5;The PagedCollectionView;681
25.5.1;Sorting;682
25.5.2;Filtering;682
25.5.3;Grouping;683
25.5.4;Paging;686
25.6;The TreeView;689
25.6.1;Filling a TreeView;689
25.6.2;A Data-Bound TreeView;689
25.7;The Last Word;692
26;Chapter 18: File Access;693
26.1;Isolated Storage;694
26.1.1;The Scope of Isolated Storage;694
26.1.2;What to Put in Isolated Storage;695
26.2;Using Isolated Storage;695
26.2.1;Opening an Isolated Store;695
26.2.2;File Management;696
26.2.3;Writing and Reading Data;697
26.2.4;Requesting More Space;699
26.2.5;Storing Objects with XmlSerializer;701
26.2.6;Storing Application Settings;704
26.3;Accessing Files Outside of Isolated Storage;705
26.3.1;Reading Files with OpenFileDialog;706
26.3.2;Writing Files with SaveFileDialog;708
26.3.3;Transmitting Files with a Web Service;708
26.3.3.1;The File Service;709
26.3.3.2;The Silverlight Client;711
26.3.4;Dragging and Dropping Files;714
26.4;The Last Word;718
27;Chapter 19: Multithreading;719
27.1;Understanding Multithreading;719
27.1.1;The Goals of Multithreading;720
27.1.2;The DispatcherTimer;721
27.2;The Thread Class;721
27.2.1;Marshaling Code to the User Interface Thread;723
27.2.2;Creating a Thread Wrapper;726
27.2.3;Creating the Worker Class;727
27.2.4;Using the Thread Wrapper;729
27.2.5;Cancellation Support;731
27.3;The BackgroundWorker;732
27.3.1;Creating the BackgroundWorker;733
27.3.2;Running the BackgroundWorker;734
27.3.3;Tracking Progress;736
27.3.4;Supporting Cancellation;738
27.4;The Last Word;740
28;Chapter 20: Networking;741
28.1;Interacting with the Web;742
28.1.1;Cross-Domain Access;742
28.1.2;HTML Scraping;744
28.1.3;REST and Other Simple Web Services;749
28.1.4;Using Network Credentials;753
28.2;Processing Different Types of Data;753
28.2.1;XML;753
28.2.2;Services That Return XML Data;754
28.2.2.1;Navigating Over an XDocument;757
28.2.2.2;Querying an XDocument with LINQ;759
28.2.3;Services That Require XML Data;761
28.2.4;Services That Return SOAP Data;764
28.2.5;Services That Return JSON Data;764
28.2.6;RSS;767
28.3;Sockets;770
28.3.1;Understanding Sockets and TCP;770
28.3.2;The Policy Server;772
28.3.2.1;The Policy File;773
28.3.2.2;The PolicyServer Classes;774
28.3.2.3;The PolicyConnection Classes;776
28.3.3;The Messaging Server;777
28.3.4;The Messenger Client;781
28.3.4.1;Connecting to the Server;782
28.3.4.2;Sending Messages;784
28.3.4.3;Receiving Messages;785
28.4;Local Connections;786
28.4.1;Sending a Message;787
28.4.2;Receiving a Message;788
28.5;The Last Word;789
29;Chapter 21: Out-of-Browser Applications;790
29.1;Understanding Out-of-Browser Support;791
29.2;Creating an Out-of-Browser Application;792
29.2.1;Installing an Out-of-Browser Application;794
29.2.2;Customizing Icons;797
29.2.3;Tracking Application State;798
29.2.4;Removing and Updating an Application;802
29.2.5;Silent Installation;803
29.3;Out-of-Browser Application Features;804
29.3.1;The WebBrowser Control;804
29.3.1.1;Showing HTML Content;806
29.3.1.2;The WebBrowserBrush;807
29.3.1.3;Interacting with JavaScript Code;807
29.3.2;Notification Windows;808
29.3.3;Controlling the Main Window;811
29.4;Elevated Trust;813
29.4.1;Installing an Elevated Trust Application;814
29.4.2;The Abilities of an Elevated Trust Application;817
29.4.3;Window Customization;818
29.4.4;File Access;825
29.4.5;COM;827
29.5;The Last Word;831
30;Index;832




