V předchozím článku jsme se podívali na technologii ViewState a na to, jak se dá využívat ve vlastních ovládacích prvcích. A také jsem psal, že se na ni nemůžeme spolehnout, protože ji programátor může vypnout, na úrovni aplikace, stránky nebo konkrétního prvku. Pokud přesto chceme uchovávat nějaké údaje napříč postbacky, musíme použít technologii ControlState.
Snad žádná jiná technologie v ASP.NET nezpůsobila tolik zlé krve jako právě ViewState. Hromady na první pohled zbytečných a nesmyslných Base64 kódovaných dat ve skrytém formulážovém poli __VIEWSTATE jsou to první, na co si obvykle odpůrci ASP.NET Web Forms vzpomenou, často s uštěpačnou poznámkou v duchu "nojo, co byste chtěli od Microsoftu". Jako u každé technologie ovšem i zde platí, že nejsou technologie dobré a špatné, ale pouze vhodně a nevhodně použité.
Při přípravě článku, který se podrobně zabývá technologií ViewState sjem zjistil, že vám již více než rok dlužím jeden díl seriálu o (bez)stavovém HTTP. Ba dokonce možná díl nejdůležitější, totiž poslední, shrnující a hodnotící. Nuže, tady je.
Templatovatelné prvky jsou způsob, jak lze v ASP.NET vytvářet server controls, které mohou v markupu obsahovat další controls. Základní postup pro jejich vytvoření je vcelku jednoduchý, ale pokud chcete, aby váš control byl stejně komfortní jako ty vestavěné, dá to trochu víc práce.
Požadavek na tiskový výstup z webových aplikací je dosti častý. A protože jeho splnění není zcela jednoduché, může se stát vlčí jámou webových vývojářů. Poslední dobou se mi v mailu sešlo hned několik dotazů na toto téma, pročež jsem se rozhodl napsat tento přehledový článek. Měl by vám posloužit jako úvod do problematiky a návod k řešení nejtypičtějších problémů.
Je všeobecně známo, že ve webových aplikacích je možné různé stránky psát v různých jazycích. Jednu stránku můžete mít třeba v C#, druhou ve VB.NET a třetí v F#. Každá stránka se zkompiluje do samostatné assembly a nezáleží na tom, jaký byl původn jazyk – CLI si s tím poradí. Ale co s App_Code, který je jenom jeden.
Jedním z častých problémů jsou dotazy, jak pracovat s controly v databinding kontajnerech – jako je například klasický GridView a nebo nová součást ASP.NET 3.5, prvek ListView. Typický požadavek je přidat ke každé položce checkbox a pak získat seznam zaškrtnutých položek a nějak s ním pracovat. Dále pak je obvykle žádoucí mít k dispozici obvyklou funkcionalitu ve stylu “vybrat vše”, “invertovat výběr” atd.
Open Packaging Conventions (OPC) je standard, který popisuje postupy pro ukládání více datových objektů a jejich vzájemných vztahů v jednom fyzickém kontajneru (souboru). Nejčastější formou datového úložiště je ZIP soubor. Podíváme se, jak je možno s těmito soubory programově manipulovat, vytvářet je a číst. To lze použít pro práci s OpenXML formátem (Office 2007) a nebo pro vytváření vlastních datových úložišť.
Všechny jazyky založené na SGML (zejména tedy HTML a XML) využívají k zápisu specifických, jinak obtížně definovatelných znaků, takzvané entity. Ty jsou v zásadě dvojího druhu: buďto se odkazují symbolickým jménem na určitý znak a nebo obsahují číselnou specifikaci dle normy ASCII či UNICODE. Z hlediska uživatele jsou samozřejmě nejjednodušší entity se symbolickým jménem. Ty ale XML nativně nepodporuje a je nutno použít speciální trik.
Magické schopnosti souboru app_offline.htm, přítomné v ASP.NET od verze 2.0, vám mohou usnadnit nasazení a upgrade aplikací.