Blogator.com



Sponsored area:

Did you know that nullable column MobileAlias of table aspnet_Users has default constraint which inserts NULL value into the column?Here is part of a create script generated with Management Studio. The table was originally created by aspnet_regsql.exe utility in .NET 2.0.CREATE TABLE [dbo].[aspnet_Users](    [ApplicationId] [uniqueidentifier] NOT NULL,    [UserId] [uniqueidentifier] NOT NULL DEFAULT (newid()),    [UserName] [nvarchar](256) NOT NULL,    [LoweredUserName] [nvarchar](256) NOT NULL,    [MobileAlias] [nvarchar](16) NULL DEFAULT (NULL),    [IsAnonymous] [bit] NOT NULL DEFAULT ((0)),    [LastActivityDate] [datetime] NOT NULL,PRIMARY KEY NONCLUSTERED (    [UserId] ASC)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]) ON [PRIMARY]It's funny. Isn't it?  Přidej do linkuj.cz! | jagg.cz! | del.icio.us! | digg it! | reddit! | kick it! | live it! | email it!
Routování při použití WebHttp Services může být velice nápomocné při snaze rozdělit funkcionalitu službu na menší části, kde každá část bude mít svojí speciální adresu. Jak provést rozdělení a příslušné napamování si ukážeme na následující ukázce. Máme vytvořenou službu, která nabízí pro jednoduchost pouze dvě metody [ServiceContract][AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]public class EshopService{ [WebGet(UriTemplate = "/Products?format={format}")] [Description("Vrati seznam vsech produktu")] public ProductCollection FindAll(string format) { if (string.Equals("json", format, StringComparison.OrdinalIgnoreCase)) WebOperationContext.Current.OutgoingResponse.Format = WebMessageFormat.Json; return FakeDatabase.Products; } [WebGet(UriTemplate = "/Product/{id}")] [Description("Najde produkt podle zadaneho id")] public Product Find(string id) { int parsedId = 0; if (int.TryParse(id, out parsedId)) return FakeDatabase.Products.Where(p => p.ID == parsedId).FirstOrDefault(); return null; }} Pro zobrazení všech produktů zadáme do prohlížeče adresu http://localhost:8090/Eshop/Products. Jakmile budeme chtít ovšem zobrazovat např. objednávky, uživatele, kategorie, apod. stane se naše třída EshopService velice nepřehlednou a tudíž složitější na údržbu. Vytvořme si tedy novou třídu na
Pokud používáte ne zcela bezpečnou extended proceduru xp_cmdshell (občas to bez ní prostě nejde), tak by se občas třeba i hodilo získat nějakým hezkým způsobem výstup procedury ke zpracování. Možná to je veřejné tajemství jak na to, ale já na to přišel fakt nedávno. Myslím, že kód níže mluví za vše :) -- Nejdrive musime povolit xp_cmdshell EXEC sp_configure 'show advanced options', 1 GO RECONFIGURE GO EXEC sp_configure 'xp_cmdshell', 1 GO RECONFIGURE GO   -- Vytvorime si tabulku pro ukladani informai z xp_cmdshell CREATE TABLE ShellOutput (OutputLine VARCHAR(MAX)) GO   -- Spustime xp_cmdshell INSERT INTO ShellOutput Execute master.sys.xp_cmdshell 'bcp tempdb..Employee out c:\temp\Employee.txt -c' GO   -- Podivame se do tabulky jejiz obsah vidime o par radku nize…. SELECT * FROM ShellOutput GO   OutputLine ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- User name not provided, either use -U to provide the user name or use -T for Trusted Connection usage: bcp {dbtable | query} {in | out | queryout | format} datafile [-m maxerrors] [-f formatfile] [
Nedávno jsem narazil na "zajímavou vlastnost" SharePointu, resp. OneNotu. Využíváme SharePoint pro sdílení a synchronizaci OneNote poznámkových bloků. Skupiny uživatelů mezi sebou sdílely tímto způsobem informace rychle se měnící informace. Vše běželo normálně až do okamžiku, kdy jsem si všiml, že IIS logy SharePointu mají najednou téměř padesátinásobnou velikost. Stejný nárůst byl i u počtu přístupů. To samozřejmě nevěstilo nic dobrého. Krátkou analýzou logů jsem zjistil, že většina požadavků se vztahuje ke sdíleným OneNote blokům. Během jedné sekundy přišlo několik desítek požadavků jednoho uživatele a trvalo to několik hodin. Naštěstí to byly všechno požadavky, které sever obsloužil za 25ms, takže to server nezabilo.OneNote ukládá bloky jako adresáře, stejné je to i se skupinami oddílů. Teprve jednotlivé oddíly jsou uloženy jako soubory. A v těchto dvou větách je ukrytý problém. Po několika hodinách pátrání a zpovídání uživatelů, jsme přišli na příčinu. Jeden z uživatelů totiž vytvořil nový oddíl, v jehož jméně použil znak +. Přestože v SharePointu lze normálně vytvořit adresář se znakem + v názvu, OneNotu to ale dělalo problém. Vedlo to k tomu, že začal generovat obrovské množství HTTP požadavků. Problém se projevoval jen u těch uživatelů, kteří používali OneNote blok obsahující inkriminovaný oddíl.Doufám, že tímto ušetřím některým z vás šediny z hledání příčiny problému, protože jinak je sdílení OneNote bloků pomocí SharePointu užitečné a přínosné. Přidej do linkuj.cz! |
Webové formuláře 2009 - co vyžadují? Použitelnost a přístupnost – zajímavý článek a moderních formulářích – interval.cz Webové formuláře 2009 - co od nich vyžadovat? Ošetření chyb – pokračování článku na interval.cz DotNet university – Courses – výukové kurzy C#: Display a pdf in WindowForm : Adobe Acrobat – diskuze k článku zobrazení PDF pomocí Acrobatu – docela dlouhé Jak začít programovat pro Symbian 3rd – forum na www.symbianforum.cz Pat Brenner: Visual Studio 2010 - MFC and Windows 7 – video blog Expression Web aneb Frontpage dnes kradou jen hlupáci – info o Exp.Web z roku 2007 Streaming Methods: Web Server vs. Streaming Media Server – MS popis a srovnání Konfigurace brány firewall a překládání adres (NAT) pro Windows Media Services 9 Series The ASP.NET View State – Dino Esposito – msdn magazine – podrobný rozbor z roku 2003 TIOBE Programming Community Index – aktualizovaná popularita vývojových nástrojů/jazyků ASP.NET Horizontal Menu Control – aspalliance.com – celkem zajímavé URL Routing in ASP.NET 4.0 – codeguru Five Common Mistakes Made in Moving to Agile Development – DevX.com CodeTwo – vizuálně skvělé komponenty + různé Free Tools nejen pro Outlook DOSbox - plnohodnotný emulátor DOSu s extrémními nároky – článek na svethardware.cz Master-Detail Views with the ASP.NET Ajax Library – Dino Esposito -msdn magazine 01/2010 Windows User Experience Interaction Guidelines aneb "Jak dělat Xichtíky aplikací" – e
Lego Marble Ladder – YouTube video – mechanismus jak dostat “kuličku” nahoru pomocí zdvihajících se plošinek Toy Fair 2010 – YoutTube video – výstava hraček v NY, kategorie StarWars, v odkazech i ostatní mindsensors.com – výrobce modulů pro NXT i s G-bloky – serva, expandery, kamera + videa aplikací Lego NXT & C# – blog s info na již neexistující .NET knihovnu a v diskuzi s odkazem na podobnou knihovnu u MindSqualls LEGO® MINDSTORMS® NXT - Model Building Instructions – AlphaRex, Spike, RoboArm, Tribot z LEGO NXT 1.0 + řada dalších odkazů LEGOengineering – komunita, support, building&programming – řada návodů a rad Přidej do linkuj.cz! | jagg.cz! | del.icio.us! | digg it! | reddit! | kick it! | live it! | email it!
Fulltextové vyhledávání je silnou zbraní SharePointu. Zvlášť, když ho pořádně vyladíte, můžete získat silného pomocníka při hledání potřebných informací. O tom, jak pořadně okořenit standardní nastavení vyhledávání bych se zmínil v některém ze svých příštích příspěvků. Dnes bych se chtěl věnovat tomu, jak na SharePointu vyhledávat, aniž bychom museli spouštět SharePoint jako takový. 1. Vyhledávání z prohlížeče K tomu je potřeba vytvořit definiční soubor formátu OpenSearch (aktuálně ve verzi 1.1). Tento soubor říká: co má prohlížeč udělat s textem, který uživatel zadá do vyhledávacího pole, když má vybraný náš vyhledávač jak má získávat výrazy pro našeptávač určit ikonu, kterou má vyhledávač zobrazit a spoustu dalších věcí. Detailní specifikaci formátu najdete například na tomto webu.Výhoda je, že všechny reálně používané prohlížeče podporují stejný formát. Příklad takového souboru: <?xml version="1.0" encoding="UTF-8" ?><OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/"><ShortName>Firemni Intranet</ShortName><Description>Vyhledavani na firemnim intranetu </Description><InputEncoding>UTF-8</InputEncoding><Url type="text/html"template="http://intranet/hledani/Stranky/results.aspx?k={searchTerms}"/></OpenSearchDescription> Soubor umístěte na SharePoint, nejlépe do rootu webu (např. do adresáře\inetpub\wwwroot\wss\VirtualDirectories\80) a ujistěte se, že k němu mají uživatelé přístup. Odkaz na
Název tohoto článečku je trošku nejasný, ale osvětlení přijde hned. Dělám na projektu, kde je v SQL 2008 databázi tabulka obsahující objekt X. Ten může mít klasické hierarchické uspořádání s jiným objektem typu X, čím se vytvoří typický strom. Každý objekt X má jednu vlastnost M, která je daná číselníkem C. Úkol pro řešení byl na první pohled jednoduchý. Mám jednu instanci X1 objektu typu X, která ale může být v libovolné úrovni stromu. Jak co nejjednodušeji zjistím, které hodnoty číselníku C nejsou použité v žádném objektu typu X, který je ve stejném stromě jak ten X1. Samozřejmě by se dalo to řešit kódem, ale po krátkém bádání ve schopnostech SQL 2005/8 jsem našel dle mého názoru elegantní řešení, které vyřeší vše v SQL serveru. Využil jsem schpnost rekurzivního prohledávání v SQL bez nutnosti vytvářet temporary table. Odborně to má název CTE, je plno blogů které popisují prohledávání od root elementu směrem dolů (většinou vazbu zaměstnanec - vedoucí) Já udělal při bádání dvě tabulky, Task se sloupečkem Id, ParentId, Popis a Typ. Pole Typ je id číselníku Type (druhá tabulka). První blok mého SQL kódu hledá root prvek stromu (to jest ten, kde parentId bude NULL) a pak lehce najde vše, co se ve stromě vyskytuje a pomocí NOT IN najde v číselníku jen to, co ve stromě není. Jen pro zajímavost, zda se ve stromě pohybuji směrem dolů nebo nahoru je dáno pomocí JOIN podmínky v sekcích WITH, podle toho zda z tabulky beru Id nebo ParentId.     DECLARE @r
Funkce inkrementálního vyhledávání v ListBoxu je velmi užitečná věc. Ani jsem si nevšiml, že ji používám tak často, dokud jsem nezjistil, že ve WPF je tato vlastnost vypnuta (by default). Vyhledávání zapíná vlastnost IsTextSearchEnabled, kterou implementuje ItemsControl (vyhledávání tedy funguje v ListBoxu, ComboBoxu a dalších ovládacích prvcích založených na položkách). Jak ale docílit toho, abychom mohli vyhledávat v položkách, které jsou např. business třídy – tedy ne ListBoxItem? Návrháři WPF mysleli i na tento problém – stáčí použít TextSearch.TextPath vlastnost, která určí cestu pro inkrementální vyhledávání pomocí klávesnice. Asi nejlepší bude názorný příklad: Mějme jednoduchou business třídu: class SimpleClass {     public Firstname {get;set;}     public Lastname {get;set;}  } A chtěli bychom inkrementálně vyhledávat podle příjmení: <ListBox IsTextSearchEnabled="True" TextSearch.TextPath="Lastname"> <ListBox.ItemTemplate>     <DataTemplate>         <StackPanel Orientation="Horizontal">             <TextBlock Text="{Binding Firstname}"  />             <TextBlock Text="{Binding Lastname}" Margin="10,0,0,0" />         
Celou dobu si říkám, že by to chtělo nějaký Add-in do Visual Studia, který by dokázal nějakým způsobem uklidit metody, vlastnosti, události... a vůbec všechno tak, aby byla struktura kódu přehlednější. Například rozházet metody a vlastnosti do regionů – to by úplně stačilo. Bohužel jsem si to celou dobu říkal, ale až dnes vygůglil add-in, který mohu doporučit. Jmenuje se Regionate, je zdarma a dokonce open source. Je v něm obsaženo pár základních způsobů formátování a další lze přidat editací XML souboru. Možná Regionate znáte, nebo používáte jiný způsob úklidu kódu ve třídách. Mně tento nález udělal radost, protože tuto funkci už dlouho postrádám. Přidej do linkuj.cz! | jagg.cz! | del.icio.us! | digg it! | reddit! | kick it! | live it! | email it!
Když jsme vytvářely WCF služby komunikující klasicky pomocí SOAP zpráv, tak jsem využívaly FaultException pro odeslání chybové zprávy zpět klientovi. WebHttp Services nabízí podobnou funkcionalitu, akorát se používá třída WebFaultException, která dědí právě z FaultException. WebFaultException nabízí dvě varianty, klasickou a generickou. Když se podíváme na sluřbu EshopService, tak vidíme, že jsme si minule vytvořily metodu pro aktualizaci ceny nazvanou UpdateProductPrice. Právě na této metodě si ukážeme první použití zpracování výjimek. Metoda přijímá dva parametry: id a price, kde oba tyto parametry musí být čísla. Přidáme tedy první podmínku, pokud se nepovede přetypovat řetězec na číslo, ukončíme metodu vyvoláním příslušné výjimky. Při vytváření WebFaultException nám stačí když uvedeme text chybové zprávy a příslušný HttpStatusCode (existuje celá řada těchto statusů např. NotFound, BadRequest, ServiceUnavailable, apod.). Upravená metoda tedy vypadá následovně (popis v komentářích) [Description("Aktualizuje cenu u produktu s danym id")][WebInvoke(UriTemplate = "/UpdateProductPrice/{id}?price={price}", Method = "PUT")]public void UpdateProductPrice(string id, string price){ int parsedId; decimal parsedPrice; // nepodari-li se prevest id na cislo vyhod vyjimky if (!int.TryParse(id, out parsedId)) { throw new WebFaultException<string>("parameter id must be a number", System.Net.HttpStatusCode.BadRequest);
WebHttp Services s sebou přínáší další zajímavou funkcionalitu, kterou si na následujících několika řádcích představíme. V minulých dílech jsem komunikoval se službou pouze prostřednictvím xml requestů a výsledkem byl vždy i xml response. Pokud služby nejsou nijak nastaveny, jejich defaultní chování je právě zabalit response do xml. Pojďme se tedy podívat jak ovlivnit výsledný formát odpovědi. První důležitou informací je, že pokud pošlu dotaz ve formátu XML či JSON, tak ho vždy dokáže moje služba zpracovat i v případě, že bude v konfiguračním souboru web.config nastaveno automaticFormatSelectionEnabled="false". Toto nastavení se týká pouze odchozích (response) zpráv ! V mojí aplikaci jsem si vytvořil novou metodu nazvanou AddProduct, na které budu demonstrovat použití jednotlivýc způsobů k tomu aby jsme docílil požadovaného výsledku: Eshop.Service [Description("Vlozi produkt do kolekce")][WebInvoke(UriTemplate = "/AddProduct", Method = "POST")]public Product AddProduct(Product product){ product.ID = FakeDatabase.Products.Max(p => p.ID) + 1; FakeDatabase.Products.Add(product); return product;} Eshop.Client private static void AddProduct(Product productToCreate){ using (HttpClient client = new HttpClient(URI)) { HttpContent content = HttpContentExtensions.CreateDataContract<Product>(productToCreate); // poslu pozadavek POST na adresu http://localhost:8090/Eshop/AddProduct usin
V minulém článku jsme si vytvořili jednoduchou službu, která obsahovala jednu metodu Products. Dnes si ukážeme jak vytvořit klienta, který nám umožní volat jednotlivé metody na straně služby. Pro vytvoření klienta máme několik možností, můžeme vužít WebChannelFactory, HttpWebRequest nebo WebClient Avšak dopuručené je použití třídy HttpClient. Tato třída je součástí knihovny WCF Rest Starter Kit Preview 2. Vytvoříme si tedy Consolovou aplikaci v mém případě pojmenovanou Eshop.Client a přidáme potřebné reference na Microsoft.Http Microsoft.HttpExtensions Obě tyto knihovny najdeme po nainstalování WCF Rest Starter Kitu ve složce C:\Program Files\Microsoft WCF REST\WCF REST Starter Kit Preview 2\Assemblies\ Dále musíme ve vlastnostech projektu změnit cílový framework na “.NET 4” z původního “.NET 4 client profile”. Je to z toho důvodu, že třída HttpClient má nějaké závislosti na plném .NETu 4 Nyní se můžeme pustit do vytvoření klienta. Třída HttpClient nabízí 3 způsoby jak nainicializovat náš objekt HttpClient() HttpClient(string baseAddress) – zadáme adresu služby jako řetězec HttpClient(Uri baseAddress) – zadáme adresu služby jako Uri objekt Já si ve své ukázkové aplikaci zvolím zlatou střední cestu a použiju adresu služby jako obyčejný řetězec. Instanci máme vytvořenou a ted musíme pouze poslat GET požadavek na danou adresu (Products) a služba by nám měla vrátit seznam všech produktů. Pro tento účel nabízí třída HttpClient metodu Get, která má opět
Další novinkou ve WCF 4 budou WebHttp Services kde budeme mít možnost komunikovat se službou pomocí NE SOAP zpráv, ale klasických xml či json requestů. Dále můžeme poslat dotaz ve formátu xml (json) a služba nám odpoví v xml (json) formátu. Vše záleží na nás jak se nám to bude líbit. Co si ovšem většina z nás vývojářů zalíbí je možnost mít plně pod kontrolou jednotlivé adresy všech metod dané služby. Poznámka: Jste-li vlastníkem VS 2010 ve verzi Beta, budete si muset doinstalovat přes extension managera šablonu pro vytvoření WebHtp služby (WCF Rest Service Template) a jakmile si tuto šablonu stáhnete pak budete moct vytvořit novou aplikaci typu “WCF Rest Service Application” Šablona obsahuje předvytvořené třídy a další soubory, které si v rychlosti popíšeme: Global.asax – bude nám sloužit pro nastavení routování – více později SampleItem.cs – soubor, která představuje nějaké data v naší službě Service1.cs – nmaše služba, která nabízí nějaké ukázkové metody Web.config – standardní configurační soubor Pro mojí ukázku si vytvoříme fiktivní databázi (třída) obsahující kategorie (CategoryCollection) a produkty (ProductCollection) public class FakeDatabase{ static FakeDatabase() { // nactu categorie a produkty Categories = new CategoryCollection(); Products = new ProductCollection(); } public static ProductCollection Products { get; private set; } public static CategoryCollection Categories { get; private set; }} Pr
Yoeric WinBreadBorad – SW simulátor zapojování číslicové logiky na breadboardu (univerzálním kontaktním poli). Sice 50$, ale na hraní možná zajímavé. I když není nad fyzický HW. VirtualBreadboard – simulátor HW, umí např. PICy Microsoft at 2010 International Consumer Electronics Show (CES): Video Gallery – videa, hlavně keynote S. Ballmera, + článek a fotky na zive.cz Visual Studio 2010 Tips and Tricks – anonce počínající série článků – aspnet.sk Hľadáte tú správnu ikonu? – info na aspnet.sk ohledně webu IconFinder Začal jsem cvičit TDD katu – cvičení pro programátory, ale nikoliv fyzické – to jsou věci … FubuMVC – framework MVC, momentálně v rané fázi vývoje (aspnet.sk) CES 2010: Nvidia uvedla novou řadu procesorů Tegra – novinka Tegra2 (diit.cz) – testovací platforma by se hodila! Nová kniha: C/C++ Hotová řešení – vydává CPress, info na zive.cz Hromada Božských režimů pro Windows 7 – shrnutí na zive.cz Intel AppUp Center – zdroj programů pro Intel Atom netbooky a Intelský Developer Program pro jejich vývoj Wall Photo Maker: Tiskněte na celou stěnu – program na velké obrázky z normální tiskárny za 75$, zajímavější je diskuze s alternativami Comparing PVS-Studio (VivaMP) and Intel C/C++ ("Parallel Lint") – článek na codeguru.com Smartbooks – Freescale založené i.MX515 a jejich reference design – bude ještě zajímavé to sledovat The Most Useless Machine EVER! – kradička s vypínačem, co se “sama vypne” – blbůstka z youtube.c
Ve firmě jsme před nějakým časem začali používat na vývojářských počítačích delay signing s následným vytvořením plného podpisu při buildu na TFS build serveru. Nastavení vývojářských počítačů pro podporu delay signingu jsem popisoval v tomto článku . K vytvoření plného podpisu byl použit vlastní build task, který spouští nad každou zkompilovanou assembly nástroj sn.exe. Implementaci tasku a jeho použití jsem se věnoval v dalším článku. Řešení s pomocí vlastního tasku bylo sice funkční, ale bylo poměrně pomalé a občas nestabilní, zejména při větším zatížení build serveru. Se zvyšujícím se počtem projektů v TFS tyto problémy narůstaly a bylo nutné najít jiné řešení. Řešením se nakonec ukázalo využití konfiguračního elementu CustomPropertiesForBuild v projektovém souboru TFSBuild.proj. Tento element je možné využít k předání vlastností MSBuildu (+ případnému přepsání existujících) pro build jednotlivých projektů v solution. Výchozí nastavení pro “delay signing” jednotlivých projektů je tak možné přepsat na plné podepsání následujícím způsobem: <CustomPropertiesForBuild>     SignAssembly=true;DelaySign=false;AssemblyOriginatorKeyFile=c:\Keys\firemniKlic.snk </CustomPropertiesForBuild> Za inspiraci díky http://ozgrant.com/2008/03/13/strong-name-your-assemblies-with-team-build-using-a-private-key/ a pokud by někdo chtěl experimentovat s uložením privátního klíče do úložiště klíčů namísto souboru, tak to je možné také – viz http://blogs.msdn.com/n
Čo by mal každý (programátor) vedieť o znakových sadách a kódovaní znakov – aspnet.sk Archiv Prezentací (10.) – Windows 7 pro vývojáře aneb prezentace, která nikdy nebude prezentována …. – sice nedokončená, ale cca 90 slides Co se skrývá pod zkratkou MOEMS ? - Mikro Opticko-Elektro-Mechanické Systémy na hw.cz Tajemství tekutých krystalů – LCD od začátků na tvfreak.cz Sun VirtualBox: virtuální rozmnožování počítače – další virtualizační platforma Řadič klávesnice 8 x 8 s GPIO, budiči LED a ESD ochranou – MAX7360 představen na hw.cz Build Your Own Windows Vista Sidebar Gadget – článek na MSDN magazine Microsoft MultiPoint Software Development Kit (SDK) – MS Šikovné panely pro pracovní plochu Windows rozšíří její obzory – Fences a další Docky (technet.idnes.cz) Novinky v Silverlight 4 na vlastné oči – aspnet.sk VIA představila další platformu - Mobile-ITX – 60x60mm ASP.NET MVC, ASP.NET Tips: Provide immediate feedback to the browser on Long Running Tasks – using regular web handler – Shahed Hkan (MVP) blog Z USB do sítě – Ethernetový server pro (flash) disky ProgeCAD 2009 Smart! - nová bezplatná náhrada AutoCADu je tu! – automatizace.hw.cz Dvě nové české a slovenské e-knihy ke stažení - “Praktické objektové programování v jazyce C# 4.0” a “Praktické paralelní programovaní v C# 4.0 a C++” TMS Smooth Controls Pack – skvělé kontroly v iPhone stylu, ale jen pro C++Builder a Delphi Intel ukázal procesor s 48 jádry. Příští rok však na
June 7th Links: ASP.NET, AJAX, ASP.NET MVC, Visual Studio – balík linků na plno informací – novinky k 7.6.2009 na ScottGu's Blog Vyznejte se v procesoru – velký přehled technologií – 2-dílný článek na zive.cz Konektory a sběrnice základních desek na cestě časem – 6-dílný článek na svethardware.cz 40+ Helpful Resources On User Interface Design Patterns – rozsáhlý zdroj odkazů pro tvorbu UI na smashingmagazine.com Záchrana pro vaše virtuální disky VHD – jak zvětšit Fixed VHD jednotku – technetblog.cz Projekt ROMOS – prostředí spouštějící se z (Flash)ROM po na konci BIOSového POSTu s možností připojit i DOS (resp. FreeDOS) – např. místo BootROM na síťovce Windows4SAM – portál pro provozování WinCE nebo Win Embedded na Atmel AT91 (SmartARM) Essential Visual Studio Tips & Tricks that Every Developer Should Know – 10 tipů Stephena Wathera a bohatá diskuze 30 HTML Best Practices for Beginners – Basix – net.tutsplus.com Kybermozek: Vědci vyrobili prototyp neuronového čipu – info na zive.cz 32 Tips To Speed Up Your MySQL Queries – ajaxline.com Microsoft Robotics Developer Studio 2008 R2 - Microsoft Robotics Developer Center Historie společností v IT – Intel – svethardware.cz Velký průvodce světem Palm OS 5.4 – svethardware.cz Operační systém Sugar nyní dostupný všem – původně určen pro OLPC XO Síťování v Hyper-V – jak na to – ms technetblog.cz Odlehčené operační systémy speciálně pro netbooky – přehled počátkem roku 2009 Hyper-
MS WebApp gallery – přehled vzorových web-aplikací Mono compiler odteraz s C# 4 full podporou – info na aspnet.sk Ze zákulisí vývoje Windows 7 – info o záznamu z live-meetig setkání Microsoft Silverlight 4 Tools for Visual Studio 2010 Beta 2 – MS Downloads Nemesis Gallery – modul pro IIS7 od Altaira, nyní na CodePlexu Visual Studio Test Elements: novinka speciálně pro testery – speciální edic VS [Polemika] Ako merať úspech Open Source projektu? – aspnet.sk ASP.NET WebForms Best Practices - System.Nerd.John.Blog + velmi zajímavý design webu Neznáme feature: Syntetizácia reči v C# – umí to prý Win od XP SP2 Zabudované asp.net http handlere – odka z aspnet.sk Create Killer Microsoft Surface™ Apps – kontroly od NetAdvantage Předpověď počasí zdarma a pro všechny – odkazy na řadu zdrojů na internetu Je tu Bluetooth low energy s výdrží několik let – novinka na diit.cz Rapid UI Prototyping with Microsoft Expression Blend 3 – článek na codeguru MODBUS Serial RTU + TCP/IP Simulator – článek na codeguru Creating Windows 7 Jump Lists With The API Code Pack and Visual Studio 2008 – článek na codeguru Gaia Ajax – ASP.NET komponenty pro Ajax bez JS, odkaz na ComponentSource Developer Days 2009 – seznam on-line prezentací z akce (CZ) Přichází levný tablet pro každého – info na ExtraNotebook.cz o referenčním designu Freescale založeném na i.MX515 (ARM-Cortex8 1GHz, 7” LCD 1024x600) Aktivujte Aero i ve Windows, v nichž to není možné –
Během vývoje systému Kentico CMS, který využívá mimo jiné MS AJAX, jsme narazili na problém s nefungujícím AJAXem na Chrome a Safari3+. Problémů s AJAXem je mnoho např. nefungující RegisterXXXXScriptBlock v update panelu atd. Problém je v tom, že v době, kdy MS AJAX vznikl, měl WebKit (na kterém staví jak Safari, tak Chrome) bug, díky kterému AJAX nefungoval. Takže se do MS AJAXu natvrdo zadělal workaround pro WebKit….Jenže po několika verzích byl tento bug ve WebKitu opraven a tím pádem workaround způsobuje problémy…. Těžko hledat viníky…V postu mého kolegy najdete více informací včetně řešení…. AJAX not working properly with Chrome or newer versions of Safari- Přidej do linkuj.cz! | jagg.cz! | del.icio.us! | digg it! | reddit! | kick it! | live it! | email it!
Pokud binding píšete ručně přímo v XAMLu, určitě mi dáte za pravdu, že se občas překlepnete nebo přehlédnete a binding prostě nefunguje. O tom, jak ladit data binding ve WPF vyšlo už poměrně hodně článků např. How can I debug WPF bindings? od Bea Stollnitze, který popisuje několik technik ladění. Nejvíce se mi osvědčilo nadění pomocí Converteru. Converter je třída, která je zděděná z IValueConverter a můžeme pomocí něho udělat  jakousi transformaci dat na požadované datové typy. Jako jeden z příkladů budiž projekt WPF Converters na CodePlexu, který obsahuje poměrně velké množství v praxi hodně užitečných konvertorů. Můj Converter pro ladění vypadá takto: public class DebugConverter : IValueConverter {   public object Convert(object value, Type targetType, object parameter, CultureInfo culture)   {     System.Diagnostics.Debugger.Break();     return value;   }   public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)   {     System.Diagnostics.Debugger.Break();     return value;   } } Princip je jednoduše takový, aby při konverzi hodnoty vyskočila výjimka. Potom si můžeme ve Visual Studiu prohlédnout hodnotu, která by se konvertovala v parametru value. Pokud by k výjimce vůbec nedošlo, znamená to, že se Converter nepoužil a tím pádem se pravděpodobně jedn
Microsoftí reklamní upoutávka ukazuje využití BI technologií při tréninku fotbalistů AC Milán. Ukázka zachycuje slavné tváře a výpovědi trenérů, bohužel však méně záběrů na samotné vyhodnocení tréninkových dávek a použitých technologií. Posuďte sami: http://www.microsoft.com/smallbusiness/products/businessintelligence.aspx?CR_CC=100275146 Přidej do linkuj.cz! | jagg.cz! | del.icio.us! | digg it! | reddit! | kick it! | live it! | email it!
Dnes zase jen stručně a v podstatě jedním odkazem. Pokud jste (stejně jako já) dost zapomnětlivý nebo se s technologií WPF teprve seznamujete, určitě oceníte WPF XAML Data Binding Cheat Sheet, ve kterém jsou uvedeny všechny základní konstrukce pro tvorbu bindingu ve značkovacím jazyce XAML. V kombinaci s budoucím Visual Studiem 2010, které už konečné bude podporovat intellisense i pro binding, bude snad psát binding přímo v XAMLu mnohem snazší. Přidej do linkuj.cz! | jagg.cz! | del.icio.us! | digg it! | reddit! | kick it! | live it! | email it!
Nedávno jsem potřeboval načíst konkrétní záznamy ze systémového EventLogu. Šlo o tisky provedené na jednom serveru, které jsou ukládal do databáze. Výsledkem byl seznam toho, kdo/co/kdy/kolik tiskne. Integration Services nabízí komponentu, která uloží výsledek WMI dotazu do souboru (WMI Data Reader Task). Komponenta není bohužel napsána jako data flow source, ale i s nutným mezikrokem (uložení do souboru a následné načtení) je relativně snadno použitelná. Kromě cílového serveru se nastaví namespace pro WMI objekt, v případě EventLogu je to \root\cimv2. WMI dotazovací jazyk (WMI Query Language - WQL) je podmnožina ANSI SQL. Dotaz na všechny tiskové události bude vypadat asi takto: Select * from Win32_NTLogEvent Where Logfile = 'System' And SourceName='Print' And TimeGenerate > '20100101141835.00000420' Určitým problémem může být práce s časovým formátem WQL, zde ale pomůže třída System.Management.ManagementDateTimeConverter. Služba WMI původně vznikla, aby umožnila prováděni administrativních úkolů na vzdálených počítačích. Základním (a ve většině WMI příkladů nejspíš implicitně očekávaným) nastavením jsou administrátorská práva. Při detailnějším nastavení přístupových práv je ale situace o něco složitější. Co je tedy nutno udělat? DCOM nastavení. WMI používá DCOM pro běh kódu na cílovém počítači. První věcí je tedy umožnit vzdálený přístup k počítači. Spustit DCOM Config (DCOMCnfg.exe nebo přes administrative tools) Component Services -> Computers -> My Co
Ve článcích parameter inspection a message inspection jsem se věnoval možnostem rozšíření a dnes v tom budu pokračovat, protože jsem zapomněl uvést možnost rozšíření pomocí rozhraní IOperationInvoker. Toto rozhraní nám umožní přepsat metodu Invoke a plně převzít kontrolu nad vykonáním konkrétní aplikace. Vytvořil jsem si jednoduchou službu (atributu ProductCaching si zatím nevšímejte, vysvětlím později) [ServiceContract] public interface IProductService { [OperationContract] [ProductCaching] Product GetProduct(string name); } V implementaci služby pouze vrátím konkrétní produkt public class ProductService : IProductService { #region IProductService Members public Product GetProduct(string name) { using (VWAEntities ctx = new VWAEntities()) { return (from c in ctx.Product where c.Name == name select c).FirstOrDefault();   } } #endregion } To co zde napíšu jako rozšíření pomocí rozhraní IOperationInvoker by se dalo velice snadno zakomponovat do implementace metody GetProduct, ale může nastat situace, kdy nebudeme moct šahat na tento kód tak se nám možnost tohoto rozšíření může hodit. Vytvořím si tedy třídu, která bude implementovat rozhraní IOperationInvoker object[] AlocateInputs – slouří pro alokaci pole potřebné
V minulém článku jsem ukazoval možnosti routování, kde jsem vše potřebné nastavil v konfiguračním souboru a dnes si ukážeme jak aplikovat nové pravidla pro směrování za běhu služby. Např. naše routovací služba může provádět v jiném vlákně kontrolu stavu jednotlivých služeb a v případě, že služba nebude schopna momentálně přijímat žádné požadavky, můžeme dynamicky změnit podmínku pro směrování zpráv a nyní přeposílat zprávy na jinou službu. Musíme si tedy vytvořit novou routovací konfiguraci, která obsahuje směrovací tabulku s jednotlivými filtry: private static RoutingConfiguration NewRoutingConfiguration() { // vytvorim si smerovaci tabulku var filterTable = new MessageFilterTable<IEnumerable<ServiceEndpoint>>(); // pridam dva filtry MessageFilter addFilter = new ActionMessageFilter("http://tempuri.org/ICalculator/Add"); MessageFilter subtractFilter = new ActionMessageFilter("http://tempuri.org/ICalculator/Subtract"); // definice endpointu na ktere se budou zpravy preposilat ServiceEndpoint calc1 = new ServiceEndpoint( ContractDescription.GetContract(typeof(IRequestReplyRouter)), new BasicHttpBinding(), new EndpointAddress("http://localhost:9000/servicemodelsamples/calcservice1")); ServiceEndpoint calc2 = new ServiceEndpoint( ContractDescription.GetContract(typeof(IRequestReplyRouter)
Před časem běžela na blog.vyvojar.cz série článků od Tomáše Pastorka porovnávajících skriptovací jazyky pro .NET (mimochodem, moc díky za to porovnání). Můj oblíbený jazyk Boo se neumístil vůbec špatně. Proto se s vámi chci podělit o Boo Quick Reference Cards, které jsem si pro sebe kdysi vytvořil. Je to zatím první verze, která ukazuje pouze práci se základními typy.Enjoy Přidej do linkuj.cz! | jagg.cz! | del.icio.us! | digg it! | reddit! | kick it! | live it! | email it!
Routování nemělo ve verzi .NET 3.x oficiální podporu, ale s pomocí API jsme si tuto funkcionalitu byly schopni napsat. Ve verzi .NET 4.x už tato podpora existuje. Než se do toho pustíme, vytvoříme si pomocnou službu, na které budu požadavky od klienta posílat, Tedy naše routovací služba podle různých parametrů se rozhodne, na jakou službu tu zprávu zašle. CalculatorService Aby jsme si mohli ověřit správnou funkcionalitu vytvořil jsem si 2 služby, kde každá služba implementuje stejné rozhraní ICalculator: [ServiceContract] public interface ICalculator { [OperationContract] double Add(double a, double b);   [OperationContract] double Subtract(double a, double b);   [OperationContract] double Multiply(double a, double b);   [OperationContract] double Divide(double a, double b); } Kromě počítání správného výsledku mají za úkol služby vypsat do console informaci o spuštění konkrétní metody. Tyto služby spustím jednoduše pomocí objektu ServiceHost. RoutingService Pro spuštění naší routovací služby vytvoříme pouze instanci objektu ServiceHost, kde do konstruktoru předáme typ objektu RoutingService a spustíme. Toť vše a jak to tedy funguje? Pro důvod routování byla právě vytvořená nová třída RoutingService, kterou takto vložíme do konstruktoru ServiceHost objektu a poté vše nastavení provedeme v konfiguračním souboru static void
Google Wave – začíná nová éra webu? – větší článek na PCTuning.cz, příp. na technet.cz - Revoluční služba Google Wave: konkurence pro ICQ i office Google Web Elements: Miniaplikace pro váš web – společný katalog zajímavých částí z Google prostoru do stránky – iframe technika Go Beyond HTML Forms With AJAX – článek na MSDN.Mag (Dino Esposito) WPF/Silverlight Layouts – CS Corner – layout, canvas, grid aspol. Bing Maps 3D – MS Download center XNA Game Engine tutoriály – odkazy na netstudent.cz Čo je to REST – popis pojmu z WebService světa nas aspnet.sk Developing SOAP and RPC Web Services with PHP 5 – developer.com Windows Presentation Foundation (WPF) Beginners FAQ – CS Corner ScrewTurn Wiki - "jednoduchá, efektivní a rychlá Wiki engine. Je napsána v C# a staví na platformě ASP.NET” What is SlimDX? – alternativní managed knihovna pro DirectX MVC, jQuery a Visual Studio 2008 SP1 – podpora ve VS - zdrojak.root.cz, příp. Visual Studio patched for better jQuery IntelliSense (WebLogs) Multi-threading v ASP.NET – info a odkazy na aspnet.sk URL rewriting v IIS a ASP.NET – Altairův článek na aspnet.cz home » css » dd roundies – přidání kulatých okrajů – javascript.com URL Rewrite Module – modul pro IIS, info na www.iis.net ASP.NET MVC 101 – úvodní seznámení a příklady pro začátek List of countries, cities, languages - links list of countries, cities, and their languages in CSV format, you can import into any database FxCop
Hit testing se používá všude tam, kde je potřeba, aby se ověřilo, jestli bod (Point) nebo celá geometrie objektu (Geometry) a vizuální vzhled kontrolního prvku WPF (např. UIElement) spolu kolidují. V praxi se tento test používá asi nejčastěji pro události stisku tlačítek a pohybu myši, kde se na základě hit testu rozhodne, zda vyvolat událost nebo ne. Pokud bychom chtěli nějaký objekt udělat “průhledný” na vizuální kolize (klikání myší apod.) stačí na něm nastavit IsHitTestVisible = false. Je to užitečné, když potřebujeme události od objektu, který leží pod tímto “průhledným”. Vlastnost IsHitTestVisible má ale v jednom směru dost nepříjemné chování. Její hodnota se dědí z rodičovského prvku. Myslím, že nejlepší bude praktická ukázka: <Canvas x:Name="Klikat" IsHitTestVisible="True">   <Canvas x:Name="Neklikat" IsHitTestVisible="False">      <Ellipse x:Name="Klikat_elipsa" IsHitTestVisible="True" />   </Canvas> </Canvas> V tomto případě bychom chtěli docílit toho, aby Canvas s názvem “Klikat” generoval události myši, Canvas “Neklikat” byl průhledný a elipsa “Klikat_elipsa” generovala události. Zde ale narazíme na problém. Vlastnost IsHitTestVisible se totiž dědí z nadřazeného elementu a tím pádem bude mít elipsa vždy IsHitTestVisible = false (ať je v XAMLu nastaveno cokoliv). A události myši bude generovat pouze Canvas “Klikat”. Jak tedy z toho? Doporučuji přečíst dobrý článek na
Další porce toho, co se mi nashromáždilo na kompu MODBUS Serial RTU + TCP/IP Simulator – aplikace simulátoru ve VC6 na codeguru.com Charting with DataTemplates – WPF/XAML - článek Ch. Petzolda na MSDN magazine Praktické cvičenia pre vývojárov – elektronické publikace na slovenském MSDN Certifikujeme Symbianové aplikace online, snadno a rychle – návod na mobilmania.cz Referenční návrh IP kamery s rozlišením 1080p – od TI, spolupracuje s DaVinci čipem (hw.cz) Jak stáhnout a uložit obrázek ze zadané URL v ASP.NET – interval.cz Expect the Unexpectd a My dotNet Story – zkušenosti/příběhy uživatelů a vývojářů (?) – aktivita MS Visualization: Organizational Chart – on-line google služba/aplikace tvořící obrázky Graphviz - Graph Visualization Software – diagramové a grafové vizualizační jádro Printing Using C# – 7-dílný článek o problematice tisku Nejlepší aplikace pro notebook: správa baterie a Wi-Fi – první díl na extranotebook.cz Copy As HTML – skvělý free plugin do VS Miniaturní počítačový modul s Atomem o velikosti kreditní karty – populární představení na zive.cz Microsoft Application Architecture Guide, 2nd Edition: Zdarma ke stažení – 560 stran v PDF nebo HTML WPF: Jak zarovnat prvek vždy na střed v Canvasu? – IMultiValueConverter Prezentace z DevCon a dema z DevDays 2009 – odkazy Porovnání vlastností CPU ColdFire a ARM – hw.cz Světelný senzor s detekcí přiblížení – to by mohlo  být dobrý na terminály a kiosky (hw.cz
Seznam changesetů v TFS za období od-do....(read more)
Metadata Extensions Další novinkou v oblasti Discovery je možnost přidat k endpointu doplňující informace (v mém případě to bude u chatovací aplikace uživatelské jméno uživatele). Z verze WCF 3.x víte, že každý endpoint má kolekci Behaviors, do které můžeme přidat dodatečná nastavení či rozšířené vlastnosti endpointu. Stačí vytvořit třídu, která implementuje rozhraní IEndpointBehavior a upravit metody tak aby dělaly co chcete (např. kontrola příchozích zpráv v článku zde). Ve verzi 4.x můžeme využít třídu EndpointDiscoveryBehavior, která implementuje zmiňované rozhraní IEndpointBehavior a dále přidává další vlastnosti např. Scopes či Extensions. Jakmile vytvoříme instance třídy EndpointDiscoveryBehavior tak do kolekce Extensions můžeme uložit jakékoliv informace ve formě XElementu 1: // vytvorim si novy objekt EndpointDiscoveryBehavior 2: var endpointDiscoveryBehavior = new EndpointDiscoveryBehavior(); 3: // do kolekce Extensions pridam doplnujici informace o aktualne prihlasenem uzivateli 4: endpointDiscoveryBehavior.Extensions.Add( 5: new XElement("root", 6: new XElement("Name", this.UserName))); Pokud si vzpomínáte na můj první článek o Discovery tak jsem po stisku tlačítka vytvářel instanci objektu ServiceHost, kde jsem předal typ služby a jednoznačnou adresu. Jelikož se endpoint vytvoří dynamicky na základě mojí Uri adresy, potřebuju si získat z kolekce endpointů ten můj dynamicky v
Přešli jste z 32bitové platformy na 64bitovou a najednou vám vaše ASP.NET aplikace začala vyhazovat divné chyby? Pracujete na 64bitovém prostředí, ale potřebujete z  ASP.NET aplikace volat 32bitové knihovny/ovladače?Přesně tyto problémy jsem řešil po přechodu na x64 Windows7. Najednou mi přestaly chodit ASP.NET aplikace využívající 32bitový Oracle client. Produkční servery stále běží na 32 bitech, takže změnou ovladačů na x64 cesta nevede. Naštěstí mi jako obvykle pomohl pan Google. Nejprve jsem narazil na spoustu příspěvků, kde si lidé pomalu rvali vlasy, protože problém ne a ne vyřešit. Což ostatně dalo podnět i k vzniku tohoto krátkého příspěvku.Pak jsem narazil na [1]. Autor popisuje několik cest, jak se dobrat k cíli. Pro mě nejjednodušší cesta byla prostě si řešení naklikat:Otavřít IIS7 Manager.Na položce "Application Pools" vybrat "Add Application Pool..."Nový pool pojmenovat třeba "x86". Kliknout na něj v seznamu a zvolit "Advanced Settings..."Vlastnost "Enable 32-Bit Applications" změnit na True. Application pool problematické webové aplikace pomocí "Basic Settings..." změnit na "x86". Zdroje[1] Rakki Muthukumar - IIS7 - Running 32-bit and 64-bit ASP.NET versions at the same time on different worker processeshttp://blogs.msdn.com/rakkimk/archive/2007/11/03/iis7-running-32-bit-and-64-bit-asp-net-versions-at-the-same-time-on-different-worker-processes.aspx   Přidej do linkuj.cz! | jagg.cz! | del.icio.us! | digg it! | reddit! | kick it! |
Potřebovali jste někdy zobrazovat uživatelům intranetové aplikace funkcionalitu omezenou podle jejich příslušnosti do určité skupiny (manager, editor, lopata)? Zkoušeli jste to někdy dělat pomocí Active Directory? Jde to docela snadno.  Co je to vlastně to Active Directory? Active Directory je implementace adresářových služeb LDAP firmou Microsoft pro použití v prostředí systému Microsoft Windows. Active Directory umožňuje administrátorům nastavovat politiku, instalovat programy na mnoho počítačů nebo aplikovat kritické aktualizace v celé organizační struktuře. Active Directory ukládá své informace a nastavení v centrální organizované databázi. Adresářová služba Active Directory je rozšiřitelná a škálovatelná adresářová služba, která umožňuje efektivně uspořádat síťové prostředky. vyžaduje instalaci služby DNS je založena na standardních internetových protokolech jednoznačně definuje strukturu sítě organizuje skupiny počítačů a domén LDAP (Lightweight Directory Access Protocol) je definovaný protokol pro ukládání a přístup k datům na adresářovém serveru. Podle tohoto protokolu jsou jednotlivé položky na serveru ukládány formou záznamů a uspořádány do stromové struktury (jako ve skutečné adresářové architektuře). Je vhodný pro udržování adresářů a práci s informacemi o uživatelích (např. pro vyhledávání adres konkrétních uživatelů v příslušných adresářích, resp. databázích). Více detailů naleznete na Wiki (viz [1] a [2]), odkud jsem si také vypůjčil výše uvede
Nová verze WCF nabízí novou a velice dobře vypadající novinku “Discovery”. Tato novinka slouží pro hledání služeb, kde pro hledání využívá WS-Discovery protokol. WCF nabízí 2 módy pro hledání služeb: AD Hoc mód – funguje pouze v lokálním subnetu Managed mód – NENÍ omezen pouze na lokální subnet Implementace druhého módu, je o něco málo komplikovanější a proto mu budu věnovat samostatný článek. Nyní si tedy ukážeme implementaci AD hoc módu. Služba Aby uměla naše služba reagovat na hledání ze strany klienta, musí mít endpoint UdpDiscoveryEndpoint (Klient, který provádí hledání má rovněž tento endpoint) na který přichází požadavky od klienta, tedy klient pošle zprávu na všechny služby, které mají uveden tento endpoint. Kromě tohoto endpointu je nutné v ServiceBehaviors “zapnout” viditelnost služby na síti a to pomocí elementu serviceDiscovery. Pokud by naše služba neměla uvedený element ServiceDiscovery, zprávy zaslané klientem by na takovou službu nepřišly. 1: <system.serviceModel> 2: <services> 3: <service name="GreetingService.GreetingService"> 4: <endpoint address="" 5: binding="basicHttpBinding" 6: contract="GreetingService.IHello"/> 7: <endpoint name="udpDiscoveryEndpoint" kind="udpDiscoveryEndpoint"/> 8: </service>
Konečně jsem se odhodlal k tomu abych všechny svoje prezentace umístil na jedno místo. Prohlédnout, případně stáhnout si je můžete na adrese http://cid-443d88037e0a0331.skydrive.live.com/self.aspx/Prezentace Jedná se především o prezentace, které jsem měl na VŠB TU-Ostrava Přidej do linkuj.cz! | jagg.cz! | del.icio.us! | digg it! | reddit! | kick it! | live it! | email it!
Pokud jste z nějakého důvodu nebyli na letošních Microsoft Developer Days 2009, anebo jste tam byli a chcete si je ještě připomenout, potěší Vás zpráva o tom, že již jsou on-line k dispozici materiály ve formě webcastů, screencastů a prezentací. Všechny materiály jsou dostupné na www.devdays.cz .  Přidej do linkuj.cz! | jagg.cz! | del.icio.us! | digg it! | reddit! | kick it! | live it! | email it!
Dnes jenom stručně a v podstatě jedním odkazem, který musím přeposlat dál. :). Jedná se o velmi elegantní řešení, jak zarovnávat prvky v rámci Canvasu - a to jak horizontálně, tak vertikálně. Celé řešení je v chytré implementaci IMultiValueConverter tak, aby centroval. Více ve článku: Centering elements on a canvas in WPF.  Přidej do linkuj.cz! | jagg.cz! | del.icio.us! | digg it! | reddit! | kick it! | live it! | email it!
V listopadu se z akcemi pro .NET vývojáře tento rok nějak roztrhl pytel. Minulý týden pořádal Gopas svojí vývojářskou konferenci DevCon 2009, tento týden probíhaly Microsoft DevDays a aby toho nebylo málo, tak tento víkend ještě k tomu pořádáme na MFF UK pravidelnou akci MS FEST (Stále ještě můžete na konferenci dorazit - v sobotu i v neděli se chystá fůra zajímavých přednášek!). Na všech třech akcích se nějakým způsobem podílím, takže mi snad odpustíte mojí neschopnost dávat dema a slidy z konferencí na web v rozumném čase... Na Gopas DevCon 2009 jsem měl jednu přednášku na téma "Co je nového v .NET 4.0 a ve Visual Studiu 2010" a zaměříl jsem se na novinky v jazyce C# 4.0 (dynamic, pojmenované parametry, výchozí hodnoty atd...), code contracts (a nástroje pro jejich ověřování) a paralelizaci (Parallel LINQ a knihovnu Tasks). Slidy z konference a dema která jsem ukazoval si můžete stáhnout zde: Slidy z konference Dema pro Visual Studio 2010 Na Microsoft DevDays 2009 jsem měl pouze dvě krátká dema - za prvé jsem ukázal jak můžete pěkně pracovat s XML dokumenty pomocí dynamického typování v C# 4.0 a za druhé jsem ukazoval programovací jazyk F# (práce s fyzikálními jednotkami a skládání animací z jednoduchých primitiv): Dema z DevDays   Tak, a teď jdu už konečně chystat přednášky na zítra na MS Fest :-). Přidej do linkuj.cz! | jagg.cz! | del.icio.us! | digg it! | reddit! | kick it! | live it! | email it!
Vázení Webmail volny.cz e-mailového úctu majitele Tato zpráva je ze strediska multimediálních zpráv volny.cz vsechny e-mailového úctu majitele. V soucasné dobe aktualizaci nasí databáze a e-mai úctu volny.cz centrum. Jsme zrusení vsech nevyuzité volny.cz e-mailový úcet vytvorit více prostoru pro nové úcty. Chcete-li zabránit úctu od uzavrení budete muset upravit tak, ze vím, ze je v soucasné dobe pouzívané v úvahu. Potvrdte e-mail identita níze: Jméno E-mail: Identita Heslo: Datum narození: Zeme...(read more)