Články autora Jan Holan
Instaloval jsem na domenovém controleru Windows Server 2012 roli AD FS (Active Directory Federation Services). Při nastavení databáze na používání Windows Internal Database, jsem obdržel následující chybu:
Service 'Windows Internal Database (MSSQL$MICROSOFT##WID)' cannot be started due to the following error: Cannot start service MSSQL$MICROSOFT##WID on computer '.'.
Ve WPF lze vytvořit attached události - Attached Events, někdy také nazývané Custom routed events. Ty nám obdobně jako Attached Dependency Properties, umožňují k libovolnému UIElementu přidat vlastní v tomto případě událost, kterou můžeme na elementu vyvolávat a odchytávat. Ve WPF se toto provádí pomoci třídy EventManager, kterou lze jako attached události registrovat přímo RoutedEvent.
V Silverlightu bohužel attached události nejsou implementované, viz msdn:
“Silverlight does not support creating a custom routed event. The only routed events available in Silverlight are the ones that are defined by existing Silverlight classes, as listed in the "Routed Events" section of Events Overview for Silverlight.” (viz. také Routed Events in Silverlight)
V .NET rozlišujeme lokalizaci a globalizaci:
•Lokalizace – Zobrazování textů v aplikaci v některém z jazyků (language), do kterého je aplikace přeložena. V .NET nám nastavený jazyk vrací vlastnost System.Globalization.CultureInfo.CurrentUICulture.
•Globalizace – Nastavení formátování čísel, data, času apod. podle zvyklostí daného národa (region) - kultury. V .NET nám nastavený jazyk vrací vlastnost System.Globalization.CultureInfo.CurrentCulture.
Tyto vlastnosti můžeme podle potřeby a scénáře buď přebírat z nastavení Windows nebo je nechat přímo v aplikaci zvolit uživatelem. Konkrétně v ASP.NET aplikacích můžeme celkem snadno dosáhnout toho, aby bylo toto nastavení převzato z preferencí prohlížeče, nastavením globalization ve web.config souboru:
<globalization requestEncoding="utf-8" responseEncoding="utf-8" culture="auto" uiCulture="auto" />
Pokud se pohybujeme v oblasti JavaScriptu a jQuery, existují sice některé řešení globalizace (jako například jQuery Globalization Plugin). Zdá se ale, že se zde tento model lokalizace vs. globalizace úplně vytrácí a neřeší se.
Pří zavádění jQuery UI DatePicker kontrolu do ASP.NET aplikace jsem si místo toho připravil vlastní jednoduchou třídu, která se stará o jeho inicializaci tak, aby respektovala .NET nastavení jak lokalizace CurrentUICulture tak i globalizace CurrentCulture.
Před nějakou dobou jsem zde uvedl řešení ošetření chyb vlastní chybovou stránkou a ošetření neexistující URL stránkou NotFound (404) v ASP.NET a IIS 7. Popis byl jako součást ukázkové ASP.NET aplikace FileAccessWeb v článku ASP.NET FileAccessWeb Sample, část 4: Ošetření chyb.
Protože požadavky, zkušenosti i technologie ASP.NET se vyvíjí, přináším zde nyní řešení nové.
Dnes pár poznámek a tipů, které jsem nasbíral při vývoji nové web aplikace v ASP.NET 4.5. Aplikace využívá technologie ASP.NET WebForms, HTML 5, jQuery, jQuery.UI, bootstrap a Bundling & minification(AspNet.Web.Optimization), o kterých bude řeč.
Pokud vytváříte certifikáty například pro Remote Desktop, TS Gateway, TS Web Access a podobně, je nutné mít ve své PKI infrastruktuře na certifikační autoritě fungující a správně nastavené publikace CRL (Certificate Revocation List). (Klasická chyba, kterou dostáváme, když toto nemáme správně nastaveno je A revocation check could not be performed for the certificate).
V komponentě Microsoft.AspNet.Web.Optimization verze 1.1.0.0 (stable) je chyba (ve verzi 1.0.0.0 tato chyba nebyla), že nedochází k odstranění duplicitních scriptů registrovaných ve ScriptManager, které jsou obsažené v bundle.
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.