What the New .NET Lineup Means to Developers
At the end of March, Microsoft announced that it would be making Xamarin broadly available through Visual Studio at no cost to developers. In addition to this exciting news, Unity, JetBrains, and RedHat joined the new .NET Technical Steering Team. How has that changed things?
A Commitment To Open Source
First, this move has clarified that Microsoft is truly committing to open source programming. The .NET Foundation is re-releasing Mono, Xamarin’s core collection of open-source tools, under the MIT free software license. This will go a long way toward making cross-platform development, cloud testing, and even life cycle management possible for a wide variety of smaller developers.
Why does this matter? Because the fragmentation of .NET code has been a stumbling block for developers from the beginning. This is because, in the past, new platforms meant new cores for .NET code. Over the years, there have been stop-gap efforts to alleviate this issue, such as the addition of portable libraries. But the lack of real crossover between platforms has led to dialects in the same way that geography and social groups do in spoken language. To extend the analogy, the issue goes beyond having specialized language for tasks specific to one platform; it sometimes means that even when developers are “discussing” the same task, the code is different. This lack of crossover also causes redundancies.
Cumulatively, these issues eat a significant amount of developers’ time. A serious commitment to top-down, modular code means more universal crossover (particularly helpful when you’re developing one app for multiple platforms) and fewer billed hours.
A Culture Shift
The inclusion of diverse platform experts on the Technical Steering Team means that this is much more than a nod on Microsoft’s part. They’re committed to making .NET a valuable resource for LINUX and Mac platforms, and the addition of Unity demonstrates they’re thinking about game developers, as well. These forward-thinking companies will be able to share their best practices and insight with Microsoft, and inject some needed innovation into the company’s corporate culture.
Agile Software Development
The new versatility of the .NET Core makes it much more attractive to developers, because they’ll be able to share information and actually see results much faster than before. This is because while the new, more modular .NET Core is meant to address developers’ needs before the fact, its open-source nature also marks the advent of a more agile whole with more efficient updates.
The more buttoned-up .NET of the past meant that development was focused on a few apps that were expected to be heavy-hitters. Testing and debugging of these apps was often phased. Beta-testing was abbreviated, and apps were far enough along in the roll-out process by then that feedback produced very limited change. Open-source programming by a broader pool of smaller developers will create a give-and-take through more closely-linked programming and testing. This process ensures an unprecedented level of actionable feedback, allowing thorough, spiraled debugging as one bug is fixed and others are revealed.
Bottom Line: Variation, Not Variance
While .NET will still reflect differences between platforms, that’s primarily to provide consumers with the user interface they expect. But the pattern of trying to patch up fragmented systems is coming to an end. The changes to .NET’s leadership and core represent a re-visioning of what .NET can be. Overall, this paradigm shift within Microsoft is going to make .NET a much more valuable and versatile resource.