.NET is meer dan Microsoft

Een nog steeds veelvoorkomende misvatting in de IT-wereld is dat .NET uitsluitend wordt ontwikkeld door Microsoft en dat het alleen maar draait op Windows. Maar tegenwoordig is .NET zo veel meer dan Microsoft en Windows!

Een nog steeds veelvoorkomende misvatting in de IT-wereld is dat .NET uitsluitend wordt ontwikkeld door Microsoft en dat het alleen maar draait op Windows. Tot de release van .NET Core in 2016 was dit ook grotendeels waarheid. Er waren wel open-sourceprojecten zoals Mono, die een eigen implementatie schreven van het .NET Framework zodat deze ook op andere besturingssystemen zoals Linux kon draaien. Echter zijn deze alternatieven nooit groot geworden in het bedrijfsleven door het gebrek aan support en het ontbreken van een volledige implementatie van veelgebruikte onderdelen zoals bijvoorbeeld Windows Forms. Maar tegenwoordig is .NET zo veel meer dan Microsoft en Windows!

Het omslagpunt kwam in 2014 toen Steve Ballmer besloot te stoppen als CEO van Microsoft, om meer tijd over te houden voor zijn basketbalteam: de LA Clippers. Een nieuwe CEO, Satya Nadella, werd naar voren geschoven en het roer ging volledig om bij Microsoft. In datzelfde jaar werd .NET Core aangekondigd: een volledig herontwerp van .NET die draait op Windows, Linux en macOS en wat de basis zou worden voor alle toekomstige .NET platformen.

Echt opensource

Deze nieuwe versie van .NET zou niet meer alleen door Microsoft ontwikkeld worden, maar werd als opensource-project op GitHub geplaatst. Nog steeds heeft Microsoft intern teams die eraan werken, maar iedereen die wil kan de code inzien en verbeteringen aanbrengen (deze moeten natuurlijk wel goedgekeurd worden). Daarnaast houden ze “Community Standups” om aankomende functionaliteiten te bespreken met de community en hier direct feedback op te krijgen.

Tot de komst van .NET Core was het alleen mogelijk om in .NET te ontwikkelen met de IDE Visual Studio, die (nog steeds) alleen op Windows draait. Vanaf .NET Core is het mogelijk om in principe binnen elke editor te ontwikkelen voor .NET, mits er een plugin voor desbetreffende editor is gemaakt. Natuurlijk kun je er ook voor kiezen om dit zelf te doen als er geen beschikbaar is. Hieruit is het OmniSharp project ontstaan, dit is een project gemaakt vóór en dóór de community waardoor een scala aan bekende editors, zoals Atom, Sublime Tekst en Vim, de mogelijkheid krijgen om in .NET te ontwikkelen. Microsoft besloot zelf om een nieuwe multiplatform editor te ontwikkelen, genaamd Visual Studio Code. Ook deze editor is volledig opensource en in 2016 werd de eerste stabiele release uitgegeven. Sindsdien is de editor sterk in populariteit gestegen, vanaf 2018 staat de tool elke keer op nummer 1 binnen de categorie populaire ontwikkeltools in de jaarlijkse Stack Overflow Developers Survey.

.NET Core

In 2016 werd .NET Core dan eindelijk gelanceerd. Vanaf dit moment gaf Microsoft ook de garantie dat het geschikt was om binnen productieomgevingen te gebruiken. In datzelfde jaar kwam het nieuws naar buiten dat Microsoft het bedrijf Xamarin over zou nemen. Dit bedrijf heeft voortgeborduurd op het eerdergenoemde Mono-platform en stelde gebruikers in staat om native mobiele applicaties voor Android en iOS te ontwikkelen met behulp van C# en .NET. Vanaf .NET (Core) 5 is besloten om “Core” te laten vervallen in de naamgeving en in de opvolger .NET 6 werd Xamarin samengevoegd met het framework. Sindsdien heeft het de naam .NET MAUI (Multi-platform App UI) en kan het gebruikt worden om applicaties te ontwikkelen voor iOS, Android, macOS en Windows. Daarnaast kan .NET tegenwoordig ingezet worden voor veel verschillende doeleinden, zoals onder andere gaming, IoT en AI.

Terugkijkend op dit alles kunnen we concluderen dat het een goede keuze was van Microsoft om een multiplatform versie van .NET te gaan ontwikkelen. Sindsdien is het gebruik van containers sterk toegenomen in combinatie met tools zoals Docker en Kubernetes. Deze tools worden het meest gebruikt binnen Linux omgevingen en presteren daar ook het beste op. Zonder Linux ondersteuning had Microsoft waarschijnlijk de boot gemist op het gebied van containers (zie Azure Service Fabric).

Ook voor bedrijven is het gunstig dat een breed spectrum aan software ontwikkeld kan worden met .NET. Hierdoor kunnen ontwikkelaars in principe “overal” aan werken en het bevordert de kennisdeling binnen de organisatie. Op deze manier zijn er geen losse eilandjes met .NET ontwikkelaars, Java ontwikkelaars en noem zo maar op. Een backend team kan dan bijvoorbeeld functionaliteit ontwikkelen die ook door een front-end team gebruikt kan worden.