• ú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
    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
    SAJAGI
    SAJAGI --- ---
    TROGLODYT: Můžeš použít frontu na ukládání těch dat, pokud nehrozí, že přeteče, nebo to nejsou kritická data. Ta fronta může být ve stejném procesu (a jiné vlákno bude ukládat po dávkách do db), v jiném procesu (předávání přes WCF, nebo něco efektivnějšího), nebo přes event tracing. Těch možností je spousta. Pokud ti jde o rychlost odezvy, tak jde především o to dostat DB z kritické cesty. Každopádně bych nedoporučoval nějak masivně paralelizovat připojení do DB, neboť ti to ve výsledku nejspíš zatíží ten systém ještě víc.
    TROGLODYT
    TROGLODYT --- ---
    Mozna hloupy dotaz, ale marne se snazim googlit spravnou odpoved.

    Mam serverovou aplikaci, ktera v ramci svyho behu zapisuje udalosti do DB. (neni to primo log toho serveru, spis nektery deje na serveru me zajimaji v ramci dalsich reportu co se delo.

    Problem ktery resim je prilis dlouha odezva inzertu do DB (proc jsou na tabulkou do ktere zapisuju nyni poveseny triggery, a proc jsou tak slozity ze me brzdi v behu nyni ponechme stranou)

    Resenim by se zdalo pouzit misto ExecuteNonQuery volat BeginExecuteNonQuery, a veskere zapisovani do DB mit asynchronni (ostatne vysledek toho insertu me vlastne nezajima, dulezity je pro me beh serveru jako takoveho, ta data v DB jsou jen tresnicka na dortu ..... ale podstatna)
    Zde ale narazim na to, ze framework me necha zavolat pouze jednu asynchronni operaci najednou (pokud zavolam dalsi, dostanu exception System.InvalidOperationException: The command execution cannot proceed due to a pending asynchronous operation already in progress.
    Zkusil jsem otvirat novou SqlConnection pro kazdou operaci, (protoze MSDN tvrdi, ze toto omezeni plati pro jednu SqlConnection) ale dostavam stale stejnou chybu
    Zkousel jsem hledat nejake info o connection poolingu, ale dokumentace k .NETu je tak ridka az to boli..... (kazdopadne at uz skusim v connection stringu pooling True nebo false, chovani je stale stejne.)
    ...ale z te chyby soudim, ze v nejake forme tam ten pooling jede, a ja pri SqlConnection xx = new SqlConnection dostanu tu uz starou na ktere jeste visi ten predchozi insert

    Muzete me nekdo nakopnout?
    Kliknutím sem můžete změnit nastavení reklam