HostingManager hotov

Dnes jsem dokončil svůj další program, tentokrát velmi úzce související a spolupracující s mým hostingem www.sunamo.net , jak už název jistě napovídá. Tento program vypadá nějak takto:

HostingManager 17-12-2012


Ty horní ToolStripMenuItem’#x2122;s zatím nic nedělají, kromě Aplikace, která zobrazuje form Logu. Program zatím není vícevláknový, takže když aplikace dělá nějakou operaci nebo se v nějaké metodě zdrží, tak se program zasekne/zasedne a jde ho jen ukončit. Stejně tak ve spodní liště, jak tam jsou ty 2 progress bary a popisek “Total: “ se zatím nic neodehrává. To je proto že program si nezjistí nejdříve co všechno bylo změněno a až pak uploaduje nebo maže se hostingu, on to dělá průběžně. Námět na vylepšení!

Zbytek ale co vidíte je plně funkční. Ta malá oblast logu s jedinou zprávou je tak chudá proto že jsem právě teď ten program spustil a krom toho toto píšu v autě, kde není připojení k internetu takže se program pokusí prvně nalogovat na ftp server a když se mu to nezdaří, tak už další metody (s loginem a heslem, přesun do adresáře, atd.) vynechá.

Jak už jsem psal v minulém blogpostu http://sunamoblog.blogspot.cz/2012/12/weby-kocicky-i-ggdag-na-novych-adresach.html , každý web má nyní svou složku, která je “izolovaná” od ostatních složek jiných webů. Izolovaná ve smyslu že pokud v této složce je nějaký kód který využívá i jiný web, tak tento kód přesunu do složky Shared.

To zaručuje že kdykoliv budu chtít libovolný web “odstavit” tak stačí vymazat jen jednu složku. Samozřejmě mi tam zůstanou DB položky, css styly a obrázky které jsou v jiných složkách ale pokud budu chtít pouze zmenoznit přístup na nějaký web, stačí v rychlosti odstranit nebo přejmenovat jedinou složku. To je ale jen takový Bonus, skutečné plus je to že nemám všechny soubory aspx v jedné složce a může mít více webů stejně pojmenovanou stránku.

Toto jsem tak zevrubně popsal, protože je to důležité abyste věděli co budou dělat jednotlivé tlačítka, každé z těch 8. Většina jich, stejně jako 1. si rozdělí složky a podsložky podle toho co se s nimi má udělat a pak to s každou touto složkou udělá. Existuje i akce “nedělej nic se složkou” a to jak rekurzivně tak pouze “lokálně”. Pokud je taková akce tak ji nemůže nikdo ignorovat.

První tlačítko uploaduje všechny weby vybrané v té liste, jak tam jsou ty 4 ikonky. 2 tlačítko uploaduje i weby nevybrané. Třetí tlačítko obnoví seznam souborů v levém TreeView(stromu). On se stejně vždycky obnovuje automaticky když chci synchronizovat změny ale pokud ho chci obnovit ručně, tak taky můžu. 4. tlačítko je hodně důležité když jsem na hosting nauploadoval pomocí jiného FTP klienta a mám tak zastaralé údaje v DB o souborech na hostingu.

5. tlačítko odstraňuje nepoužívané soubory na hostingu, které nejsou na localu ale nechá prázdné složky – resp. nekontroluje které složky zůstali prázdné. 6. tlačítko je podobné s tím rozdílem že po odstranění všech souborů z dané složky si zkontroluje zda složka není prázdná a pokud je, tak ji odstraní.

7. tlačítko je podobné 1., funguje na stejném principu ale nezjišťuje si z FTP serveru které soubory na hostingu jsou ale z DB. To celý proces výrazně urychluje. 8. tlačítko je podobné 2. protože opět uploaduje všechny weby a informace o tom co je na hostingu si bere z DB.

Vývoj tohoto programu mi trval celkově asi 3 dny, to není moc ale mezi jednotlivými časy byly dlouhé pauzy kdy jsem nic nedělal, takže jsem jej co se týká časového intervalu vyvíjel asi 8 dní. Z počátku tam byla dlouhá časová pauza několik dnů, pak jsem za 1 den ho prakticky celý dokončil, ale pak jsem zjistil že mi nefunguje upload na web(ta třída kterou jsem použil posílala přímo nízkoúrovňové sockety a nepracoval s třídou FtpWebRequest). Tak jsem to nahradil tu metodu pro upload metodou používající FtpWebRequest.

To pomohlo ale později jsem zase přišel nato že mi nefunguje metoda, která posílá FTP příkaz LIST(Detailní výpis adresáře). Sice jsem s tím trochu cachroval protože mi to vracelo 226 Transfer Complete a přece to hazelo chybu ale nakonec jsem to vyřešil tak že jsem použil osvědčenou metodu s FtpWebRequest.

Pak se to již rozjelo, poslední věc co jsem já dělal bylo ta práce s databází, a samozřejmě ladění a testování. Je to naprogramované hodně ledabyle, chaoticky a spoustu věcí by šlo přesunout do samostatných metod a využívat je častěji, místo toho abych to já psal pokaždé znovu, což by mi na jedné straně zvýšilo abstrakci a délku vykonávání kódu, na druhé straně program by byl čistší, jasnější, spravovatelnější.

Množství kódu by se taky mírně snížilo.

Leave a Reply

Your email address will not be published. Required fields are marked *