• ú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
    VIRTUALVOID
    VIRTUALVOID --- ---
    CERMINEK: moja taxa je 30€/hod, beries ? ;)
    CRANK
    CRANK --- ---
    CERMINEK: No tak vidíš, když je to povinný, tak to bys to měl umět.
    CRANK
    CRANK --- ---
    CRANK: A imho teda člověk co nemá problém s Cčkem a assemblerem by neměl mít takový problém s přátelským environmentem C#pu a OOP koncept pokud nejdeš do nějakých krutých OOP konstruktů a vysoce odborných záležitostí, které jsou mimochodem skoro všude stejné, taky není taková šílenost ...
    CERMINEK
    CERMINEK --- ---
    CRANK: Povinný pro Bc. :/
    CRANK
    CRANK --- ---
    CERMINEK: No tak si ten předmět nezapisuj ne? :-)
    CERMINEK
    CERMINEK --- ---
    CRANK:
    TENCOKACISTROMY:
    To jsem přesně čekal mno...
    C# ke svému oboru ani nepotřebuji a učí se to u nás v jednom jediném předmětu... Pro mě je stěžejní C, Assembler a skripty v Matlabu a to si dávám v pohodě... OOP ale nedávám a nemám ani sílu a chuť se to učit.. Proto poprvé za celé své studium volím užití práce někoho jinýho...
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    CERMINEK: Mozna by to chtelo se vic snazit nebo si najit jinej obor :P.
    CRANK
    CRANK --- ---
    CERMINEK: No tak zkus jinou školu, nebo se to naučit ne? Kdyby jsi sem napsal aspoň. "Potřebuju udělat tohle a tohle, nevím ale jak." ... To je život, život dáváš?
    CERMINEK
    CERMINEK --- ---
    CRANK: To je mi k prdu.. Ty app bych fakt potřeboval napsat a sám to nedávám...
    CRANK
    CRANK --- ---
    CERMINEK: Já bych do toho šel, ale pak bych se na tebe taky vysral. A schválně.
    CERMINEK
    CERMINEK --- ---
    Ahoj, kdo by jste měl čas napsat tři jednodušší aplikace za pár peněz? Potřebuji něco do školy (sám to prostě nedávám), jeden člověk se mi tu na moji minulou nabídku ozval s tím, že by do toho šel a vysral se na to, takže sháním někoho, kdo by měl zájem a zvládl to nejlépe do 6.9. Info poštou, práci samozřejmě zaplatím...
    CRANK
    CRANK --- ---
    TENCOKACISTROMY: Potkáme se tam ;).
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    NECROMAN: Tak to se na tebe asi pujdu kouknout :).
    NECROMAN
    NECROMAN --- ---
    Bud mit malou prednasku :)
    Novinky v C# 5.0 a asynchronní programování nejen ve Windows 8 | Praha | Windows User Group - Czech Republic
    http://wug.cz/praha/akce/536-Novinky-v-C-5-0-a-asynchronni-programovani-nejen-ve-Windows-8
    NECROMAN
    NECROMAN --- ---
    Prave jdu z toho druheho testu "zaklad vyvoje metro aplikaci v C#" a bylo to teda tezsi, nez jsem cekal - tech 70% asi nedam. Hodne veci tam bylo na toast notifikace, tile updaty, prace s gesty, search a share kotnrakty .Treba na xaml a stylovani toho bylo fakt malo. No ale bylo to zdarma a dost jsem se toho naucil :)
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    MAIMONIDES: Muzes pouzit Fasterflect. Na zaklade reflection urcis se ma delat, a ten Fasterflect pak udela dynamicky delegat, kterej nahradi get/set u properties/fields, volani metod atd... Nemusis se pak trapit s emitovanim il kodu (udela to za tebe).

    Code DOM sice vypada pekne, ale imho je mensi zlo pouzit ty T4 sablony z duvodu snizeni komplikovanosti kodu pro lidi co prijdou po tobe.
    MORMEGIL
    MORMEGIL --- ---
    MAIMONIDES: Ale ta Reflection se nemusí dělat pořád (pomalu). Tím jsem myslel si při spuštění programu vygenerovat (Reflection.Emit/Code DOM/…) metody/třídy, které se pak používají prakticky normálně.
    MAIMONIDES
    MAIMONIDES --- ---
    Zajímavé reakce, díky..
    Možná jsem se vyjádřil zavádějícím způsobem. Je to implementace messagingu v rámci high level client server síťové knihovny(Badumna) v .Net..

    Tady je pro zajímavost trochu detailnější popis motivace..
    Zprávy jsou všechny děděný z třídy BaseEvent, která obsahuje jen proměnnou Nonce pro implementaci blokující odpovědi na otázku v jinak async client server prostředí. Krom toho obsahuje pouze abstraktní metody. Jednotlivé zděděné zprávy pak sobě implementují pouze serializaci a deserializaci a konstruktor, který mechanicky přiřadí proměnné, což je taky opruz, protože to je byrokracie a nepřišel jsem na to, jak to implementovat přes compile-time - než jsem zjistil, že to nejde. Používat reflection nejde, protože to by bylo moc pomalé. T4 na to asi bude fungovat, ale jestli to bude přehledný je věc druhá a budu to zkoumat...

    Každá zpráva je určena pro jeden typ události a jeden typ cílového serveru, tj de/serializace je bez větvení a jakékoli chytrosti.

    De/serializace probíhá potom tak, že se genericky de/serializuje třída a podle ní zbytek..


    No a právě odesílání a zpracovávání deserializovaných eventů je to, proč jsem sem psal a ptal se na to vytváření názvů a tiše doufal, že to půjde preprocesorem.


    Pojmenování těch eventů má svá pravidla a funkce pro jejich odesílání a zpracovávání taky. Je to takhle udělaný aby to bylo srozumitelný i pro cizí lidi co přijdou po mě a aby přidávání nových eventů nebo luštění starých vyžadovalo naprosté minimum intelektuálních schopností a námahy a relativně omezené api..
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    BUTHRAKAUR: Jenze aby jsi zjistil typ deserializovanyho objektu, tak musis odnekud zjistit jakej je. A odkad ho zjistis?

    Imho je uplne ok reseni, kdy mas tu obrovskou hromadu metod odekorovany nejakym atributem, ktery najdes a udelas si na ne delegaty, jenz si strcis do nejaky hashtable a podle toho je pak poustis.

    Navic se ten vygenerovanej kod bude mnohem lip debugovat pri ruznej "chutovkach" - a ze jich umi bejt v sitovy komunikaci hodne :).
    BUTHRAKAUR
    BUTHRAKAUR --- ---
    TENCOKACISTROMY: jj, takhle jsem to tak nejak odhadoval a je to v souladu s tim, co jsem psal. Proste deserializujes nejakej object a ted ho musis podle jeho typu handlovat. Reseni Handle**() bude v sobe obsahovat megaswitch na spusteni ty spravny HandleObjectOfTypeX(). Tomu spusteni retezu handleru nic nebrani IMO a je to daleko cistsi reseni..
    Kliknutím sem můžete změnit nastavení reklam