.NET 4.5, Just the good Stuff William Tulloch Senior Consultant Readify Mahesh Krishnan Principal Consultant Readify DEV215
February 2002.NET 1.0 April 2003.NET 1.1 January 2006.NET 2.0 November 2006.NET 3.0 November 2007.NET 3.5 April 2010.NET 4.0 August 2012
.NET 4.5
async/await
Demo A simple example async/await
Identity
IIdentity WindowsIdentityGenericIdentityFormsIdentity
public interface IIdentity { string AuthenticationType{ get; } bool IsAuthenticated{ get; } string Name{ get; } } public interface IIdentity { string AuthenticationType{ get; } bool IsAuthenticated{ get; } string Name{ get; } }
IPrincipal WindowsPrincipalGenericPrincipalFormsPrincipal
public interface IPrincipal { IIdentity Identity{ get; } bool IsInRole(string role); } public interface IPrincipal { IIdentity Identity{ get; } bool IsInRole(string role); }
ClaimsIdentity WindowsIdentityGenericIdentityFormsIdentity IIdentity
public class ClaimsIdentity : IIdentity { //constructors removed to simply view // Properties public virtual string Name { get; } public virtual string AuthenticationType { get; } public virtual bool IsAuthenticated { get; } public virtual IEnumerable Claims { get; } public ClaimsIdentity Actor { get; set; } public object BootstrapContext { get; set; } public string Label { get; set; } public string NameClaimType { get; } public string RoleClaimType { get; } //Helper methods for working with claims removed } public class ClaimsIdentity : IIdentity { //constructors removed to simply view // Properties public virtual string Name { get; } public virtual string AuthenticationType { get; } public virtual bool IsAuthenticated { get; } public virtual IEnumerable Claims { get; } public ClaimsIdentity Actor { get; set; } public object BootstrapContext { get; set; } public string Label { get; set; } public string NameClaimType { get; } public string RoleClaimType { get; } //Helper methods for working with claims removed }
ClaimsPrincipal WindowsPrincipalGenericPrincipalFormsPrincipal IPrincipal
public class ClaimsPrincipal : IPrincipal { // Properties public virtual IIdentity Identity { get; } public virtual IEnumerable Claims { get; } public static ClaimsPrincipal Current { get; } public virtual IEnumerable Identities { get; } public virtual bool IsInRole(string role); //Helper methods for claims removed } public class ClaimsPrincipal : IPrincipal { // Properties public virtual IIdentity Identity { get; } public virtual IEnumerable Claims { get; } public static ClaimsPrincipal Current { get; } public virtual IEnumerable Identities { get; } public virtual bool IsInRole(string role); //Helper methods for claims removed }
A quick look at claims
Portable Class Libraries
Creating a simple REST service
Working with the HttpClient
Web Sockets
ASP.NET
WCF
Using WCF in a Windows 8 app
WPF
Workflow Foundation
MEF 2.0
MEF in Windows 8
The TPL
TPL Dataflow
“TPL Dataflow (TDF) is a new.NET library for building concurrent applications. It promotes actor/agent-oriented designs through primitives for in-process message passing, dataflow, and pipelining. TDF builds upon the APIs and scheduling infrastructure provided by the Task Parallel Library (TPL), and integrates with the language support for asynchrony provided by C#, Visual Basic, and F#.”