InfoQ Homepage .NET Content on InfoQ

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

  • System.Data in .NET Core 3.0

    While it doesn’t get a lot of attention, System.Data is crucial for any sort of relational database access in .NET. Also known as ADO.NET in honor of its predecessor, ActiveX Data Objects, System.Data provides a generic framework upon which .NET database drivers can be built. It won’t see a lot of changes in .NET Core 3.0, but for the first time in years we see new methods in a foundational class.

  • C# 8: Generic Attributes

    Attributes have been part of .NET since the beginning. As such, they were created before generics were introduced and never quite caught up. Though supported by the CLR, before this proposal C# didn’t offer the ability to use generic attributes.

  • C# 8: Caller Expression Attribute for Assertions and Automated Testing

    Currently C# supports caller info attributes for file name/path, line number, and the name of the calling method or property. With the Caller Expression Attribute proposal, expressions are added to the list.

  • Microsoft Announces Azure Migrate and Azure Site Recovery Enhancements

    Last week, Microsoft announced several enhancements to their Azure Migrate and Azure Site Recovery services. The changes in the announcement include additional geographies for storing discovery and assessment metadata, along with additional supported options for migrations.

  • C# 8: Type Inference for the New Keyword

    In many situations, there is only one possible type allowed in a given place. And yet C# still requires you to explicitly list the type. If the Target-typed `new` expression proposal is adopted, such boilerplate code will no longer be necessary.


Is your profile up-to-date? Please take a moment to review and update.

Note: If updating/changing your email, a validation request will be sent

Company name:
Company role:
Company size:
You will be sent an email to validate the new email address. This pop-up will close itself in a few moments.