• úvod
  • témata
  • události
  • tržiště
  • Přišli jste skrz odkaz na příspěvek, který již neexistuje.

  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    TENCOKACISTROMYProgramovani v C#, F# a dalsich jazycich pro .NET, Mono a ostatni CLI implementace
    NECROMAN
    NECROMAN --- ---
    Vymyslel jsem včera zajímavý pattern, jak převést asynchronní čekaní na event handler do synchronního vykonání v jendom vlákně pomocí AutoResetEvent - ideální pro použití v Async CTP API :)
    private static CameraOperationCompletedEventArgs InitCameraAsync(PhotoCamera cam)
    {
        // blocking primitive
        AutoResetEvent autoEvent = new AutoResetEvent(false);
        CameraOperationCompletedEventArgs result = null;
        EventHandler<CameraOperationCompletedEventArgs> callback = (sender, e) =>
        {
            // store the result
            result = e;
            // unblock parent thread
            autoEvent.Set();
        };
    
        // event handler
        cam.Initialized += callback;
    
        // this causes camera init
        dummyBrush.SetSource(cam);
        // wait until async event finish
        autoEvent.WaitOne();
        // remove event handler
        cam.Initialized -= callback;
        return result;
    }
    MORMEGIL
    MORMEGIL --- ---
    NECROMAN: V tom novém Windowsím API se bez toho člověk už neobejde…
    TENCOKACISTROMY
    TENCOKACISTROMY --- ---
    NECROMAN: Jeste jsem to nezkousel. Ale tesim se na to.
    NECROMAN
    NECROMAN --- ---
    zkouseli jste uz nekdo pouzivat nove rozsireni pro asynchronni vypocty 'async' a 'await'? Ted si ctu ruzne tutorialy a vypada to sikovne,
    moznost mit namisto metody s callbackem
    ...
    Runner.Completed += HandleCompleted;
    Runner.DoLongJob();
    }
    
    private void Completed(Result e)
    {
    var result = e;
    ...
    jen jeden radek
    var result = await Runner.DoLongJob();
    SAJAGI
    SAJAGI --- ---
    _K5_: http://spoon.net/Studio/

    Ale jsou s tím problémy na Windows 7 a pre8 :/
    PIGSTER
    PIGSTER --- ---
    _K5_: No .NET aplikace potrebuje .NET. Pri instalaci se vybiraj komponenty, tam si vyber ze chces C/C++ a kdyz vytvaris projekt tak si vyber "Win32/Win32 Project" pro normalni Win32 aplikaci nebo "MFC/MFC Application" pro MFC - nicmene tenhle klub je havne o .NETu a pridruzenejch technologiich - vhodnejsi klub na tyhle "low level" zalezitosti je tady [ Win32 API a MFC aneb "jak se xakru udela todle..." ]
    _K5_
    _K5_ --- ---
    PIGSTER: používat .NET nechci, ale nepřišel jsem na to jak, když i nejzákladnější komponenta Form potřebuje .NET knihovnu System.Windows.Forms nebo tak nějak. S VS jsem v životě nepracoval, tudíž netuším, jak tam co funguje a co dělám špatně.
    PIGSTER
    PIGSTER --- ---
    _K5_: v PE je idealni pouzivat C nebo C++ a standardni Win32 API - pripadne MFC (to by tam byt melo, ale da se celkem snadno nest s sebou). Pokud clovek chce pouzivat .NET tak konecne proc ne, nejjednodussi cesta ale imho bude doinstalace frameworku do PE prostredi.
    _K5_
    _K5_ --- ---
    Měl bych dotaz na kované odborníky s Visual Studiem. Potřebuji napsat program, který bude fungovat v prostředí Windows Preinstallation Environment x64, což v praxi znamená, že se nemůže spoléhat na nic z toto, co je v plných Windows. Počínaje runtime knihovnami, přes WOW64 až po .NET v jakékoli verzi. Zatím se mi nepodařilo zjistit, jak aplikaci zkompilovat bez závislosti na .NET a runtime DLL (tzn. aby se potřebný balast stal součástí EXE). Momentálně to zkouším pod Visual Studiem 2010 Professional, ale mohu požádat i o Ultimate, pokud by to bylo pro tyto účely nutné. Pokud to nejde, potřeboval bych poradit, v čem to jde (na programovacím jazyku vcelku nesejde, ale v assembleru bych to dělal nerad ;-)
    NECROMAN
    NECROMAN --- ---
    NECROMAN: uz jsem to nasel - InactiveSelectedText background bylo treba zmenit :)
    NECROMAN
    NECROMAN --- ---
    dotaz, nejak se mi ve VS pokazilo nastaveni barev a kdyz hledam nejaka slova pomoci Quick Search, tak se v dokumentu nijak nehighlightujou - nevite, co v nastaveni upravit, aby byla videt?
    GARFIELD
    GARFIELD --- ---
    MICTECH: Upravu databaze sem zatim resit nemusel a bojim se toho jak cert krize :) (ale je jasne, ze az tato situace nastane, budu neco podobneho, jak navrhujes, muset udelat)

    Zatim jsem to tedy vyresil dvema instalacnimi balicky - jeden pro instalaci a druhy pro update.
    MICTECH
    MICTECH --- ---
    GARFIELD: Hlavne musis vyresit migraci dat v databazi. Mohl by jsi to udelat treba tak, ze v databazi bude nekde ulozeno cislo aktualni verze db. A binarky te aplikace tohle budou kontrolovat a pokud to nebude sedet, tak se spusti sada migracnich skriptu, ktere updatujou db na aktualni verzi.

    To jakym zpusobem budes ty binarky distribuovat je uz detail.
    GARFIELD
    GARFIELD --- ---
    Mam ASP.NET MVC aplikaci, ktera ma v App_Data sqlite databazi a xml konfiguracni soubor.

    Tuto aplikaci si jiz nekteri uzivatele stahli a maji v danych souborech svoje data a konfiguraci. Jakym zpusobem bych mel vyresit novy release a distribuci aplikace?

    Momentalne ji distribuuju jako zip file a mam v planu udelat jeden jako instalacni balicek a jeden zip jako updatovaci (ten nebude obsahovat adresar App_Data). Napada nekoho nejake lepsi reseni?
    URZA
    URZA --- ---
    Mate nekdo zkusenosti s MongoDB?
    AREX
    AREX --- ---
    MORMEGIL: No jo, pak jsem taky zjistil, ze tam nejde dat ani obycejny delegat. Nakonec jsem to cele udelal jinak, prozatim jsem spokojeny.
    MORMEGIL
    MORMEGIL --- ---
    AREX: Moc nechápu, jak sis chtěl předávat do atributu delegáta, i kdyby negenerického. Parametrem atributu může být jen compile-time konstanta, typeof výraz, nebo vytvoření pole.
    AREX
    AREX --- ---
    Tak extension metody jsem zavrhnul. Napadl me podobny pristup, ale to zase neni mozne kvuli omezenim jazyka, opovrhujici generickyma atributama. Chtel jsem si udelat genericky delegate a ten predavat do atributu. Vypadalo by to jako ty extension metoda nize, akorat bez "this" a pri serializaci by se to zavolalo a vratilo anonymni objekt. Ale teda bez generiky jsem v haji, nechce se mi to tam pretypovavat...
    AREX
    AREX --- ---
    Zdravicko. Potrebuju opet mensi radu. Celkem bezny Linq2Sql model, pomerne dost vazeb mezi tabulkami. Potrebuju ty jednotlive classy serializovat do JSON, ale selektivne. To znamena musim urcit ktere propertky se maji serializovat a ktere preskocit.

    Ten model je samozrejme v jine assembly, takze tam si moc neuziju a hlavne to tam logicky moc nesedi, aby to obsahovalo informace o tom, jak to naformatovat pro klienta. Existuje nejaka jina moznost nez pres metadata tridu ?

    Uvazuju o pouziti extension metod v tomhle stylu:
    public static class User {
      public static object GetSerializable(this DataModel.User user) {
        return new {
          user.Id, user.LoginName, user.FirstName, user.LastName
        }
      }
    }
    Akorat nemuzu nejak vymyslet jak to udelat trochu genericky.
    public class AuthModel {
      public DataModel.User { get; set; }
    }
    Toto je trida, ktera by se mela serializovat jako celek a poslat na klienta. Rutina, ktera to serializuje, je opet v jine assembly. Takze k te extension metode se nema jak dostat ani pres reflexi jestli to chapu dobre.

    Nenapada vas nejake elegantni reseni ? Nejlepe podobne necemu takovemu, ale trochu pruznejsi.
    Kliknutím sem můžete změnit nastavení reklam