Vývojářský blog Tomáše Hercega

Poslední články

Období
RSS Feed
.NET Tips 2D 3D Aplikace ASP.NET C# HTML+CSS Internet Javascript Office Silverlight SQL VB.NET VB6 VbNet.cz Vista VS Život, vesmír a vůbec Všechny články
Protože nejstarší články na tomto serveru o základech Visual Basicu jsou již docela zastaralé, rozhodl jsem se je zrevidovat a zaktualizovat pro verzi Visual Basic 2010. První díl už mám a asi zvládnu i několik dalších, protože právě teď trčím na letišti v Los Angeles, posunuli nám odlet o 2 hodiny a nemám co jiného bych dělal.
[Zobrazit článek]
Datum: 28. 2. 2010 5:48
Kategorie: VB.NET
Heslo “co si nenapíšeš sám, to nemáš” bohužel platí velmi často, zejména pak, pokud potřebujete nějaké inteligentní zvýrazňování syntaxe v ukázkách kódu na webu. Zkoušel jsem několik různých řešení a žádné se mi moc nelíbilo. Buď bylo šíleně překombinované a používalo nehezká CSSka (každý řádek kódu byla tabulka a v CSS bylo vše s modifikátorem !important, což v praxi dělalo problémy), anebo nepodporovalo jazyky, které potřebuji, a ani nebylo snadno rozšiřitelné, abych je mohl dopsat.
Proto jsem si během pár hodin na MVP Summitu napsal své vlastní obarvovátko. Je to celkem jednoduchý javascript, který vložíte do stránky, on si v ní najde všechny značky pre a podle toho, jakou mají CSS třídu (tou se určuje jazyk ukázky kódu), provede samotné zvýraznění. Definice nových jazyků je velmi jednoduchá a přímočará, prostě jen popíšete stavový automat. Zatím to umí C#, VB, SQL a XML, což mi pro začátek bohatě stačí.
A protože by se to mohlo hodit někomu jinému, nehodlám to dodělávat a ať si s tím pro mě za mě dělá každý co chce, udělal jsem z toho open source a dal to na CodePlex.
Stránka projektu Tiny Syntax Highlighter
[Zobrazit článek]
Datum: 20. 2. 2010 9:09
Kategorie: Javascript, Život, vesmír a vůbec
V pondělí 15. února v brzkých ranních hodinách (to znamená, že nemá cenu ani chodit spát) odlétáme s Tomášem Jechou a dalšími MVP z Česka i Slovenska na MVP Summit 2010 do Seattle. A když už jedeme takovou dálku, hodláme se pár dní zdržet a projet si nejzajímavější části západního pobřeží.
Napadlo mě vyzkoušet pro zápisky z cesty aplikaci OnTheRoad.to, takže moje zápisky a fotky z cesty můžete sledovat na adrese http://hercegtomas.ontheroad.to/mvpsummit2010. Tomáš Jecha má svůj zápisník na adrese http://heho.ontheroad.to/usa2010, takže můžete sledovat i jeho.
Až do konce února tady nejsem, takže pokud po mě něco chcete, máte ještě pár hodin.
[Zobrazit článek]
Datum: 14. 2. 2010 18:17
Kategorie: Život, vesmír a vůbec
Vzhledem k tomu, že jsem v poslední době narazil na pár lidí v diskusních fórech, kteří by uvítali nějaký pěkný tutoriál o tom, jak ve Visual Studiu ladit aplikace, rozhodl jsem se udělat na toto téma krátký screencast. Je k dispozici na serveru MSTV.cz.
Podíváme se na to, jak udělat breakpoint, jak krokovat v aplikaci a jak sledovat hodnoty uvnitř proměnných. Také se krátce zmíníme o podmíněných breakpointech.
Screencast je určen pro úplné začátečníky.
[Zobrazit článek]
Datum: 9. 2. 2010 9:58
Kategorie: Život, vesmír a vůbec
Včera jsem psal jednu dosti šílenou komponentu v ASP.NET a narazil jsem na zajímavý problém. Budu kvůli němu muset ještě trochu doplnit poslední článek o vývoji hierarchického repeateru, aby neprováděl data-binding pokaždé, ale uměl si položky obnovit z ViewState.
Ale zpátky k tématu – moje komponenta si při prvním načtení vytáhne z komponenty DataSource data, která zobrazí. Pro každý řádek vygeneruje nějakou komponentu, kterážto uvnitř obsahuje spoustu dalších komponent. Při postbacku se dotaz do DataSource znovu nedělá, hodnoty se natáhnou z ViewState (pokud bychom databinding udělali znovu, ztratily by se v nich totiž změny provedené uživatelem). Jak to vlastně funguje?
ViewState obsahuje pouze změny hodnot vlastností komponent (těch, které ho podporují, což je ale po hříchu většina) provedené od fáze PreLoad, kdy se ViewState načítá a začíná sledovat. Pokud tedy vlastnost komponenty nastavíme v události Init nebo dříve, do ViewState se neuloží. Toho se využívá v případě, že hodnotu vlastnosti uvedeme natvrdo do ASPX stránky – strom komponent se vytváří velmi brzy a vlastnosti se hned nastaví. Protože ještě nemáme ViewState, tyto vlastnosti se ale do něj neukládají. Díky tomu ve ViewState nemáme zbytečné hodnoty, které jsou natvrdo zapsány v ASPX stránce a server si je může kdykoliv obnovit. Pokud hodnotu vlastnosti po události PreLoad změníme v code-behindu, tato změna se už do ViewState ukládá.
Šablony (např. vlastnosti ItemTemplate) se samozřejmě do ViewState neukládají. Když natáhnu nějaká data třeba do Repeateru, on podle nich vygeneruje komponenty a při příštím požadavku je může obnovit z ViewState. Jediné, co potřebuje vědět, je to, kolik jich bylo, a jakého byly typu. Repeater si tedy při bindingu zapamatuje počet položek a při postbacku se neptá datového zdroje znovu, ale prostě jen vytvoří tolik položek, kolik tam bylo před tím, a všechny jejich vlastnosti, které se bindovaly přes vazby Eval, se obnoví z ViewStatu – bindujeme totiž vždy do vlastností komponent.
Pokud máme komponentu, která dynamicky generuje komponenty jiné, k zajištění, aby se správně ve fázi PreLoad obnovil ViewState, potřebujeme udělat jednu důležitou věc – zachovat stejný strom komponent. Repeater musí mít v sobě stejný počet komponent typu RepeaterItem, aby se do nich hodnoty nahrály. Důležité je také to, aby seděla ID komponent.
[Pokračování článku]
Datum: 5. 2. 2010 13:28
Kategorie: ASP.NET, Život, vesmír a vůbec
Strana 1 z 37 (článků: 185) 123456Další »»»