A commonly requested feature in .NET is the ability to use covariant return types. An example of this would be overriding “virtual object Clone()” with “override Widget Clone()”. From a type safety perspective, this is perfectly acceptable, but C# doesn’t currently allow it.
Not too long ago the proposal for read-only local variables was revived. This is a much more modest feature than the read-only references proposal, but the two are complementary.
In C++ we have a feature known as “const”. This can be applied to parameters so that the caller knows that function will not modify the parameter and/or the object the parameter references. Under this proposal, C# would get something similar.
No, the headline isn’t a typo. One of the new proposals for C# is to assume that all reference variables are non-nullable by default. Under the new syntax, you would need to explicitly indicate when a reference variable is nullable, just as you do for value types.
Another feature being considered for future versions of .NET are type classes. Referred to as “shapes” in the Shapes and Extensions proposal, they would greatly increase the capabilities of .NET generics.
A controversial new proposal for .NET suggests the introduction of a limited form of multiple inheritance via abstract interfaces. This feature was inspired by Java’s default methods.
The .NET Core Tools has produced its first 1.0 release. Focused on C#, the tools provide .NET Core developers easy-to-build applications for .NET Core and ASP.NET Core. While their release coincides with the launch of Visual Studio 2017, this is a multiplatform toolset supporting Windows, Linux, and Mac OS systems.
Microsoft develops C#, Visual Basic, and F# in public but doesn't always share its plans for these popular languages. Mads Torgersen has provided some new guidance on where Microsoft plans to take these languages in the future.
Project Springfield is a fuzz testing service for finding security critical bugs in software. William Blum, principal software engineering manager on the Springfield team at Microsoft Research, explains how adopting F# helped the team build the cloud service.
A developer panel was held at Microsoft Connect() following the multiple annoucements of new features and releases. Microservices and containers are in the center of the discussion, along with Azure, serverless architecture and developer tooling.
JetBrains Rider was introduced in January of this year but spent the most part of the year in private Early Access Preview, not yet ready for the public. Now the EAP has been made available to everyone who wants to see what it is like to develop for .NET on the IntelliJ platform. There are some issues to be fixed before it becomes generally available but the tool is quite stable.
Google recently announced .Net support for Google Cloud APIs. This includes C# bindings and PowerShell cmdlets. A Visual Studio extension is also available, allowing to browse Google Cloud resources and to deploy Asp.Net applications on Google Compute Engine.
According to the latest Developer Nation Q3 2016 survey from VisionMobile, Android’s lead over iOS as primary platform and developer mindshare has been consolidated. Also, Windows developers prefer C# in the cloud while Linux ones stay with Java.
Akka.NET 1.1 was recently released, bringing new features and performance improvements. InfoQ reached out to Aaron Stannard, maintainer of Akka.net, to learn more about Akka.Streams and Akka.Cluster. Stannard also explains how the roadmap is planned with regards to the JVM implementation of Akka.
Mads Torgersen, program manager of C#, presents the upcoming C# 7 at QCon New York 2016. He also explains briefly the evolution of C# and introduces some features being developed for future versions.