1.0,1.1,2.0,3.0,3.5,4.0…..

If You think these are just numbers,think again ,these are the versions of .NET and this time i will be blogging about these versions and especially whats coming up with 4.0 (Features ) and VNext.

C# is very object oriented, but since C# 3.0 it is also a functional programming. These trends are influencing the future of C# coming in C# 4.0.

Some of the Changes which i can easily identify are

New in 1.1

New in 2.0

  • Generics.
  • Iterators,Partial Classes,Nullable Types,Property Accessor Accessibility
  • New personalization features for ASP.NET, such as support for themes, skins and webparts.

New in 3.0

1. Windows Presentation Foundation (WPF)

Wiki : The Windows Presentation Foundation (or WPF), formerly code-named Avalon, is a graphical subsystem in .NET Framework 3.0 (formerly called WinFX)[1], which uses a markup language, known as XAML for rich user interface development.It provides a consistent programming model for building applications and provides a clear separation between the user interface and the business logic. A WPF application can be deployed on the desktop or hosted in a web browser.

2. Windows Communication Foundation (WCF)

Wiki : Windows Communication Foundation, or just WCF, is a programming framework used to build applications that inter-communicate. WCF is the part of the .NET Framework dedicated to communications. Originally tagged with the code name “Indigo”, WCF is one of the four new application programming interfaces introduced with .NET Framework 3.0, which was released in December 2006. The .NET Framework is Microsoft technology that ships in Windows operating systems (client, server and mobile platforms).

3. Windows Workflow Foundation (WWF)

Windows Workflow Foundation is a technology for defining, executing, and managing workflows.

4. Windows CardSpace (WCS)

wiki : Windows CardSpace (codenamed InfoCard), is Microsoft’s client software for the Identity Metasystem. CardSpace is an instance of a class of identity client software called an Identity Selector. CardSpace stores references to users’ digital identities for them, presenting them to users as visual Information Cards. CardSpace provides a consistent UI that enables people to easily use these identities in applications and web sites where they are accepted.

New in 3.5

  • Support for LINQ queries, extension methods, and anonymous types with static type inference.

Whats Expected for 4.0

Introducing PLINQ and VBx [VB 10.0] and C#4.0

Beyond C# 4.0 ( Vnext )

  • Meta-data programming
  • Support for domain specific languages

The new features in C# 4.0 fall into four groups:

Dynamic lookup

Dynamic lookup allows you to write method, operator and indexer calls, property and field accesses, and even object invocations which bypass the C# static type checking and instead gets resolved at runtime.

C# 4.0 introduces a new static type called dynamic. When you have an object of type dynamic you can do things to it” that are resolved only at runtime:

dynamic d = GetDynamicObject();
d.M(7);

The type dynamic can be thought of as a special version of the type object, which signals that the object can be used dynamically.

Named and optional parameters

Parameters in C# can now be specified as optional by providing a default value for them in a member declaration. When the member is invoked, optional arguments can be omitted.

Optional parameters – A parameter is declared optional simply by providing a default value for it:

public void M(int x, int y = 5, int z = 7);

Here y and z are optional parameters and can be omitted in calls:

M(1, 2, 3); // ordinary call of M
M(1, 2); // omitting  equivalent to M(1, 2, 7)
M(1); // omitting both y and z equivalent to M(1, 5, 7)

Named and optional arguments

C# 4.0 does not permit you to omit arguments between commas as in M(1,,3). This could lead to highly unreadable comma-counting code. Instead any argument can be passed by name. Thus if you want to omit only y from a call of M you can write:

M(1, z: 3); // passing z by name

M(x: 1, z: 3); // passing both x and z by name

M(z: 3, x: 1); // reversing the order of arguments

COM specific interop features

Dynamic lookup as well as named and optional parameters both help making programming against COM less painful than today. On top of that, however, we are adding a number of other small features that further improve the interop experience. Furthermore, any argument can be passed by parameter name instead of position.

If you enjoyed this post, please consider leaving a comment or subscribing to the RSS feed to have future articles delivered to your feed reader.

1 Response

Leave a Reply