First Impressions Visual Studio 2010 Series

This series will highlight the new features of Visual Studio 2010, the language enhancements to Visual Basic and C#, new features in ASP.NET 4.0, ASP.NET Ajax, ADO.NET, Visual Studio IDE improvements, the .NET 4.0 Class Library and more!

Videos in this series:

FI_VS2010_01 – First Impressions Visual Studio 2010 – Visual Basic 2010 Language Enhancements

In this video we spotlight the new language features of Visual Basic 2010, including “Consume First” Mode, auto generated properties as well as the auto generated hidden fields, automating the stubbing out of getters and setters for auto generated properties. We’ll see new code window features like visually highlighting symbols and navigating through symbols using Ctrl + arrow keys. We look at the new collection initializers and the “From” keyword, and will review object initializers in VB9 in the process. We show a little trick of how to use VB9 extension methods to overload the List.Add() method in order to further improve the conciseness of collection initializer. We demonstrate how VB2010 reduces the dependency of the underscore line continuation character in some contexts. We spend the remainder of the video demonstrating multi-line lambda expressions by demonstrating the new System.Threading.Parallel.Invoke to process functions in background threads and execute parts of y

FI_VS2010_02 – First Impressions Visual Studio 2010 – C# 4.0 Language Enhancements – Part 1

In this video we look at new features in C# 4.0. We start with Named and Optional Parameters as well as Default Values. While this features has been available in VB for years, it is just now introduced into C# primarily as a means of enabling COM Interop more elegantly using C#. Next, we look at Dynamic Invocation allowing C# to work with dynamic references and types at runtime. We demonstrate the use of the Expando Object to add properties and methods at runtime. We demonstrate what we feel was the true rationale for introducing this feature — o work with other .NET languages that are dynamic in nature. To drive this idea we demonstrate how C# can interact with custom Iron Python user scripts via the new Dynamic Invocation feature.

FI_VS2010_03 – First Impressions Visual Studio 2010 – C# 4.0 Language Enhancements – Part 2

In this video we continue looking at new language features in C# by looking at Covariance and Contravariance. To demonstrate what this feature does, we look at several problems introduced with Generics and see these examples targeting C# 3.0 and then how they have been fixed using Covariance and Contravariance by targeting the same examples to use C# 4.0.

FI_VS2010_04 – First Impressions Visual Studio 2010 – ASP.NET 4.0 Web Forms Routing

Remove ugly querystring parameters from your URLs and create a more RESTful and aesthetic URL in your web applications using Routes, new in Web Forms. This video explains how this feature — already available in Visual Studio 2008 SP1 for ASP.NET MVC and Dynamic Data — can make your apps comply with a growing trend on the internet. Beyond the basics, we demonstrate how to add expressions to produce links (NavigateUrl property of the ASP.NET Hyperlink control) that point to our route maps. Further, we create some extension methods for the Page class to help us generate URLs from database expressions (which we suspect will be added by Microsoft when Visual Studio 2010 goes live.) Finally we explain and demonstrate the benefit of using the routing system and helper methods instead of simply “hard coding” the URLs in our aps … the payoff is that you can easily re-arrange the routes and the URLs will “magically” continue working. Guest starring in this episode: the EntityDataSource

Fi_VS2010_05 – First Impressions Visual Studio 2010 – ASP.NET AJAX 4.0 Binding

Bindings allow you to wire up connections between objects or elements and allow them to respond to changes when the object they are bound to is updated. The first example monitors an input field… when you update one input field, it updates a target element as well … in this example we’re introduced to the Sys.Binding class, new to ASP.NET AJAX 4.0. In the second example we add a handler to the Convert event … which will allow you to perform conditional checks or format the input before updating the target element. Next we demonstrate binding in two directions … change in either input field will cause a change in the other input field. Finally we link this concept to the previous video on the new “observable” functionality … this example will update the UI any time the underlying javascript data objects are changed. This example uses Sys.Observer and a JavaScript Alert to demonstrate when the underlying data object changes.

FI_VS2010_06 – First Impressions Visual Studio 2010 – ASP.NET AJAX 4.0 Observer

New in ASP.NET Ajax 4.0 is the ability to observe javascript data objects to watch for changes to its data properties. Using methods of the new Sys.Observer class like .addPropertyChanged, .setValue, .beginUpdate, .endUpdate and .makeObservable we demonstrate how to watch, or rather, observe for changes. We point out that the MicrosoftAjaxTemplates.js file is where almost all the new functionality is added, allowing you to add these new features to projects using the previous versions of ASP.NET AJAX. Finally, we demonstrate Observable at work with Arrays and the CollectionChanged event.

FI_VS2010_07 – First Impressions Visual Studio 2010 – ASP.NET AJAX 4.0 Templates

In this video we continue exploring new features added to ASP.NET Ajax 4.0 with a thorough discussion of Templates, both “one way templates” and “live templates”. Using the JavaScript library Sys.UI.Template namespace we show how to create template fields using JavaScript merge expressions with a double curly brace notation. This provides an easy way to bind JavaScript objects (like JSON objects) to UI elements. Similarly, “live templates” allow you to bind to HTML form elements using a single curly brace notation. In an extended demonstration, we call again on Sys.Observer to provide a way to add and remove items in a list via a simple HTML form.

FI_VS2010_08 – First Impressions Visual Studio 2010 – ASP.NET AJAX 4.0 DataView Control

The new DataView control allows you to bind template expressions to a data source by using only declarative syntax. In simple scenarios, the DataView makes it easy to bind a single JavaScript object to elements in HTML. However, it also provides repeater-style (UL / LI) functionality for binding to a list, like a JavaScript array. We overview the XML namespaces required to make this work (xmlns:dataiew, sys:attach, sys:activate) and explain what the namespaces are doing for us. We extend the example with a little JavaScrpit and Sys.Observer wizardry … adding remove links next to each list item. This allows template rebinding when the array changes. Finally, we look at the xmlns:code namespace that allows us to hook click events with MS Ajax … providing another, more elegant, approach to the same example before.

FI_VS2010_09 – First Impressions Visual Studio 2010 – ASP.NET 4.0 Entity DataSource and GridView

This video demonstrates the new Entity DataSource … similar to the LINQ to SQL DataSource, except it allows you to use your Entity Framework data object model instead. The video also demonstrates the new features of the GridView control, namely the EnablePersistenSelection property which allows the control to keep the selection on a particular data item, not just the index of the item in the grid.

FI_VS2010_10 – First Impressions Visual Studio 2010 – ASP.NET 4.0 QueryExtender Control

The new QueryExtender Control allows you to declaratively wire up controls to add new parameters or filter to modify the EntityDataSource or LinqDataSource controls. Since this component is not in the toolbox in Beta 1, we demonstrate how to add it, then dive into the different types of expressions you can build … SearchExpression (with ControlParameters), RangeExpressions, PropertyExpressions, MethodExpressions, and CustomExpressions.


Our Really Really Really Big Sale - 30% Off - ONLY A FEW HOURS LEFT!!!    Learn more ...