V C# 2.0 byly zavedeny anonymní metody, což ušetřilo hromadu psaní – když chtěl člověk předat nějakého delegáta, tak nemusel vytvářet metodu, ale mohl přiřadit přímo kus kódu a kompilátor se už sám postaral o to, že vytvořil metodu, do které fláknul ten kus kódu. Se C# 3.0 pak přišly tzv. lambda expressions, což je technicky to samé, jen je syntaxe méně košatá.
Celý příspěvek
Category Archives: Programování
Extension methods in C# 3.0 – null „dereferencing“
When you start with C# studying then one of first thesis is that you always should be sure if reference type is not null because if we will work with null then we can get NullReferenceException. What do you think about following C# 3.0 code?
List<string> list = null;
list.ToMyString();
Extension metody v C# 3.0 – „dereference“ nullu
Při studiu programování v C# je jedná z prvních pouček, se kterou se člověk setká, ta, která říká, že když chceme pracovat s referenčním typem, měli bychom si být jisti, že jeho hodnota není null, protože jinak bychom se mohli dočkat nepěkné NullReferenceException. Co byste řekli, že udělá následující kód v C# 3.0?
List<string> list = null;
list.ToMyString();
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
ASP.NET MVC: Předání dat z kontroleru do pohledu
V předchozím článku o ASP.NET MVC jsem se zabýval předáváním dat při přesměrování, ale jak ukázaly dotazy na oficiálním fóru, lidé častou tápou v tom, jak správně dělat pro MVC naprosto zásadní věc – předat data z kontroleru do pohledu. Není to nic složitého, tak na to rychle mrkneme.
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(…)„.
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