May 22nd, 2008
Bluetooth je bezdrátová technologie široce využívaná pro bezdrátový přenos dat zejména v malých zařízení jako jsou například PDA. Pro uživatele není většinou žádný problém Bluetooth používat, ale z pohledu vývojáře se může stát vývoj aplikace využívající Bluetooth celkem flustrující záležitostí.
Read the rest of this entry »
Posted in .NET | No Comments »
April 4th, 2008
V seriálu o Windows Presentation Foundation přibyl nový díl zaměřený na pokročilé techniky DataBindingu. Vysvětleny jsou především:
- Validátory
- jak například ošetřit to, aby vám uživatel do TextBoxu nabindovaného na vlastnost typu int nevložil text namísto čísla?
- jak si vytvořit vlastní validátor, který rozhodne zda zadaná hodnota je či není validní?
- jakým způsobem upozornit uživatele v případě, když zadaná hodnota není validní?
- Konvertory - jak vytvořit a používat konvertory v případě, kdy potřebujete nabindovat dvě vlastnosti rozdílného datového typu
Nový díl naleznete na http://cs.wpfstart.com/?q=tutorial&qq=6 [^].
Posted in .NET | No Comments »
April 2nd, 2008
Dnes mě v RSS překvapila zpráva o celkem netradičně pojaté soutěži, kterou Microsoft pořádá příští měsíc. Jedná se o 24 hodinový soutěžní maratón v programování.
Program soutěže vypadá víc než dobře, během celého dne proběhnou 3 kola vždy po jedné hodině, kde musí soutěžní týmy vytvořit mini-webovou aplikaci podle zadaných úkolů (každou hodinu jeden) a to za použítí ASP.NET 3.5, SilverLightu a Windows Live Services. Čas mezi jednotlivými kolami je vyplněn cool aktivitami jako pařby Halo 3 na 360ce nebo hraním fotbálku. Takové soutěže se mě určitě líbí a hned bych se přihlásil, kdybych měl alespoň další 2 lidi do týmu … a taky uměl SilverLight a ASP.NET … a ještě k tomu bydlel v ČR…
Každopádně Microsoft by měl takovýchto soutěží pořádat víc, jen bych možná do 24 hodin dal víc programování, alespoň 2x po 3 hodinách a nebál bych se udělat takovou soutěž na lokální úrovni, jedná se určitě o aktivitu, která dobře zpropagovaná může zaujmout hodně zájemců.
Více o této soutěži naleznete zde http://www.microsoft.com/cze/wintheweb/default.mspx ^
Posted in jiné | 2 Comments »
April 1st, 2008
Možná jeden z méně známých, nicméně užitečných konceptů v C# jsou tzv. indexery. Indexer (někdy také označován jako smart array) nám umožní zacházet s objektem třídy jako kdyby se jednalo o pole.
Class c = new Class();
c.Foo();
c[0] = "abc";
c[1] = "def";
Read the rest of this entry »
Posted in .NET | No Comments »
February 22nd, 2008
go to english version »
Možná jste již byli v situaci, kdy jste potřebovali veřejnou událost (či události) na nějaké třídě testovat unit testy. Problém je, jak pozastavit test na určitou dobu kdy jsou očekávána volání patřičné události a také jak tyto volání logovat, aby unit test mohl porovnat zda všechna volání proběhla s očekávanými hodnotami a pořadí.
Zde je mé jednoduché řešení…
Read the rest of this entry »
Posted in .NET | No Comments »
February 22nd, 2008
go to english version »
Znáte Foldr? Foldr je funkce, kterou najdeme ve většině funkcionálních jazycích jako je například Haskell (Foldr) či F# (List.Fold_r). Jedná se o velice užitečnou funkci pokud potřebujete zpracovat jednotlivé prvky pole a vrátit jako jeden výsledek (ne pole). Takovým příkladem by mohlo být například sečtení všech čísel v poli.
Foldr není součástí .NET frameworku! Implementaci této funkce najdete na konci tohoto článku.
Funkce Foldr má 3 parametry, první je zpracovávané pole (list), pak defaultní hodnota (def), která je použita jako poslední prvek pole a funkce (fun), která je volána na každé dva sousední prvky pole.
forma: Foldr ( list, def, fun )
Jak to tedy funguje? Řekněme, že potřebujete sečíst všechna čísla v poli…
Teorie
forma: Foldr ( list, def, fun )
kód: Foldr ( { 1, 2, 3, 4 }, 0, + )
sečtení: 1 + (2 + (3 + (4 + 0))) = 10
Read the rest of this entry »
Posted in .NET, Func. programming | No Comments »
January 27th, 2008
go to english version »
V nové verzi C# 3.0 můžeme najít nové vlastnosti, které známe spíše z funkcionálních jazyků (například lambda expressions). Když jsem ale zpočátku zkoušel různé základní funkcionální postupy, byl jsem celkem zklamaný - nemohl jsem nadeklarovat rekurzivní funkci.
Jaký byl tedy problém? Podívejme se na implementaci jednoduché funkce factorial (int -> int) - má jeden parameter int a vrací int:
Test 1
Func<int, int> fac = x => x == 0 ? 1 : x + fac(x - 1)
Toto je optimální jednořádkové řešení, které ale bohužel v C# nefunguje, dostaneme chybu “Use of unassigned local variable ‘fac’“. Nemůžeme takto psát rekurzivní funkce, protože compiler nezná naši fac funkci při rekurzivním volání.
Test 2
Zkusíme tedy nadeklarovat fac funkci o jeden řádek dřív:
Func<int, int> fac;
fac = x => x == 0 ? 1 : x + fac(x - 1);
Stejná chyba, “Use of unassigned local variable ‘fac’”
Test 3
Func<int, int> fac = null;
fac = x => x == 0 ? 1 : x + fac(x - 1);
Toto řešení již funguje, pokud tedy chceme volat funkci rekurzivně, musíme ji nadeklarovat a přiřadit hodnotu null dřív, před implementací samotné funkce. Nicméně jak můžeme vidět, C# 3.0 nám nedovolí deklarovat ’sexy’ jednořádkové funkce.
Posted in .NET, Func. programming | No Comments »
January 18th, 2008
Je to asi dva měsíce, co Internetem proběhla zpráva o uvolnění zdrojových kódů .NET Frameworku s podporou debugování ve Visual Studiu 2008. A počínaje dnešním dnem již toho může plně využít kdokoliv! Takže podívejme se jak na to.
Read the rest of this entry »
Posted in .NET | No Comments »
January 10th, 2008
Microsoft rozjíždí novou službu Office Live Workspace. Jedná se o rozšíření vašeho pracovního prostoru na Internet, kde můžete mít uloženy své Office dokumenty a přistupovat k nim z různých počítačů na Internetu. Otevírat, editovat či ukládat dokumenty lze přímo pomocí Microsoft Office připojenému k vašemu workspace.
Dále můžete do vašeho prostoru pozvat ostatní uživatele a sdílet dokumenty s nimy, vytvářet a sdílet kalendáře či synchronizovat kontakty z Outlooku.
Můžu si to vyzkoušet? Ne…
Tato služba ještě nebyla zprovozněna. Výše uvedené informace jsou pouze sumarizací toho co Office Live Team uvádí na svých stránkách. Proč se tedy o této službe zmiňuji? Na stránkách Office Live Workspace ^ byla otevřena zdarma před-registrace na tuto službu, takže se dá očekávat brzské zprovoznění služby.
Pokud si tedy chcete služu zdarma vyzkoušet, neváhejte a využijte možnosti bezplatné před-registrace na stránkách http://r.office.microsoft.com/r/rlidOLWFullSignup ^. Po registraci dostanete potvrzující e-mail s informací, že jakmile bude beta verze Office Live Workspace spuštěna, budou vám zaslány informace o přístupu k vašemu pracovnímu prostoru.
Posted in jiné | 3 Comments »
January 7th, 2008
go to english version »
Našel jsem jednoduchou ale někdy užitečnou vlastnost v LINQu, pokud potřebujete definovat lokální proměnou v LINQ dotazu, můžete použít klíčové slovo let.
Sample
Funkce vracející druhou mocninu čísel a navíc pouze pokud je výsledek sudé číslo:
int[] list = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
IEnumerable<int> x = from l in list
let dbl = l * l
where dbl % 2 == 0
select dbl;
// vysledek => 4, 16, 36, 64, 100
Posted in .NET, LINQ | No Comments »