Když člověk začíná s programováním, dělá roztodivné prográmky. Vzpomínám si, že jsem psal různé “užitečné” aplikace, jako např. na zjišťování svátků nebo SPZ, různé hry a hříčky a tak – některé výtvory můžete najít na mých archaických (10 let starých) stránkách. Oblíbeným typem prográmků pak byly také různé “databáze” – adresář s kontakty, evidence cédéček apod. Tehdy jsem složitě dělal načítání a ukládání ze/do souboru (nejlépe v každé verzi programu úplně jiný, často binární, formát), hlídání všech kontrolek na formuláři a ukládání změn atd. Protože od mých programátorských začátků uplynulo už dost času, napadlo mě, jak bych si s takovým prográmkem poradil dnes. Nejen díky tomu, že už toho umím víc, ale také protože docela postoupila technologie. Takže jsem si zkusil implementovat takový jednoduchý správce kontaktů – v C# ve WinForms.
Zobrazit celý příspěvek »
Tak jsem se stal obětí moderních programovacích technik, konkrétně aspektově orientovaného programování, o kterém jsem blogoval posledně.
Pro business třídy jsem si udělal nádherný aspekt, který zajišťuje, že před každou odekorovanou metodou je ověřeno, jestli je vytvořen objekt pro připojení k databázi (automatic property Context). Takže jsem si pak pěkně každou metodu business objektu, která používá tuto property Context, odekoroval aspektem RequiresContext. Všechno krásně fungovalo a já si bušil do hrudi, jak jsem pěkně využil AOP. No ale když jsem se pak s tím jen tak mimochodem chlubil na IRC, tak měl posila dobrou připomínku – co udělat test na vytvoření Contextu v getteru této property?
Tak jsem milý aspekt smazal (ale mohlo mi to srdce utrhnout) a napchal test do getteru (kde jsem využil operátor ?? – znáte ho?
)
Zobrazit celý příspěvek »
V práci teď dělám na jednom jednoduchém interním systému a protože si nechci nechat ujet vlak nových trendů v programování, rozhodl jsem se tam použít pár nových technologií. Konkrétně jsem začal používat Entity Framework s LINQ To Entities (objektově-relační mapper – uvolněno asi před měsícem), ASP.NET MVC (ještě neuvolněno, v době psaní článku používám Preview 5) a PostSharp. Postupně bych tu chtěl napsat pár článků o těchto technologiích a začnu poslední z jmenovaných.
Zobrazit celý příspěvek »
Poctivé programování síťových aplikací není žádná sranda. V principu se jedná o asynchronní komunikaci, takže pro napsání kvalitní aplikace se člověk nevyhne použití vláken a s tím související synchronizace a podobných radostí. Ladění takové aplikace pak není vůbec žádná sranda a když se vyskytne nějaký problém, tak se člověk pěkně zapotí, než ho lokalizuje a vyřeší.
Zobrazit celý příspěvek »