A General Distribution Release of .NET 4 was published on the 11th of June. This includes numerous fixes and features, many of which were previously published as individual hot fixes. There are also updates to the HTML 5 and portable library support. For your convenience we have sorted the fix list by technology. For the complete list, including file versions, see KB 2468871.
On November 29th, the Visual Basic team announced the Release To Web version of Visual Basic for Windows Phone Developer Tools. This is exciting news for the large number of Visual Basic developers to achieve almost parity with the C# developer community in regards to Windows Phone 7 development of applications.
Visual Basic has always been on the fence between static and dynamic typing. In the beginning VB supported late binding, which is known today as “duck typing”. Through the years it has adopted support for stricter typing, though recently it has swung the other way with full support for the dynamic language runtime.
Visual Basic 10, to be released with .NET 4.0 and Visual Studio 10, is adding support for collection and array initializers. While these are similar to what we already have in C#, there are minor enhancements such as support for extension methods and improved type inference.
C# added auto-implemented properties in version 3, but Visual Basic was unable to match them at that time. With the impending release of .NET 4.0, VB has caught up in this area, but with a distinctive twist.
Creating wrapper functions for pre-existing stored procedures is surprisingly difficult in .NET. Stored procedures have certain calling conventions that aren’t generally used in the .NET Framework and many of them are not supported at all. For example, C# doesn’t support optional parameters and neither .NET language supports optional parameters on nullable types.
In .NET 4 types will no longer be restricted to a single assembly. A single type, or part of a type, can be extracted from one assembly and placed into another. Why would you do this? Well first off all, to reduce the cost of including the Office Primary Interopt Assemblies from several megabytes to about 2KB by only including what you actually need.