InfoQ Homepage .NET Content on InfoQ
-
Microsoft Releases .NET Framework 4.8
Microsoft has released .NET Framework 4.8, the first significant .NET Framework release in two years. The new release includes improvements in multiple product areas, including Windows Forms, WCF, WorkFlow, and WPF. It also includes changes in the Base Class Library (BCL) and in the Common Language Runtime (CLR). All product areas affected by this release received bug fixes.
-
Microsoft Releases High-Performance C# and F# Support for Apache Spark
Microsoft announced the release of .NET for Apache Spark, adding new high-performance C# and F# binding to the big-data computation engine.
-
Microsoft Announces General Availability of Visual Studio 2019 for Windows and Mac
Microsoft has announced the general availability of Visual Studio 2019 for Windows and Mac. The new version comes with a number of improvements over the last major version released in 2017. A couple of highly anticipated features - IntelliCode and Live Share - have been included in this release.
-
F# 4.6 Released with Anonymous Records, Improved Performance
The most significant change in F# 4.6, now available with .NET Core 2.2, is the introduction of anonymous record types, which simplify the use of records in a number of contexts. Additionally, the F# compiler chain in Visual Studio 2019 has improved performance for medium-to-large size projects in several areas.
-
Nullable Reference Types in F# 5
The introduction of nullable reference types in C# represents the biggest change to how .NET developers write code since async/await. Once it goes live, countless libraries will have to be updated with nullable annotations in order for this feature to work correctly. And to ensure interoperability, F# will need to respond in kind.
-
C# Futures: Deferred Error Handling
When writing robust software, there is often a need to perform a series of retriable operations. In order to make the system robust, each operation in the series can be coded so it is independent of the status of the previous operation. Before the deferred error handling proposal, this could be tedious to code.
-
ImageSharp: Funding an Open Source Project
Recently ImageSharp decided to change their license from Apache to the AGPLv3/Commercial dual license model. The new license will be effective as of release candidate 1, which is expected in Q1 of 2019. In this report we look at the history ImageSharp and reason for the change.
-
C# Futures: Pointer Math
Interoperability with native platforms often require very specific coding patterns that involve the manipulation of pointers. While this can be done via a shim written in C, the proposal titled Operators should be exposed for System.IntPtr and System.UIntPtr seeks to offer that ability directly in C#.
-
C# Futures: Static Delegates and Function Pointers
With each release of C#, it gains more low-level capabilities. While not useful to most business application developers, these features allow for high performance code suitable for graphics processing, machine learning, and mathematical packages. In these next two proposals, we see new ways to reference and invoke functions.
-
C# Futures: Lambda Attributes
Attributes are a key part of .NET’s metadata processing capabilities. They are used by compilers, static analyzers, and runtime libraries for a variety of purposes. While normal functions/methods can have attributes, prior to this proposal lambdas and anonymous functions could not.
-
Visual Basic’s File IO Added to .NET Core
Visual Basic’s File IO library is being ported to .NET Core 3.0. This includes convenience functions such as the ability to copy or delete a directory with one function call, support for the Windows recycle bin (without p/invoke code), and an RFC compliant CSV parser that can also handle fixed-width files.
-
C# Futures: Defer
Best known for its use in Go and Swift, C# proposal #1398 seeks to add defer statements. If you are not familiar with the concept, it can be summarized as a finally block appearing at the beginning of some code instead of the end.
-
Update on IAsyncDisposable and IAsyncEnumerator
Since InfoQ last covered the async streams proposal, some changes have been made to the design. Most notably is the use of the lightweight ValueTask object.
-
System.Collections in .NET Core 3.0
If you look through the list of issues tagged for System.Collections in .NET 3.0, you’ll find both proposals that were accepted and rejected. In this report we’ll cover some of the highlights.
-
F# 4.6 Introduces Anonymous Record Types
The next release of F#, F# 4.6, will most notably bring anonymous record types and structs to the language, along with a few additions to the standard library.