Desktopové aplikace pro Windows
Desktopové aplikace pro Windows jsou historicky starší než webové aplikace. Oproti webovým aplikacím řadu výhod, kvůli kterým jsou pro některá použití vhodnější. Aplikace pro Windows běží přímo v počítači, mohou proto využít celý jeho výpočetní výkon, pracovat s uloženými soubory, zpracovávat velké množství údajů nebo mohou jednoduše používat zvukové funkce počítače, pracovat s připojenými periferiemi - například ukládat data za zapisovatelná CD nebo DVD média. Ke svému provozu nepotřebují internet. Data při jejich použití nejsou přenášena přes internet, takže ochrana důvěrných informací je jednodušší. Na druhou stranu zálohování dat uložených na počítači není tak snadné jako v případě webového serveru.
Nabízené desktopové aplikace běží pouze na zařízeních s Microsoft Windows a před použitím je nutné je do počítače, na notebook nebo tablet nainstalovat. V průběhu instalace a při každé aktualizaci je nutné použít uživatelský účet s právy administrátora použitého počítače.
Zvláštním případem aplikací jsou VBA skripty pro programy z kancelářského balíku Microsoft Office - VBA makra pro MS Excel, Access nebo Word. Tyto programy mají propracované uživatelské rozhraní a jejich doplnění o další funkce z nich může udělat mimořádně pohodlné a efektivné nástroje pro řady úloha jako je například analýza dat, výpočet provizí, datová transformace nebo generování reportů.
Průběh projektu
Vymezení rozsahu a analýza
Projekt začíná schůzkou u zákazníka, kde zjišťuji, proč zákazník desktopovou aplikaci potřebuje, co od ní očekává a jaké potřeby má naplnit. V případě potřeby zorganizuji workshopy nebo další jednání se zaměstnanci zákazníka. Výstupem jednání je zápis nebo zápisy, které vymezují rozsah projektu. Zápisy tvoří přílohu smlouvy o dodání a podpoře desktopové aplikace, která vymezuje roli jednotlivých stran a zakotvuje například vzájemnou součinnost při dodávce řešení.
Vzájemná komunikace v průběhu projektu může probíhat s využitím nástroje GitLab nebo Jira.
Pokud je to vhodné, například v případě většího projektu, předkládám zákazníkovi k vyjádření analytické výstupy popisující budoucí řešení. Tyto výstupu mohou zahrnovat datový model aplikace, popis flow, návrh podoby obrazovek a podobně.
Proof of concept
U řešení, která obsahují nějaký dosud nevyzkoušený prvek, začíná vývoj fází "proof of concept", jejímž cílem je ověřit použitelnost zvoleného řešení. Na jejím vyhodnocení se podílí všichni účastníci projektu.
Vývoj a nasazení
Vývoj probíhá iterativně a interaktivně tak, jak je popsáno na následující záložce. Po skončení vývoje je aplikace otestována a odběratelem akceptována.
Před jejím nasazením do provozu je často potřeba provést migraci existujících dat z předchozího řešení, případně aplikaci naplnit statickými daty jako jsou číselníky a další parametry.
Desktopová aplikace je vytvořena pomocí Microsoft .net frameworku nebo v případě potřeby jiným způsobem. Výstupem projektu jsou elektronicky podepsané instalační soubory.
Nasazením nové aplikace do provozu projekt nekončí - v prvních dnech a týdnech je běh aplikace sledován, aby případné odchylky od zamýšleného stavu, které se neprojevily nebo nemohly projevit při testování, mohly být co nejdříve rozpoznány a opraveny.
Změnové požadavky
Případné změnové požadavky přesahující vymezený rozsah projektu jsou řešeny jako změny stávajícího projektu podléhající dohodě obou stran s možným dopadem na jeho cenu a termín dodání nebo jako zadání pro další projekt.
Uživatelská licence
Při vývoji desktopových aplikací, pokud není při začátku projektu dohodnuto jinak, používám vlastní komponenty nebo komponenty zakoupené pouze pro potřeby projektu. Odběratel se proto stává vlastníkem konkrétního grafického řešení ve spojení s použitými číselníky a texty, ale nevýhradním uživatelem funkčních částí desktopové aplikace. Zdrojový kód webové aplikace není odběrateli k dispozici.
Vývoj a testování
Vývoj desktopové aplikace probíhá na mých počítačích s využitím vlastních testovacích prostředí. Klíčové části může být potřeba testovat na hardwaru zákazníka nebo v jeho testovacím prostředí. Dílčí verze má odběratel k dispozici ve své zákaznické samoobsluze, na kterou mají prostřednictvím uživatelského jména a hesla přístup pouze oprávněné osoby. Data předávaná přihlašovacím formulářem jsou šifrovaná a případný útočník je proto nemůže zachytit.
Vývoj probíhá po ucelených etapách podle projektového plánu, to znamená, že odběratel si může dokončené části prohlédnout a v závislosti na funkčnosti celého řešení také vyzkoušet. Tím je výrazně usnadněna součinnost při vývoji a diskuse o možných variantách řešení zjednodušeny. V případě potřeby je možné provést korekci již v průběhu vývoje, což celkové náklady na projekt snižuje.
Po dokončení vývoje aplikaci testuji a podle dohody s odběratelem předkládám protokoly o jejím otestování. Kritické části testuji také vzhledem k předpokládanému množství dat nebo operací (zátěžové testování). Pokud je to potřeba, poskytuji součinnost při bezpečnostních testech (penetrační testování).
Závěrem vývoje a testování je akceptace dodaného řešení odběratelem, kdy odběratel může aplikaci vyzkoušet a vyjádřit se k její funkčnosti.
Mnou dodávané desktopové aplikace jsou vybaveny automatickým reportingem případných selhání této aplikace a systémem logování událostí, které usnadňují detekci a analýzu případných problémů.
Bezpečnost
U desktopových aplikací je jejich bezpečnost dána zejména bezpečnostním nastavením a používáním operačního systému, na kterém jsou provozovány. V případě potřeby je možné i v desktopových aplikacích zavést jednotlivé uživatele a jejich práci s aplikací řídit prostřednictvím přístupových práv a přiřazených rolí. Důvěrná data je možné před uložením na disk a nebo do databáze šifrovat.
Hesla uživatelů nejsou ukládána v textové podobě a z uložených dat je není možné zjistit. Pokud uživatel heslo zapomene a potřebuje si nastavit heslo nové, administrátor aplikace mu může heslo nastavit a uživatel si ho může následně změnit.
Zajištění bezpečnosti desktopových aplikací a zálohování dat je plně v režii zákazníka resp. jeho zaměstnanců nebo uživatelů.
Možným rizikem na straně dodavatele je prozrazení nebo ztráta dát zákazníků uložených na mých počítačích nebo zdrojových kódů dodaných aplikací. Moje zdrojové texty a další soubory vztahující se k dodané desktopové aplikaci jsou proto na discích mých počítačů plně šifrovány a automaticky zálohovány v šifrované podobě off-site denně, do trezorové skříně pak jednou měsíčně.
Kritická data je možné na mém serveru uložit tak, že k nim pověřené osoby získají přístup, pokud se v pravidelném cyklu na server nepřipojím a zámek tak neprodloužím.
Instalace
Desktopové aplikace jsou na počítače zákazníků instalovány mým vlastním instalačním programem, který zajistí překopírování všech potřebných souborů a registraci systémových komponent. Pokud zákazník již software neplánuje využívat, umožňuje instalátor jeho odstranění z disku počítače.
Instalační soubory jsou stahovány z webu šifrovaným kanálem, což zajistí jejich nezměnitelnost v průběhu stahování. Aby si zákazník mohl být naprosto jistý, že do svého počítače instaluje opravdu můj software a nikoliv potenciálně škodlivý kód podvržený útočníkem, jsou všechny moje aplikace elektronicky podepsané certifikátem, kterému Microsoft Windows důvěřují.
Provoz a podpora
Desktopová aplikace je vytvořena pomocí Microsoft .net frameworku nebo po dohodě jiným vhodným nástrojem a je provozována na počítačích zákazníka.
V případě zájmu zákazníka mohu nabídnout uzavření smlouvy o podpoře desktopové aplikace za cenu odvozenou od rozsahu aplikace a předpokládaném množství nutných servisních zásahů. V rámci této služby bezplatně odstraňuji chyby, které brání řádnému užívání aplikace v rozsahu dle projektové dokumentace. Případné vícepráce jsou fakturovány odděleně.
Ke komunikaci je možné použít prostředí nástroje GitLab nebo Jira, kde jsou evidovány jednotlivé požadavky a průběh jejich řešení.
Reference
Níže uvádím vybrané reference webových aplikací. V případě dotazů se na mě, prosím, podle potřeby obraťte.
Logopedický a výukový software Mentio ®
Mojí nejvýznamnější referencí v oblasti desktopových aplikací je řada logopedického softwaru a výukových počítačových programů Mentio ®. Programy jsou určeny pro rozvoj řeči a komunikace a upevnění některých dalších dovedností u zdravé populace a u uživatelů s mírným až středně těžkým handicapem. V každém z titulů se procvičuje něco jiného: tvoření hlasu, výslovnost, čtení, psaní, počítání, paměť, sluchová diferenciace, zrakové vnímání, logické a časoprostorové vztahy atd. Vždy je k dispozici řada nastavitelných parametrů, aby bylo možné vhodně přizpůsobovat potřebnou úroveň obtížnosti. Jedná se o následující tituly:
- Program "Mentio Slovní zásoba (Cílené pojmenování, čtení, psaní a kontrola výslovnosti)" obsahuje 446 obrázků (upravené digitální fotografie) uspořádaných do 9 tematických okruhů: Barvy, Jídlo, Peníze, Doprava, Lidské tělo, Oblečení, Osobní věci, Venku, Příroda.
- Program "Mentio Slovesa (Jednoduché věty a dějové posloupnosti)" obsahuje šedesát činností z běžného života. Ke každé z nich patří čtveřice obrázků umožňující k dané činnosti sestavit dějovou posloupnost. Celkem je tedy v programu 240 vyobrazení s doprovodnými texty.
- Program "Mentio Hádanky (Úkoly na kontrolu rozumění textu a rozvoj logického myšlení)" obsahuje 240 hádanek uspořádaných do čtyř skupin podle úrovně obtížnosti.
- Program "Mentio Zvuky (Rozpoznávání zvuků a trénink sluchové paměti)" obsahuje 200 zvuků z běžného života a dalších cca. 950 krátkých zvukových podnětů. Součástí programu je i audiotest, s jehož pomocí lze v případě pochybností rychle a jednoduše zhodnotit kvalitu sluchu testované osoby.
- Program "Mentio Hlas (Program pro nácvik fonace a modulace hlasu)" poskytuje vizuální zpětnou vazbu při tvoření hlasu a rozvíjí schopnost modulace ve smyslu změny intenzity a frekvence tónu.
- Program "Mentio Nakupování (Početní úlohy podporující samostatnost v obchodě a při zacházení s penězi)" si klade za cíl naučit uživatele poznávat hodnoty jednotlivých mincí a bankovek, chápat cenu věcí v obchodě, umět si spočítat celkovou částku, kterou bude třeba zaplatit (u malých nákupů přesně, u větších orientačně), a dokázat tuto částku sestavit z peněz, které jsou k dispozici.
- Program "Paměťová cvičení Mentio MM (Soubor úloh na procvičení paměti - Memory Management)" obsahuje čtyři typy cvičení zaměřené na trénink krátkodobé paměti, nácvik pozornosti a soustředění, rozumění psanému textu, rozlišování číslic a tvarů a pochopení prostorových pojmů "nad", "pod", "vlevo", "vpravo" a "vedle".
- Program "Mentio Skládačky (Cvičení zrakové percepce)" obsahuje tematicky uspořádané digitální fotografie. Uživatel nechá obrázky rozdělit na několik částí. Po spuštění cvičení se jednotlivé části obrázku promíchají a zobrazí se v levé části obrazovky. Úkolem bude přesunout promíchaná políčka z levé části obrazovky do rámečku vpravo tak, jak k sobě jednotlivé části obrázku patří, tj. složit obrázek do původní podoby.
- Program "Mentio Nahrávání (Software pro pořizování a popis zvukových nahrávek)" umožňuje pořizovat zvukové záznamy, nahrávky následně popisovat, označovat v nich zajímavé úseky na různých jazykových rovinách, záznamy ukládat k jednotlivým mluvčím a veškeré soubory přehledně archivovat.
Navštívit web...
Generátor tónů pro MS Excel
Zadavatel požadoval dodat řešení, kde bude moci sám pomocí Excelu generovat tóny o určené hlasitosti, délce, frekvenci a s určením výstupu do levého, pravého nebo obou zvukových kanálů.
Řešením bylo dodání přímo spustitelné aplikace pro Windows (v lévé části obrázku), která dostávala řídící pokyny z VBA skriptu v MS Excelu. V pravé části obrázku je formulář s demonstračním kontrolním panelem, který byl použit pro otestování řešení a byl předmětem akceptace. Zákazník VBA program s využitím dodaného generátoru tónů dále samostatně rozvíjel.
Generátor a řešitel sudoku
Poměrně malou, ale funkčně zajímavou aplikací je generátor a řešitel zadání populární logické hry sudoku.
Generátor zadání lze nastavit na generování zadání s různou obtížností. Zajímavou volbou je generování zadání, kde každý krok řešení je nebo není jednoznačně určen.
Řešitel zadání najde všechna řešení, pokud ovšem existují.
VBA makra (MS Excel, Access, Word)
VBA makra představují mimořádně efektivní nástroj pro práci s daty nebo textovými soubory. Je možné je použít v prostředí aplikací Microsoft Access, Microsoft Excel nebo Microsoft Word, případně mohou být součástí samostatně stojící aplikace, která pouze využívá některé funkce programů kancelářského balíku Microsoft Office, například MS Access pro ukládání dat.
Během svojí kariéry jsem jako zaměstnanec nebo v rámci projektů pro velké korporátní zákazníky vytvořil několik nástrojů založených na využití VBA maker. Některé z nich byly používány rutinně, jiné byly v rámci projektu vytvořeny pro jednorázové použití.
Snímky obrazovek, které na této stránce vidíte, byly upraveny a jsou pouze ilustrační, přesto vystihují ovládací panely několika skutečných aplikací které byly ke zpracování dat použity a sloužily k datové transformaci nebo migraci (analogie ETL procesů). K úpravám obrazovek jsem přistoupil s ohledem na smluvní ujednání, které mi neumožňují zveřejňovat důvěrné informace.
Uvedené aplikace měly například následující funkčnosti:
- Import výchozích dat z databáze Oracle nebo MS SQL.
- Rekonstrukce výchozích dat, modelování časových stavů smluv.
- Seskupování dat o klientech s cílem identifikovat zástupce (model pointy) pro statistické modelování budoucího chování portfolia obchodních smluv nebo modelování portfolia klientů.
- Generování reportů o obchodech ve formátu PDF pro jednotlivé prodejce nebo smluvní partnery.
- Export dat pro potřeby jejich importu do produkční databáze ve formátu insert scriptů nebo csv souborů.