• ú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
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    NECROMAN: Rika se tomu kovariance nebo kontravariance (furt si to pletu). A v ramci generics to v .net runtime uz jde. Jinak to jde jednoduse obejit zabalenim do ananomni metody. Ale nese to s sebou nevyhodu toho, ze pak predavas uz jinou instanci. Takze treba pridavani & odebirani z udalosti je timto zpusobem nepouzitelny.
    NECROMAN
    NECROMAN --- ---
    TENCOKACISTROMY: nebylo by marne, pokud by neco takoveho nepridali do C# :) mam pocit, ze treba F# je v tomto dale, pokud se nepletu
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    NECROMAN: Delegat je trida jako kazda jina. Jen v ramci C# mas syntax sugar a muzes ho volat jako volas metodu. Priradit ho tam tedy nemuzes proto, ze ten slozitejsi z toho jednodussiho nededi.
    NECROMAN
    NECROMAN --- ---
    btw proc neni mozne priradit slozitejsiho delegata do jednodussiho?
    EventHandler eh;
    RoutedEventHandler reh = null;
    eh = reh; // chyba
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    NECROMAN: Kazdopadne, jestli tohle potrebujes delat, tak to je docela code-smell.
    Mel by mit spis nejakou negenerickou metodu, ktera je pro takovy ucely stvorena.
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    NECROMAN: Musis si udelat delegata pres reflexi a pak na nem volat "DynamicInvoke".
    NECROMAN
    NECROMAN --- ---
    dotaz, jak volat generickou metodu, pokud mam onen typ ulozeny v Type?
    Type mujtypEventHandleru = ...
    // tento typ chci pouzit v nasledujici metode
    AssignEvent<T odpovidajici mujtypEventHandleru>(AssociatedObject, Event, FireCommand);
    
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    Ja teda s varem pri refactoringu nemel problem nikdy. A to refactoruju docela rad :).
    SHIGORBIRDMAN
    SHIGORBIRDMAN --- ---
    ja teda na var taky nedam dopustit a udelo mi radost normalni cecko, ze uz ma taky :)
    BUTHRAKAUR
    BUTHRAKAUR --- ---
    NECROMAN: to mas pravdu, ale explicitnich pretypovani je v rozumne navrzenem/napsanem objektovem kodu minimum, ne? + testy? ostatni vyhody pro mne pred timhle minoritnim problemem naprosto prevazujou..

    co generika, linq a tak - ty jsou taky spatny? ;D
    NECROMAN
    NECROMAN --- ---
    BUTHRAKAUR: pak nekde zapomenes nejake explicitni pretypovani a nestacis se divit, kdyz to po zmene typu nevyhodi zadnou chybu a jen potichu projde :)
    MORMEGIL
    MORMEGIL --- ---
    BUTHRAKAUR: U PHP je pro mne skoro největší přínos jeho „polymorfní“ chování – skvěle využitelný při programování, kdy člověk nemusí řešit, jestli ta proměnná bude obsahovat spíš čísla nebo spíš texty.</trolling> ;-)
    BUTHRAKAUR
    BUTHRAKAUR --- ---
    NECROMAN: u varu je pro mne skoro nejvetsi prinos jeho "polymorfni" chovani - skvele vyuzitelny pri refactoringu, kdy clovek nemusi menit tisic mist v kodu (i kdyz treba pres R#) jen pro to, ze zrefaktoroval par typu navratovejch hodnot apod..
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    PAJIN: Dobry vedet.
    PAJIN
    PAJIN --- ---
    PAJIN: Takze 4ty den k ranu vyreseno. Bylo tam nekolik problemu:
    1)Ten certifikat musi bejt trusted na ty masine (mel sem svuj, takze pridat jako trusted CA)
    2)Microsoft vsude tvrdi ze Hash toho filu je SHA1 (to je ale jen na .NET 2) ale na .NET 4.5 je to SHA256 (mel sem SHA1 hash kterej generuje primo BMG ale instaloval sem na 4.5 .NET)
    3)To ze public key je potreba jen pokud se prerequizita stahuje z vendor site je taky Microsoftu
    pokud jeto custom prerequisita tak kouka pokazdy po public key

    Nastesti pokud ma public key tak nemusi mit hash

    Takze reseni aby to slo na .net 2.0 a i 4.5 je vyhodit hash, pridat publick key a koupit code sign certificate.
    PAJIN
    PAJIN --- ---
    Ahoj nemate nekdo zkusenosti s ClickOnce app deployem a custom prerequisitama, uz ctvrtej den se snazim
    premluvit ten installer aby nainstaloval moji prerequisitu a furt koncim na hlasce :

    Error: Setup has detected that the file 'C:\DOCUME~1\jakub\LOCALS~1\Temp\VSD1B.tmp\USBScaleCommunication\setup.exe' has either changed since it was initially published or may be corrupt.
    pritom ten soubor na webu je v poradku a pokud ho stahnu rucne a pustim tak ta instalce projde.
    Zkousel sem odebrat kontrolu hash i sem ten setup.exe digitalne podepsal s public key ale zadna zmena :(

    tady je package.xml pro ten bootsrap package (generovanej z Boostrap Manifest Generatoru )

    package.xml
    NECROMAN
    NECROMAN --- ---
    NECROMAN: tak vyreseno, WebView mi po nacteni kradlo fokus, vzal jsem si ho zpet a uz to scrolluje :)
    NECROMAN
    NECROMAN --- ---
    Dotaz na Windows 8 aplikaci, asi lze ale obecne i u WPF - kdyz mam nejakou current stranku a v ni nekde uprostred hlavni scrollview, jak to udelat, aby udalost scrollovani pomoci mysi kdyz je kurzor kdekoli na strance byla odchycena timto scrollview?
    Problem ted je, ze kdyz je kurzor mimo, treba v zahlavi nebo nejakem marginu a user chce scrollovat, tak se nic nedeje. Zkousel jsem v OnNavigatedTo nastavit fokus na ten scrollview, ale to nezabralo. Lze to resit nejak koncepcne?
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    MORMEGIL: To asi zalezi na vyznamu toho kodu. Pokud je dulezity prese s jakymi typy pracujes (napr. nechces, aby se ti z double stal "omylem" decimal, ci IEnumerable-T misto IList-T, atd...) tak je lepsi pouzit nezv toho typu. Jinak mi pripada naprosto v poradku pouzivat var. Cim mene kodu napises, tim lepe.
    MORMEGIL
    MORMEGIL --- ---
    TENCOKACISTROMY: Já obecně vary používám, zejména opakování typu
    Dictionary<string, IList<MojeData>> tabulka = new Dictionary<string, IList<MojeData>>();
    mi přijdou dost zbytečná. Ale na druhou stranu je potřeba si někdy dávat pozor, můžete se pěkně popálit při nějaké změně v kódu, kdy vás překladač nijak neupozorní a váš kód přestane fungovat. (Vtipně tomu může pomoct taky třeba dynamic.) (A přestože je běžně používám (přiznávám, i kvůli Resharperu) i pro věci typu „var x = NejakaFunkce()“, trochu pochybuju, jak moc dobrý zvyk to je.)
    Kliknutím sem můžete změnit nastavení reklam