• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    TENCOKACISTROMYProgramovani v C#, F# a dalsich jazycich pro .NET, Mono a ostatni CLI implementace
    URZA
    URZA --- ---
    NECROMAN: toto se mi docela libilo http://www.amazon.com/WPF-Control-Development-Unleashed-Experiences/dp/0672330334

    da se to sehnat i na torrentech

    jinak je i zajimave prochazet nejake dobre open-source projekty.. ted treba travim cas tady s timto:
    https://github.com/SeriousM/WPFLocalizationExtension
    NECROMAN
    NECROMAN --- ---
    Dotaz, mate tip na nejaky ebook, jak se co nejlepe naucit pokrocilou praci v XAMLu, predevsim navrh vlastnich usercontrols vcetne templatu, property bindingu, behavioru, atd.?
    NECROMAN
    NECROMAN --- ---
    Summary - Pivot a LongListSelector ve WP8 leakuje jak prase, pokud pracujete s dynamickym a databindovanym ItemsSource. A profiler vam nic nerekne, protoze to jsou nativne implemenotvane komponenty a ne managed.
    Vymenil jsem to za staticke PivotItems a ItemsControl a pohoda.
    MAIMONIDES
    MAIMONIDES --- ---
    JACHYMKO: Asi tak jako si 80% vývojářů myslí, že jsou chytřejší než 80+% vývojářů.
    MORMEGIL
    MORMEGIL --- ---
    NECROMAN: To už jsme ovšem vůbec úplně jinde. :-)
    NECROMAN
    NECROMAN --- ---
    JACHYMKO: jako lepsi mi prijde registrovat tu tridu v ServiceLocatoru a poskytovat ji pres IoC ci Dependency Injection. Pak je mozne si definovat, zda se ma pouzivat jedna instance, pokazde nova a zmena je otazkou okamziku.
    MORMEGIL
    MORMEGIL --- ---
    JACHYMKO: Je fakt, že v tomhle konkrétním případě ani nebylo nikdy explicitně řečeno, že ten singleton má být lazy-initialized. Pokud ne, tak je tvoje původní řešení samozřejmě zcela v pořádku. Pokud ano, tak buď takhle přes beforefieldinit (a rozhodně je lepší to dělat takhle než double-checked lockingem, IMHO), nebo tím Lazy (což je samozřejmě pro nový kód preferované řešení, ale jen .NET 4+).
    MORMEGIL
    MORMEGIL --- ---
    JACHYMKO: Ale chybí ti tam ještě
    static Singleton() {}
    !
    MORMEGIL
    MORMEGIL --- ---
    JACHYMKO: A kdyby náhodou ta třída měla třeba ještě nějaký další statický členy (a strašně moc mi záleželo na skutečně lazy inicializaci), tak použiju to Lazy<T>.
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    MORMEGIL: Jo, akorat bude neustale ziskavat a uvolnovat lock. A v pripade ze na ten singleton bude casto sahat, tak se mu ta aplikace bude brzdit sama sebou a to uplne zbytecne.
    MORMEGIL
    MORMEGIL --- ---
    TENCOKACISTROMY: Přesně vzhledem k tomu může jako template vzít a donekonečna používat i tu původní verzi z pastebin.
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    MORMEGIL: No vzhledem k tomu, ze se tu bavime o getteru k singletonu a zadny komplikovanosti, tak tohle muze vzit a jako template pouzivat do nekonecna.

    U komplexnejsich grafu (staci mit nejakou hierarchii) to je samozrejme vyrazne slozitejsi. Posednich par mesicu na necem takovym delam, tak o tom mam moc dobrou predstavu :).

    Docela se mi libi pristup immutable typu, tam se tomu lockovani clovek hodne vyhyba.
    MORMEGIL
    MORMEGIL --- ---
    TENCOKACISTROMY: Double-checked locking je problematická konstrukce i u lidí, co tomu rozumějí, natož u těch, co nemají jasno, co tak může zamykat lock v getteru. Rozhodně bych nikomu nedoporučoval jí nahrazovat existující kód. A jestli existující kód nějak upravovat, tak předělat na Lazy<T>.
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    NECROMAN: Zkus predtim zavolat "Measure" a pak si precist "DesiredSize".
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    Muzes mit dva pristupy. Budto dotycny objekt nechat jak je, a lockovat si to v metodach, ktery neco delaj. A nebo to bude delat ten objekt sam. Ani jedno z toho neni spasa, protoze v obou pripadech najdes situace, kdy ti to uplne nevyhovuje.
    NECROMAN
    NECROMAN --- ---
    Nejaky tip, jak v Silverlightu implementovat TextBlock, ktery bude zalamovat text na dva radkyu na definouvanou MaxWidth a pokud se tam nevejde, tak zmensi font tak, aby se tam vesel?
    Zkousim velikost fontu vypocitat, ale ActualWidth a ActualHight ukazuje nepouzitelna cisla.
    SHIGORBIRDMAN
    SHIGORBIRDMAN --- ---
    TENCOKACISTROMY: I sense too much of dynamic side of the force in you....
    URZA
    URZA --- ---
    TENCOKACISTROMY: diky, jen teda jestli to chapu dobre tu posledni vetu.. mam si udelat jeste lock v UpravCosi metode jo? jsem ted z toho nejakej trochu zblblej :) multithreaded programovani je neco co jsem nejak zanedbal a nidky s tim neprisel poradne do kontaktu.. takove me slabe misto.. asi bych si o tom mel neco precist.. :)
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    TENCOKACISTROMY: Teda chtel jsem rict:
    Protoze konstantu do promenne si nepriradim takto. V jazycich dynamickych, usetril mi tento pristup debugovani mnoho. Zvyk jsem si tento i do C# prenesl, prestoze jen u bool promennych situace dotycna hrozi.
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    SHIGORBIRDMAN: Protoze si pak omylem nepriradim konstantu do promenny. V C# ti to hrozi jen v pripade bool promennych/clenu, ale u dynamickych jazyku mi to uz nekolikrat usetrilo hromadu debugovani.
    SHIGORBIRDMAN
    SHIGORBIRDMAN --- ---
    STROMYCOKACITEN: proc pouzivas yoda conditional? :)
    Kliknutím sem můžete změnit nastavení reklam