﻿<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>andrzej.net.pl &#187; visual studio tricks</title>
	<atom:link href="http://andrzej.net.pl/index.php/category/visual-studio-tricks/feed/" rel="self" type="application/rss+xml" />
	<link>http://andrzej.net.pl</link>
	<description>Blog o programowaniu C#, ASP.NET</description>
	<lastBuildDate>Mon, 27 Jun 2011 22:36:30 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>DebuggerDisplay &#8211; mały pomocnik</title>
		<link>http://andrzej.net.pl/index.php/2010/06/debuggerdisplay-maly-pomocnik/</link>
		<comments>http://andrzej.net.pl/index.php/2010/06/debuggerdisplay-maly-pomocnik/#comments</comments>
		<pubDate>Thu, 24 Jun 2010 12:16:28 +0000</pubDate>
		<dc:creator>andrzej</dc:creator>
				<category><![CDATA[ogólne]]></category>
		<category><![CDATA[visual studio tricks]]></category>
		<category><![CDATA[wyszperane]]></category>

		<guid isPermaLink="false">http://andrzej.net.pl/?p=788</guid>
		<description><![CDATA[Czasami, gdy próbuję zdebugować jakiś uciążliwy problem istnieje konieczność oglądania właściwości obiektu. Klikanie kolejnych plusików w wizualizacji debuggera w poszukiwaniu odpowiedniego obiektu na liście doprowadza mnie do szału (zwłaszcza, gdy klasy są dziedziczone). Przy przeglądaniu namespace&#8217;a System.Diagnostics natknąłem się na atrybut: DebuggerDisplay. Krótka lektura MSDN i okazało się, że taka mała głupota może niesamowicie ułatwić [...]


Nie znaleziono powiązanych wpisów.

Powiązane wpisy wygenerowane przez <a href='http://yarpp.org' onclick="pageTracker._trackPageview('/outgoing/yarpp.org?referer=');">wtyczkę Yet Another Related Posts</a>.]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Czasami, gdy próbuję zdebugować jakiś uciążliwy problem istnieje konieczność oglądania właściwości obiektu.<br />
Klikanie kolejnych plusików w wizualizacji debuggera w poszukiwaniu odpowiedniego obiektu na liście doprowadza mnie do szału (zwłaszcza, gdy klasy są dziedziczone).<br />
Przy przeglądaniu namespace&#8217;a System.Diagnostics natknąłem się na atrybut: DebuggerDisplay. Krótka lektura <a href="http://msdn.microsoft.com/en-us/library/x810d419.aspx" onclick="pageTracker._trackPageview('/outgoing/msdn.microsoft.com/en-us/library/x810d419.aspx?referer=');">MSDN</a> i okazało się, że taka mała głupota może niesamowicie ułatwić życie :)</p>
<p><span id="more-788"></span></p>
<p>Weźmy pod lupę bardzo prosta klasę:</p>
<div class="codecolorer-container csharp default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="csharp codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&nbsp; &nbsp; <span style="color: #008000;">&#91;</span>Serializable<span style="color: #008000;">&#93;</span><br />
&nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #6666cc; font-weight: bold;">class</span> Part<br />
&nbsp; &nbsp; <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #6666cc; font-weight: bold;">string</span> PartSeries <span style="color: #008000;">&#123;</span> get<span style="color: #008000;">;</span> set<span style="color: #008000;">;</span> <span style="color: #008000;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #6666cc; font-weight: bold;">string</span> PartNumber <span style="color: #008000;">&#123;</span> get<span style="color: #008000;">;</span> set<span style="color: #008000;">;</span> <span style="color: #008000;">&#125;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #008000;">...</span><br />
&nbsp; &nbsp; <span style="color: #008000;">&#125;</span></div></div>
<p>Jak prezentuje się w debuggerze podgląd listy naszych części? Ano tak:</p>
<p><a href="http://andrzej.net.pl/wp-content/uploads/2010/06/screen047.jpg" rel="lightbox[788]" onclick="pageTracker._trackPageview('/outgoing/andrzej.net.pl/wp-content/uploads/2010/06/screen047.jpg?referer=');"><img src="http://andrzej.net.pl/wp-content/uploads/2010/06/screen047-300x173.jpg" alt="" title="domyślny wygląd" width="300" height="173" class="alignnone size-medium wp-image-790" /></a></p>
<p>Jeśli nie znamy pozycji naszego elementu musimy uprawiać zawody w klikaniu mychą w celu znalezienia interesującego nas elementu. Jak ułatwić sobie życie?<br />
Dodając do klasy atrybut DebuggerDisplay:</p>
<div class="codecolorer-container csharp default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="csharp codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&nbsp; &nbsp; <span style="color: #008000;">&#91;</span>Serializable<span style="color: #008000;">&#93;</span><br />
&nbsp; &nbsp; <span style="color: #008000;">&#91;</span><span style="color: #000000;">System.<span style="color: #0000FF;">Diagnostics</span></span><span style="color: #008000;">.</span><span style="color: #0000FF;">DebuggerDisplay</span><span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;Part number = {PartNumber}, Part series = {PartSeries} &quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#93;</span><br />
&nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #6666cc; font-weight: bold;">class</span> Part<br />
&nbsp; &nbsp; <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #6666cc; font-weight: bold;">string</span> PartSeries <span style="color: #008000;">&#123;</span> get<span style="color: #008000;">;</span> set<span style="color: #008000;">;</span> <span style="color: #008000;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #6666cc; font-weight: bold;">string</span> PartNumber <span style="color: #008000;">&#123;</span> get<span style="color: #008000;">;</span> set<span style="color: #008000;">;</span> <span style="color: #008000;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">...</span><br />
&nbsp; &nbsp; <span style="color: #008000;">&#125;</span></div></div>
<p>Wizualizacja naszej kolekcji wygląda teraz następująco:</p>
<p><a href="http://andrzej.net.pl/wp-content/uploads/2010/06/screen048.jpg" rel="lightbox[788]" onclick="pageTracker._trackPageview('/outgoing/andrzej.net.pl/wp-content/uploads/2010/06/screen048.jpg?referer=');"><img src="http://andrzej.net.pl/wp-content/uploads/2010/06/screen048-300x150.jpg" alt="" title="debugger display" width="300" height="150" class="alignnone size-medium wp-image-791" /></a></p>
<p>Prawda, że lepiej i wygodniej :) ?<br />
Nie będę rozwodził się nad wszystkimi opcjami jakie udostępnia ten atrybut, gdyż <a href="http://msdn.microsoft.com/en-us/library/x810d419.aspx" onclick="pageTracker._trackPageview('/outgoing/msdn.microsoft.com/en-us/library/x810d419.aspx?referer=');">bardzo dobrze (wraz z przykładami) opisany jest on na MSDN.</a></p>
<p>Miłego debugowania! ;)</p>


<p>Nie znaleziono powiązanych wpisów.</p>
<p>Powiązane wpisy wygenerowane przez <a href='http://yarpp.org' onclick="pageTracker._trackPageview('/outgoing/yarpp.org?referer=');">wtyczkę Yet Another Related Posts</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://andrzej.net.pl/index.php/2010/06/debuggerdisplay-maly-pomocnik/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Visual Studio &#8211; jednoczesne debugowanie kilku projektów w solution</title>
		<link>http://andrzej.net.pl/index.php/2010/01/visual-studio-jednoczesne-debugowanie-kilku-projektow-w-solution/</link>
		<comments>http://andrzej.net.pl/index.php/2010/01/visual-studio-jednoczesne-debugowanie-kilku-projektow-w-solution/#comments</comments>
		<pubDate>Wed, 06 Jan 2010 21:45:06 +0000</pubDate>
		<dc:creator>andrzej</dc:creator>
				<category><![CDATA[c#]]></category>
		<category><![CDATA[nowe]]></category>
		<category><![CDATA[visual studio tricks]]></category>
		<category><![CDATA[debugowanie wielu projektów]]></category>
		<category><![CDATA[visual studio 2008]]></category>

		<guid isPermaLink="false">http://andrzej.net.pl/?p=685</guid>
		<description><![CDATA[Najprostsze rozwiązania często są w Visual Studio sprytnie ukryte. Takie czasem odnoszę wrażenie. Jedną z rzeczy, na które narzekałem przy debugowaniu np. WebService&#8217;ów czy aplikacji współdzielących niektóre zasoby był brak możliwości ustawienia jako &#8222;Startup&#8221; kilku projektów w ramach jednej solucji. Okazuje się jednak, że jest to banalnie proste.. Przeważnie ustawiałem jeden projekt jako startowy korzystając [...]


Powiązane wpisy:<ol><li><a href='http://andrzej.net.pl/index.php/2009/08/the-web-application-is-configured-to-use-iis-the-iis-web-server-is-not-installed-on-this-computer/' rel='bookmark' title='Permanent Link: The Web Application is configured to use IIS. The IIS Web server is not installed on this computer.' onclick="pageTracker._trackPageview('/outgoing/andrzej.net.pl/index.php/2009/08/the-web-application-is-configured-to-use-iis-the-iis-web-server-is-not-installed-on-this-computer/?referer=');">The Web Application is configured to use IIS. The IIS Web server is not installed on this computer.</a></li>
<li><a href='http://andrzej.net.pl/index.php/2010/10/wielopoziomowa-aplikacja-nauka-przez-przyklad/' rel='bookmark' title='Permanent Link: Wielopoziomowa aplikacja &#8211; nauka przez przykład' onclick="pageTracker._trackPageview('/outgoing/andrzej.net.pl/index.php/2010/10/wielopoziomowa-aplikacja-nauka-przez-przyklad/?referer=');">Wielopoziomowa aplikacja &#8211; nauka przez przykład</a></li>
</ol>

Powiązane wpisy wygenerowane przez <a href='http://yarpp.org' onclick="pageTracker._trackPageview('/outgoing/yarpp.org?referer=');">wtyczkę Yet Another Related Posts</a>.]]></description>
			<content:encoded><![CDATA[<p style="text-align:justify">
Najprostsze rozwiązania często są w Visual Studio sprytnie ukryte. Takie czasem odnoszę wrażenie. Jedną z rzeczy, na które narzekałem przy debugowaniu np. WebService&#8217;ów czy aplikacji współdzielących niektóre zasoby był brak możliwości ustawienia jako &#8222;Startup&#8221; kilku projektów w ramach jednej solucji. Okazuje się jednak, że jest to banalnie proste..
</p>
<p><span id="more-685"></span></p>
<p style="text-align:justify">
Przeważnie ustawiałem jeden projekt jako startowy korzystając z opcji w menu kontekstowym na projekcie: &#8222;Set as startup project&#8221;.<br />
<a href="http://andrzej.net.pl/wp-content/uploads/2010/01/plik046.jpg" rel="lightbox[685]" onclick="pageTracker._trackPageview('/outgoing/andrzej.net.pl/wp-content/uploads/2010/01/plik046.jpg?referer=');"><img src="http://andrzej.net.pl/wp-content/uploads/2010/01/plik046-150x150.jpg" alt="" title="Opcja &quot;Set as startup project&quot;" width="150" height="150" class="aligncenter size-thumbnail wp-image-686" /></a>
</p>
<p style="text-align:justify">
Możliwe jest jednak ustawienie wielu projektów jako startowych. W tym celu należy wywołać menu kontekstowe na Solution i wybrać Properties:<br />
<a href="http://andrzej.net.pl/wp-content/uploads/2010/01/plik047.jpg" rel="lightbox[685]" onclick="pageTracker._trackPageview('/outgoing/andrzej.net.pl/wp-content/uploads/2010/01/plik047.jpg?referer=');"><img src="http://andrzej.net.pl/wp-content/uploads/2010/01/plik047-150x150.jpg" alt="" title="Solution, menu kontekstowe" width="150" height="150" class="aligncenter size-thumbnail wp-image-687" /></a>
</p>
<p style="text-align:justify">
Naszym oczom ukaże się okno właściwości. Wybieramy po lewej opcję Common Properties -> Startup Project.<br />
Teraz wystarczy przełączyć je w tryb &#8222;Multiple startup projects&#8221; i wybrać akcję na tych projektach, które nas interesują:<br />
<a href="http://andrzej.net.pl/wp-content/uploads/2010/01/plik048.jpg" rel="lightbox[685]" onclick="pageTracker._trackPageview('/outgoing/andrzej.net.pl/wp-content/uploads/2010/01/plik048.jpg?referer=');"><img src="http://andrzej.net.pl/wp-content/uploads/2010/01/plik048-150x150.jpg" alt="" title="Właściwości solucji" width="150" height="150" class="aligncenter size-thumbnail wp-image-688" /></a>
</p>
<p style="text-align:justify">
Można ustawić projekt w trybie:</p>
<ul>
<li>None &#8211; wiadomo ;)</li>
<li>Start &#8211; uruchamia z debuggerem</li>
<li>Start without debugging &#8211; wiadomo ;)</li>
</ul>
<p>Także.. happy debugging! ;)</p>


<p>Powiązane wpisy:<ol><li><a href='http://andrzej.net.pl/index.php/2009/08/the-web-application-is-configured-to-use-iis-the-iis-web-server-is-not-installed-on-this-computer/' rel='bookmark' title='Permanent Link: The Web Application is configured to use IIS. The IIS Web server is not installed on this computer.' onclick="pageTracker._trackPageview('/outgoing/andrzej.net.pl/index.php/2009/08/the-web-application-is-configured-to-use-iis-the-iis-web-server-is-not-installed-on-this-computer/?referer=');">The Web Application is configured to use IIS. The IIS Web server is not installed on this computer.</a></li>
<li><a href='http://andrzej.net.pl/index.php/2010/10/wielopoziomowa-aplikacja-nauka-przez-przyklad/' rel='bookmark' title='Permanent Link: Wielopoziomowa aplikacja &#8211; nauka przez przykład' onclick="pageTracker._trackPageview('/outgoing/andrzej.net.pl/index.php/2010/10/wielopoziomowa-aplikacja-nauka-przez-przyklad/?referer=');">Wielopoziomowa aplikacja &#8211; nauka przez przykład</a></li>
</ol></p>
<p>Powiązane wpisy wygenerowane przez <a href='http://yarpp.org' onclick="pageTracker._trackPageview('/outgoing/yarpp.org?referer=');">wtyczkę Yet Another Related Posts</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://andrzej.net.pl/index.php/2010/01/visual-studio-jednoczesne-debugowanie-kilku-projektow-w-solution/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>jQuery + VisualStudio 2008 = Error updating JScript IntelliSense: Object doesn’t support this property or method @ 2139:1</title>
		<link>http://andrzej.net.pl/index.php/2009/08/jquery-visualstudio-2008-intellisense-error-updating-jscript-intellisense-object-doesn%e2%80%99t-support-this-property-or-method-21391/</link>
		<comments>http://andrzej.net.pl/index.php/2009/08/jquery-visualstudio-2008-intellisense-error-updating-jscript-intellisense-object-doesn%e2%80%99t-support-this-property-or-method-21391/#comments</comments>
		<pubDate>Wed, 19 Aug 2009 14:01:27 +0000</pubDate>
		<dc:creator>andrzej</dc:creator>
				<category><![CDATA[js]]></category>
		<category><![CDATA[visual studio tricks]]></category>
		<category><![CDATA[jquery intellisense]]></category>

		<guid isPermaLink="false">http://andrzej.net.pl/?p=516</guid>
		<description><![CDATA[Idąc za ciosem postanowiłem dziś w pracy podłączyć jQuery w jednym z projektów. Po ściągnięciu najnowszej wersji (1.3.2) z google code i wrzuceniu na stronę, na której chciałem użyć jQuery, przywitało mnie w Visualu ostrzeżenie: Error updating JScript IntelliSense [ścieżka] &#8211; Object doesn&#8217;t support this property or method @ 2139:1. Pięknie się zaczyna &#8211; pomyślałem. [...]


Nie znaleziono powiązanych wpisów.

Powiązane wpisy wygenerowane przez <a href='http://yarpp.org' onclick="pageTracker._trackPageview('/outgoing/yarpp.org?referer=');">wtyczkę Yet Another Related Posts</a>.]]></description>
			<content:encoded><![CDATA[<p style="text-align:justify">
Idąc<a href="http://andrzej.net.pl/index.php/2009/08/show-hide-javascript-proste-podlaczenie-przy-uzyciu-c/" onclick="pageTracker._trackPageview('/outgoing/andrzej.net.pl/index.php/2009/08/show-hide-javascript-proste-podlaczenie-przy-uzyciu-c/?referer=');"> za ciosem</a> postanowiłem dziś w pracy podłączyć jQuery w jednym z projektów.<br />
Po ściągnięciu najnowszej wersji (1.3.2) z <a href="http://code.google.com/p/jqueryjs/downloads/list" onclick="pageTracker._trackPageview('/outgoing/code.google.com/p/jqueryjs/downloads/list?referer=');">google code</a> i wrzuceniu na stronę, na której chciałem użyć jQuery, przywitało mnie w Visualu ostrzeżenie: Error updating JScript IntelliSense [ścieżka] &#8211; Object doesn&#8217;t support this property or method @ 2139:1. Pięknie się zaczyna &#8211; pomyślałem.
</p>
<p><span id="more-516"></span>
<p style="text-align:justify">
Wróciłem na stronę google code i uważniej przyglądając się temu, co ściągnąłem, zauważyłem pliczek vsdoc. Ucieszony ściągnałem<a href="jquery-1.3.2-vsdoc2.js"> jquery-1.3.2-vsdoc2.js</a>, usunąłem 2 z końca (bo vsdoc musi odpowiadać nazwie pliku, czyli [nazwa_pliku_oryginalnego] + vsdoc.js. Podłączyłem plik do projektu i.. nadal to samo.</p>
<p style="text-align:justify">
Po krótkiej chwili googlania okazało się, że niezbędna jest instalacja poprawki <a href="http://code.msdn.microsoft.com/KB958502" onclick="pageTracker._trackPageview('/outgoing/code.msdn.microsoft.com/KB958502?referer=');">KB958502 &#8211; JScript Editor support for “-vsdoc.js” IntelliSense doc. files</a>, do pobrania <a href="http://code.msdn.microsoft.com/KB958502/Release/ProjectReleases.aspx?ReleaseId=1736" onclick="pageTracker._trackPageview('/outgoing/code.msdn.microsoft.com/KB958502/Release/ProjectReleases.aspx?ReleaseId=1736&amp;referer=');">tutaj</a>. Po instalacji wszystko działa pięknie, i mogę cieszyć się intellisensem jQuery:</p>
<p><div id="attachment_519" class="wp-caption aligncenter" style="width: 310px"><a href="http://andrzej.net.pl/wp-content/uploads/2009/08/Untitled.png" rel="lightbox[516]" onclick="pageTracker._trackPageview('/outgoing/andrzej.net.pl/wp-content/uploads/2009/08/Untitled.png?referer=');"><img src="http://andrzej.net.pl/wp-content/uploads/2009/08/Untitled-300x65.png" alt="jQuery intellisense" title="jQuery intellisense" width="300" height="65" class="size-medium wp-image-519" /></a><p class="wp-caption-text">jQuery intellisense</p></div><br />
<br/><br/><br />
<ins datetime="2009-08-19T16:01:13+00:00"><br />
Wcześniej nie znalazłem, a teraz mi wpadło na dotnetomaniaku w ręce &#8211; <a href="http://gasior.net.pl/index.php/2009/03/19/intellisense-dla-jquery-i-innych-bibliotek-javascript/" onclick="pageTracker._trackPageview('/outgoing/gasior.net.pl/index.php/2009/03/19/intellisense-dla-jquery-i-innych-bibliotek-javascript/?referer=');">więcej o intellisense do javaScriptu w VisualStudio</a><br />
</ins></p>


<p>Nie znaleziono powiązanych wpisów.</p>
<p>Powiązane wpisy wygenerowane przez <a href='http://yarpp.org' onclick="pageTracker._trackPageview('/outgoing/yarpp.org?referer=');">wtyczkę Yet Another Related Posts</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://andrzej.net.pl/index.php/2009/08/jquery-visualstudio-2008-intellisense-error-updating-jscript-intellisense-object-doesn%e2%80%99t-support-this-property-or-method-21391/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>The Web Application is configured to use IIS. The IIS Web server is not installed on this computer.</title>
		<link>http://andrzej.net.pl/index.php/2009/08/the-web-application-is-configured-to-use-iis-the-iis-web-server-is-not-installed-on-this-computer/</link>
		<comments>http://andrzej.net.pl/index.php/2009/08/the-web-application-is-configured-to-use-iis-the-iis-web-server-is-not-installed-on-this-computer/#comments</comments>
		<pubDate>Fri, 07 Aug 2009 08:27:20 +0000</pubDate>
		<dc:creator>andrzej</dc:creator>
				<category><![CDATA[c#]]></category>
		<category><![CDATA[ogólne]]></category>
		<category><![CDATA[visual studio tricks]]></category>
		<category><![CDATA[IIS is not installed]]></category>
		<category><![CDATA[not configured to use IIS]]></category>
		<category><![CDATA[problem z IIS VisualStudio]]></category>

		<guid isPermaLink="false">http://andrzej.net.pl/?p=365</guid>
		<description><![CDATA[Nie spotkał Was dotychczas taki komunikat? Ja miałem wątpliwą przyjemność być zaskoczony nim wczoraj ;-) O co chodzi? Pracując na jednym z komputerów ustawiłem w Properties projektu typu Web Application, aby podczas debugowania nie używała wbudowanego serwera deweloperskiego z VisualStudio, a właśnie lokalnego IIS. Ustawienia były więc jak niżej: Nieopatrznie wysłałem projekt na SVN z [...]


Powiązane wpisy:<ol><li><a href='http://andrzej.net.pl/index.php/2010/01/visual-studio-jednoczesne-debugowanie-kilku-projektow-w-solution/' rel='bookmark' title='Permanent Link: Visual Studio &#8211; jednoczesne debugowanie kilku projektów w solution' onclick="pageTracker._trackPageview('/outgoing/andrzej.net.pl/index.php/2010/01/visual-studio-jednoczesne-debugowanie-kilku-projektow-w-solution/?referer=');">Visual Studio &#8211; jednoczesne debugowanie kilku projektów w solution</a></li>
<li><a href='http://andrzej.net.pl/index.php/2010/10/wielopoziomowa-aplikacja-nauka-przez-przyklad/' rel='bookmark' title='Permanent Link: Wielopoziomowa aplikacja &#8211; nauka przez przykład' onclick="pageTracker._trackPageview('/outgoing/andrzej.net.pl/index.php/2010/10/wielopoziomowa-aplikacja-nauka-przez-przyklad/?referer=');">Wielopoziomowa aplikacja &#8211; nauka przez przykład</a></li>
</ol>

Powiązane wpisy wygenerowane przez <a href='http://yarpp.org' onclick="pageTracker._trackPageview('/outgoing/yarpp.org?referer=');">wtyczkę Yet Another Related Posts</a>.]]></description>
			<content:encoded><![CDATA[<p>Nie spotkał Was dotychczas taki komunikat? Ja miałem wątpliwą przyjemność być zaskoczony nim wczoraj ;-)</p>
<p>O co chodzi? Pracując na jednym z komputerów ustawiłem w Properties projektu typu Web Application, aby podczas debugowania nie używała wbudowanego serwera deweloperskiego z VisualStudio, a właśnie lokalnego IIS. Ustawienia były więc jak niżej:<br />
<span id="more-365"></span><br />
<div id="attachment_367" class="wp-caption aligncenter" style="width: 310px"><a href="http://andrzej.net.pl/wp-content/uploads/2009/08/ScreenShot0011.jpg" rel="lightbox[365]" onclick="pageTracker._trackPageview('/outgoing/andrzej.net.pl/wp-content/uploads/2009/08/ScreenShot0011.jpg?referer=');"><img src="http://andrzej.net.pl/wp-content/uploads/2009/08/ScreenShot0011-300x178.jpg" alt="Ustawienia WebApplication" title="Ustawienia WebApplication" width="300" height="178" class="size-medium wp-image-367" /></a><p class="wp-caption-text">Ustawienia WebApplication</p></div></p>
<p>Nieopatrznie wysłałem projekt na SVN z takimi ustawieniami.<br/><br />
&#8222;Dzięki&#8221; temu nie mogłem później otworzyć projektu na komputerze bez IIS ;-) Powitał mnie komunikat:<br />
<a href="http://andrzej.net.pl/wp-content/uploads/2009/08/plik003.jpg" rel="lightbox[365]" onclick="pageTracker._trackPageview('/outgoing/andrzej.net.pl/wp-content/uploads/2009/08/plik003.jpg?referer=');"><img src="http://andrzej.net.pl/wp-content/uploads/2009/08/plik003-300x62.jpg" alt="Błąd" title="Błąd" width="300" height="62" class="aligncenter size-medium wp-image-368" /></a><br/></p>
<p>Oraz solution, w którym mój projekt został przez przezorne VS wyłączony ;-)<br />
<a href="http://andrzej.net.pl/wp-content/uploads/2009/08/plik004.jpg" rel="lightbox[365]" onclick="pageTracker._trackPageview('/outgoing/andrzej.net.pl/wp-content/uploads/2009/08/plik004.jpg?referer=');"><img src="http://andrzej.net.pl/wp-content/uploads/2009/08/plik004.jpg" alt="Wyłączony projekt" title="Wyłączony projekt" width="277" height="167" class="aligncenter size-full wp-image-369" /></a><br/><br />
Próba zrobienia reload z menu kontekstowego, kończyła się błędem:<br />
<a href="http://andrzej.net.pl/wp-content/uploads/2009/08/plik005.jpg" rel="lightbox[365]" onclick="pageTracker._trackPageview('/outgoing/andrzej.net.pl/wp-content/uploads/2009/08/plik005.jpg?referer=');"><img src="http://andrzej.net.pl/wp-content/uploads/2009/08/plik005-300x63.jpg" alt="Błąd" title="Błąd" width="300" height="63" class="aligncenter size-medium wp-image-370" /></a><br />
<strong>Rozwiązanie</strong> jest trywialne, ale może komuś oszczędzi rwania włosów z głowy ;-) Z menu kontekstowego wybieramy &#8222;Edit nazwa_projektu.csproj&#8221;:<br />
<a href="http://andrzej.net.pl/wp-content/uploads/2009/08/plik006.jpg" rel="lightbox[365]" onclick="pageTracker._trackPageview('/outgoing/andrzej.net.pl/wp-content/uploads/2009/08/plik006.jpg?referer=');"><img src="http://andrzej.net.pl/wp-content/uploads/2009/08/plik006.jpg" alt="Edit .csproj" title="Edit .csproj" width="280" height="281" class="aligncenter size-full wp-image-371" /></a><br/><br />
Następnie na końcu pliku, szukamy linii z wpisem:</p>
<div class="codecolorer-container xml default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="xml codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;UseIIS<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>True<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/UseIIS<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></div></div>
<p>i zmieniamy ją na wartość <strong>false</strong><br />
<div id="attachment_376" class="wp-caption aligncenter" style="width: 357px"><a href="http://andrzej.net.pl/wp-content/uploads/2009/08/plik009.jpg" rel="lightbox[365]" onclick="pageTracker._trackPageview('/outgoing/andrzej.net.pl/wp-content/uploads/2009/08/plik009.jpg?referer=');"><img src="http://andrzej.net.pl/wp-content/uploads/2009/08/plik009.jpg" alt="Nasze nowe ustawienie" title="UseIIS" width="347" height="52" class="size-full wp-image-376" /></a><p class="wp-caption-text">Nasze nowe ustawienie</p></div><br />
<br/><br />
Zapisujemy, ponownie robimy <strong>Reload</strong> z menu kontekstowego &#8211; i gotowe! ;-)<br />
<a href="http://andrzej.net.pl/wp-content/uploads/2009/08/plik010.jpg" rel="lightbox[365]" onclick="pageTracker._trackPageview('/outgoing/andrzej.net.pl/wp-content/uploads/2009/08/plik010.jpg?referer=');"><img src="http://andrzej.net.pl/wp-content/uploads/2009/08/plik010.jpg" alt="Reload" title="Reload" width="278" height="291" class="aligncenter size-full wp-image-373" /></a></p>


<p>Powiązane wpisy:<ol><li><a href='http://andrzej.net.pl/index.php/2010/01/visual-studio-jednoczesne-debugowanie-kilku-projektow-w-solution/' rel='bookmark' title='Permanent Link: Visual Studio &#8211; jednoczesne debugowanie kilku projektów w solution' onclick="pageTracker._trackPageview('/outgoing/andrzej.net.pl/index.php/2010/01/visual-studio-jednoczesne-debugowanie-kilku-projektow-w-solution/?referer=');">Visual Studio &#8211; jednoczesne debugowanie kilku projektów w solution</a></li>
<li><a href='http://andrzej.net.pl/index.php/2010/10/wielopoziomowa-aplikacja-nauka-przez-przyklad/' rel='bookmark' title='Permanent Link: Wielopoziomowa aplikacja &#8211; nauka przez przykład' onclick="pageTracker._trackPageview('/outgoing/andrzej.net.pl/index.php/2010/10/wielopoziomowa-aplikacja-nauka-przez-przyklad/?referer=');">Wielopoziomowa aplikacja &#8211; nauka przez przykład</a></li>
</ol></p>
<p>Powiązane wpisy wygenerowane przez <a href='http://yarpp.org' onclick="pageTracker._trackPageview('/outgoing/yarpp.org?referer=');">wtyczkę Yet Another Related Posts</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://andrzej.net.pl/index.php/2009/08/the-web-application-is-configured-to-use-iis-the-iis-web-server-is-not-installed-on-this-computer/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Code Snippets, czyli przydatne porcje kodu</title>
		<link>http://andrzej.net.pl/index.php/2009/04/code-snippets-czyli-przydatne-porcje-kodu/</link>
		<comments>http://andrzej.net.pl/index.php/2009/04/code-snippets-czyli-przydatne-porcje-kodu/#comments</comments>
		<pubDate>Fri, 10 Apr 2009 12:43:22 +0000</pubDate>
		<dc:creator>andrzej</dc:creator>
				<category><![CDATA[visual studio tricks]]></category>
		<category><![CDATA[code snippets]]></category>
		<category><![CDATA[visual studio]]></category>

		<guid isPermaLink="false">http://andrzej.net.pl/?p=53</guid>
		<description><![CDATA[Próbowałeś policzyć ile razy razy przy pracy nad projektem wstawiasz powtarzające się bloki kodu? I nie piszę tutaj o kodzie własnym, tylko instrukcjach języka, w którym właśnie programujesz. Pętle, bloki przechwytywania wyjątków, klasy itp. &#8211; czy nie łatwiej byłoby mieć je zawsze &#8222;pod ręką&#8221; i wstawiać prostymi skrótami? Począwszy od wersji 2005 w Visual Studio [...]


Nie znaleziono powiązanych wpisów.

Powiązane wpisy wygenerowane przez <a href='http://yarpp.org' onclick="pageTracker._trackPageview('/outgoing/yarpp.org?referer=');">wtyczkę Yet Another Related Posts</a>.]]></description>
			<content:encoded><![CDATA[<p>Próbowałeś policzyć ile razy razy przy pracy nad projektem wstawiasz powtarzające się bloki kodu? I nie piszę tutaj o kodzie własnym, tylko instrukcjach języka, w którym właśnie programujesz. Pętle, bloki przechwytywania wyjątków, klasy itp. &#8211; czy nie łatwiej byłoby mieć je zawsze &#8222;pod ręką&#8221; i wstawiać prostymi skrótami?</p>
<p>Począwszy od wersji 2005 w Visual Studio wprowadzono ciekawą opcję nazwaną <em>Code snippets.</em></p>
<p><span id="more-53"></span>Podczas pracy widziałem ja wielokrotnie, jednak sami wiecie jak to jest &#8211; nigdy nie ma czasu na odpowiednie poznanie środowiska, w którym się pracuje. Nauczony doświadczeniem z <a href="http://crdruk.pl" onclick="pageTracker._trackPageview('/outgoing/crdruk.pl?referer=');">poprzedniej pracy</a> staram się stosować wszędzie gdzie tylko mogę skróty klawiaturowe. Zaskoczeniem było dla mnie to, co oferuje Visual Studio &#8211; złożone skróty klawiaturowe, polegające na naciśnięciu i przytrzymanie klawisza funkcyjnego oraz dwóch klawiszy literowych.</p>
<p><strong>Domyślne <em>code snippets</em></strong></p>
<div id="attachment_57" class="wp-caption alignleft" style="width: 160px"><a href="http://andrzej.net.pl/wp-content/uploads/2009/04/img001.jpg" rel="lightbox[53]" onclick="pageTracker._trackPageview('/outgoing/andrzej.net.pl/wp-content/uploads/2009/04/img001.jpg?referer=');"><img class="size-thumbnail wp-image-57" title="menu code snippet" src="http://andrzej.net.pl/wp-content/uploads/2009/04/img001-150x150.jpg" alt="menu code snippet" width="150" height="150" /></a><p class="wp-caption-text">menu code snippet</p></div>
<div id="attachment_58" class="wp-caption aligncenter" style="width: 160px"><a href="http://andrzej.net.pl/wp-content/uploads/2009/04/img004.jpg" rel="lightbox[53]" onclick="pageTracker._trackPageview('/outgoing/andrzej.net.pl/wp-content/uploads/2009/04/img004.jpg?referer=');"><img class="size-thumbnail wp-image-58" title="Opcja insert snippet wybrana za pomocą skrótu" src="http://andrzej.net.pl/wp-content/uploads/2009/04/img004-150x150.jpg" alt="Opcja insert snippet wybrana za pomocą skrótu" width="150" height="150" /></a><p class="wp-caption-text">Opcja insert snippet wybrana za pomocą skrótu</p></div>
<p>Jak wywołać menu <em>insert snippet</em>? Mamy dwa sposoby &#8211; kliknięcie prawym klawiszem myszki w miejscu, w którym chcemy wstawić porcję kodu i wybranie opcji <em>Insert Snippet</em>. Druga możliwość, to użycie skrótu CTRL+K+X.</p>
<p>Wybierzmy pozycję try i dwuklik/enter. Wystarczy również zacząć wpisywanie danego zwrotu przy rozwiniętej liście &#8211; zostanie on automatycznie zaznaczony.<br />
Efekt? Oszczędziliśmy kilkanaście niepotrzebnych klepnięć w klawiaturę ;-)</p>
<div id="attachment_60" class="wp-caption alignnone" style="width: 160px"><a href="http://andrzej.net.pl/wp-content/uploads/2009/04/img005.jpg" rel="lightbox[53]" onclick="pageTracker._trackPageview('/outgoing/andrzej.net.pl/wp-content/uploads/2009/04/img005.jpg?referer=');"><img class="size-thumbnail wp-image-60" title="Code Snippet - wynik" src="http://andrzej.net.pl/wp-content/uploads/2009/04/img005-150x150.jpg" alt="Code Snippet - wynik " width="150" height="150" /></a><p class="wp-caption-text">Code Snippet - wynik </p></div>
<p>Co ciekawe, mechanizm od razu wypełnia niezbędne pola odpowiednim typem i ustawia kursor tak, by od razu można było wpisać nazwę zmiennej. Wpiszmy &#8222;exc&#8221; i naciśnijmy enter. Gotowe!</p>
<p>Polecam zapoznanie się z wszystkim opcjami dostępnymi domyślnie &#8211; jest ich naprawdę sporo i wystarczają do obsługi często powtarzających się czynności.</p>
<p><strong>Definiowanie własnych <em>code snippets</em></strong><br />
Jeśli nie wystarczą Ci domyślnie zdefiniowane porcje kodu, możesz zawsze dodać swoje. Na stronie MSDN znajdziesz <a href="http://msdn.microsoft.com/en-us/library/ms165392(VS.80).aspx" onclick="pageTracker._trackPageview('/outgoing/msdn.microsoft.com/en-us/library/ms165392_VS.80_.aspx?referer=');">wyczerpujący opis</a> jak tego dokonać. Pokrótce przedstawię go poniżej.</p>
<p>Cała zabawa polega na stworzeniu pliku XML o odpowiedniej strukturze, zapisaniu go z rozszerzeniem .snippet i zaimportowaniu do VS. W zasobach Microsoft dostępne jest <a href="http://code.msdn.microsoft.com/SnippDogg" onclick="pageTracker._trackPageview('/outgoing/code.msdn.microsoft.com/SnippDogg?referer=');">sprytne narzędzie</a> do realizacji tego zadania &#8211; SnippDogg. Nie pozwala ono jednak definiować w jednym pliku więcej niż jednego snippeta. Może jednak służyć do łatwego zbudowania podstawowego pliku XML. Powinien on wyglądać następująco:</p>
Note: There is a file embedded within this post, please visit this post to download the file.
<p>[code lang="xml"]<br />
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;<br />
&lt;CodeSnippets xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xmlns:xsd=&quot;http://www.w3.org/2001/XMLSchema&quot; xmlns=&quot;http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet&quot;&gt;<br />
  &lt;CodeSnippet Format=&quot;1.0.0&quot;&gt;<br />
    &lt;Header&gt;<br />
      &lt;Title&gt;nazwa snippeta - tak pojawi się na liście&lt;/Title&gt;<br />
      &lt;Shortcut /&gt;<br />
      &lt;Description /&gt;<br />
      &lt;HelpUrl /&gt;<br />
      &lt;Author /&gt;<br />
      &lt;SnippetTypes&gt;<br />
        &lt;SnippetType&gt;Expansion&lt;/SnippetType&gt;<br />
      &lt;/SnippetTypes&gt;<br />
      &lt;Keywords /&gt;<br />
    &lt;/Header&gt;<br />
    &lt;Snippet&gt;<br />
      &lt;References /&gt;<br />
      &lt;Imports /&gt;<br />
      &lt;Declarations /&gt;<br />
      &lt;Code Language=&quot;csharp&quot; Kind=&quot;any&quot; Delimiter=&quot;$&quot;&gt;<br />
       &lt;![CDATA[kod, który zostanie wklejony]]&gt;<br />
      &lt;/Code&gt;<br />
    &lt;/Snippet&gt;<br />
  &lt;/CodeSnippet&gt;<br />
&lt;/CodeSnippets&gt;<br />
[/code]</p>
<p>Oczywiście w jednym pliku może być wiele wpisów (snippetów), wystarczy powielić cały blok <em>CodeSnippet</em>.</p>
<p>Co jest istotne? Snippet to nie tylko suchy, statyczny kod. Możliwe jest tworzenie snippetów zawierających:</p>
<ul>
<li>automatyczny import, dodawanie referencji &#8211; <a href="http://msdn.microsoft.com/en-us/library/ms165395(VS.80).aspx" onclick="pageTracker._trackPageview('/outgoing/msdn.microsoft.com/en-us/library/ms165395_VS.80_.aspx?referer=');">zobacz</a></li>
<li>bloki podlegające zamianie (replacements) po stworzeniu &#8211; <a href="http://msdn.microsoft.com/en-us/library/ms165396(VS.80).aspx" onclick="pageTracker._trackPageview('/outgoing/msdn.microsoft.com/en-us/library/ms165396_VS.80_.aspx?referer=');">zobacz</a></li>
</ul>
<div id="attachment_71" class="wp-caption alignnone" style="width: 160px"><a href="http://andrzej.net.pl/wp-content/uploads/2009/04/img008.jpg" rel="lightbox[53]" onclick="pageTracker._trackPageview('/outgoing/andrzej.net.pl/wp-content/uploads/2009/04/img008.jpg?referer=');"><img class="size-thumbnail wp-image-71" title="Code Snippet Manager" src="http://andrzej.net.pl/wp-content/uploads/2009/04/img008-150x150.jpg" alt="Code Snippet Manager" width="150" height="150" /></a><p class="wp-caption-text">Code Snippet Manager</p></div>
<div id="attachment_73" class="wp-caption alignnone" style="width: 160px"><a href="http://andrzej.net.pl/wp-content/uploads/2009/04/img009.jpg" rel="lightbox[53]" onclick="pageTracker._trackPageview('/outgoing/andrzej.net.pl/wp-content/uploads/2009/04/img009.jpg?referer=');"><img class="size-thumbnail wp-image-73" title="Code Snippet Manager" src="http://andrzej.net.pl/wp-content/uploads/2009/04/img009-150x150.jpg" alt="Code Snippet Manager" width="150" height="150" /></a><p class="wp-caption-text">Code Snippet Manager</p></div>
<div id="attachment_74" class="wp-caption alignnone" style="width: 160px"><a href="http://andrzej.net.pl/wp-content/uploads/2009/04/img010.jpg" rel="lightbox[53]" onclick="pageTracker._trackPageview('/outgoing/andrzej.net.pl/wp-content/uploads/2009/04/img010.jpg?referer=');"><img class="size-thumbnail wp-image-74" title="Code Snippet Manager" src="http://andrzej.net.pl/wp-content/uploads/2009/04/img010-150x150.jpg" alt="Code Snippet Manager" width="150" height="150" /></a><p class="wp-caption-text">Code Snippet Manager</p></div>
<p>Po stworzeniu odpowiedniego pliku XML z rozszerzeniem .snippet wywołujemy okno <em>Code Snippet Manager</em> (CTRL+K+B lub Tools -&gt; Code Snippet Manager). Wybieramy opcję Import z głównego okna, wskazujemy nasz plik na dysku, wybieramy odpowiednią sekcję do której ma się zaimportować porcja kodu i&#8230; gotowe!</p>
<p>Efekt?</p>
<div id="attachment_72" class="wp-caption aligncenter" style="width: 160px"><a href="http://andrzej.net.pl/wp-content/uploads/2009/04/img011.jpg" rel="lightbox[53]" onclick="pageTracker._trackPageview('/outgoing/andrzej.net.pl/wp-content/uploads/2009/04/img011.jpg?referer=');"><img class="size-thumbnail wp-image-72" title="Dodane własne kawałki kodu" src="http://andrzej.net.pl/wp-content/uploads/2009/04/img011-150x92.jpg" alt="Dodane własne kawałki kodu" width="150" height="92" /></a><p class="wp-caption-text">Dodane własne kawałki kodu</p></div>
Note: There is a file embedded within this post, please visit this post to download the file.<br />
Note: There is a file embedded within this post, please visit this post to download the file.


<p>Nie znaleziono powiązanych wpisów.</p>
<p>Powiązane wpisy wygenerowane przez <a href='http://yarpp.org' onclick="pageTracker._trackPageview('/outgoing/yarpp.org?referer=');">wtyczkę Yet Another Related Posts</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://andrzej.net.pl/index.php/2009/04/code-snippets-czyli-przydatne-porcje-kodu/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

