Články autora Tomáš Holan
Silverlight 5.0 pomoci Async Targeting Pack podporuje použití nové syntaxe resp. nových klíčových slov async/await. Pokud ale do Silverlight projektu přidáme referenci na WCF službu není zde podporováno automatické “zaobalení“ asynchronních volání operací WCF služby do metod vracející objekt Task. Toto si musíme udělat sami.
V každé Silverlight aplikaci musíme zpravidla nějakým způsobem řešit ošetřování chyb vznikajících na serverové straně při volání operací WCF služby. V tomto článku se nebudu rozepisovat o tom jak ošetřování chyb ve WCF funguje a jaké jsou obecně možnosti a způsoby řešení, jen dodávám, že se celkově nejedná o triviální problém (v Silverlightu jsme navíc omezeni například tím, že výjimky nelze serializovat apod.) Místo toho zde předložím jeden způsob, který v poslední době docela úspěšně používám.
Operační systém Windows již několik verzí zpět obsahuje podporu pro změnu letního a standardního času. Pokud by jsme tedy ve své aplikaci potřebovali využít informace týkajících se změny na letní čas (daylight saving time – DST), je možné je získat přímo ze systému. To může být výhodné z toho důvodu, že pokud by došlo ke změně okamžiku, kdy se změna času provádí, Microsoft přes Windows Update vydá aktualizaci, která tuto případnou změnu zohlední a my se nemusíme o nic starat.
V tomto článku si na velmi jednoduchém příkladu vysvětlíme princip vykonávání kódu používající novou syntaxi jazyka C# 5.0 async/await.
Tento článek má za úkol uvést, shrnout nebo pro někoho možná jen zopakovat všechna důležitá fakta ohledně impersonace a její používání v ASP.NET a WCF aplikacích.
Jazyk C# rozlišuje dva typy porovnávání - porovnání referenční (reference equality) a hodnotové (value equality). Hodnotové porovnávání se chápe tak, že dva objekty jsou shodné pokud tyto objekty představují stejnou hodnotu, referenční se chápe tak, že dvě reference jsou shodné pokud odkazují na stejný objekt (tj. stejnou instanci). Pro referenční porovnávání se používá metoda ReferenceEquals, pro hodnotové metoda Equals (případně statická metoda Equals).
Pokud používáte ve své aplikaci technologii WIF v současné verzi pro .NET Framework 3.5/4.0 (verze 1.0), brzy zjistíte, že dotazování na claims obsažené v objektu ClaimsIdentity resp. ClaimsPrincipal je poměrně složité (je nutné použít buď LINQ dotaz nebo foreach cyklus).
Po integraci WIF přímo do .NET Frameworku v připravované verzi 4.5 (nyní k dispozici v RC) dojde v tomto k výraznému posunu. A mezitím než se tak stane jsem připravil extension metody, které portují metody nové verze i do verze současné.
Pokud například v nějaké knihovně implementujeme veřejné třídy pro vlastní výjimky, měli by tyto třídy být implementované jako serializovatelné objekty. Obecně totiž nemusíme vědět, zda se nevyskytne případ, kdy exception objekt bude muset překročit hranici aplikační domény a pak by chybná implementace vadila.
C# 4.0 umožňuje při používání COM API (pomoci COM interop) použít stejné syntaxe jako je u indexéru i pro tzv. indexed property. Viz například takovýto programový přístup k buňkám MS Excel sheetu:
Isolated storage je uložiště určené pro ukládání perzistentních dat (nejčastěji například konfigurace) s platností pro aplikaci a počítač případně aplikaci a Windows uživatele. V .NET Frameworku implementace Isolated storage zahrnuje dvojici tříd IsolatedStorageFile a IsolatedStorageFileStream. Kromě desktopu je Isolated storage implementován i v Silverlight a případně na platformě Windows Phone (a Windows Metro), kde navíc obsahuje i třídu IsolatedStorageSettings. Protože třída IsolatedStorageSettings může být ale využitelná i ve WPF/Windows Forms, překládám zde její implementaci určenou pro tyto typy aplikací.