Thursday, August 24, 2017

C# 8.0

C# 8.0 has been previewed in Channel 9 by Mads Togersen.  Ref:

Top 5 tech highlights are:

1. Nullable Reference Types
Consider a scenario where you know that the nullable variable x isn’t actually null, but you can’t prove that to the compiler. In this case you can use x!.Method() to suppress the compiler warning about potential null reference exceptions.

2. Extension Everything
As with interfaces, you cannot define instance fields in extensions but you can simulate them using ConditionalWeakTable. You can also define static fields.

3. Default Interface Implementations
The primary benefit of default interface implementations is that you may be able to add new methods to an existing interface without breaking backwards compatibility.

4. Async Streams (a.k.a. foreach async)
This is referred to as a “pull model”. By contrast, IObservable is a “push model”, which means the producer can flood the consumer with a higher flow rate than it can handle.

5. Extension Interfaces
Extension interfaces, the ability to add new interfaces to existing classes, is also being considered.

My closing note is C# is ahead of tech capabilities and roadmap, on comparison with Java.

Tuesday, August 15, 2017

.NET Core 2.0

Happy 70th Independence Day of India to my brothers and sisters.

Coincidently, Microsoft released Visual Studio 2017 version 15.3, the release of .NET Core 2.0, and a release of Visual Studio for Mac version 7.1.

VS 2017 ver 15.3 has over 1,700 improvements and still have some work to do, but if you are using Visual Studio 2017 in a low-vision or no-vision mode, a lot has improved. For the full list of improvements check out at

.NET Core 2.0 is also released today. This is the second major version of .NET Core and this release focuses on performance improvements and expanding the set of APIs available via .NET Standard 2.0. It includes the runtime and libraries for .NET Core as well as the tools for building, debugging and running .NET Core applications.

Visual Studio for Mac version 7.1 is also available today. It adds support for .NET Core 2.0 targeting in console apps, web apps, and web services. It also enables creating .NET Standard 2.0 in library projects, to share more code across projects. Like Visual Studio 2017, a lot of the improvements in this update center on reliability.