• ú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
    SLUPKA
    SLUPKA --- ---
    AREX: Já abych řekl pravdu, tak nevím co vrací ten GetTable...
    AREX
    AREX --- ---
    SLUPKA: No jo, taky se tu snazim s expression tree neco provist, ale nejak se nemuzu nikam dostat bez te generic varianty. Nemas nejaky priklad prosim ?
    SLUPKA
    SLUPKA --- ---
    AREX: V entity framework řeším pomocí expression tree, ale i tam potřebuješ vědět typ, co ti leze z té tabulky, ale stačí ti ji zjistit za chodu...
    AREX
    AREX --- ---
    Zdravicko. Jeden dotaz z oblasti linq to sql, konkretne dynamicke linq query. Mam v promenne ulozeny typ entity z datoveho modelu (typ predstavujici jeden radek, nevim jak to spravne nazvat). K tomu mam hodnotu Id, podle ktere potrebuju najit tu entitu v databazi.
    using( var dataContext = new DataModel.ModelDataContext()) {
      var table = dataContext.GetTable(entityType);
      ...
    }
    Tohle mi spravne najde tabulku, ale dal jsem trochu ztraceny. Zatim vsechny priklady co jsem nasel, tak pracuji s generickou variantou GetTable<>, tam uz je to pak jednodussi, ale u toho si nejsem jisty. Potrebuju v podstate dynamicky napsat .FirstOrDefault( e => e.Id == id) aniz bych vedel typ toho "e".
    NECROMAN
    NECROMAN --- ---
    dotaz, nevim, zda jsem se uz ptal, ale mam problem s jednou nasi aplikaci, je to komandlajnovka v C#, ktera linkuje dalsi business knihovny. Problem je, ze vzdy pri spusteni ta app asi 15 vterin neco dela, nez se vubec dostane do Maim metody. Zkousel jsem na to pustit i nejaky profiler, ale ten mi jen ukazal "15s native code" bez detailu, co to je. Napada me snad jen nejaky assembly wide initializer v jine knohovne, ale to by se snad ukazalo v profileru. Nemate tip, na cem se to muze tech 15 vterin zaseknout?
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    MORMEGIL: Ja mam specialni pripad toho casu. Jde mi o "herni cas", kterej je v soucasnosti stejnej jako ten realnej, ale v budoucnu asi budou specialni pripady, kdy to bude jinak. Coz by se samozrejme pres NTP asi dalo resit taky. Ale takhle se nemusim starat o to, na cem mi ten webserver bezi, staci mi mit pristup do databaze (kterou stejne potrebuju).
    MORMEGIL
    MORMEGIL --- ---
    Mně teda celá ta konstrukce připadá dost podezřelá. :-) Tohle třeba (AFAICT) obecně nezajistí ani monotonicitu hodin. Opravdu nestačí mít servery správně standardně synchronizované pomocí NTP a je potřeba dělat si vlastní (výrazně hloupější) variantu? NTP není tak úplně triviální právě protože taková synchronizace času přes síť není tak úplně jednoduchý problém.
    PJOTRIK
    PJOTRIK --- ---
    TENCOKACISTROMY: jasne, instinkt rika - kazdy zamykani hrozi deadlockem. Ale tady bych se nebal. Pokud ti ale nestaci hodnota stopek a budes z ni stejne jeste neco pocitat, tak bych taky pouzil ten timestamp, to je jasny.
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    PJOTRIK: Cim min zamykani, tim lip :). Tim samozrejme netvrdim, ze by to tak neslo. Ale mam ted na tom webovym serveru docela frmol a bud jeste vetsi, takze se snazim najit nejaky reseni co bude co nejmin narocny na vykon a co nejmin nachylny na bugy :)
    PJOTRIK
    PJOTRIK --- ---
    Bud ten GetTimestamp, nebo nevidim duvod proc nemit Stopwatch v app scopu a pri pristupu ho nezamykat.

    btw, podle http://stackoverflow.com/questions/6664538/is-stopwatch-elapsedticks-threadsafe by to na x64 melo byt thread-safe, ale asi lepsi se nespolehat...
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    SAJAGI: Jede mi to na IIS, nemam vladu nad tim z jakyho vlakna se mi to pouzije.
    JACHYMKO: Vypada to ze ten Stopwatch.GetTimestamp() je dobra cesta.
    SAJAGI
    SAJAGI --- ---
    TENCOKACISTROMY: A co použít na každé vlákno jeden StopWatch a DateTime? Třeba pomocí ThreadStaticAttribute?
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    Na msdn pisou, ze trida System.Diagnostics.Stopwatch nemá instancni cleny threadsafe.

    Ja bych potreboval pouzit variantu tyhle tridy ve vicevlaknovym prostredi (web server).
    Nyni web server vzdycky nacita aktualni cas z databaze a pridava ho do odpovedi na klienta. Ja bych chtel, aby se na ten cas dotazoval jen "obcas" a mezitim ho dopocitaval. To "obcas" muze byt klidne jednou za minutu.
    Chci to tak udelat, protoze mi to usetri 1 select do DB. V situaci kdy mam par desitek requestu za vterinu by mi to mohlo urychlit odbavovani requestu.

    Cili otazka zni: mam se strachovat, ze se mi to na tom webovym serveru rozbije a hledat jiny reseni (soucasnej stav). A nebo muzu bejt v klidu?
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    VIRTUALVOID: sice jsem nikdy LA nevytvarel, ale kdyz dokaze spravne rozparsovat:
    int a = 15;
    int b = myFunc(otherFunc(true, "asdf"), someClass.SOME_CONST);
    

    proc by nedokazal rozparsovat radek z faktury?
    NECROMAN
    NECROMAN --- ---
    BOOSTED23: tady je fajn clanek "How to draw a circle" - zajimave algoritmicke cteni pro kazdeho :)
    https://banu.com/blog/7/drawing-circles/
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    BOOSTED23: Vsechno? Tak to asi byla nejaka mala podmnozina :). Zkus treba "plain C draw circle".

    btw. C a C# jsou dost rozdilny jazyky.
    BOOSTED23
    BOOSTED23 --- ---
    ESY: dík ... ale C :(
    ESY
    ESY --- ---
    BOOSTED23: jestli v .Netu tak np, jestli v C netusim..
    ESY
    ESY --- ---
    BOOSTED23: jestli v .Netu tak np, jestli v C netusim..
    BOOSTED23
    BOOSTED23 --- ---
    TENCOKACISTROMY: vsechno...nemozno dohledat...ani v anglictine...ale sedim nad tim... btw v nadpisu je c sharp, tak jsem to zkusil... :)
    Kliknutím sem můžete změnit nastavení reklam