Mi az a .NET? Bevezetés és áttekintés

A .NET egy ingyenes, platformfüggetlen, nyílt forráskód fejlesztői platform, amely sokféle alkalmazás létrehozásához használható. A .NET egy nagy teljesítményű futtatókörnyezetre épül, amelyet számos nagy léptékű alkalmazás használ éles környezetben.

Felhőalkalmazások

Platformfüggetlen ügyfélalkalmazások

Windows-alkalmazás

Egyéb alkalmazástípusok

Funkciók

A .NET-funkciók lehetővé teszik a fejlesztők számára, hogy hatékonyan írjanak megbízható és hatékony kódot.

A .NET használata

A .NET-alkalmazások és -kódtárak forráskódból és projektfájlból épülnek fel, a .NET CLI vagy egy integrált fejlesztési környezet (IDE) használatával, például a Visual Studióval.

Az alábbi példa egy minimális .NET-alkalmazás:

Projektfájl:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>net7.0</TargetFramework>
  </PropertyGroup>
</Project>

Forráskód:

Console.WriteLine("Hello, World!");

Az alkalmazás a .NET CLI-vel hozható létre és futtatható:

% dotnet run
Hello, World!

Két külön lépésben is felépíthető és futtatható. A következő példa egy alkalmazás nevű alkalmazásra mutat be:

% dotnet build
% ./bin/Debug/net6.0/app 
Hello, World!

Bináris eloszlások

  • .NET SDK – Eszközök, kódtárak és futtatókörnyezetek készlete alkalmazások fejlesztéséhez, létrehozásához és teszteléséhez.
  • .NET-futtatókörnyezetek – Futtatókörnyezetek és kódtárak készlete alkalmazások futtatásához.

A .NET-et a következő forrásból töltheti le:

Ingyenes és nyílt forráskód

A .NET ingyenes, nyílt forráskód, és .NET Foundation-projekt. A .NET-et a Microsoft és a gitHub-közösség több adattárban tartja fenn.

A .NET-forrás- és bináris fájlok az MIT-licenccel vannak licencelve. A bináris disztribúciókhoz további licencek vonatkoznak a Windowsra .

Támogatás

Microsoft támogatja a .NET-et Android, Apple, Linux és Windows operációs rendszereken. Arm64, x64 és x86 architektúrákon használható. Emulált környezetekben is támogatott, például macOS Rosetta 2.

A .NET új verziói évente novemberben jelennek meg. A .NET-kiadások páratlan számú években Long-Term támogatási (LTS-) kiadások, és három évig támogatottak. A páros számú év alatt kiadott kiadások Standard-Term támogatási (STS) kiadások, és 18 hónapig támogatottak. A minőségi szint, a kompatibilitástörő változási szabályzatok és a kiadások minden más aspektusa megegyezik. További információ: Kiadások és támogatás.

A .NET csapata Microsoft együttműködik más szervezetekkel a .NET különböző módon történő terjesztésében és támogatásában.

A Red Hat támogatja a .NET-et a Red Hat Enterprise Linuxon (RHEL).

A Samsung támogatja a .NET-et a Tizen-platformokon.

Futtatókörnyezet

A Common Language Runtime (CLR) az alapja az összes .NET-alkalmazásnak. A futtatókörnyezet alapvető jellemzői a következők:

  • Szemétgyűjtés.
  • Memóriabiztonság és típusbiztonság.
  • Magas szintű támogatás a programozási nyelvekhez.
  • Platformfüggetlen kialakítás.

A .NET-et néha "felügyelt kód" futtatókörnyezetnek is nevezik. Elsősorban azért hívják felügyeltnek , mert szemétgyűjtőt használ a memóriakezeléshez, és mert a típust és a memóriabiztonságot kényszeríti ki. A CLR virtualizálja (vagy kivonatolja) az operációs rendszer és a hardver különböző fogalmait, például a memóriát, a szálakat és a kivételeket.

A CLR-t úgy tervezték, hogy a kezdetektől platformfüggetlen futtatókörnyezet legyen. Több operációs rendszerre és architektúrára is át lett állítva. A platformfüggetlen .NET-kódot általában nem kell újrafordíteni az új környezetekben való futtatáshoz. Ehelyett csak egy másik futtatókörnyezetet kell telepítenie az alkalmazás futtatásához.

A futtatókörnyezet különböző diagnosztikai szolgáltatásokat és API-kat tesz elérhetővé a hibakeresőkhöz, a memóriaképekhez és a nyomkövetési eszközökhöz, valamint a megfigyelhetőséghez. A megfigyelhetőségi implementáció elsősorban az OpenTelemetria köré épül, amely lehetővé teszi a rugalmas alkalmazásfigyelést és a helymegerősítési mérnöki (SRE) tervezést.

A futtatókörnyezet alacsony szintű C-stílusú interop-funkciókat kínál a P/Invoke, az értéktípusok és az értékek natív/felügyelt kódhatáron keresztüli felszeleteléséhez .

Nyelvek

A futtatókörnyezetet több programozási nyelv támogatására tervezték. A C#, az F# és a Visual Basic nyelveket a Microsoft támogatja, és a közösséggel együttműködve tervezték.

  • A C# egy modern, objektumorientált és típusbiztos programozási nyelv. Gyökerei a C nyelvcsaládban vannak, és azonnal ismerősek lesznek a C, C++, Java és JavaScript programozók számára.

  • Az F# egy együttműködő programozási nyelv, amely tömör, robusztus és hatékony kódot ír. Az F#-programozás adatorientált, ahol a kód magában foglalja az adatok függvényekkel való átalakítását.

  • A Visual Basic egy részletesebb szintaxist használ, amely közelebb áll a hétköznapi emberi nyelvhez. Egyszerűbb nyelv lehet a programozást kezdők számára.

Összeállítása

A .NET-alkalmazások (a C#-hoz hasonló magas szintű nyelven írtak szerint) középfokú nyelvre (IL) vannak lefordítva. Az IL egy kompakt kódformátum, amely bármilyen operációs rendszeren vagy architektúrán támogatott. A legtöbb .NET-alkalmazás több környezetben támogatott API-kat használ, amelyek futtatásához csak a .NET-futtatókörnyezet szükséges.

Az IL-t natív kódra kell lefordítani, hogy végrehajthassa a processzort, például Arm64-en vagy x64-en. A .NET támogatja az idő előtti (AOT) és a just-in-time (JIT) fordítási modelleket is.

  • Android, macOS és Linux rendszeren a JIT-fordítás az alapértelmezett, az AOT pedig nem kötelező (például ReadyToRun).
  • IOS rendszeren az AOT kötelező (kivéve, ha a szimulátorban fut).
  • A WebAssembly (Wasm) környezetekben az AOT kötelező.

A JIT előnye, hogy a mögöttes operációs rendszer és hardver alapján lefordíthat egy alkalmazást a cpu-utasításokra és a hívási konvenciókra egy adott környezetben. A kódokat magasabb vagy alacsonyabb minőségben is lefordíthatja, hogy jobb indítási és stabil állapotú átviteli sebességet biztosítson.

Az AOT előnye, hogy a legjobb alkalmazásindítást biztosítja, és (bizonyos esetekben) kisebb üzembe helyezéseket eredményezhet. Az elsődleges hátránya az, hogy a bináris fájlokat minden egyes különálló üzembehelyezési célhoz létre kell tenni (ugyanaz, mint bármely más natív kód). Az AOT-kód nem kompatibilis bizonyos tükröződési mintákkal.

Futtatókörnyezeti kódtárak

A .NET az osztálykódtárak átfogó standard készletével rendelkezik. Ezek a kódtárak számos általános célú és számítási feladatra vonatkozó típushoz és segédprogram-funkcióhoz nyújtanak implementációkat.

Íme néhány példa a .NET-futtatókörnyezeti kódtárakban definiált típusokra:

További információ: Futtatókörnyezeti kódtárak áttekintése.

NuGet-csomagkezelő

A NuGet a .NET csomagkezelője. Lehetővé teszi a fejlesztők számára, hogy megosztották egymással a lefordított bináris fájlokat. NuGet.org számos népszerű csomagot kínál a közösségtől.

Eszközök

A .NET SDK a .NET-alkalmazások fejlesztésére és futtatására szolgáló kódtárak és eszközök készlete. Tartalmazza az MSBuild buildmotort , a Roslyn (C# és Visual Basic) fordítót és az F# fordítót. A legtöbb parancs a dotnet paranccsal fut. A CLI-eszközök helyi fejlesztéshez és folyamatos integrációhoz használhatók.

A Visual Studio idEs-család kiváló támogatást nyújt a .NET és a C#, az F# és a Visual Basic nyelvekhez.

A GitHub Codespaces és a GitHub biztonsági funkciói támogatják a .NET-et.

Notebooks

A .NET Interactive parancssori felületi eszközök és API-k csoportja, amelyek lehetővé teszik a felhasználók számára, hogy interaktív szolgáltatásokat hozzanak létre a weben, a Markdownban és a jegyzetfüzetekben.

További információkat találhat az alábbi forrásokban:

CI/CD

Az MSBuild és a .NET CLI különböző folyamatos integrációs eszközökkel és környezetekkel használható, például:

További információ: A .NET SDK használata folyamatos integrációs (CI) környezetekben.

Üzembe helyezési modellek

A .NET-alkalmazások kétféle módban tehetők közzé:

  • Az önálló alkalmazások közé tartozik a .NET-futtatókörnyezet és a függő kódtárak. Ezek lehetnek egy- vagy többfájlosak . Az alkalmazás felhasználói olyan gépen futtathatják, amelyen nincs telepítve a .NET-futtatókörnyezet. Az önálló alkalmazások mindig egyetlen operációs rendszer- és architektúrakonfigurációt céloznak meg.
  • A keretrendszerfüggő alkalmazásokhoz a .NET-futtatókörnyezet kompatibilis verziója szükséges, amely általában globálisan van telepítve. A keretrendszerfüggő alkalmazások közzétehetők egyetlen operációs rendszer- és architektúrakonfigurációhoz, vagy "hordozhatóként", az összes támogatott konfigurációt megcélzva.

A .NET-alkalmazások alapértelmezés szerint natív végrehajtható fájlokkal indulnak el. A végrehajtható fájl operációs rendszer- és architektúraspecifikus is. Az alkalmazásokat a dotnet paranccsal is elindíthatja.

Az alkalmazások tárolókban helyezhetők üzembe. Microsoft tárolórendszerképeket biztosít a különböző célkörnyezetekhez.

.NET-előzmények

2002-ben Microsoft kiadta .NET-keretrendszer, a Windows-alkalmazások létrehozására szolgáló fejlesztési platformot. A .NET-keretrendszer jelenleg a 4.8-at használja, és a Microsoft továbbra is teljes mértékben támogatja.

2014-ben Microsoft bevezette a .NET Core-t a .NET-keretrendszer platformfüggetlen, nyílt forráskódú utódjaként. A .NET új implementációja a .NET Core nevet a 3.1-es verzióban tartotta. A .NET Core 3.1 utáni következő verzió neve .NET 5.

Az új .NET-verziók továbbra is évente jelennek meg, mindegyik főverziószám magasabb. Ezek jelentős új funkciókat tartalmaznak, és gyakran új forgatókönyveket tesznek lehetővé.

.NET-ökoszisztéma

A .NET több változata is létezik, amelyek mindegyike egy másik típusú alkalmazást támogat. A több változat oka részben előzmény, részben technikai.

.NET-implementációk (előzménysorrend):

  • .NET-keretrendszer – Hozzáférést biztosít a Windows és a Windows Server széles körű képességeihez. A Windows-alapú felhőalapú számítástechnikához is széles körben használják. Az eredeti .NET.
  • Mono – A .NET-keretrendszer platformfüggetlen megvalósítása. Az eredeti közösség és a .NET nyílt forráskód. Android-, iOS- és Wasm-alkalmazásokhoz használható.
  • .NET (Core) – A .NET platformfüggetlen és nyílt forráskód implementációja, amely újragondolva van a felhő korához, ugyanakkor jelentősen kompatibilis marad a .NET-keretrendszer. Linux, macOS és Windows rendszerű alkalmazásokhoz használható.

Következő lépések