<?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>przemkovv&#039;s world &#187; Visual Studio</title>
	<atom:link href="http://przemkovv.net/tag/visual-studio/feed/" rel="self" type="application/rss+xml" />
	<link>http://przemkovv.net</link>
	<description>The future is now</description>
	<lastBuildDate>Sun, 15 Aug 2010 11:43:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Visual Studio 2008 SP1 Beta i .NET 3.5 SP1 Beta</title>
		<link>http://przemkovv.net/2008/05/24/visual-studio-2008-sp1-beta-i-net-35-sp1-beta/</link>
		<comments>http://przemkovv.net/2008/05/24/visual-studio-2008-sp1-beta-i-net-35-sp1-beta/#comments</comments>
		<pubDate>Fri, 23 May 2008 22:00:54 +0000</pubDate>
		<dc:creator>Przemysław Walkowiak</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Programowanie]]></category>
		<category><![CDATA[RubiksCube]]></category>
		<category><![CDATA[Visual Studio]]></category>
		<category><![CDATA[WPF]]></category>

		<guid isPermaLink="false">http://przemkovv.net/2008/05/24/visual-studio-2008-sp1-beta-i-net-35-sp1-beta/</guid>
		<description><![CDATA[Parę dni temu coś mnie podkusiło do instalacji wersji beta nowego service packa do VS2008 i .NET3.5. Instalacja przeszła względnie bezboleśnie (musiałem tylko zwolnić trochę miejsca na dysku;) ). I wszystko byłoby OK, gdyby nie fakt, że RubiksCube v2 przestał działać.. A dokładniej po wykonaniu dowolnego ruchu wywalał się bliżej nieokreślony błąd w PresentationCore.dll (bliżej [...]]]></description>
			<content:encoded><![CDATA[<p>Parę dni temu coś mnie podkusiło do instalacji wersji beta nowego service packa do VS2008 i .NET3.5. Instalacja przeszła względnie bezboleśnie (musiałem tylko zwolnić trochę miejsca na dysku;) ). </p>
<p>I wszystko byłoby OK, gdyby nie fakt, że RubiksCube v2 przestał działać..<br />
A dokładniej po wykonaniu dowolnego ruchu wywalał się bliżej nieokreślony błąd w PresentationCore.dll (bliżej nieokreślony, bo opisu błędu wogóle nie było). Co lepsze przed SP1 Beta aplikacja działała prawidłowo...</p>
<p>Błędu szukałem komentując po kolei poszczególne fragmenty kodu i dotarłem do takiej konstrukcji</p>
<pre class="csharp"><ol><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0600FF;">if</span> <span style="color: #000000;">&#40;</span>model == <span style="color: #0600FF;">null</span><span style="color: #000000;">&#41;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;">&#123;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">    model = <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> Model3DGroup<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;">&#125;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0600FF;">else</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;">&#123;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">    model.<span style="color: #0000FF;">Children</span>.<span style="color: #0000FF;">Clear</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;">&#125;</span></div></li></ol></pre>
<p>Gdzie <em>model</em> jest typu <em>Model3DGroup</em>. Doszedłem do tego, że aplikacja wywalała się przez linijkę 7. Nie wiem dlaczego tak się zachowywał, ale błąd naprawiłem w następujący sposób:</p>
<pre class="csharp"><ol><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0600FF;">if</span> <span style="color: #000000;">&#40;</span>model == <span style="color: #0600FF;">null</span><span style="color: #000000;">&#41;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;">&#123;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">    model = <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> Model3DGroup<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;">&#125;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0600FF;">else</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;">&#123;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">    model.<span style="color: #0000FF;">Children</span> = <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> Model3DCollection<span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;">&#125;</span></div></li></ol></pre>
<p>I jak na razie aplikacja śmiga <img src='http://przemkovv.net/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>]]></content:encoded>
			<wfw:commentRss>http://przemkovv.net/2008/05/24/visual-studio-2008-sp1-beta-i-net-35-sp1-beta/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Debugger w Visual Studio</title>
		<link>http://przemkovv.net/2008/03/02/debugger-w-visual-studio/</link>
		<comments>http://przemkovv.net/2008/03/02/debugger-w-visual-studio/#comments</comments>
		<pubDate>Sun, 02 Mar 2008 13:29:44 +0000</pubDate>
		<dc:creator>Przemysław Walkowiak</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Programowanie]]></category>
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">http://przemkovv.net/2008/03/02/debugger-w-visual-studio/</guid>
		<description><![CDATA[Jak wiadomo debugger dla programisty to jest bardzo ważne narzędzie, które potrafi znacząco ułatwić pracę. Moim zdaniem w Visual Studio znajduje się chyba jeden z najlepszych pod względem intuicyjnego używania (aczkolwiek dawno nie korzystałem z produktów Borlanda, tam może też się co nieco zmieniło;) ). Nie będę tutaj opisywał jak z poziomu środowiska IDE obsługiwać [...]]]></description>
			<content:encoded><![CDATA[<p>Jak wiadomo debugger dla programisty to jest bardzo ważne narzędzie, które potrafi znacząco ułatwić pracę. Moim zdaniem w Visual Studio znajduje się chyba jeden z najlepszych pod względem intuicyjnego używania (aczkolwiek dawno nie korzystałem z produktów Borlanda, tam może też się co nieco zmieniło;) ). Nie będę tutaj opisywał jak z poziomu środowiska IDE obsługiwać to narzędzie, gdyż to raczej każdy już sie z tym zapoznał, ale jak z niego korzystać z poziomu kodu.</p>
<p>W ogólności służy do tego klasa<em>System.Diagnostics.Debugger</em>. Co prawda posiada ona tylko trzy metody przydatne dla programisty, ale liczba ich nie jest istotna;).</p>
<ul>
<li><em>Debugger.Break()</em> - powoduje zatrzymanie działania programu i włączenie debuggera (coś a la standardowy breakpoint)</li>
<li><em>Debugger.Launch()</em> - uruchamia debugger i podłącza go do aktualnego procesu, ale jeszcze go nie zatrzymuje</li>
<li><em>Debugger.Log(int level, string category, string message</em> - wykorzystuje w przypadku, gdy chcemy wysłać na konsolę debuggera informację zwrotną. Nie potrzebujemy w tym wypadku tworzyć aplikacji konsolowej - w ogóle nie musi ona posiadać jakiegokolwiek okna <img src='http://przemkovv.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </li>
</ul>
<p>Ciekawostką jest to, że wywołania tych metod zostają usuwane w wersji Release projektu. Są one dostępne jedynie w wersji Debug.<br />
Przydatności metody <em>Log()</em> chyba nie trzeba tłumaczyć. Zawsze przecież przydają się dodatkowe informacje w przypadku, gdy badamy rozbudowaną i przebiegającą przez wiele iteracji funkcję.</p>
<p><em>Break()</em> możemy oczywiście zastąpić standardowym Breakpointem z IDE, ale ma taką zaletę, że zadziała nawet wtedy gdy nie będziemy uruchamiali aplikacji z VisualStudio. Przydatne przy badaniu WebService'ów zainstalowanych na <acronym title="Internet Information Services">IIS</acronym>;) </p>
<p>Sąsiednią klasą towarzyszącą <em>System.Diagnostics.Debugger</em> jest <em>System.Diagnostics.Debug</em> udostęniająca asercje (<em>Assert(bool condition)</em> - przy czym warunek musi być spełniony, aby program działał poprawnie) oraz bardziej rozbudowane metody do obsługi wyjścia w konsoli debuggera takie jak <em>Write</em>, <em>WriteIf</em>, <em>WriteLine</em>, <em>WriteLineIf</em>, <em>Indent</em>, <em>Unindent</em>, <em>Print</em>. W każdym bądź razie polecam się z nimi zapoznać <img src='http://przemkovv.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>]]></content:encoded>
			<wfw:commentRss>http://przemkovv.net/2008/03/02/debugger-w-visual-studio/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Typy generyczne w C# i „drobne” niedociągnięcie</title>
		<link>http://przemkovv.net/2008/02/23/typy-generyczne-w-c-i-%e2%80%9edrobne%e2%80%9d-niedociagniecie/</link>
		<comments>http://przemkovv.net/2008/02/23/typy-generyczne-w-c-i-%e2%80%9edrobne%e2%80%9d-niedociagniecie/#comments</comments>
		<pubDate>Sat, 23 Feb 2008 21:48:53 +0000</pubDate>
		<dc:creator>Przemysław Walkowiak</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Programowanie]]></category>
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">http://przemkovv.net/2008/02/23/typy-generyczne-w-c-i-%e2%80%9edrobne%e2%80%9d-niedociagniecie/</guid>
		<description><![CDATA[Zacznę może od tego, że potrzebuję w pewnym projekcie pisanym w C# obsługę macierzy (dodawanie, mnożenie, ślad, itp). Konkretniej chodzi o macierz skonstruowaną z elementów typu prostego Double, ale dobrą cechą byłaby jej uniwersalność (czyli obsługa dowolnych typów) – w skrócie macierz generyczna. Ponieważ jestem troszku leniwy więc rozpocząłem poszukiwania odpowiednich bibliotek w Internecie. Niestety [...]]]></description>
			<content:encoded><![CDATA[<p>Zacznę może od tego, że potrzebuję w pewnym projekcie pisanym w C# obsługę macierzy (dodawanie, mnożenie, ślad, itp). Konkretniej chodzi o macierz skonstruowaną z elementów typu prostego <em>Double</em>, ale dobrą cechą byłaby jej uniwersalność (czyli obsługa dowolnych typów) – w skrócie macierz generyczna. Ponieważ jestem troszku leniwy więc rozpocząłem poszukiwania odpowiednich bibliotek w Internecie. Niestety jedynym rozwiązaniem godnym przejrzenia, aczkolwiek niespełniącym moich wymagań była biblioteka <a href="http://www.codeproject.com/KB/cs/CSML.aspx">CSML</a>. Wadą jej polega na tym, że natywnie operuje na liczbach zespolonych (co można oczywiście zarzutować w przestrzeń liczb rzeczywistch) i nie ma domyślnie zrobionej konwersji <em>Double</em> na <em>Complex</em>.
</p>
<p>Zdziwiło mnie, że taka ważna struktura w obliczeniach numerycznych nie dorobiła się pożądnej implementacji (dodam jeszcze: darmowej).. No cóż, w takim razie należy samemu napisać odpowiedni kod. </p>
<p>Zacząłem od stworzenia szkieletu klasy:
</p>
<pre class="csharp"><ol><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #0600FF;">public</span> <span style="color: #FF0000;">class</span> Matrix&lt; T &gt;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;">&#123;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">	T<span style="color: #000000;">&#91;</span>,<span style="color: #000000;">&#93;</span> matrix;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">        <span style="color: #0600FF;">public</span> <span style="color: #FF0000;">int</span> N <span style="color: #000000;">&#123;</span> get; <span style="color: #0600FF;">private</span> set; <span style="color: #000000;">&#125;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">        <span style="color: #0600FF;">public</span> <span style="color: #FF0000;">int</span> M <span style="color: #000000;">&#123;</span> get; <span style="color: #0600FF;">private</span> set; <span style="color: #000000;">&#125;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">        <span style="color: #0600FF;">public</span> Matrix<span style="color: #000000;">&#40;</span><span style="color: #FF0000;">int</span> n, <span style="color: #FF0000;">int</span> m<span style="color: #000000;">&#41;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">        <span style="color: #000000;">&#123;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">        <span style="color: #000000;">&#125;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">        <span style="color: #0600FF;">public</span> T <span style="color: #0600FF;">this</span><span style="color: #000000;">&#91;</span><span style="color: #FF0000;">int</span> i, <span style="color: #FF0000;">int</span> j<span style="color: #000000;">&#93;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">        <span style="color: #000000;">&#123;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">        <span style="color: #000000;">&#125;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">	<span style="color: #0600FF;">public</span> <span style="color: #0600FF;">static</span> Matrix&lt; T &gt; <span style="color: #0600FF;">operator</span> +<span style="color: #000000;">&#40;</span>Matrix&lt; T &gt; A, Matrix&lt; T &gt; B<span style="color: #000000;">&#41;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">	<span style="color: #000000;">&#123;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">	<span style="color: #000000;">&#125;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">	<span style="color: #0600FF;">public</span> <span style="color: #0600FF;">static</span> Matrix&lt; T &gt; <span style="color: #0600FF;">operator</span> -<span style="color: #000000;">&#40;</span>Matrix&lt; T &gt; A, Matrix&lt; T &gt; B<span style="color: #000000;">&#41;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">	<span style="color: #000000;">&#123;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">	<span style="color: #000000;">&#125;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">	<span style="color: #0600FF;">public</span> <span style="color: #0600FF;">static</span> Matrix&lt; T &gt; <span style="color: #0600FF;">operator</span> *<span style="color: #000000;">&#40;</span>Matrix&lt; T &gt; A, Matrix&lt; T &gt; B<span style="color: #000000;">&#41;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">	<span style="color: #000000;">&#123;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">	<span style="color: #000000;">&#125;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color: #000000;">&#125;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div></li></ol></pre>
<p>
 </p>
<p>Dokonałem następnie implementacji pierwszego z operatorów:
</p>
<p><pre class="csharp"><ol><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">        <span style="color: #0600FF;">public</span> <span style="color: #0600FF;">static</span> Matrix&lt; T &gt; <span style="color: #0600FF;">operator</span> +<span style="color: #000000;">&#40;</span>Matrix&lt; T &gt; A, Matrix&lt; T &gt; B<span style="color: #000000;">&#41;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">        <span style="color: #000000;">&#123;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">            <span style="color: #0600FF;">if</span> <span style="color: #000000;">&#40;</span>A.<span style="color: #0000FF;">N</span> == B.<span style="color: #0000FF;">N</span> &amp;&amp; A.<span style="color: #0000FF;">M</span> == B.<span style="color: #0000FF;">M</span><span style="color: #000000;">&#41;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">            <span style="color: #000000;">&#123;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">                Matrix&lt; T &gt; result = <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> Matrix&lt; T &gt;<span style="color: #000000;">&#40;</span>A.<span style="color: #0000FF;">N</span>, A.<span style="color: #0000FF;">M</span><span style="color: #000000;">&#41;</span>;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">                <span style="color: #0600FF;">for</span> <span style="color: #000000;">&#40;</span><span style="color: #FF0000;">int</span> i = <span style="color: #FF0000;">0</span>; i &lt; A.<span style="color: #0000FF;">N</span>; i++<span style="color: #000000;">&#41;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">                <span style="color: #000000;">&#123;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">                    <span style="color: #0600FF;">for</span> <span style="color: #000000;">&#40;</span><span style="color: #FF0000;">int</span> j = <span style="color: #FF0000;">0</span>; j &lt; A.<span style="color: #0000FF;">M</span>; j++<span style="color: #000000;">&#41;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">                    <span style="color: #000000;">&#123;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">                        result<span style="color: #000000;">&#91;</span>i, j<span style="color: #000000;">&#93;</span> = A<span style="color: #000000;">&#91;</span>i, j<span style="color: #000000;">&#93;</span> + B<span style="color: #000000;">&#91;</span>i, j<span style="color: #000000;">&#93;</span>;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">                    <span style="color: #000000;">&#125;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">                <span style="color: #000000;">&#125;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">                <span style="color: #0600FF;">return</span> result;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">            <span style="color: #000000;">&#125;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">            <span style="color: #0600FF;">else</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">            <span style="color: #000000;">&#123;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">                <span style="color: #0600FF;">throw</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> Exception<span style="color: #000000;">&#40;</span><span style="color: #808080;">&quot;Matrices have different dimensions&quot;</span><span style="color: #000000;">&#41;</span>;</div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">            <span style="color: #000000;">&#125;</span></div></li><li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;"><div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">        <span style="color: #000000;">&#125;</span></div></li></ol></pre>
</pre>
<p>Próba kompilacji i... błąd: <em>"Operator '+' cannot be applied to operands of type 'T' and 'T'"</em>. W sumie prawda, skąd kompilator ma wiedzieć, czy typ <em>T</em> ma zaimplementowany operator dodawania. Właśnie po to wprowadzono system reguł mogący wymusić na danym typie kilka cech. Zaglądam więc do dokumentacji <acronym title="Microsoft Developer Network">MSDN</acronym> i niestety nic ciekawego nie znalazłem. Odpalam wyszukiwarkę dotarłem do kilku wątków o tym samym problemie i jedyną odpowiedzią jest to, że: nie można czegoś takiego zrobić ponieważ <em>Double</em> jest typem prostym.
</p>
<p>Ostatecznie jest jeszcze jedno rozwiązanie (<a href="http://www.codeproject.com/KB/cs/genericnumerics.aspx">"Using generics for calculations"</a>), ale moim zdaniem nie do końca jest ono wzorowe z tego względu, że należałoby stosować dodatkową warstwę pomiędzy typami <em>Int32, Double</em> a naszą klasą generyczną. Ale dużego wyboru nie ma..</p>]]></content:encoded>
			<wfw:commentRss>http://przemkovv.net/2008/02/23/typy-generyczne-w-c-i-%e2%80%9edrobne%e2%80%9d-niedociagniecie/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>LINQ to XSD</title>
		<link>http://przemkovv.net/2008/02/21/linq-to-xsd/</link>
		<comments>http://przemkovv.net/2008/02/21/linq-to-xsd/#comments</comments>
		<pubDate>Thu, 21 Feb 2008 20:15:20 +0000</pubDate>
		<dc:creator>Przemysław Walkowiak</dc:creator>
				<category><![CDATA[LINQ]]></category>
		<category><![CDATA[Visual Studio]]></category>
		<category><![CDATA[XML]]></category>
		<category><![CDATA[XSD]]></category>

		<guid isPermaLink="false">http://przemkovv.net/2008/02/21/linq-to-xsd/</guid>
		<description><![CDATA[Dzisiaj wyszła kolejna wersja Alpha 0.2 LINQ to XSD. Tym razem już działająca z Visual Studio 2008. Niestety chwilowo nie mam czasu, aby dokończyć moją kostkę, ale wiem już przynajmniej jakiego rozwiązania wybiorę Download: LINQ to XSD Alpha 0.2]]></description>
			<content:encoded><![CDATA[<p>Dzisiaj wyszła kolejna wersja Alpha 0.2  LINQ to XSD. Tym razem już działająca z Visual Studio 2008. Niestety chwilowo nie mam czasu, aby dokończyć moją kostkę, ale wiem już przynajmniej jakiego rozwiązania wybiorę <img src='http://przemkovv.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />
</p>
<p>Download: <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=a45f58cd-fcfc-439e-b735-8182775560af&amp;displaylang=en">LINQ to XSD Alpha 0.2</a></p>]]></content:encoded>
			<wfw:commentRss>http://przemkovv.net/2008/02/21/linq-to-xsd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XML to XSD? XML to Classes?</title>
		<link>http://przemkovv.net/2008/01/12/xml-to-xsd-xml-to-classes/</link>
		<comments>http://przemkovv.net/2008/01/12/xml-to-xsd-xml-to-classes/#comments</comments>
		<pubDate>Sat, 12 Jan 2008 02:59:27 +0000</pubDate>
		<dc:creator>Przemysław Walkowiak</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Kostka Rubika]]></category>
		<category><![CDATA[Orcas]]></category>
		<category><![CDATA[Programowanie]]></category>
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">http://przemkovv.net/2008/01/12/xml-to-xsd-xml-to-classes/</guid>
		<description><![CDATA[Wróciłem po dłuższym czasie do mojego hobbistycznego projektu RubiksCube v2. Zrobiłem ponieważ pojawiła się iskierka nadzieji, że zaliczę na uczelni nim laboratoria z baz danych. Tak więc brakującą częścią do tej pory była cała inteligencja układania kostki. Algorytmy (sekwencje ruchów) już kiedyś postanowiłem przechowywać w pliku XML. Wczoraj dokończyłem projektowanie pliku XML Scheme i.. zacząłem [...]]]></description>
			<content:encoded><![CDATA[<p>Wróciłem po dłuższym czasie do mojego hobbistycznego projektu RubiksCube v2. Zrobiłem ponieważ pojawiła się iskierka nadzieji, że zaliczę na uczelni nim laboratoria z baz danych. Tak więc brakującą częścią do tej pory była cała inteligencja układania kostki. Algorytmy (sekwencje ruchów) już kiedyś postanowiłem przechowywać w pliku <acronym title="eXtensible Markup Language">XML</acronym>. Wczoraj dokończyłem projektowanie pliku <acronym title="eXtensible Markup Language">XML</acronym> Scheme i.. zacząłem się zastanawiać jak to wykorzystać w projekcie. Rozwiązań było kilka:
</p>
<ol>
<li>Ręcznie parsować plik <acronym title="eXtensible Markup Language">XML</acronym> – to już przeszłość...
</li>
<li>Skorzystać z zintegrowanego z platformą parsera <acronym title="eXtensible Markup Language">XML</acronym> oraz XPath – niestety jest to nadal bardzo wiele roboty i można się zagubić w którymś momencie
</li>
<li>Skorzystać z LINQ to <acronym title="eXtensible Markup Language">XML</acronym> – to już wygląda dużo lepiej, ale nadal trzeba się odwoływać do elementów poprzez obiekt Xelement, no i brak jest ścisłego typowania obiektów na typy z XSD.
</li>
<li>Dzisiaj znalazłem jeszcze taki projekt jak LINQ to XSD. Robi to wszystko co LINQ to <acronym title="eXtensible Markup Language">XML</acronym> z jednym małym dodatkiem. Pozwala na ścisłe typowanie obiektów, a to dzięki temu, że sam automatycznie generuje odpowiednie klasy w C#. Niestety wadą uniemożliwiającą skorzystanie z tego cudownego narzędzia jest to, że chwilowo nie jest rozwijany a ostatnia wersja pamięta czasy Visual Studio Orcas beta 1. I z powodu niekompatybilności wersji System.Xml.Linq nie da się tego w prosty sposób uruchomić na wersji RTM. Należy cierpliwie czekać na dalszy bieg wydarzeń...
</li>
<li>Szukając dalej znalazłem coś takiego jak <a href="http://bware.biz/">CodeXS</a>. Potrafi przekonwertować plik XSD na zestaw klas C# (także <acronym title="Visual Basic">VB</acronym>), a następnie jednym poleceniem wypełnić wszystkie struktury danymi z pliku <acronym title="eXtensible Markup Language">XML</acronym> opartego na danym XSD z zachowaniem wszystkich typów (także wyliczeniowych) oraz bardziej skomplikowanych struktur. Na stronie producenta jest dostępna wersja online (wysyłamy plik XSD na serwer i ściągamy archiwum z klasami) oraz postać źródłowa tej aplikacji. W prosty sposób można ją podpiąć pod zdarzenia pre-build w projekcie VS i mamy ładny generator kodu na podstawie XSD. Wadą jest niestety to, że chyba nie będzie można wykorzystać tutaj LINQ, gdyż na pierwszy rzut oka nie ma odpowiedniego wsparcia ze strony IDE. Ale poszukam może jeszcze czegoś na ten temat.
</li>
</ol>
<p>Ostatecznie waham się pomiędy rozwiązaniem trzecim a piątym (czwarte naprawdę niestety odpada). Trzecie na obecną chwilę mimo trochę bardziej skomplikowanej składni pozwala na wygodne przeszukiwanie, piąte natomiast posiada bardzo dobre typowanie danych, a z przeszukiwaniem gorzej.</p>]]></content:encoded>
			<wfw:commentRss>http://przemkovv.net/2008/01/12/xml-to-xsd-xml-to-classes/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>MS Visual Studio 2008</title>
		<link>http://przemkovv.net/2007/12/06/ms-visual-studio-2008/</link>
		<comments>http://przemkovv.net/2007/12/06/ms-visual-studio-2008/#comments</comments>
		<pubDate>Thu, 06 Dec 2007 01:17:27 +0000</pubDate>
		<dc:creator>Przemysław Walkowiak</dc:creator>
				<category><![CDATA[Orcas]]></category>
		<category><![CDATA[Programowanie]]></category>
		<category><![CDATA[Visual Studio]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://przemkovv.net/2007/12/06/ms-visual-studio-2008/</guid>
		<description><![CDATA[Wracam po dosyć długim okresie niepisania. Niestety nie miałem żadnego pomysłu na notkę. Teraz spróbuję się w końcu zmobilizować:P. Wczoraj i dzisiaj (tzn. przedworaj i wczoraj) na uczelni odbywała się konferencja IT Academic Day. Według mnie najciekawsze były wykłady ludzi przysłanych z Microsoft Polska. Jedna o nowinkach w Windows Server 2008, a druga o nowinkach [...]]]></description>
			<content:encoded><![CDATA[<p>Wracam po dosyć długim okresie niepisania. Niestety nie miałem żadnego pomysłu na notkę. Teraz spróbuję się w końcu zmobilizować:P. <br />Wczoraj i dzisiaj (tzn. przedworaj i wczoraj) na uczelni odbywała się konferencja IT Academic Day. Według mnie najciekawsze były wykłady ludzi przysłanych z Microsoft Polska. Jedna o nowinkach w Windows Server 2008, a druga o nowinkach w .NET3.0/3.5
</p>
<p>Jeśli chodzi o .NET3.5 to postanowiłem dalej rozwijać moją aplikację badawczą RubiksCube v2, wykorzystując i teraz jakieś względnie nowe rzeczy (dopiero teraz wyszła oficjalna wersja Visual Studio 2008). W tym momencie zapewne najbardziej się skupię na XLINQ, gdyż algorytmy do układania kostki zamierzam zawrzeć w pliku <acronym title="eXtensible Markup Language">XML</acronym>, a to powinno ułatwić ich wyciąganie <img src='http://przemkovv.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  .<br />Jeśli chodzi o oficjalną wersję VS2008 to zainstalowała się bezproblemowo (w przeciwieństwie do kolegi <a href="http://people.itdt.pl/dmk/blog/">Dawida</a> <img src='http://przemkovv.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  ) I na pierwszy rzut oka chodzi trochę lepiej niż wersje beta oraz VS2005. Jak jest w rzeczywistości okaże się w praniu <img src='http://przemkovv.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />
</p>
<p>Przy okazji: to jest pierwsza notka dodana z Worda;)</p>]]></content:encoded>
			<wfw:commentRss>http://przemkovv.net/2007/12/06/ms-visual-studio-2008/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Microsoft Visual Studio codename Orcas beta 1</title>
		<link>http://przemkovv.net/2007/07/23/microsoft-visual-studio-codename-orcas-beta-1/</link>
		<comments>http://przemkovv.net/2007/07/23/microsoft-visual-studio-codename-orcas-beta-1/#comments</comments>
		<pubDate>Mon, 23 Jul 2007 01:16:45 +0000</pubDate>
		<dc:creator>Przemysław Walkowiak</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[IDE]]></category>
		<category><![CDATA[Orcas]]></category>
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">http://przemkovv.net/2007/07/23/microsoft-visual-studio-codename-orcas-beta-1/</guid>
		<description><![CDATA[W zeszłym tygodniu zainstalowałem najnowszą, dostępną publicznie wersje środowiska programistycznego Microsoftu. W sumie na dysku leżała już od ponad miesiąca, ale jakoś bałem się ją instalować. Przerażała mnie objętość wersji instalacyjnej: 4.5GB spakowane rar'em, według mnie to trochę dużo. W zeszłym tygodniu zainteresowałem się trzecią wersją frameworka .NET, ale wsparcie tegoż w Visual Studio 2005 [...]]]></description>
			<content:encoded><![CDATA[<p>W zeszłym tygodniu zainstalowałem najnowszą, dostępną publicznie wersje środowiska programistycznego Microsoftu. W sumie na dysku leżała już od ponad miesiąca, ale jakoś bałem się ją instalować. Przerażała mnie objętość wersji instalacyjnej: 4.5GB spakowane rar'em, według mnie to trochę dużo. </p>
<p>W zeszłym tygodniu zainteresowałem się trzecią wersją frameworka .NET, ale wsparcie tegoż w Visual Studio 2005 nie było najwyższych lotów, a zwłaszcza modułu WPF. Krótko mówiąc trochę to przymulało <img src='http://przemkovv.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  W takim razie warto było przetestować następną wersję Visual Studio. Przyjrzałem się dokładniej opisowi Orcasa i dowiedziałem się jednej istotnej rzeczy, która zmieniła moje zdanie na temat objętości instalki. Ta instalka nie zawiera tylko Orcasa, ale także pełną dokumentację <acronym title="Microsoft Developer Network">MSDN</acronym> co zmienia postać rzeczy.<br />
<span id="more-15"></span><br />
W zeszłą środę odinstalowałem MSDNa oraz VS2005 i zainstalowałem Orcasa. Instalacja jak zwykle  w tym przypadku trwała około godziny, ale tak to już bywa..<br />
Po odpaleniu IDE jedyną różnicą w porównaniu z VS2005 było estetyczniej wykończone <acronym title="Graphical User Interface">GUI</acronym>. Układ okien, pasków pozostał niezmieniony.<br />
<a href='http://przemkovv.net/2007/07/23/microsoft-visual-studio-codename-orcas-beta-1/visual-studio-orcas-beta-1/' rel='attachment wp-att-16' title='Visual Studio Orcas beta 1'><img src='http://przemkovv.net/wp-content/uploads/2007/07/visual_studio_orcas_1.thumbnail.jpg' alt='Visual Studio Orcas beta 1' /></a></p>
<p>Następnie otworzyłem okno nowych projektów.<br />
<a href='http://przemkovv.net/2007/07/23/microsoft-visual-studio-codename-orcas-beta-1/visual-studio-orcas-beta-1-okno-nowego-projektu-2/' rel='attachment wp-att-18' title='Visual Studio Orcas beta 1 - Okno nowego projektu'><img src='http://przemkovv.net/wp-content/uploads/2007/07/visual_studio_orcas_new_project1.thumbnail.jpg' alt='Visual Studio Orcas beta 1 - Okno nowego projektu' /></a><br />
Nowością jest zintegrowane wsparcie dla WPF, WCF, WF. Co prawda w VS2005 też była możliwość doinstalowania odpowiednich paczek, ale według mnie chodziło to trochę wolno.<br />
W prawym górnym rogu okna widać listę z której możemy wybrać docelową wersję platformy .NET.</p>
<p>No to tworzę projekt Windows Forms Application, wrzucam na formę przycisk, wciskam F5 i.. błąd.. Problemy z biblioteką alink.dll. Czasem tak bywa <img src='http://przemkovv.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Tworzę inny typ projektu, kompiluję i to samo. Dziwne. Po skorzystaniu z pomocy http://google.com  dowiedziałem się, że należy wpierw wgrać poprawki. Znajdują się one w WCU\dotnet\ na płycie instalacyjnej. W sumie trzy pliki. Po zainstalowaniu i ponownym uruchomieniu Orcasa wszystkie projekty zaczęły się kompilować bezbłędnie.</p>
<p>Po przyjrzeniu się paskom zauważyć można nowe menu Test oraz dodatkowa pozycja w menu kontekstowym "Create Unit Tests".  W VS2008 zintegrowano obsługę systemu w stylu NUnit, jUnit służącego do jednostkowego testowania poszczególnych funkcji, klas, modułów projektu.<br />
<a href='http://przemkovv.net/2007/07/23/microsoft-visual-studio-codename-orcas-beta-1/visual-studio-orcas-beta-1-unit-testing/' rel='attachment wp-att-19' title='Visual Studio Orcas beta 1 - Unit testing'><img src='http://przemkovv.net/wp-content/uploads/2007/07/visual_studio_orcas_unit_test.thumbnail.jpg' alt='Visual Studio Orcas beta 1 - Unit testing' /></a></p>
<p>Kolejny feature jest przydatny dla programistów <acronym title="Active Server Pages">ASP</acronym>.NET oraz projektantów interfejsu w XAMLu. W końcu dodali możliwość podzielenia okna na dwie części: kod strony i tryb wizualny. Minusem tego rozwiązana jest fakt, że okno można podzielić tylko w poziomie..<br />
<a href='http://przemkovv.net/2007/07/23/microsoft-visual-studio-codename-orcas-beta-1/visual-studio-orcas-beta-1-dzielenie-okna-z-kodem-poziome/' rel='attachment wp-att-20' title='Visual Studio Orcas beta 1 - Dzielenie okna z kodem (poziome)'><img src='http://przemkovv.net/wp-content/uploads/2007/07/visual_studio_orcas_dzielenie_okna_poziome.thumbnail.jpg' alt='Visual Studio Orcas beta 1 - Dzielenie okna z kodem (poziome)' /></a></p>
<p>W przypadku XAML jest możliwość dzielenia zarówno poziomego:<br />
<a href='http://przemkovv.net/2007/07/23/microsoft-visual-studio-codename-orcas-beta-1/visual-studio-orcas-beta-1-xaml-dzielenie-okna-z-kodem-poziome-2/' rel='attachment wp-att-22' title='Visual Studio Orcas beta 1 - XAML - Dzielenie okna z kodem (poziome)'><img src='http://przemkovv.net/wp-content/uploads/2007/07/visual_studio_orcas_xaml_dzielenie_okna_poziome.thumbnail.jpg' alt='Visual Studio Orcas beta 1 - XAML - Dzielenie okna z kodem (poziome)' /></a><br />
jak i pionowego:<br />
<a href='http://przemkovv.net/2007/07/23/microsoft-visual-studio-codename-orcas-beta-1/visual-studio-orcas-beta-1-xaml-dzielenie-okna-z-kodem-pionowe/' rel='attachment wp-att-23' title='Visual Studio Orcas beta 1 - XAML - Dzielenie okna z kodem (pionowe)'><img src='http://przemkovv.net/wp-content/uploads/2007/07/visual_studio_orcas_xaml_dzielenie_okna_pionowe.thumbnail.jpg' alt='Visual Studio Orcas beta 1 - XAML - Dzielenie okna z kodem (pionowe)' /></a></p>
<p>Więcej nowych ficzersów jak narazie nie zauważyłem. W porównaniu do poprzedniej wersji poprawiono trochę szybkość działania projektów opartych na WPF. Aczkolwiek i tak jeszcze trochę optymalizacji jest koniecznych.</p>
<p>Dokumentacja <acronym title="Microsoft Developer Network">MSDN</acronym> nawet uwzględniając fakt, że również jest w wersji beta jest dosyć dobrze przygotowana. Prawie wszystkie elementy .NET 3.0 są opisane wraz z podaniem przykładowego użycia w niemal każdym języku dotnetowym.</p>
<p>Na koniec porównałem jeszcze ile ten Orcas zajął mi miejsca na dysku. I tutaj kolejny plus tego środowiska. Instalując go zwolniłem 1GB przestrzeni dyskowej, co według mnie jest dużym zyskiem.</p>]]></content:encoded>
			<wfw:commentRss>http://przemkovv.net/2007/07/23/microsoft-visual-studio-codename-orcas-beta-1/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
