Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Dá se ve Visual Studio 2010 zapnout inkrementální building pro C#?

Zdrar,
zřejmě otázka na zdejší C# guru...:-)

Představoval bych si to jako v Eclipse, zmáčknu save a automaticky se mi buildnou změny. Podporuje VS něco jako "hot code replace"? Typicky: Mám aplikaci v debugu, dopíšu nějaký kód, dám save a debuguju dál s těmito změnami.

Díky za odpovědi.

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
Inkrementálny build a Hot Code Replace sú dve rozdielne veci. Inkrementálny build robí Visual Studio…
los 19.02.2011 13:32
los
Inkrementálny build robí Visual Studio automaticky. No určitě ho ale nespouští při uložení změn. Ko…
MaSo 19.02.2011 13:39
MaSo
Napríklad: http://www.coderanch.com/t/518046/vc/Eclipse-Debug ger-Hot-Code-Replacement No určitě ho…
los 19.02.2011 13:44
los
Napríklad: http://www.coderanch.com/t/518046/vc/Eclipse-Debug ger-Hot-Code-Replacement No to ale v…
MaSo 19.02.2011 13:50
MaSo
Dosť otravné obmedzenie, nemyslíš? Ďalšie obmedzenie je, že keď krokuješ program a nájdeš v ňom chyb…
los 19.02.2011 14:24
los
Dosť otravné obmedzenie, nemyslíš? No nevím, debugovat main metodu jsem jestě nepotřeboval, ty moje…
MaSo 19.02.2011 14:38
MaSo
Keď chceš krokovať a za behu dolaďovať zložitejší algoritmus, tak je nemysliteľné, aby ťa debugger p…
los 19.02.2011 18:30
los
Tak to s tím Find the Breakpoint, to je naprosto kritická věc, která musí každého trápit strašně čas…
siberian 19.02.2011 20:49
siberian
Ten Find the Breakpoint je problém, ktorý vo Visual Studiu nebol ani pred desiatimi rokmi. Pri laden…
los 20.02.2011 10:22
los
S Find the Breakpoint problémem jsem se vážně nikdy nesetkal (teď když jsem to taklhe naspal, je jas…
siberian 20.02.2011 11:38
siberian
To s dlhým reťazcom som myslel taký prípad, kedy pri ladení vidím v Expressions len časť reťazca, kt… nový
los 20.02.2011 12:04
los
Expression View je v Eclipse rozděleno na tři části. Ve třetí části je možné text vidět zalomený a c… nový
siberian 20.02.2011 16:24
siberian
Hmmm, tú tretiu časť som zrejme nejako prehliadol... Áno, môžeš aj preskakovať časti metódy bez toh… nový
los 20.02.2011 17:22
los
Bez Ctrl+Alt+LMB si dokážu představit život, ale občas je to pěkná zkratka. Když VS umí přeskakovat… nový
siberian 20.02.2011 19:07
siberian
Takže to uzavřeme. Shrnutí: - Inkrementální build jako v Eclipse ve VS2010 není. - obdoba Hot Code… poslední
MaSo 21.02.2011 12:28
MaSo

Inkrementálny build a Hot Code Replace sú dve rozdielne veci. Inkrementálny build robí Visual Studio automaticky.

Ekvivalentom pre Hot Code Replace vo Visual Studiu je Edit and Continue. Oproti Hot Code Replace funguje intuitívnejším spôsobom v tom, že umožňuje upravovať kód, ktorý programátor práve krokuje - na rozdiel od Hot Code Replace, ktorý v takomto najbežnejšom prípade zlyháva.

Inkrementálny build robí Visual Studio automaticky.

No určitě ho ale nespouští při uložení změn. Kolikrát se totiž dozvím, že mám chybu v kódu až po zmáčknutí F5.

Oproti Hot Code Replace funguje intuitívnejším spôsobom v tom, že umožňuje upravovať kód, ktorý programátor práve krokuje - na rozdiel od Hot Code Replace, ktorý v takomto najbežnejšom prípade zlyháva.

Jak zlyhává? V Eclipsu můžu klidně upravovat kód, který právě debuguju. Kdyby tohle nešlo, tak si ani nedokážu představit, k čemu by Hot Code Replace bylo dobré...

Napríklad: http://www.coderanch.com/t/518046/vc/Eclipse-Debug ger-Hot-Code-Replacement

No to ale vyplývá z limitace Hot Code Replace, ten totiž neumí měnit kód metody main(). Tady nelze mluvit o selhání. Edit and Continue zas nefunguje při Attach to..., což Hot Code Replace umí a to dokonce i při remote debuggingu.

Áno, nespúšťa ho pri uložení zmien - prečo by mal?

Jsem na to zvyklý z Eclipse. :-) Jen mě zajímá, jestli jde docílit stejného chování. Dělat něco automaticky a dělat něco na stisk klávesy, je podstatný rozdíl. :-)

Dosť otravné obmedzenie, nemyslíš? Ďalšie obmedzenie je, že keď krokuješ program a nájdeš v ňom chybu, ktorú opravíš, tak pri Hot Code Replace "pokračuješ" v ladení od začiatku metódy, zatiaľ čo pri Edit and Continue pokračuješ tam, kde si mal program zastavený. Celkovo ladenie vo Visual Studiu je oveľa pohodlnejšie ako v Eclipse.

K tomu automatickému spúšťaniu buildu: Ja keď odchádzam z práce, tak chcem len uložiť zmeny - určite nemám záujem čakať na build, o ktorý nestojím, a potom ešte čakať na vypnutie Eclipse... :-)

Dosť otravné obmedzenie, nemyslíš?

No nevím, debugovat main metodu jsem jestě nepotřeboval, ty moje mívájí většinou jen jeden řádek. :-)

Ďalšie obmedzenie je, že keď krokuješ program a nájdeš v ňom chybu, ktorú opravíš, tak pri Hot Code Replace "pokračuješ" v ladení od začiatku metódy, zatiaľ čo pri Edit and Continue pokračuješ tam, kde si mal program zastavený.

To sice jo, ale zdrží to tak na dvě sekundy. Do místa změny si dáš breakpoint a začátek metody přeskočíš.

Celkovo ladenie vo Visual Studiu je oveľa pohodlnejšie ako v Eclipse.

S tímhle já nikdy souhlasit nebudu...:-) Pokud jde o debug, tak VS neumí ani polovinu toho, co Eclipse.

K tomu automatickému spúšťaniu buildu: Ja keď odchádzam z práce, tak chcem len uložiť zmeny - určite nemám záujem čakať na build, o ktorý nestojím.

To je možná tím, že ve VS musíte na ten build čekat. V Eclipse zmáčku save a ani nepostřehnu, že se něco někde buildovalo. Pokud jsem udělal nějakou botu, hned vídím kde.

Mimochodem, vy v práci nepoužíváte TFS? Protože při odchodu z práce se většinou dělá check-in a ten je bez předchozího (up to date) buildu krajně nebezpečný.

...a potom ešte čakať na vypnutie Eclipse...

K tomu se vyjadřovat nehodlám, snad jen, že na mém pracovním PC se Eclipse vypíná tak 10x rychleji, než VS2010. :-)

Jinak nechtěl jsem z tohoto threadu dělat flame VS2010 vs. Eclipse. Jen chci vědět jestli jde nastavit tak, aby se choval stejně. Bez instalace doplňků třetích stran. Když si nainstaluju ReSharper, tak tohle všechno bude chodit, ale ten je bohužel placený a firma je vychcaná.

Keď chceš krokovať a za behu dolaďovať zložitejší algoritmus, tak je nemysliteľné, aby ťa debugger premiestnil na iné miesto, než na ktorom sa práve nachádzaš - aspoň vo Visual Studiu. Keď si uprostred cyklu, za niekoľkými rozhodovacími podmienkami v nejakom konkrétnom stave objektu, ktorý sa mení, tak nie že stratíš dve sekundy, ale taký Hot Code Replace môžeš hodiť za psom.

Ladiace nástroje od Microsoftu patria ku špičke - majú s tým bohaté skúseností a zdá sa mi zbytočné o tom diskutovať. V Eclipse mi napríklad veľmi chýba možnosť presunúť ukazovateľ, ktorý riadok sa má vykonať ako nasledujúci. Ďalej nemám rád, keď musím vo svojom IDE hrať hru Find the Breakpoint - toto je moderné vývojové prostredie?

Do CVS/SVN/TFS-ka commitujeme len funkčný kód - nie vždy to vyjde na koniec dňa. Ale to s pomalým vypínaním Eclipse bola len sarkastická poznámka, pretože Eclipse je tým preslávený. :-D

Tak to s tím Find the Breakpoint, to je naprosto kritická věc, která musí každého trápit strašně často. Jasný důvod změnit IDE na nějaké moderní. Třeba na Visual Studio. Tam takový problém není. Sice neumí skoro žádný refaktoring, ale to přece není tak důležité...

V Eclipse mi napríklad veľmi chýba možnosť presunúť ukazovateľ, ktorý riadok sa má vykonať ako nasledujúci.

Mně to nechybí, používám k tomu Ctrl+R. No a to pomalé vypínání je fakt hrozné. Skoro nehoráznou JEDNU SEKUNDU trvá na mém super děle AMD 5050e!!! 3-[

Ten Find the Breakpoint je problém, ktorý vo Visual Studiu nebol ani pred desiatimi rokmi. Pri ladení programu to naozaj dosť prekáža, ináč by to asi neopravovali.

Run to Line (Ctrl+R) je niečo úplne iné - pomocou neho nemôžeš vrátiť vykonávanie programu o pár riadkov vyššie. Toto Eclipse naozaj nevie, pričom vo Visual Studiu sa to používa úplne bežne.

Ďalšia vec, na ktorú som v Eclipse narazil, je napríklad zobrazenie dlhého reťazca počas ladenia programu. Vo Visual Studiu si ho môžem jednoducho zobraziť a to nielen ako text na viacero riadkov, ale aj ako XML (ak obsahuje XML). Dá sa to v Eclipse?

Doba vypínania mi v skutočnosti neprekáža - našťastie nemusím byť pri počítači až dovtedy, kým sa vypne. :-)

S Find the Breakpoint problémem jsem se vážně nikdy nesetkal (teď když jsem to taklhe naspal, je jasné, že se mi to brzy stane =D). Zato třeba jsem si vzpomněl, jak mě ve VS jeden čas dost žralo, že záložka threads nic nezobrazí do doby, než se zmáčkne Pause. Žádné live view na činnost vláken. Dost omezující.

S tím Ctrl+R, to má být něco jako step back jo... Hm, tak to je fakt pěkné. To si v pondělí vyzkouším. V Eclipsu nehrozí. Jedině způsobem drop to frame + run to line.

S tím dlouhým řetězcem, nevím, jestli chápu. Dlouhý String při zobrazování si zalomit samozřejmě jde, jestli to má být tohle.

Jinak, co se mi v Eclipse při debugu líbí za funkce a občas se dost hodí je force return. Ještě užitečnější je zkratka Ctrl+Alt+mouse_click, kdy se při debugu vleze rovnou do metody, na které je nastaven myší kurzor. Jsou tyhle věci taky ve VS?

To s dlhým reťazcom som myslel taký prípad, kedy pri ladení vidím v Expressions len časť reťazca, ktorý je ukončený tromi bodkami, pretože je príliš dlhý. Viem, že sa mi nakoniec nejak podarilo získať celú hodnotu premennej, ale už si nepamätám presný postup - zapamätal som si iba to, že to bolo komplikovanejšie, než na čo som zvyknutý z VS. Vyskúšam to Ctrl+Shift+D, môj život bude od pondelka možno o niečo krajší. :-)

Force return tam nie je a keď tak teraz nad tým rozmýšľam, tak mi nechýba práve kvôli možnosti presúvania ukazovateľa na nasledujúcu inštrukciu. Skrátka si v takých prípadoch presuniem vykonávanie tam, kde chcem, aby pokračovalo.

Ctrl+Alt+LMB neviem čo je - možno Go To Definition (F12)? Ale to asi nemáš na mysli, lebo to je v Eclipse F3...

Expression View je v Eclipse rozděleno na tři části. Ve třetí části je možné text vidět zalomený a celý.

Jen pro jistotu: force return funguje tak, že při návratu z metody se zbytek metody nevykoná, případně navíc metoda vrátí jinou zvolenou návratovou hodnotu. To se hodí v situacích, kdy je dobré vědět, co se stane při nevykonání části kódu. Ve VS je možné přeskakovat kroky bez jejich vykonání?

To Ctrl+Alt+LMB funguje jenom při debugu a to tak, že se myší klikne na volání metody (kdekoliv v kódu, nemusí to být v těle metody, ve které právě debugger je) a debugger se rozjede a zastaví až ve chvíli, co do této metody vklouznul.

Hmmm, tú tretiu časť som zrejme nejako prehliadol...

Áno, môžeš aj preskakovať časti metódy bez toho, aby sa vykonali. Stačí chytiť žltú šípku, ktorá ukazuje na miesto, v ktorom sa program nachádza, a pomocou drag&drop presunúť na iné miesto.

No a to posledné vo VS nie je, zatiaľ mi to ani nechýba.

Takže to uzavřeme.

Shrnutí:
- Inkrementální build jako v Eclipse ve VS2010 není.
- obdoba Hot Code Replace ve VS2010 (Edit and Continue) je a funguje. Vlastnoručně odzkoušeno.

Děkuli losovi za tip na funkci "Set Next Statement", super věc. :beer: Doufám, že bude co nevidět i v Eclipse...:-)

Zpět do poradny Odpovědět na původní otázku Nahoru