Day 1
What's New in the CLR
The .NET 4.0 release introduces the first significant changes to the core .NET runtime since 2.0 was released in 2005. Two of the core services the runtime provides: security and garbage collection have new features providing a more manageable and efficient runtime model. In addition running software targeting different versions of the runtime in the same process is no longer likely to break older code as from version 4.0, you can have more than one copy of the runtime loaded in memory. This module walks you through these significant changes and how they affect your applications.
C# 4.0
As with most releases of .NET, the accompanying version of C# has seen important new features. The big headlining feature is the introduction of dynamic typing via the dynamic keyword. This enables a much smoother integration with dynamically typed languages such as JavaScript and Ruby as well as cleaner COM interop. But being able to resolve methods and properties at runtime also introduces new ways of parsing data with natural APIs. This module will look at the new dynamic aspects of C#4 and will also cover other new features of the language such as generic variance, optional and named parameters.
Visual Studio 2010
This module takes you through the features introduced in the new release of Visual Studio. This release brings big changes to many features. The code editor itself is now based on WPF which not only allows smooth zooming of the code without altering fonts but also new ways of templating the code to render differently in the code editor (for example comments within an embedded form in the editor). We also have new refactoring support to better aid test driven development, new modeling tools and improvements to the unit testing and debugging experiences.
Day 2
PFx: Task - a Unified Threading API
When the Parallel Framework Extensions (PFx) were first announced it looked as though it was going to target a narrow set of requirements around parallelizing processor intensive code. However, over time the scope of the library has grown significantly such that it will become the main model for building asynchronous code. The pivotal type enabling this transition is the Task class. This is a functionally very rich type allowing the creation of both short and long lived asynchronous work, Tasks can have dependencies on one another and support cancellation. In this, the first of the PFx modules we look specifically how this class gives us a unified framework for building multithreaded code.
PFx: Parallel
The initial goal of PFx was to simplify the parallelization of processor intensive tasks - and this remains a key feature. This part of its functionality is focused on the Parallel class and it's For and ForEach members. In this module we look at the simplified model but also highlight that parallelizing algorithms is never as simple as it might first seem - we show you some of the pitfalls that you should be aware of when trying to parallelize functionality using the Parallel class.
PFx: Synchronization Primitives and Concurrent Data Structures
Ever since its inception .NET has had support for a number of synchronization primitives (such as Interlocked, Monitor and Mutex). However, on their own these primitives do not provide support for more complex synchronization situations and so people have had to use them as building blocks to build things like efficient Semaphores. PFx finally brings to the library a set of richer primitives such as lazy initialization, a lightweight semaphore and a countdown event. But more than this, it also introduces a set of high performance concurrent data structures that allow you to use them without you having to provide your own synchronization logic around them. This module looks at this new set of tools in your synchronization toolbox.
Day 3
Workflow 4.0
Windows Workflow Foundation (WF) is a library for enabling the "scripting" of a set of processing steps in a declarative way. It also supports long-running execution of these steps with an automated persistence engine. For version 4.0, WF has been rewritten to provide a more flexible and robust infrastructure for building your applications and services. The performance has been significantly increased and the development and deployment options enhanced. In this module we introduce you to the new workflow infrastructure and tools and show you how to build power applications on the workflow platform.
Workflow 4.0 Services
One of the main goals of the new version of workflow was to establish a platform for building WCF services in a declarative way. This also allows a rich and transparent model for taking existing services and composing their functionality to produce composite services. This module shows you the new messaging activities, how they can be used to define service contracts and how long-running execution is enabled by a message correlation model that allows new messages to be routed to existing running workflows.
Windows Communication Foundation 4.0
The changes in WCF 4.0 are not as far reaching as those in WF 4.0. However there are still some powerful new features such as new bindings, new transports and simplified configuration. We also see the introduction of the Forwarding Service, an out-of-the-box SOAP intermediary, that allows data dependent service routing purely based on configuration values. This module looks at these new features and how they can be used to enhance your services.
Day 4
Windows Presentation Foundation 4.0
One of the big targets for version 4.0 of WPF was integration with the new Windows 7 Shell enhancements. As a result we see support for multi-touch, the new taskbar and a ribbon control. This module introduces these new features and also looks at other changes including an enhanced design time environment and the introduction of the Visual State Manager - a simplified model for providing animations as the state of controls changes.
Entity Framework 4.0
The initial release of Entity Framework provided a working ORM solution but lacked a number of features to enable enterprise level adoption. The Entity Framework team listened to feedback and EF 4.0 is the result. It introduces a number of new features to greatly enhance the usability of Entity Framework in larger applications. This module looks at these enhancements and shows how they can be used to integrate EF effectively into your code.
ASP.NET MVC Introduction
This release of .NET sees the inclusion in the core framework of the ASP.NET MVC framework. Platforms such as Ruby on Rails have shown that Model/View/Controller (MVC) is a highly productive and very testable pattern for building web applications. In this module we look at the basic anatomy of an MVC application, looking at routing, models, views and controllers.