Blog Null Reference Exception
Při nastavování focusu se Silverlight ListBox kontrol defaultně chová tak, že je focus nastaven na první (případně poslední pří Shift+Tab) prvek. Tento “divný” stav je zobrazen na obrázku. Já bych toto chování označil spíše přímo jako bug než vlastnost, očekávané chování je samozřejmě nastavit focus na označený prvek v ListBoxu (tak jako ve WPF). Horší chování pak ještě nastává v případě, že ListBox je naplněn více prvky a je v něm tedy vertikální posuvník.
V předchozích částech této série jsme zatím používali T4 šablonu ke generování jednoho výstupního souboru, což je také výchozí způsob. Při něm je název výstupního souboru odvozen přímo od názvu souboru šablony a má jen jinou příponu, kterou lze určit direktivou <#@ output #>. Někdy se nám ale může hodit generovat jednou T4 šablonou výstupních souborů několik. Dnes upravíme příklad z minula tak, aby se každá generovaná partial třída uložila do samostatného souboru.
V minulé části této série jsme ukázali příklad generování třídy podle “vzorové” třídy, která byla umístěna přímo součástí vlastní T4 šablony. Často by se mám ale mohlo hodit použít jako vzor již existující třídy, které jsou součástí našeho projektu.
V první části této série jsme se seznámili s tím jak vytvořit T4 šablonu, jaká je syntaxe T4 šablon a jaký je princip generování výstupního souboru na základě šablony. Také jsme zmínili, že výstupem šablony může být principiálně libovolný textový soubor (XML, .config soubory), ale my budeme uvažovat, využití T4 šablony pro generování zdrojového kódu. Nyní se blíže podíváme na to, co můžeme využít jako vstup T4 šablony.
T4 (Text Template Transformation Toolkit) je obecný šablonovací systém pro generování textového výstupu, který je navíc přímo integrovaný do Visual Studia (jestli se nemýlím tak již od VS 2008). Přestože lze v případě potřeby transformaci T4 šablony (T4 template) spouštět i kódem v runtime, primárně je T4 využívané pro generovaní výstupu v design-time tj. právě z Visual Studia.
Pro vydávání certifikátů ve vaší organizaci s Microsoft Certification Authority (CA) máme několik způsobů. Nejlepší z nich je použití přímo konzoli certifikátu a její funkci pro request nového certifikátu, kde (tuším od Windows Vista) je k tomu hodně pěkně udělané "klikátko", které dnes již nahradilo starší webové rozhraní certifikační authority. Projdeme si cely postup.
LINQ operátor Sum (přesněji jeho varianty pro LINQ to objects, v LINQ to Entities je to jinak) je navržen tak, že výsledkem operace Sum pro prázdnou sekvenci je hodnota nula a pro nullable datový typ (například int?) jsou hodnoty null ve vstupní sekvenci ignorovány.
Pokud se v Silverlight koukneme na kontrol TextBox, zjistíme, že již obsahuje vlastnost Watermark, ta je však bohužel implementována takto:
throw new NotImplementedException();
Pojďme to udělat lépe.
Pro ladění a řešení problémů v běžící aplikaci může mnohdy pomoci tracing mechanizmus tj. logování informaci z aktuálně prováděného kódu (real-time). .NET platforma obsahuje pro tracing podporu. Ta je umístěna v namespace System.Diagnostics, kde jsou kromě třídy Trace k dispozici i další třídy jako TraceListener, TraceSwitch, TraceFilter. K tomu abychom odhalili případný problém v naší aplikaci nám ale mnohdy postačí velmi jednoduchá implementace trace mechanizmu, kterou si zde ukážeme.
Po dlouhé době jeden tip ohledně ASP.NET. Konkrétně se koukneme na to, jak v ASP.NET vytvořit pole TextBox se zobrazeným watermarkem (text, který je zobrazen, pokud je pole TextBox prázdné).