ASP.NET MVC a routing

ASP.NET MVC není dodáváno jako jediná assembly System.Web.Mvc, ale spolu s ní dostáváme také System.Web.Abstractions a System.Web.Routing. Právě poslední z nich je zodpovědná za routing, což je důležitá součást ASP.NET MVC. Přitom ale tato assembly nereferencuje System.Web.Mvc, takže routing může být použit i pro klasické WebForms. O tom ale až někdy příště, teď bych se rád podíval na zoubek samotnému routingu jako takovému, což v zásadě není nic složitého.
Celý příspěvek

ASP.NET MVC: ActionResult

Každá akční metoda (action method), tedy metoda kontroleru, se vyznačuje tím, že vrací instanci potomka abstraktní třídy System.Web.Mvc.ActionResult (dále budu namespace System.Web.Mvc vypouštět). V praxi se většinou setkáváme s tím, že akční metoda končí „return View()„, return „RedirectToRoute(„Index“)“ nebo „return RedirectToAction(„Index“)„. Logicky tedy tyto metody musí vytvořit instanci nějaké třídy odděděné od ActionResult a tuto vrátit. Výše uvedené příklady ale nejsou jediné možnosti, jak můžeme něco z akční metody vrátit a na to bych se rád podíval v tomto článku.
Celý příspěvek

IDictionary – TKey jako pole

Kamarád měl na mě zajímavý dotaz. Chtěl mít instanci IDictionary<TKey, TValue> a používat ji klasickým způsobem, ale protože Dictionary<TKey, TValue> defaultně používá na porovnání klíčů a počítání hashe instanci System.Collections.Generic.EqualityComparer<T>.Default, nedostával očekávané výsledky. Tento comparer totiž kouká na pole jako na jakýkoliv jiný referenční typ, takže v důsledku dojde pouze k porovnání referencí.
Celý příspěvek

ASP.NET MVC: Předávání dat při přesměrování

Provedení přesměrování je ve webovém programování zcela běžná věc a pokud chceme programovat podle návrhového vzoru Post/Redirect/Get, pak je to přímo nutnost. Vřele doporučuji tento vzor používat, protože díky němu můžeme zabránit vícenásobnému odeslání formuláře (známé double-posty z fór a komentářů) a jeho použití vede také k lepšímu oddělení koncernů (zájmů, oblastí aplikací sloužící k různému účelu). A v neposlední řadě je jeho implementace triviální 😉 Použití tohoto návrhového vzoru v ASP.NET MVC aplikaci je velmi jednoduché, protože sám o sobě nevyžaduje žádnou speciální podporu. V akční metodě zpracovávající POST data prostě místo obligátního „return View(…)“ zavoláme „return RedirectToAction(…)“ nebo „return RedirectToRoute(…)„.

Celý příspěvek

ASP.NET MVC: Passing data when redirecting

Redirecting is very common operation in web programming, especially when you want to follow Post/Redirect/Get pattern. I strongly recommend to use this pattern because it’s very simple, avoids double-posting and tends to better separation of concerns. And how to implement this pattern in ASP.NET MVC? It’s very easy – just call RedirectToAction or RedirectToRoute method at the end of your action method that processes POST data.
Celý příspěvek

Novinky v C# 4.0 podle CTP

Je to pár dní, co Microsoft uvolnil ke stažení Virtual PC Image s CTP Visual Studia 2010 a .NET Frameworkem 4.0. Hlavně mě zajímalo, co za novinky přinese nový C# 4.0 a tak se mi podařilo vygooglit tenhle docx a tuhle přednášku (zip ke stažení přejmenujte na pptx).

Hlavním přínosem jazyka C# 2.0 byly generiky, C# 3.0 přinesl LINQ a hlavním mottem C# 4.0 je dynamičnost. Sám Microsoft rozděluje novinky v C# 4.0 do několika základních skupin.
Celý příspěvek

ASP.NET MVC – typické postupy

V tomto článku bych rád ukázal, jak v ASP.NET MVC implementovat typické postupy z webových aplikací, tedy zobrazit seznam produktů, přidat nový produkt, editovat existující produkt, smazat produkt a umožnit dělat některé věci jen oprávněným uživatelům. Udělal jsem jednoduchou aplikaci, kterou si můžete stáhnout zde – využívá ASP.NET MVC Beta a ASP.NET MVC Beta Futures. Oboje je ale z projektu referencováno s CopyLocal na true, takže všechny potřebné assemblies jsou přímo u projektu.
Celý příspěvek