This Training Kit requires the execution of JavaScript for navigating the contents and watching videos. If you are viewing this page in Internet Explorer locally on your computer, please click the security message at the top of this window and click Yes in the resulting dialog.
Hands-on Labs
Hands-on Labs provide step-by-step instructions and code samples to guide you through using new technologies.
Managed Languages
Introduction To F#
This Hands-On Lab is comprised by the following exercises. Examine the basic F# types including tuples and functions. Discover how the "let" keyword allows values to be bound to identifiers. See that in F# functions are the same as any other value, and are handled the same way. Demonstrate how this allows advanced language features such as partially-applied or "curried" functions. Discover how F# lists are built and the power that can be achieved by F#'s "Head + Tail" approach. Demonstrate the powerful pattern matching and recursion capabilities of F#. Demonstrate the power and usefulness of discriminated unions in F#.
Visual Studio 2010: Office Programmability
In this lab you will see how new features in Visual Studio 2010, C# 4, and Visual Basic 10 make it easer to develop applications leveraging Microsoft Office. Additionally, you'll see a number of other powerful features which speed other elements of Office development.
Visual Studio 2010: Test Driven Development
Visual Studio 2010 brings with it several enhancements to help cut development friction and enable the developer to focus on the task at hand: writing high-quality code. In the following exercises we'll highlight several of the new features that the TDD developer can use to enhance his/her development cadence. Visual Studio helps your cadence by cutting the number of keystrokes to accomplish frequently performed tasks, speeds navigation through your solution, and enables you to use test frameworks other than MSTest.
ASP.NET 4
Introduction to ASP.NET Web Forms 4
Through this hands-on lab you will understand some of the new features of WebForms 4 such as ClientID, Routing and granular control for ViewState.
Web Development in Visual Studio 2010
In this lab, you'll look at several of the new web development features in Visual Studio 2010. You'll see how HTML code snippets speeds up the development of web applications. Visual Studio 2010 also makes it easier to manage multiple Web.config files for the various deployment environments of your web application. Finally, you'll see how Visual Studio 2010 integrates with the Microsoft Web Deployment tool to automate the packaging and deployment of your application and its dependencies.
ASP.NET MVC 3 Fundamentals
This Hands-On Lab is based on MVC (Model View Controller) Music Store, a tutorial application that introduces and explains step-by-step how to use ASP.NET MVC and Visual Web Developer 2010 Express (which is free). Throughout the lab you will learn the simplicity, yet power of using these technologies together. You will start with a simple application and will build it until you have a fully functional MVC Web Application.
ASP.NET MVC 3 Helpers, Forms and Validation
In ASP.NET MVC Models and Data Access Hand-on Lab, you have been loading data from the database and displaying it. In this Hands-on Lab, you will add to the Music Store application, the ability to edit that data.
ASP.NET MVC 3 Models and Data Access
This Hands-on Lab will show you how to use the free SQL Server Express as a database engine in order to store and retrieve the data needed for the Music Store application. To accomplish that, you will start with an already created database, from which you will generate the Entity Data Model you will use in the application.
ASP.NET MVC 3 Razor
ASP.NET MVC 3 introduces the new view engine Razor, which was conceived to simplify the current syntax used in ASP.NET web pages. In this lab you will learn how to create Razor views inside an MVC solution. In the beginning of this Lab you will first get familiar with Razor syntax and its features: general rules, code blocks, inline HTML and layout pages. Once you have learned the basics, in Exercise 2 you will add Razor views in the MVC Music Store solution to provide the same functionality you have in ASP.NET views, but with a clearer and reduced code. At the end of this lab, in Exercise 3, you will learn how to create and consume third party Razor Helpers.
ASP.NET MVC 3 Custom Action Filters
In ASP.NET MVC 3 Global, Dynamic Filters Hands-on Lab, you have been adding filters to MVC processing. In this Hands-on Lab, you will use custom filters to log your site activity. To achieve that, in the proposed exercise you will create a custom filter attribute that will work with any specified controller. That filter will catch controller's requests, and save them into a database table. Through a log view you will be able to see the list of visits that each filtered controller had.
ASP.NET MVC 3 Custom Validation
In ASP.NET MVC Helpers, Forms and Validation Hands-on Lab , you have been validating data from the create and edit album forms. In this Hands-on Lab, you will use custom validation logic to control price range in the server side as well as in the client. In order to achieve that, in the first exercise you will create a custom validation property attribute and then add it to the Album model. The existing create and edit views in the StoreManager controller will process the new custom validation from the server side. In the second exercise, you will add JavaScript code and associate it to the previous custom validation, making the same views run that validation code at client side.
ASP.NET MVC 3 Dependency Injection
In Object Oriented Programming paradigm, objects work together in a collaboration model where there are contributors and consumers. Naturally, this communication model generates dependencies between objects and components that could became difficult to manage when complexity increases . You have probably heard about Factory Pattern and the separation between the interface and the implementation using services. However, the client objects are often responsible for service location. Before introducing the Dependency Injection Pattern, we will explain what Inversion of Control (IoC) principle is. With Inversion of Control (Ioc), consumer objects do not create the other objects on which they rely. Those objects come from an external source.
ASP.NET MVC 3 Global and Dynamic Action Filters
ASP.NET MVC provides action filters for performing logic either before an action method is called or after its run. Action Filters are custom attributes that provide a declarative means to add pre-action and post-action behavior to controller action methods. In previous versions of MVC, action filters were applied by making a filter attribute and apply it to a controller or an action method. MVC 3 provides the ability to define filters outside that scope, giving the possibility to apply filters to all actions in an MVC application. In ASP.NET MVC 2 Membership, Authorization and Store Checkout you have been working with the security of your web application. In this Hands-on Lab you will use Global Filters and will apply them to site logging. In order to achieve that, in the first exercise you will learn how to use the filters and how to customize an Attribute filter for global security. Then, in the second exercise you will learn how to create a Global Dynamic Filter by using MVC Filter Providers. That consists in a filter in which execution depends on the context.
ASP.NET MVC 3 NuGet
With .NET you can develop class libraries, web projects, complete solutions, frameworks, application servers, web controls and helpers, etc. A live ecosystem of such packages (many of them open source projects) is available for you to download from the Internet and add to your own solutions. You can also create your own library and publish it in your server. Nevertheless, this model implies some costs: you should locate the appropriate software, download and compile it, resolve dependencies of other packages, etc. With NuGet (http://nuget.codeplex.com) tool, you can download, create, and publish software packages, ready to be used by other developers, resolving the hassles of dependencies tracking. You can use a console tool to create a new package, upload it to a Microsoft server or to a server of your own, browse and install them from Visual Studio.
ASP.NET MVC 3 Testing
Testing an application is an automated way of verifying it is always behaving the way it is supposed to. That way, you can later make changes to the code and refactor components without breaking something else somewhere in the application.This Lab will take you through the process of testing controllers in an ASP.NET MVC application, used to verify that actions are working properly. In this Hands-on Lab, each test is independent from the others, but instead of stubs or mocks, you will be testing the controllers against a well-known database. If needed, that database will be protected by transactions and its initial state will be copied for each test execution, making sure that each test runs with a controlled data set.
Windows
Building a Data-Driven Master/Detail Business Form in WPF using Visual Studio 2010
In this lab you will learn all the necessary steps for creating and customizing a master-detail business form in WPF 4 using Visual Studio 2010 tools. The application being built in this lab is a simple read-only representation of the sort of application that might be used to manage and view entries in a real estate agent's office. The techniques used could easily be applied to nearly any data-driven client application scenario.
Taskbar with Visual C++ and MFC
In this lab, you will learn how to integrate your MFC application with the Windows 7 Taskbar. This includes providing visual progress and status indicators, using taskbar progress bars and overlay icons, quickly accessing common tasks and frequent destinations using taskbar jump lists, and customizing the taskbar thumbnail with live previews of MDI views.
Multitouch Gestures with MFC - Native
In this lab, you will learn how to manage multitouch gesture events. This includes understanding the implications of manipulating an object with gesture events, checking for multitouch hardware existence and readiness, and extracting information from the gesture Windows Message.
Multitouch WMTouch with MFC - Native
In this lab, you will learn how to manage Multitouch events. This includes processing input from Windows Touch, understanding the implications of manipulating multiple touch events simultaneously, and checking for multitouch hardware existence and readiness.
Ribbon with MFC - Native
This lab is intended for MFC developers who are developing desktop applications and want to take advantage of the new MFC Ribbon framework. The lab steps you through how to add a default Ribbon to a small application, edit various Ribbon controls in Ribbon Designer, and then use the controls at run time. You will learn how easily MFC Ribbon framework allows you to edit and use Ribbon controls. When you are finished, you will have performed all the steps necessary to add and customize a basic Ribbon in an application.
Windows Workflow
Introduction to Workflow 4
In this lab you will get to know the basics of creating, hosting and running a workflow. This lab is also intended to be and introduction to the new workflow authoring constructs in the .NET Framework 4 and Visual Studio 2010, including the new Workflow Designer, expressions, variables and arguments. Additionally, you will explore the use of some basic built-in activities.
Introduction to Workflow Services using .NET Framework 4
This hands-on lab is intended to introduce developers to writing workflow services using .NET Framework 4. You will examine the different messaging activities of Windows Workflow, and learn how to configure them to create a distributed application. This lab is built around a specific HR business scenario where candidates submit their applications and are hired or rejected based on an evaluation process.
Windows Communication Foundation
What's New in WCF 4?
Windows Communication Foundation 4 includes a new feature that enables service discovery. Service discovery allows you to locate services on the same subnet using ad hoc discovery, or using a proxy to establish connections with servers regardless of where they are. In this lab you will create a simple chat application that will use both methods to learn about available services.
Office and SharePoint
Microsoft Office 2010 UI Customization
In this Lab, you will explore the different ways in which Office 2010's UI can be customized to provide a platform for building rich office applications. You will make use of the Visual Studio support for Office 2010.
Microsoft SharePoint 2010 Developer Tools
In this lab you will start using the Visual Studio 2010 SharePoint Developers Tools. This will give you a chance to become familiar with the standard project structure used by SharePoint Developers Tools. You will go through the steps of creating and testing a project that contains a Feature, a Feature Receiver and a Web Part. Along the way you will learn to configure the SharePoint project’s deployment options as well debug a SharePoint project using Visual Studio 2010 by single-stepping through the code in your solution.
Silverlight
Migrating a Windows Forms Application to Silverlight
Silverlight provides a Rich Internet Application (RIA) framework that can be used to build applications that can be deployed through the Web while preserving the rich client-side functionality found in traditional desktop applications created using Windows Forms. This lab is designed to guide Windows Forms developers through the process of migrating applications to Silverlight.
Migrating an ASP.NET Web Forms Application to Silverlight
Silverlight provides a Rich Internet Application (RIA) framework that can be used to build applications that can be deployed through the Web while preserving the rich client-side functionality found in traditional desktop applications. This lab is designed to guide ASP.NET and jQuery developers through the process of migrating applications to Silverlight.
Working with Panels, XAML, and Controls
This lab is designed to show how to work with XAML, panels, controls, and Visual Studio's Cider editor. You will learn the foundation of a Silverlight application's UI.
Silverlight Data Binding
Data binding is a key technology in Silverlight that allows data to be presented to end users and then processed. In this lab exercise you'll learn different data binding techniques that can be used to perform one way and two way bindings and see how data can be accessed directly without having to go through controls in the user interface.
Migrating Existing Apps to Out-Of-Browser
Silverlight started off as a browser plug-in. Since then, Silverlight has emerged as a client platform technology that not only includes browser based applications, but is now a desktop platform as well. This lab is designed to guide Winforms or desktop developers through the process of developing a desktop application in Silverlight. In the lab you'll create a Silverlight web browser. It will truly be a desktop application. Along the way you'll learn how to enable Silverlight out-of-browser, detect the context the application is running in, customize the window, and how to interact with Microsoft Excel.
Great UX with Blend
A user's experience with an application is the perception of how it works. No matter how solid the backend is, if it's easy to use the user will think it's a great product. Silverlight enables you to quickly add small pieces of functionality that can greatly improve the user experience. This lab is designed to introduce developers to Expression Blend. In the lab you'll create a menu that transitions between an opened and closed states. Along the way you'll learn how to use Blend to create states, work with behaviors, and integrate MVVM with Blend.
Web Services and Silverlight
In this lab you'll learn how to create a Silverlight-Enabled WCF Service and define operations. You'll also examine the default configuration for Silverlight-enabled services and create a proxy object that can be used to communicate with a service from a Silverlight client. A bonus exercise is also included that demonstrates how to debug WCF service calls using a tool called Fiddler.
Using WCF RIA Services
WCF RIA Services provides a distributed data exchange framework that builds upon existing functionality in Windows Communication Foundation (WCF) to allow data to be exchanged between a Silverlight client and a server. In this lab you'll create a WCF RIA Services domain service class and call it from a Silverlight application. You'll also learn how data annotations can be applied to metadata classes to validate object properties and share validation logic across client and server.
Deep Dive into Out of Browser
Silverlight out-of-browser enables you to create desktop applications. Using elevated trust further opens the possibilities of what your application can do. This lab is designed to further explore what can be down with an out-of-browser Silverlight application. In the lab you'll create an application that imports data directly from Excel. Along the way you'll learn how to interact with the hard drive, check for updates, and work with Excel from Silverlight.
Using the MVVM Pattern in Silverlight Applications
The Model-View-ViewModel (MVVM) pattern provides a flexible way to build Silverlight applications that promotes code re-use, simplifies maintenance and supports testing. In this lab exercise you'll learn how to migrate an existing Silverlight application that uses code-behind files for all of the C# or VB code into a more structured architecture that follows the MVVM pattern.
Data Platform
Building Applications and Services Using Open Data Protocol
Throughout this hands-on lab you will understand the ecosystem that provides Open Data Protocol (OData), how to create OData feeds over SQL Server and how to import OData feeds for Silverlight applications.
Parallel Computing
Parallel Extensions: Building Multicore Applications with .NET
Microsoft's Parallel Computing Platform (PCP) is providing tools enabling developers to leverage the power of Multicore processors in an efficient, maintainable, and scalable manner. Parallel Extensions to the .NET Framework brings several important concepts into this toolset. In this Hands-On Lab, you will learn how to parallelize an existing algorithm by using the static Parallel helper class, create and run Tasks, use the Future
Extensibility
Introduction To Managed Extensibility Framework
The Managed Extensibility Framework (MEF) allows developers to provide hooks into their .NET applications for extensions by first and third parties. MEF can be thought of as a general application extension facility. In this Hands-On Lab, you will learn how to define extensibility points for components, perform conditional binding and component creation and import extended assemblies while an application is running.
Application Lifecycle Management
Introduction to Test Planning with Microsoft Test Manager 2010
Microsoft Test Manager 2010 can be used to organize your test plans, author and manage your test cases, and run manual tests. In this lab you will be introduced to test planning in Microsoft Test Manager.
Introduction to Test Case Management with Microsoft Test Manager 2010
In this lab you will be introduced to working with Microsoft Test Manager. Microsoft Test Manager can be used to organize your test plans, author and manage your test cases, and run manual tests. This lab will provide you with a basic understanding of how Microsoft Test Manager can be used to perform these activities. Also be sure to see "Authoring and Running Manual Tests with Microsoft Test Manager" if you are interested in these aspects of Microsoft Test Manager.
Authoring and Running Manual Tests using Microsoft Test Manager 2010
In this lab, you will learn how to use Microsoft Test Manager to author a manual test case and take advantage of test parameters. You will then run this test case using the Microsoft Test Runner. While running this test case you will capture an action recording which can be used to take advantage of Fast Forward for Manual Testing, to quickly re-run test steps or even entire test cases in the future. Finally you will explore how Shared Steps can be used to more effectively author common test steps which can then be reused across multiple test cases.
Introduction to Exploratory Testing with Microsoft Test Manager 2010
Microsoft Test Manager 2010 can be used to organize your test plans, author and manage your test cases, and run manual tests. This lab will introduce you to working with exploratory testing in Microsoft Test Manager 2010.
Introduction to Platform Testing with Microsoft Test Manager 2010
Microsoft Test Manager 2010 can be used to organize your test plans, author and manage your test cases, and run manual tests. This lab will introduce you to working with platform testing configurations in Microsoft Test Manager 2010.
Introduction to Quality Tracking with Visual Studio 2010
Microsoft Visual Studio 2010 allows detailed and elaborate tracking and reporting of testing results. This lab will introduce you to working with various reporting features available with Visual Studio 2010.
Introduction to Coded UI Tests with Visual Studio 2010 Ultimate
Coded UI tests are a new capability of Visual Studio 2010 which provide a way to create fully automated tests to validate the functionality and behavior of your application's user interface. In this lab, you will gain a basic understanding of coded UI tests by creating a new test and adding validation logic to it.
Planning your Projects with Team Foundation Server 2010
In this lab you will learn about some of the new agile project management capabilities of Team Foundation Server 2010. You will learn how Team Foundation Server 2010 now supports hierarchical work items, which allow for such rich relationships as parent/child and successor/predecessor. You will see how new Excel workbooks can be used to quickly manage your backlog and plan your iterations. And you will also see how Microsoft Project can be used to create a detailed project plan which can then be fully synchronized with Team Foundation Server 2010.
Branching and Merging Visualization with Team Foundation Server 2010
In this lab, you will be introduced to the new branching and merging visualization support in Team Foundation Server 2010. The improvements made in TFS 2010 make it much easier to understand a solution branch hierarchy and to propagate changes during the merge process.
Debugging with IntelliTrace using Visual Studio 2010 Ultimate
In this lab, you will learn about the new IntelliTrace debugging feature provided in Visual Studio 2010 Ultimate. Before the addition of IntelliTrace, debugging was done from a specific point in time going forward. If you wanted to find out more information for a previous call, you would set a breakpoint and then re-run the application. IntelliTrace now enables you to seek to a large number of execution points, that occurred in the past, and drill into any of them, comparing variables, call stacks, etc. in order to help pinpoint causes of issues without having to reproduce the problem.
Using the Architecture Explorer in Visual Studio 2010 Ultimate to Analyze Your Code
The Visual Studio 2010 Ultimate Architecture Explorer provides an easy way to drill down into your code and analyze relationships between projects, types, their assemblies and references. In this lab, you'll see how you can use the Architecture Explorer to examine an existing solution and create dynamic DGML diagrams.
Using Code Analysis with Visual Studio 2010 to Improve Code Quality
The Code Analysis feature of Visual Studio performs static code analysis on code to help developers identify potential design, globalization, interoperability, performance, security, and a host of other categories of potential problems. In Visual Studio 2010, improvements have been made to the code analysis engine itself, as well as ability to configure rule sets rather than picking and choosing from one flat list of rules. In this lab, you will be introduced to Code Analysis, how to configure rules sets to use, and finally how to suppress specific rules at a project and source code level.
Code Discovery using the Architecture Tools in Visual Studio 2010 Ultimate
In this lab you will learn how to generate and navigate dependency graphs with Visual Studio 2010 Ultimate in order better understand and communicate system architecture.
Understanding Class Coupling with Visual Studio 2010 Ultimate
Understanding the relationship between classes on a new code project can be difficult. In this lab, you'll use the new DGML diagrams in Visual Studio 2010 Ultimate to drill down into an existing code base and figure how types are related.
Windows Azure
Introduction to Windows Azure
In this hands-on lab, you will explore the basic elements of a Windows Azure service by creating a simple GuestBook application that demonstrates many features of Windows Azure, including web and worker roles, blob storage, table storage, and queues.
Debugging Applications in Windows Azure
In this lab, you will explore some simple techniques for debugging applications deployed in Windows Azure; and you will learn what features and techniques are available in Visual Studio and Windows Azure to debug applications once deployed to Windows Azure.