InfoQ Homepage .NET Languages Content on InfoQ
-
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.
-
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.
-
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.
-
Fable 2 Interview with Fable Creator Alfonso García-Caro
Fable entered its fourth year with a new major version that greatly improves its performance, code-generation, and stability. InfoQ has spoken with Alfonso García-Caro, Fable creator and maintainer.
-
Xamarin.Essentials Streamlines Cross-Platform Access to Native iOS, Android, and UWP Features
Xamarin.Essentials abstracts native mobile features into a set of cross-platform APIs with the aim of simplifying their use. After a few months in preview, it has been now officially released with a number of enhancements contributed by the community.
-
First Look at Visual Studio 2019 Preview 1
Microsoft announced the release of Visual Studio 2019 Preview 1 at the Connect 2018 event. This preview highlights many changes, from the IDE's startup, to code refactoring functionality, and greater use of search functions to better navigate large source trees.
-
C# 8 Small Features
While most of the attention is on big ticket items such as default interface methods and nullable references, many small features are also be considered for C# 8. Here is a sampling of things that may make it into future version of C#.
-
Update on C# and F#’s Default Interface Methods
The hotly contested Default Interface Methods feature is also being considered for F#. But this feature may be limited to only .NET Core, putting the whole proposal into jeopardy.
-
F# 4.5 Brings Spans, Match!, and More
Now available as a preview, F# 4.5 introduces a number of new features, including support for .NET Core 2.1 new primitive type Span<T>, a new Match! keyword, and more.
-
FAKE 5 Build Task Tool Brings .NET Core Support
Fake 5 was recently recently released after several several months of previews. This new version of the build tool for .NET applications brings a rewrite of the core, as well as many internal improvements and features. InfoQ reached out to Matthias Dittrich, maintainer of Fake, to learn more about all the changes and features.