A .NET Aspire lehetőséget ad arra, hogy modern felhő alapú alkalmazásokat építsünk a Microsoft Azure platformon. Az Aspire Starter Application sablon segítségével új projektet hozhatunk létre, amely alapot ad a fejlesztéshez, miközben biztosítja a szükséges eszközöket és sablonokat. Az alkalmazásunkat például SampleAspireProject néven hozhatjuk létre, és ennek a példának az útmutatóját követve könnyedén elkezdhetjük a munkát.

Miután létrehoztuk a projektet, a Visual Studio automatikusan egy áttekintő oldalt nyit meg, amely tartalmazza a Microsoft hivatalos dokumentációjára mutató linkeket. Ez segít nekünk a megoldásunk felépítésében és az alkalmazásunk telepítésében, valamint a szolgáltatás felfedezésében. Ezen az oldalon különféle fülek találhatók, például a Connected Services, amely lehetővé teszi, hogy hozzáadjuk a szükséges szolgáltatás-dependenciákat és szolgáltatás referenciákat.

A szolgáltatás-dependenciák hozzáadása során például választhatunk egy Azure szolgáltatást, amelyet a projektünkhöz szeretnénk csatolni, viszont ehhez szükség van egy aktív Azure előfizetésre. A szolgáltatás-referencia hozzáadásával három különböző API specifikáció között választhatunk: OpenAPI, gRPC és WCF Web Service. Ez lehetővé teszi, hogy a szükséges adatokat és szolgáltatásokat gyorsan integráljuk a projektünkbe.

A sablonunk négy különböző projektet hoz létre a megoldás számára:

  • ApiService: Az ASP.NET Core minimal API-kat tartalmazó backend logikai réteg.

  • AppHost: A projekt, amely a megoldásunk konfigurációját tárolja.

  • ServiceDefaults: A közös projekt, amely alapértelmezett konfigurációkat és potenciális objektumokat tartalmaz, amelyeket több szolgáltatásban is használhatunk.

  • Web: A frontend fejlesztésére szolgáló Blazor projekt.

Alapértelmezés szerint az AppHost projekt kerül kijelölésre, mint a fő projekt. Ha elindítjuk a megoldást, a .NET Aspire sablon megnyitja a SampleAspireApp vezérlőpultot, amely segítségével nyomon követhetjük az alkalmazásunk működését, például logok, nyomok és környezeti beállítások segítségével. A vezérlőpulton belül minden végpontot elérhetünk, amelyek az alkalmazásunk különböző részeihez tartoznak.

Miután a helyi fejlesztést befejeztük, közvetlenül az Azure platformra is telepíthetjük az alkalmazásunkat, feltéve, hogy rendelkezünk Azure Developer CLI-val. A Publish Profiles segítségével az alkalmazásunkat különféle célszerverekre vagy környezetekbe is telepíthetjük.

A következő fontos lépés, hogy megvizsgáljuk az Azure Functions fejlesztést a Visual Studio-ban, amely egy másik népszerű felhőszolgáltatás a Microsoft Azure platformján. Az Azure Functions a szerver nélküli számítástechnikát biztosít, lehetővé téve a fejlesztők számára, hogy kis kód darabokat futtassanak anélkül, hogy az infrastruktúrával kellene foglalkozniuk. Az Azure Functions egy eseményvezérelt modellt kínál, amely lehetővé teszi számunkra, hogy alkalmazásokat építsünk, amelyek reagálnak az adatváltozásokra valós időben, automatizálják a feladatokat, és zökkenőmentesen integrálódnak más rendszerekkel.

A Visual Studio-ban az Azure Functions projekt létrehozásához először ellenőriznünk kell, hogy az Azure fejlesztési munkaterület telepítve van. Miután ez megtörtént, elindíthatjuk egy új Azure Functions projekt létrehozását, például SampleAzureFunction néven. Az Azure Functions projekt különböző típusú eseményeket képes kezelni, mint például HTTP kérés, adatbázis változások, időzítők vagy más Azure szolgáltatások.

A Visual Studio különböző eseményindítók (triggerek) közül is választhatunk a funkciónkhoz. Például:

  • HTTP Trigger: lehetővé teszi, hogy egy HTTP végpontot hozzunk létre, amely meghívható a funkció futtatásához.

  • IoT Hub Trigger: Az IoT Hub eseményeire válaszolhatunk, amelyek IoT eszközök telemetriai adatainak feldolgozására használhatók.

  • Timer Trigger: Lehetővé teszi, hogy a funkció időzítve fusson, például napi mentésekhez vagy jelentésekhez.

Miután a megfelelő trigger típust kiválasztottuk, be kell állítanunk a funkció hitelesítési szintjét is. Három szint közül választhatunk:

  • Function: Csak azok férhetnek hozzá, akik jogosultságot kaptak a funkció futtatására.

  • Anonymous: Bármely kliens, hitelesítés nélkül is elérheti a funkciót.

  • Admin: Teljes adminisztrátori jogosultságot ad a funkciónak.

Miután mindent beállítottunk, elkezdhetjük a funkció logikájának fejlesztését, majd azt az Azure platformra telepíthetjük. A telepítés folyamata egyszerű, csak ki kell választanunk a cél Azure Function App-ot, és meg kell adnunk egy egyedi nevet a funkciónknak, hogy elkerüljük a név ütközéseket.

A Visual Studio és a .NET Aspire sablonok alkalmazása lehetővé teszik a felhő alapú alkalmazások hatékony és gyors fejlesztését. Az Azure Functions és egyéb Azure szolgáltatások egyszerű integrálásával az alkalmazásunk nemcsak felhő alapú, hanem skálázható és rugalmas is lesz, alkalmazkodva a különböző fejlesztési igényekhez.

Hogyan állítsunk be egységtesztelést a Visual Studio 2022-ben?

A Visual Studio 2022 és a .NET három különböző tesztelési keretrendszert támogat, amelyek mindegyike különböző előnyökkel rendelkezik a fejlesztők számára. Az MSTest az alapértelmezett keretrendszer, amely a Microsoft által van biztosítva .NET alkalmazásokhoz. Kiváló integrációval rendelkezik a Visual Studio-ban, és könnyen használható az IDE-n belüli tesztek írására és futtatására. A második lehetőség, az NUnit, egy nyílt forráskódú tesztelési keretrendszer, amely rugalmas és kiterjeszthető platformot biztosít a teszteléshez, és széles körben használt a .NET közösségben. A harmadik lehetőség, az xUnit, szintén nyílt forráskódú, és modernebb, rugalmasabb megközelítést kínál, amely egyre népszerűbb a fejlesztők körében.

Az első lépés egy új projekt létrehozása a tesztek számára a kívánt megoldásban. A tesztelni kívánt projekt mellett jobb gombbal kattintva választható az „Add | New Project...” lehetőség, amivel egy új tesztprojektet hozhatunk létre. Ezen a képernyőn a három legnépszerűbb tesztelési keretrendszer található, amelyek a Visual Studio-ban alapértelmezetten elérhetők. Fontos megemlíteni, hogy az utolsó két sablon a Playwright-ot is tartalmazza, amely egy olyan könyvtár, amely lehetővé teszi a modern webalkalmazások end-to-end tesztelését. Ezzel lehetőség van arra, hogy egységteszteket írjunk a felhasználói felület funkcióinak tesztelésére.

Amennyiben gyorsan szeretnénk tesztprojektet létrehozni, lehetőség van arra is, hogy közvetlenül a kód alap osztályán jobb gombbal kattintva válasszuk a „Create Unit Tests” opciót, amely szintén egy konfigurálható tesztprojektet hoz létre. Az itt létrehozott tesztek mindegyike a Test Explorer ablakban lesz kezelhető, amit a következő fejezetben részletesen áttekintünk.

A Test Explorer nézet

A Test Explorer a Visual Studio 2022 egyik legfontosabb eszköze, amely lehetővé teszi az egységtesztek kezelését és futtatását. Ez az ablak segít a tesztkészletek átlátható és rendezett kezelésében, és számos fejlett funkcióval rendelkezik a tesztelési munkafolyamatok megkönnyítésére. A Test Explorer elérése többféle módon is történhet: választhatjuk a Test menüt a Visual Studio-ban, vagy használhatjuk a gyorsbillentyűket, például a Ctrl + E, majd T kombinációt. Az újabb verziókban (17.6-tól kezdve) a keresőfunkció is elérhető, amellyel gyorsan rátalálhatunk a kívánt tesztekre.

A Test Explorer ablak lehetővé teszi a tesztek kategorizálását és csoportosítását különböző szempontok alapján, például végrehajtási idő, állapot vagy célkeretrendszer szerint. Az alapértelmezett csoportosítás szerint a tesztek először a projektek, majd a névterek, végül az osztályok szerint jelennek meg. A "Group By" gomb segítségével azonban könnyedén módosíthatjuk ezt a szervezési logikát, hogy jobban illeszkedjen a tesztjeinkhez.

Szűrés és keresés

A Test Explorer különböző szűrési és keresési lehetőségeket kínál, amelyek segítenek a tesztkészletek gyors áttekintésében. A szűrési funkciók lehetővé teszik, hogy meghatározzuk a tesztek kategóriáit vagy más szempontokat, például a tesztek végrehajtási idejét vagy állapotát. A keresési funkcióval könnyen rátalálhatunk a kívánt tesztekre, ha például egy adott névtérre vagy egyéb szűrési kritériumra van szükség.

Tesztlejátszási listák létrehozása

A Test Explorer egy további hasznos funkciója a tesztlejátszási listák kezelése. Ez a lehetőség lehetővé teszi a tesztek csoportosítását, majd az ezekből készült lejátszási listák szerkesztését és futtatását. A tesztlejátszási listák dinamikusan frissíthetők, és XML fájl formátumban elmenthetők, amely manuálisan is szerkeszthető, ha szükséges. A tesztlejátszási listák segítségével könnyen rendezhetjük és futtathatjuk a teszteket különböző szempontok szerint.

Tesztkészítés IntelliTest-tel

A Visual Studio 2022-ben elérhető IntelliTest egy előzetes funkció, amely segíti a tesztek automatikus generálását. Az IntelliTest képes arra, hogy karakterizálja a kódot, és különböző tesztkészleteket generáljon a kód viselkedésének megértéséhez. Ezen tesztek segítségével könnyedén kezelhetjük a kódrefaktorálás vagy a régi, ismeretlen kód tesztelését. Az IntelliTest képes automatikusan generálni a tesztadatokat és biztosítja, hogy a kód megfelelő tesztelését végezzük el, minden metódusra vonatkozóan.

Az IntelliTest számos előnnyel jár: az automatikusan generált bemenetek és kimenetek tesztelése mellett a tesztek eredményei közvetlenül a Visual Studio Test Explorer-ben is megjelennek. Az IntelliTest segítségével könnyen iterálhatunk a kód finomhangolása és a tesztek futtatása között anélkül, hogy elhagynánk az IDE-t. Az IntelliTest jelenleg a Visual Studio Enterprise Edition részét képezi, és a legújabb verziókban érhető el.

Mindezek mellett a Visual Studio 2022 számos eszközt kínál a tesztelési munkafolyamatok optimalizálására. A Test Explorer és az IntelliTest integrációja biztosítja, hogy a fejlesztők könnyen navigáljanak a tesztelési ciklusokban, anélkül, hogy a munka sebessége csökkenne.