BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage .NET Content on InfoQ

  • 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.

  • The Pure Attribute in .NET Core

    The Pure attribute was added to .NET in version 4 as part of the Code Contracts initiative to help developers distinguish between code that free from side effects from other code. While the Code Contracts project is over, the Pure attribute continues to see life in .NET Core.

  • SQL Server and .NET Core 3.0

    In our last article we looked at System.Data in .NET Core 3.0. Now we turn our attention to System.Data.SqlClient, which is the SQL Server driver.

BT