.NET

**.NET** (*"dot net"*, predtým známy ako **.NET Core**), je voľná a open source platforma na vývoj softvéru pre Windows, Linux a macOS. Dá sa využiť aj na tvorbu aplikácií pre Android a iOS. Jej vývoj zastrešuje nezisková organizácia .NET Foundation a na jeho vývoji sa podieľajú dobrovoľní programátori (veľký počet je ale z Microsoftu). Jej zdrojový kód je voľne dostupný pod licenciou MIT.

.NET nahrádza starší .NET Framework od Microsoftu, ktorý bol dostupný iba pre platformy Windows. Má byť jeho moderným a výkonnejším nástupcom. Celá platforma pozostáva z viacerých dielov: Common Language Runtime (behové prostredie pre všetky .NET aplikácie), Roslyn kompilátor, dotnet rozhranie v príkazovom riadku, štandardné knižnice a podpora pre tri programovacie jazyky: C#, F# a Visual Basic. Existujú aj iné jazyky ktoré môžu používať platformu .NET, ale tie dnes nie sú priamo podporované autormi platformy.

## História
V Júni 2016 bol vydaný .NET Core, spolu s knižnicou na tvorbu webových aplikácii *ASP.NET Core* a knižnicou na prácu s objektami v databáze *Entity Framework Core*. Všetky tri vo verzii 1.0. Tieto tri softvérové riešenia slúžili ako otvorená a viac výkonná alternatíva ku .NET Framework, ktorý bol v tom čase len pre platformy Windows a nemal otvorený zdrojový kód. Nasledovali ďalšie verzie a od verzie 5, sa *.NET Core* premenoval len na *.NET*. Microsoft ohlásil, že .NET Framework už nebude dostávať nové aktualizácie s výnimkou opráv kritických bezpečnostných chýb. Microsoft odporúča nové projekty začínať na tejto novej platforme, .NET Framework je podporovaný len pre staré projekty, ktoré už na ňom fungujú.

Nová stabilná verzia platformy je vydaná približne raz ročne. Každá druhá verzia má predĺženú podporu (*long-term support*), ktorá zaručuje bezpečnostné opravy a podporu na 3 roky, namiesto štandardných 18 mesiacov.

## Architektúra
[alt=Diagram Common Language Infrastructure ktorú .NET používa|náhľad|Diagram [Common Language Infrastructure, ktorú .NET používa]]
.NET pri kompilácii programu nevytvára strojový kód pre konkrétnu platformu. Namiesto toho, každý program napísaný v hociktorom z podporovaných jazykov, je pri spustení skompilovaný do medzijazyku (*intermediary language* alebo *IL*). Tento medzikód je potom spustený cez behové prostredie ktoré ho prekladá za chodu do strojového kódu pre konkrétnu platformu na ktorom program beží (takzvaná ''just-in-time'' kompilácia). Preto je na spustenie akéhokoľvek .NET programu, potrebné mať na počítači nainštalované toto behové prostredie (*.NET Runtime*).

.NET používa na správu pamäte garbage collection, takže behové prostredie samo uvoľňuje pamäť, ktorá sa uź nebude používať. Preto sa aj .NET kód nazýva *manažovaný* kód. Manažovaný kód sa ale môže pristupovať aj ku knižniciam, ktoré sú *nemanažované*, teda rovno predkompilované pre konkrétnu platformu (napríklad napísané v jazyku C alebo C++). Tam ale .NET nevie zaručiť, že nedojde k chybám ktoré sa vyskytujú pri manuálnej práci s pamäťou.

## Ekosystém
Okrem samotnej .NET platformy, .NET Foundation vyvíja aj rôzne knižnice a vývojové rámce, ktoré pomáhajú s vývojom aplikácií:

* **ASP.NET Core** je vývojový rámec na tvorbu webových aplikácií a stránok. Je považovaný za jeden z najrýchlejších dostupných webových platform.
* **Entity Framework Core** je knižnica na mapovanie objektov v pamäti programu na tabuľky v relačných databázach a naopak. Takzvaný *object-relational mapping* alebo *ORM*.
* **MAUI** je knižnica na tvorbu multiplatformových používateľských rozhraní pre počítačové a mobilné platformy.

.NET obsahuje aj správcu balíčkov *NuGet* ktorý umožňuje sťahovať otvorené knižnice pre .NET publikované hocikým.

## Typy softvérových riešení, ktoré je možné vyvíjať pomocou .NET
Typy softvérových riešení:

* Webové aplikácie
* Mobilné aplikácie
* Desktopové aplikácie
* Backendové a frontendové komponenty aplikácií
* Cloudové aplikácie
* Hry a simulácie
* IoT aplikácie

## Referencie

Kategória:.NET
.NET Framework
.NET Framework
Kategória:Viacplatformový softvér
Kategória:Slobodný softvér