Prohlížeč komiksů od návrhu po nasazení - 1. díl aneb ani řádek kódu
autor Aleš Růžička
| publikováno 17. prosince 2006
V této sérii článků bych vás rád provedl vývojem jednoduchého programu od návrhu až po nasazení. Půjde o prohlížeč komiksů z internetu. Je to snadná, ale přesto velmi použitelná aplikace (alespoň pro mne). Hlavně se na ní ale budu snažit ilustrovat co nejvíce možností, které nám .net 2.0 nabízí.
V této sérii článků bych Vás rád provedl celým návrhem aplikace od samotné myšlenky až do konečného nasazení. Ačkoli výsledkem bude celkem jednoduchá aplikace, pokusím se na ní ilustrovat co nejvíce z .net frameworku 2.0. Použijeme jazyk C#, technologii .net 2.0, vyvýjet budeme v prostředí Visual Studio 2005 profesional. Většinu postupů (nebo možná všechny) půjde snadno zopakovat v nižších verzích včetně Visual C# Express (http://msdn.microsoft.com/vstudio/express/visualcsharp/), který je k dispozici zdarma. Tato série článků je určena spíše lidem, kteří si s .net framework stále netykají. Kdo si v ní co najde je ale na vás.
Specifikace požadavků aplikace zadavatele
Zadavatel je fanoušek různých komiksových stripů. Chtěl by však při jejich prohlížení využívat výhody specializovaného tlustého klienta. Důležité jsou tyto záležitosti:
Zadavatel má rád různá diskusní fóra, kde se o svých komiksech baví s jinými uživateli a ukazuje jim stripy, které se mu líbí. Proto by rád inteligentní automatickou práci se schránkou. (Clipboard)
Chce si definovat šablony na vkládání URL obrázku do schránky, aby je mohl rovnou posílat. (Práce se schránkou, stringy a xml)
Zadavatel je často offline. Chce si snadno stahovat obrázky na disk, aby je mohl později prohlížet. (Práce se soubory)
Zadavatel je zbrklý a vždy je již na dalším stripu, když si uvědomí, že se mu ten předešlý líbil a chtěl by ho poslat na fórum či uložit. Potřebuje historii. (Generický zásobník)
Zadavatel špatně vidí a rád by si stripy přibližoval. (Využití možností uživatelského rozhaní)
Zadavatel čeká, že se mu nastavení bude ukládat. (Práce s konfiguračnímy soubory)
Samozřejmostí je náhodné zobrazovnání stripů, snadné vybírání podle data, včerejší/zítřejší strip. (Navigace, náhodnost)
Zadavatel by chtěl software dále šířit a zároveň vědět, jak často je používán. (Webové služby, deployment)
Asynchronní stahování z internetu. (Vlákna, využití cizích knihoven)
A mnoho dalšího, tj. vlastní ovládací prvky, využití timeru, návrh pomocí třídního diagram, enumerátory, ...)
My již víme
Někteří autoři stripů nemají z naší aktivity radost a snaží se zamaskovat url obrázků. Budeme muset přijít na to, jak je oblestít. (Regulární výrazy ???)
Lze to také obejít využíváním amatérských databází stripů, které většinou mají datumově-odvoditelná jména souborů.
A vzdáme se touhy definovat komiksy pomocí externích XML soubrů (v případě zájmu půjde snadno doplnit). Místo toho Využijeme dědičnosti tříd. (Abstraktní třídy, dědičnost)
Nejdříve si celou záležitost necháme projít hlavou a příště začneme s objektovým návrhem.
Obecně platí, že budeme hledat nejjednodušší řešení, které bude vyhovovat :). Stejně doufám, že jsem si toho nenaložil moc a že to společně všechno zvládneme.