Learn your way! Get started

Silverlight 4 Using Visual Basic 2010

with experts Ken Getz, Robert Green


Course at a glance

Included in these subscriptions:

  • Dev & IT Pro Video
  • Dev & IT Pro Power Pack

Release date 8/20/2010
Level Advanced
Runtime 18h 19m
Closed captioning N/A
Transcript N/A
eBooks / courseware Included
Hands-on labs Included
Sample code Included
Exams Included


Enterprise Solutions

Need reporting, custom learning tracks, or SCORM? Learn More



Course description

Silverlight 4.0 makes it possible for developers to create rich, interactive application delivered through a Web browser to nearly any client operating system, including Windows, Mac, and Linux. This course introduces the basics of creating and hosting Silverlight applications, working through many of the important controls, though binding Silverlight applications to live data.

Prerequisites

This course assumes that students have some programming background and experience using Visual Studio 2010. This course assumes knowledge of a CLS language (Visual Basic), of the .NET Framework, and the current (or a prior) version of Visual Studio.

Meet the experts

Ken Getz is a featured instructor for several of our Visual Studio courses. He is a Visual Basic and Visual C# expert and has been recognized multiple times as a Microsoft MVP. Ken is a seasoned instructor, successful consultant, and the author or co-author of several best-selling books. He is a frequent speaker at technical conferences like Tech-Ed, VSLive, and DevConnections and he has written for several of the industry's most-respected publications including Visual Studio Magazine, CoDe Magazine, and MSDN Magazine.

Robert Green is a Visual Studio expert and a featured instructor for several of our Visual Basic and Visual C# courses. He is currently a Technical Evangelist in the Developer Platform and Evangelism (DPE) group at Microsoft. He has also worked for Microsoft on the Developer Tools marketing team and as Community Lead on the Visual Basic team. Robert has several years of consulting experience focused on developer training and is a frequent speaker at technology conferences including TechEd, VSLive, VSConnections, and Advisor Live.

Course outline



Module 1

Introducing Silverlight (39:06)
  • Introduction (02:47)
  • Introducing Silverlight (00:55)
  • Demo: MS Silverlight page (01:09)
  • Why Silverlight? (02:32)
  • Evolution of Silverlight (02:08)
  • Development Tools (01:17)
  • Getting Started (02:26)
  • Additional Projects (01:05)
  • WPF vs. Silverlight (03:12)
  • An Inconvenient Truth (01:26)
  • Silverlight and XAML (01:57)
  • Demo: Silverlight Application (18:04)
  • Summary (00:02)
Investigating XAML (20:08)
  • Introduction (00:15)
  • Investigating XAML (00:32)
  • Properties/Type Converters (00:47)
  • Type Converters (03:09)
  • Complex Properties (01:06)
  • Demo: Complex Properties (04:53)
  • Markup Extensions (02:01)
  • Demo: Markup Extensions (02:51)
  • Attached Properties (04:29)
  • Summary (00:02)
Content and Grid Controls (39:57)
  • Introduction (00:15)
  • Content and Grid Controls (00:33)
  • Working with Layout Controls (01:39)
  • Demo: Layout Controls (08:28)
  • List Box as a Container (00:30)
  • Demo: List Box Container (03:45)
  • Grid as Container (00:31)
  • Demo: Grid Control (08:48)
  • Dependency Properties (00:47)
  • DependencyObject Class (00:46)
  • Investigating Property (00:57)
  • Declaring the Property (00:26)
  • In Constructor (00:29)
  • Property Wrapper (00:59)
  • Using Attached Properties (00:48)
  • Working Attached Properties (01:40)
  • Demo: Attached Properties (03:48)
  • Running Out of Browser (01:18)
  • Demo: Out of Browser (02:15)
  • Summary (01:05)

Module 2

Layout Principles (22:03)
  • Introduction (01:08)
  • Windows Forms Layout (01:05)
  • Web Forms Layout (00:26)
  • XAML Layout (01:10)
  • XAML Layout is Recursive (00:54)
  • Determining Element Size (01:08)
  • Alignment (01:09)
  • Margin and Padding (01:21)
  • Alignment, Margin, Padding (01:06)
  • Containers (00:58)
  • StackPanel (00:29)
  • Determining Element Size (01:15)
  • Demo: StackPanel (07:36)
  • Demo: Sizing Elements (02:11)
  • Summary (00:02)
More Layout Containers (30:00)
  • Introduction (00:15)
  • WrapPanel (00:41)
  • Demo: WrapPanel (03:23)
  • DockPanel (01:04)
  • Demo: DockPanel (04:51)
  • Nesting Containers (00:34)
  • Demo: Nesting Containers (04:28)
  • Grid (02:03)
  • Demo: Grid (08:22)
  • Canvas (00:52)
  • Demo: Canvas (02:33)
  • Summary (00:49)

Module 3

Simplest Controls (21:25)
  • Introduction (00:53)
  • Simplest Controls (01:07)
  • Border Control (00:35)
  • Border Control Properties (01:09)
  • LinearGradientBrush (00:48)
  • GradientStop (00:37)
  • More on GradientBrush (00:39)
  • Demo: BorderControl (03:06)
  • Demo: ButtonControl (03:10)
  • Demo: Checkbox Control (04:29)
  • CheckBox Control Events (01:24)
  • RadioButton Control (00:45)
  • Demo: RadioButton (02:35)
  • Summary (00:02)
Text, Date and Misc (29:29)
  • Introduction (00:15)
  • Text Entry Controls (00:16)
  • TextBlock Control (00:25)
  • Line Breaks (00:13)
  • Using the <Run/> Element (00:32)
  • TextBox Control (00:15)
  • TextBox Properties (01:06)
  • TextBox Key Events (00:36)
  • Demo: Key Events (08:00)
  • PasswordBox Control (00:57)
  • Demo: PasswordBox (00:58)
  • Calendar Control (00:46)
  • DatePicker Control (01:00)
  • Demo: Calendar and DataPicker (04:42)
  • Miscellaneous Controls (00:12)
  • Slider Control (01:08)
  • ProgressBar Control (01:32)
  • MediaElement Control (01:23)
  • Demo: Slider Controls (01:51)
  • Demo: ProgressBar Control (01:13)
  • Demo: MediaElement Control (01:07)
  • Summary (00:53)

Module 4

List Controls (30:04)
  • Introduction (00:58)
  • ListBox (00:47)
  • Populate a ListBox (00:31)
  • More ListBox (01:10)
  • Demo: ListBox (11:18)
  • ComboBox (00:53)
  • IsEditable and IsReadOnly (00:40)
  • Demo: ComboBox (05:01)
  • TreeView (00:36)
  • Populate TreeView in XAML (00:29)
  • More TreeView (00:24)
  • Demo: TreeView (07:10)
  • Summary (00:02)
Layout Controls (14:45)
  • Introduction (00:15)
  • ScrollViewer (01:27)
  • TabControl and TabItem (00:41)
  • Expander (01:13)
  • Demo: ScrollViewer (05:02)
  • Demo: TabControl + Expander (05:10)
  • Summary (00:54)

Module 5

Resources (29:40)
  • Introduction (01:06)
  • Introducing XAML Resources (00:16)
  • Why Use Resources? (00:55)
  • The Resources Dictionary (01:32)
  • Demo: Resource (02:03)
  • Using Resources (01:52)
  • Static vs Dynamic (01:06)
  • Defining Static Resources (00:21)
  • Hierarchy of Resources (01:26)
  • Demo: Hierarchy of Resources (01:20)
  • Self-Referential Resource (00:37)
  • Demo:Self-Referential Resource (01:39)
  • Resource Naming Conflicts (00:49)
  • Demo: Naming Conflicts (01:36)
  • Application-Level Resources (01:08)
  • Demo: Application-Level (02:22)
  • Modifying Resources in Code (00:33)
  • Demo: Modifying Resources (03:41)
  • Organizing Resources (00:56)
  • Demo:Organizing Resources (03:04)
  • One Small Restriction (01:05)
  • Summary (00:02)
Styles (20:29)
  • Introduction (00:15)
  • Introducing XAMLStyles (01:34)
  • Creating a Simple Style (00:45)
  • Demo: Simple Style (02:54)
  • What is Going On (00:45)
  • Why Use Styles (00:35)
  • Important Tool (01:08)
  • Dynamic Styles (00:28)
  • Demo: Applying Styles (07:45)
  • Style Inheritance (00:50)
  • Demo: Style Inheritance (01:41)
  • Be Careful! (01:16)
  • Summary (00:29)

Module 6

Navigation (17:23)
  • Introduction (00:52)
  • Navigation (01:18)
  • HyperlinkButtons (00:32)
  • Uniform Resource Identifiers (00:45)
  • Demo: Navigation (08:07)
  • Demo: HyperlinkButtons (05:44)
  • Summary (00:02)
Advanced Navigation (27:41)
  • Introduction (00:15)
  • NavigationService (01:44)
  • Demo: NavigationService (09:07)
  • URI Mapping (01:33)
  • Demo: URI Mapping (04:53)
  • Hosting Pages in Pages (00:41)
  • Demo: Hosting Pages (03:57)
  • Navigation Application (01:01)
  • Demo: Navigation Template (03:51)
  • Summary (00:35)

Module 7

Introducing Binding (16:19)
  • Introduction (00:59)
  • Introducing Binding (00:46)
  • When to Use Binding (00:41)
  • Sources + Targets (01:34)
  • Under the Hood (00:41)
  • Value Converters (01:21)
  • Demo: Binding (02:09)
  • Binding Details (01:54)
  • Setting the Binding Mode (01:21)
  • Demo: TwoWay Data (01:18)
  • A Simple Example (01:06)
  • Demo: TextBox Binding (01:28)
  • Summary (00:55)
Type Converters (20:47)
  • Introduction (00:15)
  • Working With (00:33)
  • To the Rescue (01:11)
  • StringFormat Property (00:41)
  • Demo: StringFormat (01:04)
  • StringFormat Details (01:47)
  • Using a Type Converter (00:54)
  • Creating the Type Converter (00:40)
  • Converters (01:07)
  • Converter Warning (00:47)
  • Demo: Converter (03:12)
  • Referencing Type Converter (01:16)
  • Demo: Code Converter (03:21)
  • Using the Type Converter (01:22)
  • Demo: Converter Hookup (02:28)
  • Summary (00:02)
List & Data Templates (29:51)
  • Introduction (00:55)
  • Lists and Data Templates (00:51)
  • Demo: Binding Lists (03:09)
  • Adding a Data Template (01:17)
  • Demo: Data Template (03:19)
  • Another Data Template (00:51)
  • Demo: Another Data Template (10:37)
  • Binding and Data Templates (00:39)
  • Demo: Binding Data Templates (07:10)
  • Summary (00:57)

Module 8

Data Binding (23:52)
  • Introduction (00:50)
  • Data Binding (00:16)
  • Without Data Binding (01:28)
  • With Data Binding (00:39)
  • Binding to an Object (01:04)
  • Demo: Binding to an Object (02:45)
  • Data Source Options (01:42)
  • WCF Overview (00:44)
  • WCF Building Blocks (02:31)
  • Creating a WCF Service (01:03)
  • Calling the WCF Service (01:13)
  • Demo: WCF Service (09:30)
  • Summary (00:02)
More on Data Binding (26:47)
  • Introduction (00:15)
  • Binding to a List of Customers (01:28)
  • Binding to One Customer (00:35)
  • Binding to One Product (00:37)
  • Displaying Related Data (01:06)
  • Data Entry (00:26)
  • Demo: WCF and SQL Data (22:15)
  • Summary (00:02)
Using Views (19:13)
  • Introduction (00:15)
  • Using Views (00:37)
  • CollectionViewSource (00:30)
  • ICollectionView Interface (01:34)
  • Demo: Views in Silverlight (15:44)
  • Summary (00:32)

Module 9

Data Grid (36:12)
  • Introduction (01:02)
  • DataGrid (00:56)
  • DataGrid Properties (01:54)
  • Demo: DataGrids (13:17)
  • Row Details (01:09)
  • Demo: Row Details (04:08)
  • Working with DataGrids (01:55)
  • Demo: Working with DataGrids (11:43)
  • Summary (00:03)
Data Grid 2 (39:11)
  • Introduction (00:15)
  • Drag and Drop (00:50)
  • Grouping and Sorting (01:06)
  • Filtering (01:01)
  • Demo: Data Entry (21:46)
  • Data Entry (02:41)
  • Demo: Drag and Drop (11:25)
  • Summary (00:03)
Data Form Data Page (29:13)
  • Introduction (00:15)
  • DataForm (00:51)
  • DataForm Events (00:42)
  • DataForm Properties (00:52)
  • Defining Columns (00:51)
  • Demo: Defining Columns (13:15)
  • DataPager (01:02)
  • DataPager Properties (00:34)
  • Demo: DataPager Properties (10:16)
  • Summary (00:31)

Module 10

Shapes (51:43)
  • Introduction (00:56)
  • Working with Shapes (00:46)
  • Investigating Basic Shapes (00:54)
  • The Shape Class (02:11)
  • Rectangle and Ellipse Shapes (00:30)
  • Rounding Corners (01:07)
  • Demo: Rounding Corners (04:09)
  • Positioning and Sizing Shapes (02:03)
  • Demo: Positioning and Sizing (01:43)
  • Positioning Shapes (01:44)
  • Demo: Positioning Shapes (02:24)
  • Resizing Shapes (00:48)
  • ViewBox Control (01:11)
  • Demo: ViewBox Control (01:38)
  • The Line Shape (01:52)
  • Demo: The Line Shape (02:11)
  • Adding Line Caps (01:33)
  • Demo: Adding Line Caps (01:35)
  • Using Dashes (00:42)
  • StrokeDashArray (03:52)
  • Demo: StrokeDashArray (05:39)
  • The Polyline Shape (01:15)
  • Polyline (00:45)
  • Demo: Polyline (01:55)
  • The Polygon Shape (01:00)
  • FillRule (01:56)
  • Demo: FillRule (02:52)
  • Using Line Joins (00:54)
  • Demo: Using Line Joins (01:22)
  • Summary (00:03)
Paths and Geometries (40:50)
  • Introduction (00:15)
  • Using Paths and Geometries (01:08)
  • Paths vs Geometries? (00:47)
  • Ellipse, Line, RectangleGeomet (00:30)
  • Demo: Ellipse,Line,RetangleGeo (03:09)
  • Using the GeometryGroupElement (01:11)
  • Demo: Using the GeometryGroupElement (05:33)
  • Curves/Lines with PathGeometry (01:13)
  • Segment Types (01:18)
  • Demo: Segment Types (04:06)
  • Working with Lines (00:38)
  • Working with Arcs (01:27)
  • Demo: Working with Arcs (07:52)
  • Working with Curves (01:36)
  • Important Tip (00:35)
  • Demo: Important Tip (03:59)
  • Geometry Mini-Language (03:58)
  • Summary (01:27)

Module 11

Brushes (49:14)
  • Introduction (01:08)
  • Working with Brushes (00:46)
  • What is a Brush? (00:41)
  • SolidColorBrush Class (00:23)
  • How to Select a Color (01:28)
  • Use Named Colors (00:46)
  • Use #rrggbb or #aarrggbb Syntax (01:13)
  • Use Element.Property Syntax (00:54)
  • Demo: Use Element.Property Syntax (04:07)
  • LinearGradientBrush Class (00:32)
  • LinearGradientBrush (02:25)
  • Rotating the Gradient (01:05)
  • Changing the Stop Points (00:23)
  • Demo: Changing the Stop Points (04:30)
  • Extending the Gradient (00:57)
  • Rectangles Only? (00:22)
  • Demo: Rectangles Only? (04:17)
  • RadialGradientBrush Class (02:32)
  • Demo: RadialGradientBrush Class (05:48)
  • ImageBrush Class (01:32)
  • ImageBrush (00:19)
  • Demo: ImageBrush (03:56)
  • Using Transparency (01:06)
  • Demo: Using Transparency (02:50)
  • Using OpacityMask (00:33)
  • OpacityMask Property (01:12)
  • Demo: OpacityMask Property (03:12)
  • Summary (00:03)
Transforms (27:42)
  • Introduction (00:15)
  • Transforms (05:38)
  • Repeating Shapes (00:33)
  • RotateTransform (01:22)
  • Demo: RotateTransform (02:06)
  • ScaleTransform (00:36)
  • Demo: ScaleTransform (01:38)
  • SkewTransform (00:40)
  • Demo: SkewTransform (01:38)
  • TranslateTransform (00:24)
  • Demo: TranslateTransform (01:03)
  • Avoiding Absolute Coordinates (01:05)
  • Demo:Avoiding Absolute Coordinates (02:33)
  • Transforming a FrameworkElement (01:02)
  • Demo: Transforming a FrameworkElement (01:33)
  • Adding Reflection Effects (01:24)
  • Demo: Adding Reflection Effects (03:01)
  • Summary (01:04)

Module 12

Deploy Apps (29:43)
  • Introduction (00:57)
  • Silverlight Application (01:31)
  • Deploy Silverlight Application (00:42)
  • Configure Silverlight Plug-In (01:07)
  • Demo: Configure Silverlight Plug-In (14:42)
  • Assembly Caching (03:03)
  • Demo: Assembly Caching (07:34)
  • Summary (00:03)
Out of Browser Apps (18:47)
  • Introduction (00:15)
  • Deploy Out-of-Browser Apps (01:47)
  • Customize Installation (00:58)
  • Demo: Deploy Out-of-Browser (08:57)
  • Check for Updates (00:31)
  • Application Class (01:06)
  • Demo: Out-of-Browser Updates (05:07)
  • Summary (00:03)
Install Experience (-01:-05)
  • Introduction (00:15)
  • Demo: Silverlight Installation Experience (-03:-06)
  • Silverlight Installation Experience (00:00)
  • Summary (01:46)

Module 13

Blend (41:06)
  • Introduction (01:26)
  • Why Use Expression Blend? (00:38)
  • Enter Expression Blend (00:27)
  • Top Ten Expression Blend Features (04:01)
  • Why Use Expression Blend? (00:23)
  • Expression Blend and SketchFlow (01:02)
  • Working with Expression Blend (00:34)
  • Obtaining Expression Blend (00:33)
  • Demo: Obtaining Expression Blend (01:16)
  • Document Views (00:47)
  • Demo: Document Views (00:58)
  • Workspaces (01:00)
  • Demo: Workspaces (01:46)
  • The Expression Blend Toolbar (00:22)
  • The Selection Tool (00:52)
  • The Direct Selection Tool (00:31)
  • The Pen/Pencil Tools (00:47)
  • Demo: The Pen/Pencil Tools (03:50)
  • The Pan Tool (00:34)
  • The Zoom Tool (00:21)
  • Demo: The Zoom Tool (01:46)
  • The Eyedropper Tool (00:55)
  • The Paint Bucket Tool (00:49)
  • Demo: The Paint Bucket Tool (02:19)
  • Rectangle, Ellipse, and Line (00:42)
  • Demo: Rectangle, Ellipse, and Line (02:27)
  • Brush Transform and Gradient Tools (00:27)
  • Demo: Brush Transform and Gradient Tools (05:27)
  • Layout Controls (00:16)
  • Text Controls (00:09)
  • Input Controls (00:09)
  • The Asset Library (00:35)
  • The Asset Library Last Used Tool (00:25)
  • Demo: the Asset Library Last Used Tool (02:12)
  • Summary (00:03)
Blend designer panel (28:05)
  • Introduction (00:15)
  • Expression Blend Designer Panels (00:24)
  • The Objects and Timeline Panel (00:50)
  • Demo: The Objects and Timeline Panel (04:49)
  • The Projects Panel (00:30)
  • Integrating Blend and Visual Studio (00:58)
  • Demo: Integrating Blend and Visual Studio (03:57)
  • The Properties Panel (00:22)
  • Filtering the Properties Panel (00:53)
  • Demo: Filtering the Properties Panels (05:36)
  • Transform Section (00:16)
  • Render Transforms (00:19)
  • Projection Transformations (00:24)
  • Demo: Projections Transformations (03:33)
  • Element to Element Binding (00:41)
  • Demo: Element to Element Binding (03:14)
  • Summary (00:57)

Module 14

Animations (20:52)
  • Introduction (01:26)
  • Getting Started (01:20)
  • Understanding Animation (00:54)
  • Limitations (00:38)
  • Rules of Animation (01:47)
  • Simple Animation (00:40)
  • Demo: Simple Animation (05:41)
  • The Animation Class (00:19)
  • Types of Animation Classes (00:44)
  • The Storyboard Class (01:17)
  • The Event Trigger (01:06)
  • Limitations (00:39)
  • Animating Multiple Properties (01:07)
  • Demo: Animating Multiple Properties (03:05)
  • Summary (00:03)
More Animations (40:58)
  • Introduction (00:15)
  • Starting an Animation Using Code (00:47)
  • Demo: Starting an Animation Using Code (01:39)
  • Using the ColorAnimation Class (01:09)
  • What is Up With Fill? (01:17)
  • Demo:What is Up With Fill? (02:48)
  • Using the PointAnimation Class (00:56)
  • Demo: Using the PointAnimation Class (01:55)
  • Animation with Key Frames (01:18)
  • Interpolation Methods (02:56)
  • Demo: Interpolation Methods (07:35)
  • Animation Properties (00:09)
  • From Property (02:17)
  • Demo: From Property (02:04)
  • To Property (00:25)
  • By Property (00:32)
  • Demo: By Property (01:33)
  • Duration Property (01:17)
  • AutoReverse Property (00:36)
  • Demo: AutoReverse Property (00:54)
  • RepeatBehavior Property (00:53)
  • RepeatBehavior and AutoReverse (00:29)
  • Repeat for Time (00:52)
  • Repeat Forever (00:36)
  • Demo: Repeat Forever (01:55)
  • BeginTime Property (00:59)
  • Demo: BeginTime Property (02:39)
  • Summary (00:03)
Even More Animations (32:08)
  • Introduction (00:15)
  • Controlling Playback (00:32)
  • Demo: Controlling Playback (02:16)
  • Easing Functions (01:03)
  • BounceEase (02:24)
  • Easing Functions (02:01)
  • EasingMode (00:35)
  • Demo: EasingMode (02:07)
  • Another Example (01:49)
  • Demo: Another Example (02:18)
  • Microsoft Easing Functions (00:23)
  • Demo: Microsoft Easing Functions (02:40)
  • Animating Brushes (00:37)
  • Demo: Animating Brushes (01:48)
  • Animate Transform (00:26)
  • Demo: Animate Transform (02:22)
  • Animation in Blend (00:31)
  • Demo: Animation in Blend (06:42)
  • Summary (01:11)

Module 15

Iso Storage (28:17)
  • Introduction (01:10)
  • Isolated Storage (02:19)
  • IsolatedStorageFile Class (01:50)
  • Additional Classes (00:41)
  • Demo: Additional Classes (22:12)
  • Summary (00:03)
WCF Data Services (50:01)
  • Introduction (00:15)
  • WCF Data Services (02:14)
  • REST (00:12)
  • REST Principles (01:21)
  • Why Use REST vs. SOAP? (01:03)
  • WCF Data Services 2 (00:51)
  • Creating a WCF Data Service (00:32)
  • Demo: Create a WCF Data Service (03:48)
  • Demo: Call WCF Data Service (14:54)
  • Calling Services from Clients (02:25)
  • Demo: Retrieve List of Customers (08:30)
  • Demo: Retrieve One Customer (00:30)
  • Demo: Retrieve Related Data (04:03)
  • Demo: Data Entry (05:59)
  • Demo: CollectionViewSource (02:05)
  • Summary (01:12)

Module 16

Cross Domain Calls (25:58)
  • Introduction (00:55)
  • Calling Services (02:02)
  • Making Cross-Domain Calls (01:30)
  • Demo: Making Cross-Domain Calls (21:26)
  • Summary (00:03)
Web Client (31:23)
  • Introduction (00:15)
  • WebClient Class (01:12)
  • WebClient Methods (00:58)
  • Two Examples Using WebClient (00:14)
  • REST (00:14)
  • REST Principles (01:34)
  • Why Use REST vs SOAP? (01:00)
  • REST and WCF (01:32)
  • Demo: REST and WCF (11:55)
  • Syndication (00:24)
  • Syndication and .NET (01:03)
  • Demo: Syndication and .NET (10:10)
  • Summary (00:46)