Jak mohu zkontrolovat aktivní konfigurace řešení Visual Studio integrována s při běhu?




Rád bych zapnout / vypnout nějaký kód, založený na uspořádání vlastního řešení, které jsem přidal do Visual Studio. Jak mohu zjistit tuto hodnotu za běhu?
Můžete použít [direktivy prekompilátoru](https://msdn.microsoft.com/en-us/library/ed8yd1ha.aspx) rámci Visual Studio. Směrnice o #if vám umožní určit, zda hodláte zahrnout kód nebo není založen na konfiguraci vlastního řešení.
<p><em> aktualizovat: chrome 58+ skryl tyto a další ladicí zprávy ve výchozím nastavení. chcete-li je zobrazit, klepněte na šipku vedle položky „info&ldquo; a vyberte položku „verbose&ldquo;. </em></p><p><em> aktualizace 2: chrome 57 je ve výchozím nastavení zapnut. chcete-li je znovu zapnout, musíte povolit filtry a zrušit zaškrtnutí políčka „skrýt porušení&ldquo;. </em></p><blockquote> <p>najednou se objeví, když se do projektu zapojí někdo jiný</p> </blockquote><p>myslím, že je to více pravděpodobné, že jste aktualizovali na chrome 56. toto varování je (imo) báječná nová funkce - prosím, vypněte ji pouze v případě, že jste zoufalí a váš hodnotitel vás odtrhne. základní problémy jsou v jiných prohlížečích, ale prohlížeče vám neříkají, že je problém. vstupenka chromium je zde, ale na ní není žádná zajímavá diskuse: <a href="https://bugs.chromium.org/p/chromium/issues/detail?id=662497">https://bugs.chromium.org/p/chromium/issues/detail?id=662497</a> </p><p>tyto zprávy jsou varování namísto chyb, protože to opravdu nebude způsobovat velké problémy. to může způsobit upuštění rámců nebo jinak způsobit méně hladký zážitek.</p><p>stojí za to prozkoumat a upevnit, aby se zvýšila kvalita vaší aplikace. způsob, jak toho dosáhnout, je věnovat pozornost okolnostem, ve kterých se zprávy zobrazují, a provádět testování výkonu, aby se zúžit, kde se problém vyskytuje. nejjednodušším způsobem, jak spustit testování výkonu, je vložit nějaký kód takto:</p><pre><code>function somemethodithinkmightbeslow() { const starttime = performance.now(); // do the normal stuff for this function const duration = performance.now() - starttime; console.log(`somemethodithinkmightbeslow took ${duration}ms`); } </code></pre><p>chcete-li být pokročilejší, můžete také použít profiler chrome: <a href="https://developers.google.com/web/tools/chrome-devtools/rendering-tools/">https://developers.google.com/web/tools/chrome-devtools/rendering-tools/</a> </p><p>nebo použijte knihovnu benchmarking, jako je tato: <a href="https://benchmarkjs.com/">https://benchmarkjs.com/</a> </p><p>jakmile najdete nějaký kód, který trvá dlouhou dobu (50 ms je práh chrome), máte několik možností:</p><ol> <li>vystřihněte některé z těchto úkolů, které mohou být zbytečné</li> <li>zjistěte, jak dělat stejný úkol rychleji</li> <li>rozdělte kód do několika asynchronních kroků</li> </ol><p>(1) a (2) může být obtížné nebo nemožné. ale někdy je to opravdu snadné a měly by to být vaše první pokusy. v případě potřeby by mělo být vždy možné (3). k tomu budete používat něco jako</p><pre><code>settimeout(functiontorunverysoonbutnotnow); </code></pre><p>nebo</p><pre><code>// this one is not available natively in ie, but there are polyfills available. promise.resolve().then(functiontorunverysoonbutnotnow); </code></pre><p>více o asynchronní povaze javascriptu si můžete přečíst zde:</p><p> <a href="http://blog.carbonfive.com/2013/10/27/the-javascript-event-loop-explained/">http://blog.carbonfive.com/2013/10/27/the-javascript-event-loop-explained/</a> </p> Použij Autoruns. Ukáže ti opravdu VŠECHNO co se spouští...[http://www.stahuj.cz/utility\_a\_ostatni/systemo...](http://www.stahuj.cz/utility_a_ostatni/systemove_nastroje/optimalizace_systemu/autoruns/)  ![](/Client.Images/smileys/6.gif) <p>jednoduchým způsobem by bylo nastavit nějakou globální proměnnou na prvním spuštění widgetu a zkontrolovat ji. není-li již nastavena žádná nebo informační zpráva.</p><p>správným způsobem by pravděpodobně bylo pracovat s rozhraním a odstranit widget z dostupných, když ho přidáte do postranního panelu, ale to je cesta z mé ligy.</p> K dispozici jsou 2 standardní způsoby, jak se blíží k testu, která závisí na něčem jiném (namítat, volání funkce, atd).


* Můžete použít vysmívá namísto objekty kód testujete závisí na.
* Můžete načíst přípravek nebo dělat tvorbu / hovor zkušební sestavy.


Někteří lidé mají rádi „klasických“ unit testů, kde je testován jen „jednotka“ kódu. V těchto případech se obvykle používají se vysmívá a pahýly nahradit závislostí.


Jiné podobné více integračních testů, kde je testována většinu nebo všechny zásobníku volání. V těchto případech můžete použít přípravek, nebo možná dokonce dělat hovory / výtvory ve funkci nastavení.


Obecně byste **to** udělat jeden test závisí na druhého. Všechny testy by měly:


* uklidit po sobě
* je spustitelný v izolaci
* být spustitelný jako součást sady
* být konzistentní a opakovatelné


Pokud uděláte jeden test závislý na jiném nemohou být spuštěny v izolaci, a ty jsou také nutí rozkaz testy spustit. Prosazování pořadí v testech není dobré, ve skutečnosti mnoho lidí pocit, že by se náhodně pořadí, ve kterém jsou spouštěny vaše testy. klikneš na nový program, napíšeš kód a uložíš, případně zkompiluješ.Co se kódu týče je to vlastně jen o vynásobení čísla sama sebou. Pokud nevíš jak to udělat, věříš, že jsem si skoro jistý, že někde na internetu budou nějaké návody a toto bude někde na první straně? Jinými slovy.... tohle je ta nejzákladnější věc a pokud ani tu nedokážeš, tak asi s VB vůbec neumíš a bylo by nejlepší najít si nějaký tutorial, k čemu bude, že ti tady někdo napíše jeden řádek kódu, který si navíc najdeš za pár vteřin na Googlu, dřív než napíšeš blbej dotaz sem. Není lepší motivovat prodejce k lepšímu prezentování procenty z prodejů, než šmírováním? Obávám se, že v moderních operačních systémech to není bez hlubšího zásahu do systému možné. Můžeš ještě monitorovat spuštěnou aplikací, ale ne to, co v té spuštěné aplikací provádíš, protože aplikace jsou od sebe z bezpečnostních důvodů oddělené. <p>obecně byste měli použít <code>kill</code> (zkratka pro <code>kill -s term</code> nebo na většině systémů <code>kill -15</code>) před <code>kill -9</code> (<code>kill -s kill</code>) dát cílovému procesu šanci na vyčištění po sobě. (procesy nemohou chytit nebo ignorovat <code>sigkill</code>, ale mohou a často to chytí <code>sigterm</code>.) pokud nedáte procesu šanci dokončit to, co dělá a vyčistit, je to může nechat poškozené soubory (nebo jiný stav) kolem, že nebude schopen pochopit, jakmile restartujete.</p><p><code>strace</code>/<code>truss</code>, <code>ltrace</code> a <code>gdb</code> jsou obecně dobré nápady, jak zjistit, proč je zaseknutý proces zaseknutý. (<code>truss -u</code> na systému solaris je zvláště užitečné; <code>ltrace</code> příliš často předkládám argumenty pro volání z knihovny v nepoužitelném formátu.) solaris má také užitečné <code>/proc</code>- založené nástroje, z nichž některé byly přeneseny do linuxu. (<code>pstack</code> je často užitečný).</p> Tak to vypni v nastavení aplikace,a aplikace po spuštění. Moment .. startuju kristalovou kouli...Chkdsk x: /r /f na vsech SDD / HDD.trimvyfoukat prach z vetraku i ve zdrojikontrola teplot - tim to neni ale kdyz uz jsi v tom.Kontrola eventlogu.kontrola SMARTkontrola powermanagmentu - uspavani disku.Presunout SWAP na SSD.osobne sazim na to uspavani HDD ale neznam presne rozlozeni sil :Dpokud nepomuze napis, projedeme sfc a DISM :)Neni zac. Pa <p>vyvinul jsem skutečné aplikace s oběma rails a asp.net mvc), ale tato odpověď přichází se značnou výzvou: naučil jsem se a vyvíjel se s předběžnou verzí 2 rails, takže je zcela možné, že jsem jsem nesmírně zastaralý díky mým znalostem rails).</p><p>jak už bylo řečeno, nemyslím si, že existuje <em> cokoli </em>, které lze s jedním, ale ne s druhým. vzhledem k jakémukoli souboru požadavků na webovou aplikaci byste měli být schopni sestavit tuto aplikaci - pravděpodobně stejně efektivně - pomocí rails nebo asp.net mvc).</p><p>existuje několik úhledných věcí, které - podle mého nejlepšího vědomí - jsou k dispozici v asp.net mvc hlavně kvůli aspektům c # /. net. například: když mám stránku, která obsahuje odeslaný formulář, mám akci, která zkontroluje, zda se jedná o get, nebo post), abych rozhodla, co dělat:</p><pre><code>def edit @item = item.find(params[:id]) if request.post? @item.update\_attributes(params[:item]) redirect\_to :action =&gt; 'edit', :id =&gt; @item.id end end </code></pre><p>toto je triviální příklad, ale <code>if request.post?</code> vzor je v rails velmi běžný. v netriviálních případech může být kód akce velký a chaotický a často bych si přál, abych ho mohl čistě promítnout do samostatných metod. v asp.net mvc to mohu udělat:</p><pre><code>public actionresult edit() { // render my page that has the edit form ... } [httppost] public actionresult edit(foothing foo) { // save my foothing data ... } </code></pre><p>myslím, že schopnost čistě oddělit vyřizování žádostí get a post žádostí) je elegantní. váš počet najetých kilometrů se může lišit.</p><p>další věc, kterou asp.net mvc dělá, že je super v pohodě (opět podle mého názoru), souvisí také s manipulací s posts. v rails musím dotazovat <code>params</code> hash pro všechny mé proměnné formuláře. řekněme, že mám formulář s poli „status“, „gonkulated“, „invert“ a „dispozice“:</p><pre><code>def edit @item = item.find(params[:id]) if params[:status] == "new" ... else ... end if params[:gonkulated] == "true" ... else ... end if params[:invert] == "true" ... else ... end # rest ommited for brevity end </code></pre><p>ale asp.net mvc úhledně mi umožňuje získat všechny hodnoty formuláře jako parametry mé metody akce:</p><pre><code>[httppost] public actionresult edit(int id, string status, bool gonkulated, bool invert, int disposition) { ... } </code></pre><p>to jsou dvě věci, které se mi na asp.net mvc nebo rails opravdu líbily. <strong><em> nestačí, aby si nějaký rozumný nebo kompetentní vývojář vybral jeden rámec nad druhým. </em></strong></p>