Digests » 232
Get matched with companies like Apple, Skyscanner and KPMG based on your skills. They apply to you!
this week's favorite
With all the buzz around .NET Core I figured that I should tackle some of the fundamental issues that make .NET Core a gamechanger. .NET Core really is the next generation of .NET development and I believe that it’s time for .NET developers everywhere to migrate!
While the big news in the .NET Core ecosystem is coming support for WinForms and WPF in .NET Core 3.0 on Windows, there are also some notable changes coming in ASP.NET Core 3.0.
Since we shipped .NET Standard 2.0 about a year ago, we’ve shipped two updates to .NET Core 2.1 and are about to release .NET Core 2.2. It’s time to update the standard to include some of the new concepts as well as a number of small improvements that make your life easier across the various implementations of .NET.
Imagine you’re exposing a specialized sort routine to operate in-place on data in memory. You’d likely expose a method that takes an array and provide an implementation that operates over that T. That’s great if your method’s caller has an array and wants the whole array sorted, but what if the caller only wants part of it sorted? You’d probably then also expose an overload that took an offset and a count. But what if you wanted to support data in memory that wasn’t in an array, but instead came from native code, for example, or lived on the stack and you only had a pointer and a length? How could you write your sort method that operated on such an arbitrary region of memory, and yet worked equally well with full arrays or with subsets of arrays, and that also worked equally well with managed arrays and unmanaged pointers?
An issue was recently raised on the ConTabs project that sent me down a bit of a localisation rabbit hole. You see, I’d written a load of conformance tests that included example output. What I hadn’t factored in was how many of these were dependent on my locale. These would potentially fail on computers with different locales. In today’s post, I’d like to explore exactly what went wrong and how we put it right.