Writing Native Libraries in C# and using them in other languages

#258 – May 12, 2019

sponsor

Next-Gen C# Debugging - Get OzCode for Visual Studio

Level up your C# Debugging with OzCode, the top-rated Visual Studio extension. Visualize LINQ results of each operation and see how items go through the pipeline. Use Time Travel Debugging to see the future without ever hitting F10. See future values with predictive data-tip and travel back and forth through iteration loops. Start your 14-day Trial (no credit card needed).

this week's favorite

Writing Native Libraries in C# and using them in other languages

I have a little library that I want to be available for multiple languages, so I was quite interested in it. So I tried out the official sample and was delighted with the results.

Pattern Matching in C# 8.0

Over the years we’ve seen a ton of features in C# that improve not only the performance of our code, but more importantly its readability. Given the fast pace of the software industry, the language certainly needs to keep up and evolve with its user base. Something that’s been widely used in different programming languages, such as Haskell, Swift or Kotlin sometimes find its way into C#. One of these being pattern matching—a concept that has been around for a long time, and something for which a lot of developers in the .NET space have long waited.

Introducing .NET 5

Today, we’re announcing that the next release after .NET Core 3.0 will be .NET 5. This will be the next big release in the .NET family. There will be just one .NET going forward, and you will be able to use it to target Windows, Linux, macOS, iOS, Android, tvOS, watchOS and WebAssembly and more.

Immutability in C#

In software development, an immutable object is one that once created, can’t change. Why would you want such an object? To answer that question, it may help to analyze the problems that result from mutating objects. Go back to the basics of what every application does: create, retrieve, update, and delete data (the CRUD operations). The core of any application manipulates objects. Whether or not an application works in a manner consistent with its specification is first answered by whether the data manipulation is correct. Any time code affects an object, you need to verify that the code works correctly.

Generics, structs and nulls – the JIT is smart so you don’t have to

Few days back I learned geeky little piece about JIT. This is exactly the type of knowledge you don’t have to use, maybe ever, yet it’s crucial the JIT handles it (so you don’t have to), because every smart instruction is performance gained. Literally, every instruction or every CPU cycle counts.

newsletters