contents
preface
acknowledgments
about this book
about the cover illustration
Part 1 Core Silverlight
- 1 Introducing Silverlight
- 1.1 Silverlight primer
- 1.2 A brief history of Silverlight
- 1.3 Getting started with Silverlight development
- 1.4 Building your first Silverlight web application
- 1.5 Summary
- 2 XAML and the property system
- 2.1 XAML basics
- 2.2 Object trees and namescope
- 2.3 XAML type converters
- 2.4 Loading XAML at runtime
- 2.5 Summary
- 3 The application model and the plug-in
- 3.1 The Silverlight application model
- 3.2 Creating the Silverlight plug-in
- 3.3 Integrating the Silverlight plug-in
- 3.4 Summary
- 4 Working with HTML and browsers
- 4.1 Silverlight and the HTML DOM
- 4.2 Working with the web page from managed code
- 4.3 Working with the hosting browser window
- 4.4 Bridging the scripting and managed code worlds
- 4.5 Hosting HTML in Silverlight
- 4.6 Summary
- 5 Out-of-browser applications
- 5.1 Implementation specifics
- 5.2 The end-user experience
- 5.3 Creating out-of-browser applications
- 5.4 Alerting the user with notification toast
- 5.5 Controlling the host window
- 5.6 Summary
- 6 The security model and elevated trust
- 6.1 Code classifications and the transparency model
- 6.2 User initiation and consent
- 6.3 Elevated trust
- 6.4 Summary
Part 2 Creating the user interface
- 7 Rendering, layout, and transforming
- 7.1 The UIElement and FrameworkElement
- 7.2 The rendering process
- 7.3 The layout system
- 7.4 Render transforms
- 7.5 3D projection transforms
- 7.6 Summary
- 8 Panels
- 8.1 Canvas
- 8.2 The StackPanel
- 8.3 The WrapPanel
- 8.4 The Grid
- 8.5 Summary
- 9 Human input
- 9.1 Capturing the keyboard
- 9.2 Mouse input
- 9.3 Using multitouch
- 9.4 Collecting ink drawings
- 9.5 Summary
- 10 Text fundamentals
- 10.1 The text system
- 10.2 Displaying text
- 10.3 OpenType font support
- 10.4 Embedding fonts
- 10.5 Summary
- 11 Editing plain and rich text
- 11.1 Handling basic text input
- 11.2 Understanding input method editors
- 11.3 Copying text with the Clipboard API
- 11.4 Collecting sensitive data
- 11.5 Entering and displaying rich text
- 11.6 Multicolumn and free-form linked text
- 11.7 Summary
- 12 Control basics and UserControls
- 12.1 Control
- 12.2 ContentControl
- 12.3 Button controls
- 12.4 ItemsControls
- 12.5 Creating UserControls
- 12.6 Summary
- 13 Animation and behaviors
- 13.1 Animating a value over time
- 13.2 Mastering the timeline
- 13.3 Storyboards
- 13.4 Keyframing
- 13.5 Interpolation
- 13.6 Easing functions
- 13.7 Behaviors, triggers, and actions
- 13.8 Summary
- 14 Resources, styles, and control templates
- 14.1 Being resourceful
- 14.2 Giving your elements style
- 14.3 Creating templates
- 14.4 Dealing with visual states
- 14.5 Sharing your visual states
- 14.6 Summary
- 15 Extensions, converters, custom controls, and panels
- 15.1 Markup extensions
- 15.2 Custom type converters
- 15.3 Creating a custom panel
- 15.4 Creating a custom control
- 15.5 Summary
Part 3 Working with data and services
- 16 Binding
- 16.1 Binding basics
- 16.2 Understanding your binding source
- 16.3 Binding to dynamic properties
- 16.4 Customizing the display
- 16.5 Creating explicit data templates
- 16.6 Creating implicit data templates
- 16.7 Summary
- 17 Data controls: DataGrid and DataForm
- 17.1 The DataGrid
- 17.2 The DataForm
- 17.3 Annotating for display
- 17.4 Summary
- 18 Input validation
- 18.1 The validation example source and UI
- 18.2 Exception-based property validation
- 18.3 Synchronous validation with IDataErrorInfo
- 18.4 Asynchronous validation with INotifyDataErrorInfo
- 18.5 Annotating for validation
- 18.6 Comparison of validation approaches
- 18.7 Summary
- 19 Networking basics
- 19.1 The web request/response pattern
- 19.2 Simplifying the request/response pattern with WebClient
- 19.3 Asynchronous communication
- 19.4 Trust and cross-domain network access
- 19.5 The browser HTTP stack
- 19.6 The client HTTP stack
- 19.7 Checking the network state
- 19.8 Summary
- 20 Working with SOAP services
- 20.1 Introducing ASP.NET SOAP services using ASP.NET
- 20.2 Using WCF services and complex data types
- 20.3 Using the configuration file
- 20.4 Error handling with WCF
- 20.5 Summary
- 21 RESTful services with the ASP.NET Web API
- 21.1 Creating a RESTful service using the ASP.NET Web API
- 21.2 Consuming REST services
- 21.3 Summary
- 22 Working with XML, JSON, RSS, and Atom
- 22.1 Parsing plain old XML
- 22.2 Working with JSON
- 22.3 Working with RSS and Atom
- 22.4 Summary
- 23 Duplex, sockets, and local connections
- 23.1 WCF polling duplex services
- 23.2 Connecting to sockets
- 23.3 Multicast sockets
- 23.4 Connecting to other local Silverlight applications
- 23.5 Summary
Part 4 2D and 3D graphics
- 24 Graphics and effects
- 24.1 Shapes
- 24.2 Geometry
- 24.3 Brushes
- 24.4 Effects
- 24.5 Summary
- 25 Working with images
- 25.1 Basic imaging
- 25.2 Creating images at runtime
- 25.3 Deep Zoom
- 25.4 Dealing with dead space
- 25.5 Summary
- 26 Introduction to 3D
- 26.1 3D—a natural way of interacting with information
- 26.2 The Silverlight/XNA 3D API
- 26.3 Detecting capabilities with the GraphicsDeviceManager
- 26.4 Using the DrawingSurface
- 26.5 Project structure: the scene and objects
- 26.6 Vertices
- 26.7 Primitives
- 26.8 Summary
- 27 3D lighting, texturing, and animation
- 27.1 Lighting and normal vectors
- 27.2 Applying a texture
- 27.3 Coordinate spaces and matrices
- 27.4 Keyframe animation
- 27.5 Summary
Part 5 Making the most of the platform
- 28 Pop-ups, windows, and full-screen applications
- 28.1 Showing pop-ups and child windows
- 28.2 Creating native windows
- 28.3 Running in full screen
- 28.4 Summary
- 29 Navigation
- 29.1 Browser navigation background
- 29.2 The Navigation Application template
- 29.3 Navigating to pages
- 29.4 Navigation out of the browser
- 29.5 Summary
- 30 Working with files and directories
- 30.1 Using the file open and save dialogs
- 30.2 Working with directories
- 30.3 Working with individual files
- 30.4 Storing data in isolated storage
- 30.5 Summary
- 31 Printing
- 31.1 How Silverlight printing works
- 31.2 Printing onscreen information
- 31.3 Multipage printing dedicated trees
- 31.4 Summary
- 32 COM, Native Extensions, and p-invoke
- 32.1 COM automation
- 32.2 Native Extensions for Silverlight
- 32.3 P-invoke for API calls
- 32.4 Summary
Part 6 Best practices
- 33 Structuring and testing with the MVVM pattern
- 33.1 Project setup and traditional code-behind approach
- 33.2 Model-View-ViewModel basics
- 33.3 Factoring out reusable code
- 33.4 Better separation from the UI
- 33.5 Testing MVVM applications
- 33.6 Summary
- 34 Debugging your application
- 34.1 Debugging basics
- 34.2 Binding debugging
- 34.3 Troubleshooting network operations
- 34.4 Summary
- 35 The install experience and preloaders
- 35.1 Handling the ‘Silverlight not installed’ scenarios
- 35.2 Using a custom preloader
- 35.3 Summary
-
- appendix A Database, connection, and data model setup
- index