Pravidelnému čtenáři mého blogu (takže nikomu ;-)) je jistě nadpis tohoto článku jasný, ale pro ostatní dám hinty. AOP znamená aspektově orientované programování a blogoval jsem o něm zde. ASP.NET MVC je framework pro tvorbu webových stránek v prostředí ASP.NET a blogoval jsem o něm zde.
V tomto článku se podíváme na to, jak využít principy AOP v ASP.NET MVC, na což je ASP.NET MVC velmi dobře připraveno díky tzv. filtrům.
Celý příspěvek
ASP.NET MVC
Pro vývoj webových aplikací na platformě .NET se povětšinou používá ASP.NET WebForms. Ten si ale s sebou nese pár negativ, které se (nejen) mně nelíbí a které vznikly především proto, že se Microsoft snažil vývoj webových aplikací co nejvíce přiblížit vývoji klasických okýnkových WinForms aplikací. Důsledkem je, že potřebujeme mezi jednotlivými požadavky někde udržovat ViewState (většinou ve skrytém poli __VIEWSTATE), což je popis stavu stránky, v jakém byla při jejím generování, dále nemáme úplnou kontrolu nad generovaným kódem (pokud nejdeme dostatečně hluboko do útrob) a vůbec celý proces zpracování stránky je dosti přebujelý, dochází k vyvolání mnoha událostí a zorientovat se v tom, kdy je vhodné jakou použít a na co ji použít, není vůbec jednoduchá záležitost. Možná i právě proto přišel s řešením ve formě ASP.NET MVC, které je značně jednodušší na pochopení, díky jasnému rozdělení úkolů není problém psát pro něj unit testy, máme přímou kontrolu nad generovaným HTML, ale to vše za cenu menšího komfortu. Je pak na vývojáři, jakou technologii pro konkrétní úlohu zvolí.
ASP.NET MVC je v době psaní tohoto článku teprve ve verzi Preview 5 a finální verze se dočkáme snad do konce roku. V současné době ani neexistuje žádná nápověda, dokonce není ani nic v IntelliSense, takže veškeré informace získáme buď ze zdrojových kódů, přes Reflector a/nebo hlavně na různých blozích, především bych vypíchnul blog Scotta Guthrieho a Stephena Walthera.
Příspěvek byl ale updatován, aby odpovídal ASP.NET MVC Beta.
Celý příspěvek
Ambient occlusion
Ačkoliv se počítačové grafice věnuju už pěkných pár let, byla (a jsou) témata, kterým jsem se vyhýbal a díval se na ně s nedůvěrou. Jedním z nich bylo i ambient occlusion, u kterého ale v posledních letech probíhal dost intenzívní výzkum a proto je tato technika dnes docela dobře použitelná i v real-time plně dynamických scénách.
Celý příspěvek
Katalánština – z čeho se učit
S katalánštinou je trošku problém, že není jednoduché sehnat k její výuce kvalitní materiály. V tomto příspěvku bych rád poskytl pár užitečných odkazů na materiály, které považuji za kvalitní a které často sám využívám. Pokud máte nějaký pěkný link nebo přímo materiál, tak neváhejte se ozvat a já ho zveřejním.
Celý příspěvek
C# 3.0, LINQ, LINQ To …
Nová verze jakyka C#, verze 3.0, přináší poměrně dost novinek. Většina z nich je ale jen syntaktický cukr a assemblies vytvořené pro .NET Framework 3.5 jsou binárně zpětně kompatibilní s verzí 2.0. Nedochází tedy ke změně CLR. Většina z novinek jde na ruku požadavkům vzešlých z praxe, především usnadňují integraci dotazovacího jazyka přímo do C#.
Celý příspěvek
Adresář stokrát jinak
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.
Celý příspěvek
Obětí moderních programovacích technik
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? 😉 )
Celý příspěvek
Aspektově orientované programování prakticky
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.
Celý příspěvek
UCE 2008
Během srpna jsem strávil 10 dní v jihofrancouzském městečku Prada, kde se konal čtyřicátý ročník Letní katalánské univerzity – Universitat Catalana d’Estiu. Vyslala mě tam Akademie věd Andorského knížectví a vše kromě letenky do Barcelony mi platili – a pak že je studium katalánštiny k ničemu 🙂
Celý příspěvek
Katalánská abeceda
Tímto článkem bych chtěl začít takový malý seriál o katalánštině. Postupně si probereme důležité aspekty jazyka, které jsou potřeba pro základní komunikaci. Protože v současné době sám neumím katalánsky moc dobře (mám jen Áčkový certifikát), tak si ostatně na víc ani netroufám. Pokud Vy umíte dobře a najdete chybu apod., tak se neváhejte ozvat – rád se nechám poučit.
Celý příspěvek