Már egy ideje fontos szempont, hogy minden szolgáltatást az Azure szolgáltatásain keresztül – egyéb külső infrastruktúra nélkül – tudjunk használni. Napokban szembejött a kérdés, hogy miképp lehetne a vastag kliens alkalmazás Click Once telepítőjét is a lehető legegyszerűbben és költséghatékonyan publikálni.

Sajnos a Visual Studio 2017-ben sincs erre jó megoldás, így kicsit gondolkodni és keresni is kellett, majd a kapott információk alapján az egészet a jelenlegi szolgáltatásokhoz igazítani. Lássuk mi is a megoldás…

Megoldás ismertetése

Bár kézenfekvő lenne, hogy a publikációt egy webapp-n keresztül publikáljuk, mégis költséghatékonysági okokból a publikációt egy nyilvánosan is elérhető blob storage konténerből fogjuk végezni. E konténereket az Azure-ban a webes https protokolon lehet elérni, csak megfelelően kell a hozzáféréseket beállítani.

E pillanattól kezdve költségünk mindössze két elemből fog állni, egyik részben a konténer méretére számított költség, másik részben a kimenő hálózati forgalomtól függő költség. Tekintve, hogy mindkettő eléggé filléres költség az Azure-ban, ezért e megoldás alkalmazása eléggé filléres üzemeltetési kiadásokat jelent számunkra, minden más megoldási lehetőséggel szemben.

1. lépés Blob konténer létrehozása

Az első lépés, hogy Azure alatt kialakítsuk a megoldásban résztvevő blob konténert:

  • Jelentkezzünk be az Azure előfizetésünk-höz
  • Hozzuk létre a számunkra szükséges Storage konténert
  • Hozzuk létre a számunkra szükséges Blob konténert
  • Állítsuk be a blob konténer jogosultsági szintjétJómagam ezen lépést már a Microsoft Azure Storage Explorer-t használom elsődlegesen (a későbbiekben majd láthatjuk, hogy ezzel a fájlok mozgatását is el tudjuk végezni).
  • Jegyezzük fel a blob konténer URL címét, ami https://<storagekonténerneve>.blob.core.windows.net/<blobkonténerneve> lesz. A későbbiekben erre rendre szükségünk lesz

Ezzel a tároláshoz, publikáláshoz szükséges konténert előállítottuk, az munkavégzésre már alkalmas.

2. lépés Click Once csomag beállítása

A következő lépés, hogy az alkalmazásunkhoz összeállítsuk az alkalmazásunkhoz a Click Once telepítőcsomagot, amihez a Visual Studio-t kell használjuk:

  • Töltsük be a számunkra szükséges Solution-t
  • Navigáljunk az érintett alkalmazáshoz és vegyük elő a projekt beállításait (Properties)
  • Navigáljunk a Publish fülre
  • Adjuk meg a létrehozandó csomag helyi tároló könyvtárát (a csomag ide kerül létrehozásra), és adjuk meg a blob storage konténer URL címét.
  • A továbbiakban célszerű ellenőrizni a létrehozásra kerül csomag beállításait, úgy mint Application files…, Prerequisites…, Updates… ezekkel most nem foglalkozunk. Ajánlott viszont az alkalmazás Options… részén kicsit körülnézni, és beállítani, a majdan a weboldalon megjelenő szövegeket és a létrehozandó oldal nevét.
  • A beállításokat ezt követően mentsük el (és természetesen a Solution-t is)

3. lépés Csomag helyi gépen történő előállítása

Az előző lépéseket csak egyszer kell elvégezni, de a telepítőcsomag előállítását természetesen már annyiszor csináljuk végig, ahányszor arra szükségünk van:

  • Töltsük be a számunkra szükséges Solution-t
  • Navigáljunk az érintett alkalmazáshoz és vegyük elő a projekt beállításait (Properties)
  • Navigáljunk a Publish fülre
  • Nyomjuk meg a Publish Wizard… vagy a Publish Now gombok egyikét. Az első esetben a beállításokat még áttekinthetjük (illetve módosíthatjuk), míg a másik esetben a csomag előállítását a rendszer azonnal megkezdi.
  • A munka végeredménye egy az általunk megadott útvonalon létrehozott telepítőanyag

E ponttól kezdve a telepítőcsomagot bárhová odamásolva, kézzel is elindíthatjuk, de ne feledjük, a telepítőcsomag mindig ellenőrzi, hogy az általunk megadott URL-n van-e a most használatostól újabb verzió.

4. lépés Csomag publikálása az Azure Blob konténerbe

Ez a lépés most csak kézi megoldással kerül bemutatásra, de természetesen számtalan módon automatizálhatjuk, a felhasználás függvényében. A feladat minden esetben ugyan az, a lokális könyvtár tartalmát fel kell másolnunk az Azure Blob konténerbe:

  • Nyissuk meg a Microsoft Azure Storage Explorer-t és navigáljunk a számunkra szükséges blob konténerhez
  • Válasszuk ki a konténerhez tartozó területen az Upload files… funkciót
  • A megjelenő ablakban adjuk meg a feltölteni kívánt fájlokat és indítsuk el a folyamatot
  • A munka végeztével a számunkra szükséges fájlok és könyvtárak az Azure-ba feltöltésre kerülnek

5. lépés tesztelés

Most már nincs más dolgunk, mint az egész telepítési processz ellenőrzése. Ehhez az általunk használt böngészőbe (ehhez ajánlott az IE) írjuk be a blob konténer url-t egészítsük ki a létrehozott weboldal nevével és nézzük meg az eredményt.

Az URL tehát valami ilyesmi lesz: https://n.blob.core.windows.net/testinstall/setup.html

További ötletekhez források: 
http://www.codewrecks.com/blog/index.php/2013/04/20/deploy-click-once-application-on-azure-blob-container-with-tfs-build/
https://blogs.msdn.microsoft.com/avkashchauhan/2011/05/09/how-to-deploy-clickonce-application-using-windows-azure-storage-in-very-simple-steps/