• ú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
    TOOMIX
    TOOMIX --- ---
    MISO: zkusil bych přes regsvr32 do systému registrovat to problémový dllko ;)
    MISO
    MISO --- ---
    Ahojte, prosim o radu, ktorym smerom sa vybrat dalej. Predosielam, ze nie som ziadny .NETar.

    Mam kod, ktory ma implementovat konektor na Thomson Reuters, aby sa dali tahat data. V tutoriale sa odkazuju na par DLLiek, ktore sa maju pridat do projektu, su to asi COM objekty. Aplikacia sa spusti a pri pokuse o zavolanie COMu spadne na chybu a miesto pozadovaneho interface je objekt pretypovany System.__ComObject.

    Unable to cast COM object of type 'System.__ComObject' to interface type 'TenReutersInterface'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}' failed due to the following error: No such interface supported (Exception from HRESULT: 0x80004002 (E_NOINTERFACE)).

    Po hodine googlenia som sa dopracoval k nazoru, ze je to genericka chyba, ktora suvisi s loadovanim/registraciou DLLky do .NET runtime/prostredia/whatever.

    Co som zatial skusil
    - anotovat main(String[] args) metodu anotaciou [STAThread] - aplikacia sa zasekne na pokuse o volanie metody z DLLky
    - pomocou RegAsm.exe registrovat assembly do .NETu, skusil som to jak vo Framework, tak pre Framework64 - bez vysledku
    - skusil som ine interfaces z tej DLLky, vysledok je rovnaky.

    Mate nejake tipy, co s tym dalej? Dokumentacia mlci, resp. tam nic nie je.
    SUCZKER
    SUCZKER --- ---
    NECROMAN: Kua, to abych si tedka zvetsil oddil na kterym mam Windoze a shrinknul Linux - a nebo si poridil dalsi notas :)
    NECROMAN
    NECROMAN --- ---
    Mimo to byl jeste predstaven novy Blend pro VS2015, ktery nyni bezi ve VS shellu, ma i Intellisense, edit a continue u XAMLu a hromadu dalsich vychytavek
    http://blogs.msdn.com/b/visualstudio/archive/2014/11/13/blend-for-visual-studio-2015-preview.aspx

    Dale Xamarin free edice nyni bude fungovat i ve Visual Studiu, do ted to bylo mozne jen u placene verze Xamarinu. Dokonce Xamarin Free pobezi i ve Visual Studio Communiti edici.
    http://www.pcworld.com/...free-visual-studio-community-to-let-developers-build-android-ios-apps.html

    Microsoft take predstavil vlastni Android emulator pro VS
    http://blogs.msdn.com/...lm/archive/2014/11/12/introducing-visual-studio-s-emulator-for-android.aspx

    Visual Studio Online ma nyni hromadu novinek jako podpora externich Git repozitaru nebo Continuous Integration - vlastni build kroky. Defakto hodne funkci prevzatych z TeamCity.

    Je toho fakt hodne :)
    http://www.visualstudio.com/en-us/news/news-overview-vs
    FREELA
    FREELA --- ---
    SUCZKER:
    https://github.com/Microsoft/dotnet
    Opening up Visual Studio and .NET to Every Developer, Any Application: .NET Server Core open source and cross platform, Visual Studio Community 2013 and preview of Visual Studio 2015 and .NET 2015 - Somasegar's blog - Site Home - MSDN Blogs
    http://blogs.msdn.com/...l-studio-community-2013-and-preview-of-visual-studio-2015-and-net-2015.aspx

    SUCZKER
    SUCZKER --- ---
    FREELA: Marne hledam, co to ten .NET Core vlastne je. V podstate by me zajimal nejak seznam trid nebo namespacu, ktere do toho spadaji. Cetl jsem neco o "nuget"-ech, coz uplne nevim co je - (uvizl jsem u ASP.NET 2.0) - Nema nekdo nejaky blizsi prehled ?
    BUTHRAKAUR
    BUTHRAKAUR --- ---
    NECROMAN, MORMEGIL: no a nebo treti prekvapive vychytraly reseni: https://github.com/CatenaLogic/GitLink :) //pokud to teda mate v gitu
    MAIMONIDES
    MAIMONIDES --- ---
    NECROMAN: No tak reflector.
    NECROMAN
    NECROMAN --- ---
    MAIMONIDES: divne, knihovnu nemam obfuskovanou, pdb s full debugem dam do slozky a tu nastavim ve VS settings jako symbols folder, ale kdyz chci navigovat dovnitr pri debugovani, tak mi VS rekne, at mu dam cestu k nazev.cs souboru a bez neho nic nezobrazi.
    MAIMONIDES
    MAIMONIDES --- ---
    NECROMAN: Když to neni obfuskováný, tak ne.
    NECROMAN
    NECROMAN --- ---
    MILL: Jeste takovy blby dotaz, abych mohl debugovat externi dllko, treba MVVM Light knihovnu, tak potrebuju nejen debug symboly, ale i samotne zdrojaky, je to tak?
    MILL
    MILL --- ---
    NECROMAN: Nestacila by vám free verze ProGet ? Umí to NuGet i SymbolServer

    http://inedo.com/proget/pricing
    NECROMAN
    NECROMAN --- ---
    MORMEGIL: to chci prave zitra vyzkouset
    Setting up your own SymbolSource Server: step-by-step - xavierdecoster.com
    http://www.xavierdecoster.com/setting-up-your-own-symbolsource-server-step-by-step
    MORMEGIL
    MORMEGIL --- ---
    NECROMAN: No a druhé řešení je provozovat vlastní symbol server. :-)
    NECROMAN
    NECROMAN --- ---
    Dotaz, nevite, jake je best practice, kdyz mame vlastni knihovny hostovane na vlastnim NuGet serveru, kde a jak hostovat debug symboly pro tyto knihovny? Samotne knihovny jsou kompilovane jako release.
    Jedno reseni je dat to na http://www.symbolsource.org/ , ale prijde mi blbe davat symboly od privatnich knihoven prave tam.
    H_U_N_T_E_R
    H_U_N_T_E_R --- ---
    již jsou otevřeny registrace na letošní MS Fest
    MORMEGIL
    MORMEGIL --- ---
    TROGLODYT: Tak tohle pochopitelně nemůže fungovat, ale spíš se divím, že to funguje „až tak dobře“. Ty začneš provádět asynchronně SQL dotaz, kterému pod nohama okamžitě zavřeš spojení na DB. To using vyhoď a zavření toho dotazu a spojení přesuň do dokončení té operace, spolu s voláním EndExecuteNonQuery (hmmm… teď namátkou nenacházím nic přehledného, ale třeba něco jako tohle).

    Anebo, jak říkám, vyhoď si to do tasku bokem, třeba zhruba takhle nějak by to mohlo jít.
    TROGLODYT
    TROGLODYT --- ---
    MORMEGIL: Jedna se o CTI reseni(rizeni telefonie). Mam serverovy proces, ktery se chova jako telephony proxy (resi requesty klientu k nemu pripojenych a zaroven drzi pro kazdeho klienta jeho session s telephony serverem a klientum posila udalosti rizeni telefonie). Potud vse ok. Zaroven potrebuju sypat "log" o tom co se deje na serveru do DB. (neni to logovani behu serveru, delam zaznamy o aktivitach na jednotlivych pripojenych klientech pro pozdejsi statistiky.)
    SqlConnection otviram (a pak zase zaviram) pri kazdem klientskem requestu, a nebo pri prichodu udalosti z druhe strany. [teda takhle jsem to chtel prepsat, puvodne jsem si vystacil s jednou persistentni koneksnou pro cely server]
    Jak to vyresit nejakou zmenou designu si uz vymyslim, mnoznosti je nekolik,

    Slo mi o rychle pouziti BeginExecuteNonQuery (namisto ExecuteNonQuery)....
    EndExecuteNonQuery nevolam, protoze me vysledek toho zapisu do DB zajima pouze marginalne (maximalne bych nekam do logu zapsal ze neprobehlo)

    Vse funguje jen do momentu, kdy bych tu asynchronicitu zapisu opravdu potreboval (kdyz prijdou 2 udalosti rychle za sebou, a bezi 2 paralelni zapisy do DB, tak to dava vyse zminenou chybu

    v postate ten blok volani vypada takto (jeden konkretni handler)
    private void Call_Established(object sender, _DGTSApiEvents_GTSA_TS_EstablishedEvent e)
    {
    // blabla
    //.... udelej svou praci, odesli info o udalosti 'Call Established' do fronty klientske aplikaci
    //
    using (SqlConnection DB = new SqlConnection(DBstring)) {
    DB.Open();
    SqlCommand sqlCommand = new SqlCommand("INSERT zaznam o udalosti", DB);
    sqlCommand.BeginExecuteNonQuery();
    sqlCommand.Dispose();
    DB.Close();
    }
    }

    U toho event handleru by mi pouziti synchronniho zapisu ani nevadilo, protoze to muze byt to posledni vec co dany handler udela, ale zaznamenavam stejnym zpusobem info o klientskych requestech, a tam potrebuji (vcas) vratit response
    MORMEGIL
    MORMEGIL --- ---
    TROGLODYT: Já si teda asi moc nedokážu představit, jak to přesně máš udělaný. Kde tu SqlConnection zavíráš? Voláš EndExecuteNonQuery? Nebylo by případně možná i jednodušší místo asynchronního volání používat normální ExecuteNonQuery, ale celé to volání (včetně vytvoření nové SqlConnection atd.) odložit do threadpoolu?
    TROGLODYT
    TROGLODYT --- ---
    SAJAGI: Jasny, napsat nejakou frontu (buffer) kterej to bude do DB sypat je asi nejjednodussi dalsi reseni.
    Me spis prekvapilo, ze nejde (me se nedari) pouzit primo samotnou .NETovskou sql tridu pro tu asynchronizaci (kdyz podle dokumentace se zda ze by to fungovat melo), hledal jsem zda neco nedelam blbe pri pouziti toho asynchronniho volani ExecuteNonQuery
    Kliknutím sem můžete změnit nastavení reklam