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
- Natív felhőalkalmazások
- Konzolalkalmazások
- Kiszolgáló nélküli függvények a felhőben
- Webalkalmazások, webes API-k és mikroszolgáltatá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.
- Aszinkron kód
- Attribútumok
- Tükrözi
- Kódelemzők
- Meghatalmazottak és lambdák
- Események
- Kivételek
- Szemétgyűjtés
- Általános típusok
- LINQ (Language Integrated Query).
- Párhuzamos programozás
- Írja be a következtetést – C#, F#, Visual Basic.
- Típusrendszer
- Nem biztonságos kód
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:
- Minden .NET-típus a System.Object típusból származik.
- Primitív értéktípusok, például System.Boolean és System.Int32.
- Gyűjtemények, például System.Collections.Generic.List<T> és System.Collections.Generic.Dictionary<TKey,TValue>.
- Adattípusok, például System.Data.DataSet és System.Data.DataTable.
- Hálózati segédprogramtípusok, például System.Net.Http.HttpClient.
- Fájl- és stream I/O-segédprogramtípusok , például System.IO.FileStream és System.IO.TextWriter.
- Szerializálási segédprogramtípusok, például System.Text.Json.JsonSerializer és System.Xml.Serialization.XmlSerializer.
- Nagy teljesítményű típusok, például System.Span<T>, System.Numerics.Vectorés folyamatok.
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:
- .NET In-Browser oktatóanyag
- .NET-jegyzetfüzetek használata Jupyterrel a gépen
- A .NET interaktív dokumentációja
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ó.