Megosztás a következőn keresztül:


A modern webalkalmazások jellemzői

Tipp.

Ez a tartalom egy részlet az eBook, Architect Modern Web Applications with ASP.NET Core és Az Azure, elérhető a .NET Docs vagy egy ingyenesen letölthető PDF, amely offline olvasható.

Architect Modern Web Applications with ASP.NET Core and Azure eBook cover thumbnail.

"... megfelelő kialakítással a funkciók olcsók. Ez a megközelítés nehézkes, de továbbra is sikeres."
- Dennis Ritchie

A modern webalkalmazások nagyobb felhasználói elvárásokkal és nagyobb igényekkel rendelkeznek, mint valaha. A mai webalkalmazások várhatóan 24/7-től lesznek elérhetők a világ bármely pontjáról, és gyakorlatilag bármilyen eszközről vagy képernyőméretről használhatók. A webalkalmazásoknak biztonságosnak, rugalmasnak és méretezhetőnek kell lenniük, hogy megfeleljenek a megnövekedett igényeknek. Az összetett forgatókönyveket egyre inkább az ügyfélre épülő, JavaScriptet használó, gazdag felhasználói élményekkel kell kezelni, és a webes API-k segítségével hatékonyan kommunikálni.

ASP.NET Core modern webalkalmazásokhoz és felhőalapú üzemeltetési forgatókönyvekhez van optimalizálva. Moduláris kialakítása lehetővé teszi az alkalmazások számára, hogy csak az általuk ténylegesen használt funkcióktól függjenek, javítva az alkalmazások biztonságát és teljesítményét, miközben csökkentik az üzemeltetési erőforrásokra vonatkozó követelményeket.

Referenciaalkalmazás: eShopOnWeb

Ez az útmutató tartalmaz egy eShopOnWeb nevű referenciaalkalmazást, amely néhány alapelvet és javaslatot mutat be. Az alkalmazás egy egyszerű online áruház, amely támogatja az ingek, kávés bögrék és egyéb marketingcikkek katalógusának böngészését. A referenciaalkalmazás szándékosan egyszerű, hogy könnyen érthető legyen.

eShopOnWeb

2–1. ábra. eShopOnWeb

Referenciaalkalmazás

Felhőben üzemeltetett és méretezhető

ASP.NET Core a felhőhöz van optimalizálva (nyilvános felhő, magánfelhő, bármely felhő), mert alacsony memória és nagy átviteli sebesség. A ASP.NET Core-alkalmazások kisebb kihasználtsága azt jelenti, hogy több ilyen alkalmazást is üzemeltethet ugyanazon a hardveren, és kevesebb erőforrásért kell fizetnie használatalapú felhőalapú üzemeltetési szolgáltatások használatakor. A nagyobb átviteli sebesség azt jelenti, hogy több ügyfelet is kiszolgálhat egy alkalmazásból ugyanazzal a hardverzel, ami tovább csökkenti a kiszolgálókba és az infrastruktúra üzemeltetésébe való befektetés szükségességét.

Platformfüggetlen

ASP.NET Core platformfüggetlen, és Linux, macOS és Windows rendszeren is futtatható. Ez a funkció számos új lehetőséget kínál mind a ASP.NET Core-nal készült alkalmazások fejlesztéséhez, mind üzembe helyezéséhez. A Docker-tárolók – Linux és Windows rendszeren egyaránt – ASP.NET Core-alkalmazásokat üzemeltethetnek, így kihasználhatják a tárolók és a mikroszolgáltatások előnyeit.

Moduláris és lazán összekapcsolt

A NuGet-csomagok első osztályú állampolgárok a .NET Core-ban, és ASP.NET Core-alkalmazások számos kódtárból állnak a NuGeten keresztül. Ez a részletes funkcionalitás segít biztosítani, hogy az alkalmazások csak a ténylegesen igényelt funkcióktól függjenek, és üzembe helyezzék őket, csökkentve a lábnyomukat és a biztonsági rések felületét.

ASP.NET Core teljes mértékben támogatja a függőséginjektálást mind belsőleg, mind az alkalmazás szintjén. A felületek több implementációval is rendelkezhetnek, amelyek szükség szerint felcserélhetők. A függőséginjektálás lehetővé teszi, hogy az alkalmazások lazán kapcsolódjanak ezekhez a felületekhez a konkrét implementációk helyett, így könnyebben bővíthetők, karbantarthatók és tesztelhetők.

Könnyen tesztelhető automatizált tesztekkel

ASP.NET alapalkalmazások támogatják az egységtesztelést, és a függőséginjektálás laza összekapcsolása és támogatása megkönnyíti az infrastruktúra problémáinak cseréjét hamis implementációkkal tesztelési célokra. ASP.NET Core rendelkezik egy TestServerrel is, amely a memóriában lévő alkalmazások üzemeltetésére használható. A funkcionális tesztek ezután kéréseket intézhetnek ehhez a memóriabeli kiszolgálóhoz, gyakorolhatják a teljes alkalmazásvermet (beleértve a köztes szoftvereket, az útválasztást, a modellkötést, a szűrőket stb.), és választ kaphatnak, mindezt annak a töredékében, amíg az alkalmazást valós kiszolgálón üzemeltetik, és kéréseket intéznek a hálózati rétegen keresztül. Ezek a tesztek különösen könnyen írhatóak és értékesek az API-k számára, amelyek egyre fontosabbak a modern webalkalmazásokban.

Hagyományos és SPA-viselkedések támogatottak

A hagyományos webalkalmazások kevés ügyféloldali viselkedést igényeltek, de ehelyett a kiszolgálóra támaszkodtak az összes navigációhoz, lekérdezéshez és frissítéshez, amit az alkalmazásnak el kell végeznie. A felhasználó által végrehajtott minden új műveletet egy új webes kérésre fordítunk le, amelynek eredménye egy teljes oldal újratöltése a végfelhasználó böngészőjében. A klasszikus Modellnézet-vezérlő (MVC) keretrendszerek általában ezt a megközelítést követik, és minden új kérés egy másik vezérlőműveletnek felel meg, amely viszont egy modellel működik, és visszaad egy nézetet. Az egyes műveletek egy adott oldalon AJAX (Aszinkron JavaScript és XML) funkcióval bővíthetők, de az alkalmazás teljes architektúrája számos különböző MVC-nézetet és URL-végpontot használt. Emellett ASP.NET Core MVC támogatja a Razor Pagest is, amely egyszerűbb módja az MVC stílusú lapok rendszerezésének.

Az egyoldalas alkalmazások (SLA-k) ezzel szemben nagyon kevés dinamikusan létrehozott kiszolgálóoldali oldalbetöltést foglalnak magukban (ha vannak ilyenek). Számos SLA inicializálódik egy statikus HTML-fájlban, amely betölti az alkalmazás elindításához és futtatásához szükséges JavaScript-kódtárakat. Ezek az alkalmazások nagy mértékben használják a webes API-kat az adatigényeikhez, és sokkal gazdagabb felhasználói élményt nyújtanak. BlazorWebAssembly az SLA-k .NET-kód használatával történő kiépítésének eszköze, amely ezután az ügyfél böngészőjében fut.

Számos webalkalmazás magában foglalja a hagyományos webalkalmazások viselkedésének kombinációját (általában a tartalom esetében) és az SLA-kat (interaktivitás esetén). ASP.NET Core az MVC -t (nézetek vagy lapalapú) és a webes API-kat is támogatja ugyanabban az alkalmazásban, ugyanazokkal az eszközökkel és a mögöttes keretrendszertárak használatával.

Egyszerű fejlesztés és üzembe helyezés

ASP.NET Core-alkalmazások egyszerű szövegszerkesztőkkel és parancssori felületekkel, vagy teljes körű fejlesztési környezetekkel, például a Visual Studióval írhatók. A monolitikus alkalmazások általában egyetlen végponton vannak üzembe helyezve. Az üzembe helyezések egyszerűen automatizálhatók egy folyamatos integrációs (CI) és folyamatos kézbesítési (CD) folyamat részeként. A hagyományos CI/CD-eszközök mellett a Microsoft Azure integrált támogatást nyújt a Git-adattárakhoz, és automatikusan telepítheti a frissítéseket egy adott Git-ágon vagy -címkén. Az Azure DevOps teljes funkcionalitású CI/CD buildelési és üzembehelyezési folyamatot biztosít, a GitHub Actions pedig egy másik lehetőséget kínál az ott üzemeltetett projektekhez.

Hagyományos ASP.NET és webes űrlapok

A ASP.NET Core mellett a hagyományos ASP.NET 4.x továbbra is robusztus és megbízható platform a webalkalmazások létrehozásához. ASP.NET támogatja az MVC- és webes API-fejlesztési modelleket, valamint a Webes űrlapokat, amelyek kiválóan alkalmasak a lapalapú alkalmazások gazdag fejlesztésére, és gazdag külső összetevő-ökoszisztémával rendelkezik. A Microsoft Azure régóta támogatja ASP.NET 4.x-alkalmazásokat, és sok fejlesztő ismeri ezt a platformot.

Blazor

Blazor ASP.NET Core 3.0-s és újabb verziói tartalmazzák. Új mechanizmust biztosít a gazdag interaktív webes ügyfélalkalmazások létrehozásához a Razor, a C# és a ASP.NET Core használatával. A modern webalkalmazások fejlesztésekor egy másik megoldást is kínál. Két verziót Blazor kell figyelembe venni: kiszolgálóoldali és ügyféloldali.

A kiszolgálóoldali Blazor kiadás 2019-ben jelent meg ASP.NET Core 3.0-val. Ahogy a neve is mutatja, a kiszolgálón fut, és megjeleníti az ügyféldokumentum módosításait a böngészőben a hálózaton keresztül. A kiszolgálóoldal Blazor gazdag ügyfélélményt biztosít anélkül, hogy ügyféloldali JavaScriptet kellene igényelnie, és anélkül, hogy külön lapbetöltést kellene megkövetelnie minden ügyféloldali interakcióhoz. A betöltött lap módosításait a kiszolgáló kéri és dolgozza fel, majd a SignalR használatával visszaküldi az ügyfélnek.

A 2020-ban kiadott ügyféloldali Blazormódosítások nem szükségesek a kiszolgálón. Ehelyett . WebAssembly NET-kódot futtat az ügyfélen belül. Az ügyfél szükség esetén továbbra is indíthat API-hívásokat a kiszolgálóhoz az adatok lekéréséhez, de az ügyféloldali viselkedés az ügyféloldali viselkedésen keresztül WebAssemblyfut, amelyet az összes fő böngésző már támogat, és csak egy JavaScript-kódtár.

Hivatkozások – Modern webalkalmazások