<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:blogChannel="http://backend.userland.com/blogChannelModule" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
  <channel>
    <title>Vitaly's WebLog</title>
    <description>Writing on software development and all related</description>
    <link>http://www.vitalygorn.com/blog/</link>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>BlogEngine.Net Syndication Generator 1.0.0.0 (http://dotnetblogengine.net/)</generator>
    <language>en-GB</language>
    <blogChannel:blogRoll>http://www.vitalygorn.com/blog/opml.axd</blogChannel:blogRoll>
    <dc:creator>Vitaly Gorn's WebLog</dc:creator>
    <dc:description>Writing on software development and all related</dc:description>
    <dc:title>Vitaly's WebLog</dc:title>
    <geo:lat>0.000000</geo:lat>
    <geo:long>0.000000</geo:long>
    <atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/VitalyGorn" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
      <title>Isolating UI from Middle Tier</title>
      <description>&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
One, if not the main, principle of the good architecture is its openness against &amp;#39;possible&amp;#39; changes. It can be viewed on different abstraction levels - some classes can be open for some changes in business logic, entire layers may be designed to be open for global changes like switching to another DB engine. As &lt;a href="http://en.wikipedia.org/wiki/Open/closed_principle" title="Open/Closed Principle"&gt;OCP &lt;/a&gt;states, entities should be open for extension, but not for modification. This means that your architecture should support its extension in planned ways easily without changing much code (you should write new of course). That is why seasoned developer likes to use interfaces here and there :-) And that is what dependency injection is for...
&lt;/p&gt;
&lt;p&gt;
It&amp;rsquo;s a good practice to build Data Access layer in a way it is not tied to specific database. So if you use SQL server and then decide to use Oracle, you need to write new Data Access classes specific to Oracle and do not need to rewrite entire system.&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
I was surprised, but it turns out that you can isolate user interface logic for web project in the same way.&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
There are many JavaScript libraries that allow you to build rich Ajax based UI that lives inside your browser. The only what is needed from middle tier is to return data in some simple format (JSON, XML). So you can plan your architecture for a possible change of middle tier (ASP.NET to JSP?) if you need to. A good example of rich UI JavaScript library is &lt;a href="http://extjs.com/products/extjs/" title="Cross-browser JavaScript library with rich UI controls"&gt;ExtJS&lt;/a&gt;. I recommend taking look at it if you did not do that yet.
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/VitalyGorn?a=CwRUmRgkz5I:7T3bhU5Lddk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/VitalyGorn?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/VitalyGorn?a=CwRUmRgkz5I:7T3bhU5Lddk:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/VitalyGorn?i=CwRUmRgkz5I:7T3bhU5Lddk:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/VitalyGorn?a=CwRUmRgkz5I:7T3bhU5Lddk:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/VitalyGorn?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/VitalyGorn/~4/CwRUmRgkz5I" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/VitalyGorn/~3/CwRUmRgkz5I/post.aspx</link>
      <author>Vitaly</author>
      <comments>http://www.vitalygorn.com/blog/post/2008/10/Isolating-UI-from-Middle-Tier.aspx#comment</comments>
      <guid isPermaLink="false">http://www.vitalygorn.com/blog/post.aspx?id=7d0a1324-223a-42a2-95aa-013e32f3df8e</guid>
      <pubDate>Mon, 20 Oct 2008 09:55:00 -0700</pubDate>
      <category>Software Development</category>
      <category>UX</category>
      <category>General</category>
      <category>UI</category>
      <dc:publisher>Vitaly</dc:publisher>
      <pingback:server>http://www.vitalygorn.com/blog/pingback.axd</pingback:server>
      <pingback:target>http://www.vitalygorn.com/blog/post.aspx?id=7d0a1324-223a-42a2-95aa-013e32f3df8e</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.vitalygorn.com/blog/trackback.axd?id=7d0a1324-223a-42a2-95aa-013e32f3df8e</trackback:ping>
      <wfw:comment>http://www.vitalygorn.com/blog/post/2008/10/Isolating-UI-from-Middle-Tier.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.vitalygorn.com/blog/syndication.axd?post=7d0a1324-223a-42a2-95aa-013e32f3df8e</wfw:commentRss>
    <feedburner:origLink>http://www.vitalygorn.com/blog/post.aspx?id=7d0a1324-223a-42a2-95aa-013e32f3df8e</feedburner:origLink></item>
    <item>
      <title>Finnish creativity</title>
      <description>I&amp;#39;m astonished by &lt;a href="http://www.lehtikuva.fi/hehkuva/"&gt;this finnish site&lt;/a&gt;. I have no idea what it about is but its design ideas are suberb. Do not forget to stop :-)&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/VitalyGorn?a=fcgqW1Y1AD4:3wmNPXIA9x0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/VitalyGorn?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/VitalyGorn?a=fcgqW1Y1AD4:3wmNPXIA9x0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/VitalyGorn?i=fcgqW1Y1AD4:3wmNPXIA9x0:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/VitalyGorn?a=fcgqW1Y1AD4:3wmNPXIA9x0:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/VitalyGorn?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/VitalyGorn/~4/fcgqW1Y1AD4" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/VitalyGorn/~3/fcgqW1Y1AD4/post.aspx</link>
      <author>Vitaly</author>
      <comments>http://www.vitalygorn.com/blog/post/2008/04/Finnish-creativity.aspx#comment</comments>
      <guid isPermaLink="false">http://www.vitalygorn.com/blog/post.aspx?id=641857f3-e5d8-41bb-8a85-49c0eac7a738</guid>
      <pubDate>Fri, 18 Apr 2008 09:30:00 -0700</pubDate>
      <category>Graphic Design</category>
      <dc:publisher>Vitaly</dc:publisher>
      <pingback:server>http://www.vitalygorn.com/blog/pingback.axd</pingback:server>
      <pingback:target>http://www.vitalygorn.com/blog/post.aspx?id=641857f3-e5d8-41bb-8a85-49c0eac7a738</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.vitalygorn.com/blog/trackback.axd?id=641857f3-e5d8-41bb-8a85-49c0eac7a738</trackback:ping>
      <wfw:comment>http://www.vitalygorn.com/blog/post/2008/04/Finnish-creativity.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.vitalygorn.com/blog/syndication.axd?post=641857f3-e5d8-41bb-8a85-49c0eac7a738</wfw:commentRss>
    <feedburner:origLink>http://www.vitalygorn.com/blog/post.aspx?id=641857f3-e5d8-41bb-8a85-49c0eac7a738</feedburner:origLink></item>
    <item>
      <title>PicLens - Good example of zoomable 3D UI</title>
      <description>If you did not see &lt;a href="http://www.piclens.com/"&gt;PicLens&lt;/a&gt;, I strongly suggest taking a look at it. This is free add-on for your browser that will add rich and interactive UI for a number of web sites that host images and video. I&amp;#39;ve just downloaded it and played a bit with it. It looks just great!&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/VitalyGorn?a=UxfrrtqDSfs:vv1Zk_idsoc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/VitalyGorn?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/VitalyGorn?a=UxfrrtqDSfs:vv1Zk_idsoc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/VitalyGorn?i=UxfrrtqDSfs:vv1Zk_idsoc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/VitalyGorn?a=UxfrrtqDSfs:vv1Zk_idsoc:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/VitalyGorn?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/VitalyGorn/~4/UxfrrtqDSfs" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/VitalyGorn/~3/UxfrrtqDSfs/post.aspx</link>
      <author>Vitaly</author>
      <comments>http://www.vitalygorn.com/blog/post/2008/04/PicLens---Good-example-of-zoomable-3D-UI.aspx#comment</comments>
      <guid isPermaLink="false">http://www.vitalygorn.com/blog/post.aspx?id=dde7fb6d-f6c5-4c64-9007-47d7448bc12f</guid>
      <pubDate>Wed, 16 Apr 2008 23:27:00 -0700</pubDate>
      <category>General</category>
      <category>UI</category>
      <dc:publisher>Vitaly</dc:publisher>
      <pingback:server>http://www.vitalygorn.com/blog/pingback.axd</pingback:server>
      <pingback:target>http://www.vitalygorn.com/blog/post.aspx?id=dde7fb6d-f6c5-4c64-9007-47d7448bc12f</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.vitalygorn.com/blog/trackback.axd?id=dde7fb6d-f6c5-4c64-9007-47d7448bc12f</trackback:ping>
      <wfw:comment>http://www.vitalygorn.com/blog/post/2008/04/PicLens---Good-example-of-zoomable-3D-UI.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.vitalygorn.com/blog/syndication.axd?post=dde7fb6d-f6c5-4c64-9007-47d7448bc12f</wfw:commentRss>
    <feedburner:origLink>http://www.vitalygorn.com/blog/post.aspx?id=dde7fb6d-f6c5-4c64-9007-47d7448bc12f</feedburner:origLink></item>
    <item>
      <title>Adobe Photoshop Express - is it Photoshop really?</title>
      <description>&lt;p&gt;
When I read &lt;a href="http://www.devmuse.com/2008/03/30/photoshop-express-free-and-online/"&gt;blog post&lt;/a&gt; about Adobe launching &lt;a href="https://www.photoshop.com/express/landing.html" title="Photoshop Express"&gt;free and online version&lt;/a&gt; of their flagman product, Photoshop, I was just able to say &amp;quot;wow&amp;quot;. Everyone says now that future of software is online versions that do not need to be installed on PC. There are several interesting examples of such model already, for example &lt;a href="http://docs.google.com/" title="Google Docs"&gt;Google Docs.&lt;/a&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
I was intrigued very much and took a look immediately. What they have created is very attractive and user friendly application, but that is &lt;strong&gt;not &lt;/strong&gt;Photoshop. That is just another web album, where you can keep your photos and share with others. Image editing facilities that are available in current version do not stand any comparison with those available in offline version. Yes, that app is attractive and user friendly. Yes, there are image editing facilities. But, no, &lt;strong&gt;that app is not Photoshop&lt;/strong&gt;.&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Here is toolbox of Photoshop Express:&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;img src="http://www.vitalygorn.com/blog/image.axd?picture=Adobe+Photoshop+Express+-+toolbox.png" alt="" /&gt;
&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/VitalyGorn?a=RW-S0_Ik8_g:2LFvjbvI9F8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/VitalyGorn?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/VitalyGorn?a=RW-S0_Ik8_g:2LFvjbvI9F8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/VitalyGorn?i=RW-S0_Ik8_g:2LFvjbvI9F8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/VitalyGorn?a=RW-S0_Ik8_g:2LFvjbvI9F8:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/VitalyGorn?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/VitalyGorn/~4/RW-S0_Ik8_g" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/VitalyGorn/~3/RW-S0_Ik8_g/post.aspx</link>
      <author>Vitaly</author>
      <comments>http://www.vitalygorn.com/blog/post/2008/03/Adobe-Photoshop-Express.aspx#comment</comments>
      <guid isPermaLink="false">http://www.vitalygorn.com/blog/post.aspx?id=7e4398ee-826c-40d1-a54b-09090f454cb9</guid>
      <pubDate>Mon, 31 Mar 2008 05:32:00 -0700</pubDate>
      <category>General</category>
      <dc:publisher>Vitaly</dc:publisher>
      <pingback:server>http://www.vitalygorn.com/blog/pingback.axd</pingback:server>
      <pingback:target>http://www.vitalygorn.com/blog/post.aspx?id=7e4398ee-826c-40d1-a54b-09090f454cb9</pingback:target>
      <slash:comments>1</slash:comments>
      <trackback:ping>http://www.vitalygorn.com/blog/trackback.axd?id=7e4398ee-826c-40d1-a54b-09090f454cb9</trackback:ping>
      <wfw:comment>http://www.vitalygorn.com/blog/post/2008/03/Adobe-Photoshop-Express.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.vitalygorn.com/blog/syndication.axd?post=7e4398ee-826c-40d1-a54b-09090f454cb9</wfw:commentRss>
    <feedburner:origLink>http://www.vitalygorn.com/blog/post.aspx?id=7e4398ee-826c-40d1-a54b-09090f454cb9</feedburner:origLink></item>
    <item>
      <title>.NET Framework Programming Model for Add-Ins</title>
      <description>&lt;p&gt;
It seems that there is still lot to learn about .NET Framework 3.5. I&amp;#39;ve found today (thanks to &lt;a href="http://www.danielmoth.com/Blog/2008/03/five-vs2008-smart-client-features.html" title="vs2008 smart client features"&gt;Daniel Moth&lt;/a&gt;) that is one more interesting feature was added in .NET Framework - Programming Model for Add-Ins. Basically, it allows you to build application that can be extended by add-ins. You may say that it is not a great task to build your own model. Yes, it is easy to. To build simple model. But what this new programming model offers is a complete solution. There are the following services that you can leverage:
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Independent Versioning. You may want your host app and add-ins to version independently.&lt;/li&gt;
	&lt;li&gt;Discovery and Activation services&lt;br /&gt;
	&lt;/li&gt;
	&lt;li&gt;Isolation Levels. You may want load your add-ins in separate application domain. Separate from a host app or in seperate app domain for each add-in. There are several levels of isolation you can choose from.&amp;nbsp;&lt;/li&gt;
	&lt;li&gt;Lifetime management. Because of the facility above (isolation Levels) you may be not able to rely on Garbage Collection. Fortunately, there are facilities to manage lifetime of objects in this programming model.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
I would definitely recommend &lt;a href="http://msdn2.microsoft.com/en-us/library/bb384241.aspx" title="Add-ins and Extensibility"&gt;reading a bit about this on MSDN&lt;/a&gt; if you are building Smart Clients sometimes. There are also some good resources on &lt;a href="http://www.danielmoth.com/Blog/2008/02/maf-screencasts.html" title="MAF"&gt;Daniel&amp;#39;s blog&lt;/a&gt; that will help you to start. By the way, Daniel calls this as Managed Add-ins Framework (Great name, except of usage of &amp;#39;Framework&amp;#39; term, that is a bit overused already) Interesting, if that is official name of this feature (I did not find mentions of MAF in official docs)?&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/VitalyGorn?a=0wAMmPNyNKY:Wr10Fq4EDHo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/VitalyGorn?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/VitalyGorn?a=0wAMmPNyNKY:Wr10Fq4EDHo:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/VitalyGorn?i=0wAMmPNyNKY:Wr10Fq4EDHo:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/VitalyGorn?a=0wAMmPNyNKY:Wr10Fq4EDHo:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/VitalyGorn?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/VitalyGorn/~4/0wAMmPNyNKY" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/VitalyGorn/~3/0wAMmPNyNKY/post.aspx</link>
      <author>Vitaly</author>
      <comments>http://www.vitalygorn.com/blog/post/2008/03/NET-Framework-Programming-Model-for-Add-Ins.aspx#comment</comments>
      <guid isPermaLink="false">http://www.vitalygorn.com/blog/post.aspx?id=e1139177-821e-44d5-becb-efb8c8bee2ba</guid>
      <pubDate>Mon, 24 Mar 2008 05:07:00 -0700</pubDate>
      <category>Software Development</category>
      <category>Visual Studio</category>
      <category>Architecture</category>
      <dc:publisher>Vitaly</dc:publisher>
      <pingback:server>http://www.vitalygorn.com/blog/pingback.axd</pingback:server>
      <pingback:target>http://www.vitalygorn.com/blog/post.aspx?id=e1139177-821e-44d5-becb-efb8c8bee2ba</pingback:target>
      <slash:comments>16</slash:comments>
      <trackback:ping>http://www.vitalygorn.com/blog/trackback.axd?id=e1139177-821e-44d5-becb-efb8c8bee2ba</trackback:ping>
      <wfw:comment>http://www.vitalygorn.com/blog/post/2008/03/NET-Framework-Programming-Model-for-Add-Ins.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.vitalygorn.com/blog/syndication.axd?post=e1139177-821e-44d5-becb-efb8c8bee2ba</wfw:commentRss>
    <feedburner:origLink>http://www.vitalygorn.com/blog/post.aspx?id=e1139177-821e-44d5-becb-efb8c8bee2ba</feedburner:origLink></item>
    <item>
      <title>Expression Studio 2 Beta Release</title>
      <description>&lt;p&gt;
In addition to &lt;a href="http://www.vitalygorn.com/blog/blog/post/2008/03/Silverlight-2-Beta-1-Now-Available.aspx" title="Silverlight 2 Beta 1"&gt;Silverlight 2 Beta 1&lt;/a&gt; that is made available yesterday, another great product&amp;#39;s new version was made available for download. That is &lt;a href="http://www.microsoft.com/expression/products/download.aspx?key=studio2beta" title="Expression Studio 2 Beta"&gt;beta version of Expression Studio 2&lt;/a&gt;. The application suite that is going to help graphic designers and developers working together. The suite includes the following tools Expression Web, Expression Blend, Expression Design, Expression Media and Expression Encoder. From which, the most valuable for WPF and Silverlight developers is Expression Blend. That is more powerful XAML WYSIWYG designer than that we have in visual studio. There are even facilities to create animation (similar to flash designer if you&amp;#39;ve seen it) 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blogs.msdn.com/somasegar/archive/2008/03/05/a-new-era-of-expression.aspx"&gt;S. Somasegar provides&lt;/a&gt; quick overview of new features that are part of this release:&amp;nbsp;
&lt;/p&gt;
&lt;blockquote&gt;
	There are many exciting new features in this release.&amp;nbsp; For example, Expression Web allows you to design PHP documents in addition to ASP.NET 3.5, opening the door for a new range of designers to create their standards-based designs using Microsoft tools.&amp;nbsp; Expression Blend has an improved interface that speeds up your workflow and facilitates navigating your documents more quickly with the new breadcrumb toolbar.&amp;nbsp; Expression Design includes an advanced slicing feature that helps you target individual slices as separate formats, including Silverlight canvas, WPF canvas, WPF resource dictionary, HTML comp, XAML, PSD, and PDF.&amp;nbsp; Expression Media makes digital asset management easy by allowing you to import more than 100 different media formats using drag-and-drop, including digital camera RAW files, then share the resulting catalogue with fellow team members.&amp;nbsp;&amp;nbsp; Finally, Expression Encoder has higher quality and faster encoding for Silverlight and the ability to perform simple video edits.&amp;nbsp;
&lt;/blockquote&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/VitalyGorn?a=99_Z_dsdBec:x0q5JHkXZOs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/VitalyGorn?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/VitalyGorn?a=99_Z_dsdBec:x0q5JHkXZOs:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/VitalyGorn?i=99_Z_dsdBec:x0q5JHkXZOs:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/VitalyGorn?a=99_Z_dsdBec:x0q5JHkXZOs:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/VitalyGorn?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/VitalyGorn/~4/99_Z_dsdBec" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/VitalyGorn/~3/99_Z_dsdBec/post.aspx</link>
      <author>Vitaly</author>
      <comments>http://www.vitalygorn.com/blog/post/2008/03/Expression-Studio-2-Beta-Release.aspx#comment</comments>
      <guid isPermaLink="false">http://www.vitalygorn.com/blog/post.aspx?id=e766a3f8-dae5-4aac-bec5-400ab1d35076</guid>
      <pubDate>Wed, 05 Mar 2008 22:04:00 -0700</pubDate>
      <category>Announcements</category>
      <category>Silverlight</category>
      <category>WPF</category>
      <dc:publisher>Vitaly</dc:publisher>
      <pingback:server>http://www.vitalygorn.com/blog/pingback.axd</pingback:server>
      <pingback:target>http://www.vitalygorn.com/blog/post.aspx?id=e766a3f8-dae5-4aac-bec5-400ab1d35076</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.vitalygorn.com/blog/trackback.axd?id=e766a3f8-dae5-4aac-bec5-400ab1d35076</trackback:ping>
      <wfw:comment>http://www.vitalygorn.com/blog/post/2008/03/Expression-Studio-2-Beta-Release.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.vitalygorn.com/blog/syndication.axd?post=e766a3f8-dae5-4aac-bec5-400ab1d35076</wfw:commentRss>
    <feedburner:origLink>http://www.vitalygorn.com/blog/post.aspx?id=e766a3f8-dae5-4aac-bec5-400ab1d35076</feedburner:origLink></item>
    <item>
      <title>Silverlight 2 Beta 1 Now Available</title>
      <description>&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=e0bae58e-9c0b-4090-a1db-f134d9f095fd&amp;amp;DisplayLang=en"&gt;Microsoft
Silverlight Tools Beta 1 for Visual Studio 2008&lt;/a&gt; (Contains
Silverlight 2 Beta 1 runtime and SDK)&lt;br /&gt;
&lt;a href="http://silverlight.dlservice.microsoft.com/download/6/6/3/663404e9-990d-4b74-873c-c4611aea2133/Silverlight.2.0.exe"&gt;Silverlight
2 Beta 1 runtime&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=4e03409a-77f3-413f-b108-1243c243c4fe&amp;amp;DisplayLang=en"&gt;SDK&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=ea93dd89-3af2-4acb-9cf4-bfe01b3f02d4&amp;amp;DisplayLang=en"&gt;Controls
Source Code&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=1840cab5-196c-4264-b55d-562242a72625&amp;amp;DisplayLang=en"&gt;Documentation&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://msdn2.microsoft.com/en-us/library/bb404700.aspx"&gt;Online
documentation&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://samples.msdn.microsoft.com/Silverlight/Silverlight_Next/DataGridSnippets/DataGridSnippets.html"&gt;Silverlight
2.0 DataGrid sample&lt;/a&gt;&lt;br /&gt;
&lt;p&gt;
Links were taken from this page:
http://silverlight.net/forums/p/10586/33824.aspx&amp;nbsp; 
&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/VitalyGorn?a=ZJo45fMdTFo:ad-vEvAMPAo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/VitalyGorn?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/VitalyGorn?a=ZJo45fMdTFo:ad-vEvAMPAo:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/VitalyGorn?i=ZJo45fMdTFo:ad-vEvAMPAo:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/VitalyGorn?a=ZJo45fMdTFo:ad-vEvAMPAo:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/VitalyGorn?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/VitalyGorn/~4/ZJo45fMdTFo" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/VitalyGorn/~3/ZJo45fMdTFo/post.aspx</link>
      <author>Vitaly</author>
      <comments>http://www.vitalygorn.com/blog/post/2008/03/Silverlight-2-Beta-1-Now-Available.aspx#comment</comments>
      <guid isPermaLink="false">http://www.vitalygorn.com/blog/post.aspx?id=767186a8-64b0-498e-96ec-0ad02cfc7c6b</guid>
      <pubDate>Wed, 05 Mar 2008 21:32:00 -0700</pubDate>
      <category>Announcements</category>
      <category>Silverlight</category>
      <dc:publisher>Vitaly</dc:publisher>
      <pingback:server>http://www.vitalygorn.com/blog/pingback.axd</pingback:server>
      <pingback:target>http://www.vitalygorn.com/blog/post.aspx?id=767186a8-64b0-498e-96ec-0ad02cfc7c6b</pingback:target>
      <slash:comments>2</slash:comments>
      <trackback:ping>http://www.vitalygorn.com/blog/trackback.axd?id=767186a8-64b0-498e-96ec-0ad02cfc7c6b</trackback:ping>
      <wfw:comment>http://www.vitalygorn.com/blog/post/2008/03/Silverlight-2-Beta-1-Now-Available.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.vitalygorn.com/blog/syndication.axd?post=767186a8-64b0-498e-96ec-0ad02cfc7c6b</wfw:commentRss>
    <feedburner:origLink>http://www.vitalygorn.com/blog/post.aspx?id=767186a8-64b0-498e-96ec-0ad02cfc7c6b</feedburner:origLink></item>
    <item>
      <title>Microsoft opens its Office binary format to public</title>
      <description>&lt;p&gt;
A couple of years after introducing &lt;a href="http://msdn2.microsoft.com/en-us/library/aa338205.aspx"&gt;Office 2007 Open
XML file formats&lt;/a&gt;, Microsoft recently published &lt;a href="http://www.microsoft.com/interop/docs/OfficeBinaryFormats.mspx"&gt;specifications
of their doc, xls and ppt binary formats&lt;/a&gt;. It seems that it was surprising
for everyone how complicated these formats are. For example, the Excel 97-2003
file format is a 349 page PDF file.
&lt;/p&gt;
&lt;p&gt;
Joel Spolsky, who worked on Microsoft&amp;#39;s Excel development
team, shed some light &lt;a href="http://www.joelonsoftware.com/items/2008/02/19.html"&gt;why the Microsoft
Office file formats are so complicated&lt;/a&gt;. He provides many points describing
why that happened, but it seems that it can be summarized just in 2 main
points:
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;These file formats were designed long ago in the
	era of slow machines&lt;/li&gt;
	&lt;blockquote&gt;
		&lt;br /&gt;
		They were designed to be fast on very old computers&lt;strong&gt;&lt;span style="font-family: 'Calibri','sans-serif'"&gt;.&lt;/span&gt;&lt;/strong&gt; For the early versions of
		Excel for Windows, 1 MB of RAM was a reasonable amount of memory, and an 80386
		at 20 MHz had to be able to run Excel comfortably
	&lt;/blockquote&gt;
	&lt;li&gt;Microsoft did not care to clean the format or to design new ones for a long time&lt;/li&gt;
	&lt;blockquote&gt;
		&lt;br /&gt;
		A lot of the complexities in these file
		formats reflect features that are old, complicated, unloved, and rarely used.
		They&amp;rsquo;re still in the file format for backwards compatibility, and because it
		doesn&amp;rsquo;t cost anything for Microsoft to leave the code around.
	&lt;/blockquote&gt;
&lt;/ul&gt;
&lt;p&gt;
When reading that, one question continuously popping up in my head.
&lt;strong&gt;Why it did take so long to switch to a better
file format? &lt;/strong&gt;Computers became fast enough, not to deal with binary formats,
more than 10 years ago, Internet is here for 2 decades, XML became popular in
1990s, but Microsoft switched one of their most selling product&amp;rsquo;s format to a
better one only in 2006. If they do not care about its interoperability, how many
efforts it took to support those formats and to train new people who became
part of Office team&amp;hellip;.
&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/VitalyGorn?a=uBeuQdL8y34:Gktv8HDtZRU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/VitalyGorn?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/VitalyGorn?a=uBeuQdL8y34:Gktv8HDtZRU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/VitalyGorn?i=uBeuQdL8y34:Gktv8HDtZRU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/VitalyGorn?a=uBeuQdL8y34:Gktv8HDtZRU:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/VitalyGorn?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/VitalyGorn/~4/uBeuQdL8y34" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/VitalyGorn/~3/uBeuQdL8y34/post.aspx</link>
      <author>Vitaly</author>
      <comments>http://www.vitalygorn.com/blog/post/2008/02/Microsoft-opens-its-Office-binary-format-to-public.aspx#comment</comments>
      <guid isPermaLink="false">http://www.vitalygorn.com/blog/post.aspx?id=aaddfc39-297e-4573-aa31-f7fcb144c2bf</guid>
      <pubDate>Thu, 21 Feb 2008 02:59:00 -0700</pubDate>
      <category>General</category>
      <dc:publisher>Vitaly</dc:publisher>
      <pingback:server>http://www.vitalygorn.com/blog/pingback.axd</pingback:server>
      <pingback:target>http://www.vitalygorn.com/blog/post.aspx?id=aaddfc39-297e-4573-aa31-f7fcb144c2bf</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.vitalygorn.com/blog/trackback.axd?id=aaddfc39-297e-4573-aa31-f7fcb144c2bf</trackback:ping>
      <wfw:comment>http://www.vitalygorn.com/blog/post/2008/02/Microsoft-opens-its-Office-binary-format-to-public.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.vitalygorn.com/blog/syndication.axd?post=aaddfc39-297e-4573-aa31-f7fcb144c2bf</wfw:commentRss>
    <feedburner:origLink>http://www.vitalygorn.com/blog/post.aspx?id=aaddfc39-297e-4573-aa31-f7fcb144c2bf</feedburner:origLink></item>
    <item>
      <title>Microsoft SharedView - new tool for remote collaboration</title>
      <description>&lt;p&gt;
I&amp;rsquo;ve came across a post describing a good application on &lt;a href="http://www.hanselman.com/blog/KnowingWhenToAskForHelpMicrosoftSharedView.aspx"&gt;Scott&amp;rsquo;s
blog&lt;/a&gt;. That is a new tool for remote collaboration from Microsoft called &lt;a href="http://connect.microsoft.com/site/sitehome.aspx?SiteID=94"&gt;Microsoft
SharedView&lt;/a&gt;. It is in &lt;strong&gt;beta&lt;/strong&gt; yet,
but already looks very good. It is really easy to install and use. You need to &lt;strong&gt;download just 3.6 Mb&lt;/strong&gt;. Allows c&lt;span&gt;onnecting with
up to &lt;strong&gt;15 people in different locations&lt;/strong&gt;.&lt;/span&gt;
There is integration with Live Messenger and Office applications. And it is &lt;strong&gt;free&lt;/strong&gt;.
&lt;/p&gt;
&lt;br /&gt;
&lt;blockquote&gt;
	&amp;nbsp;
	Microsoft SharedView is a fast, easy way to share documents
	and screen views with small groups of friends or coworkers; anytime, anywhere.
	Use SharedView to put your heads together and collaborate - create, convey, and
	communicate&amp;hellip;across physical boundaries, through firewalls, and down to the
	smallest details.
&lt;/blockquote&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/VitalyGorn?a=R0D76ZsdkIE:zUiZHAS4ryk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/VitalyGorn?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/VitalyGorn?a=R0D76ZsdkIE:zUiZHAS4ryk:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/VitalyGorn?i=R0D76ZsdkIE:zUiZHAS4ryk:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/VitalyGorn?a=R0D76ZsdkIE:zUiZHAS4ryk:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/VitalyGorn?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/VitalyGorn/~4/R0D76ZsdkIE" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/VitalyGorn/~3/R0D76ZsdkIE/post.aspx</link>
      <author>Vitaly</author>
      <comments>http://www.vitalygorn.com/blog/post/2008/02/Microsoft-SharedView---new-tool-for-remote-collaboration.aspx#comment</comments>
      <guid isPermaLink="false">http://www.vitalygorn.com/blog/post.aspx?id=40678c76-48aa-4582-a041-44dd91b638d2</guid>
      <pubDate>Tue, 19 Feb 2008 02:26:00 -0700</pubDate>
      <category>Announcements</category>
      <dc:publisher>Vitaly</dc:publisher>
      <dc:description>It is in beta yet, but already looks very good. It is really easy to install and use. You need to download just 3.6 Mb. Allows connecting with up to 15 people in different locations. There is integration with Live Messenger and Office applications. And it is free.</dc:description>
      <pingback:server>http://www.vitalygorn.com/blog/pingback.axd</pingback:server>
      <pingback:target>http://www.vitalygorn.com/blog/post.aspx?id=40678c76-48aa-4582-a041-44dd91b638d2</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.vitalygorn.com/blog/trackback.axd?id=40678c76-48aa-4582-a041-44dd91b638d2</trackback:ping>
      <wfw:comment>http://www.vitalygorn.com/blog/post/2008/02/Microsoft-SharedView---new-tool-for-remote-collaboration.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.vitalygorn.com/blog/syndication.axd?post=40678c76-48aa-4582-a041-44dd91b638d2</wfw:commentRss>
    <feedburner:origLink>http://www.vitalygorn.com/blog/post.aspx?id=40678c76-48aa-4582-a041-44dd91b638d2</feedburner:origLink></item>
    <item>
      <title>Windows Server 2008 RTM</title>
      <description>&lt;p&gt;
Just in case you don&amp;#39;t know this yet, Microsoft recently released to manufacturing their new OS - Windows Server 2008.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://www.microsoft.com/windowsserver2008/en/us/default.aspx"&gt;http://www.microsoft.com/windowsserver2008/en/us/default.aspx&lt;/a&gt;&amp;nbsp;
&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/VitalyGorn?a=sHJbjwEfxak:4Gcoe3EXRDU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/VitalyGorn?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/VitalyGorn?a=sHJbjwEfxak:4Gcoe3EXRDU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/VitalyGorn?i=sHJbjwEfxak:4Gcoe3EXRDU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/VitalyGorn?a=sHJbjwEfxak:4Gcoe3EXRDU:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/VitalyGorn?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/VitalyGorn/~4/sHJbjwEfxak" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/VitalyGorn/~3/sHJbjwEfxak/post.aspx</link>
      <author>Vitaly</author>
      <comments>http://www.vitalygorn.com/blog/post/2008/02/Windows-Server-2008-RTM.aspx#comment</comments>
      <guid isPermaLink="false">http://www.vitalygorn.com/blog/post.aspx?id=92278fd1-99b8-46ea-96b7-6572170aa675</guid>
      <pubDate>Fri, 08 Feb 2008 02:36:00 -0700</pubDate>
      <category>Announcements</category>
      <dc:publisher>Vitaly</dc:publisher>
      <dc:description>Just in case you don't know this yet, Microsoft recently released to manufacturing their new OS - Windows Server 2008.</dc:description>
      <pingback:server>http://www.vitalygorn.com/blog/pingback.axd</pingback:server>
      <pingback:target>http://www.vitalygorn.com/blog/post.aspx?id=92278fd1-99b8-46ea-96b7-6572170aa675</pingback:target>
      <slash:comments>1</slash:comments>
      <trackback:ping>http://www.vitalygorn.com/blog/trackback.axd?id=92278fd1-99b8-46ea-96b7-6572170aa675</trackback:ping>
      <wfw:comment>http://www.vitalygorn.com/blog/post/2008/02/Windows-Server-2008-RTM.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.vitalygorn.com/blog/syndication.axd?post=92278fd1-99b8-46ea-96b7-6572170aa675</wfw:commentRss>
    <feedburner:origLink>http://www.vitalygorn.com/blog/post.aspx?id=92278fd1-99b8-46ea-96b7-6572170aa675</feedburner:origLink></item>
    <item>
      <title>Great resource on design patterns and refactoring</title>
      <description>&lt;p&gt;
I&amp;#39;ve stumbled upon a great web resource containing description of design
patterns, antipatterns and refactoring techniques. It is easy to read, have
good illustrations and intuitive navigation. I would advice visiting it. 
&lt;/p&gt;
&lt;p&gt;
Design patterns are described in GOF style and there are mainly (if not
only) GOF patterns. So in case you haven&amp;#39;t this great book on your shelf when
you need it, you can go to this website and find info you need. In addition to
design patterns there is good description of antipatterns and refactoring how-to&amp;rsquo;s.
&lt;/p&gt;
&lt;p&gt;
Code examples on this site are in C++ and Java, but it should be easy to understand them if you are proficient in C# only.
&lt;/p&gt;
&lt;p&gt;
I almost forgot to leave the URL :-) Here it is: &lt;a href="http://sourcemaking.com/" title="Great resource on design patterns and refactoring"&gt;http://sourcemaking.com/&lt;/a&gt; 
&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/VitalyGorn?a=hDuR6B7SaHo:GlsqoXoEUfA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/VitalyGorn?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/VitalyGorn?a=hDuR6B7SaHo:GlsqoXoEUfA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/VitalyGorn?i=hDuR6B7SaHo:GlsqoXoEUfA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/VitalyGorn?a=hDuR6B7SaHo:GlsqoXoEUfA:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/VitalyGorn?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/VitalyGorn/~4/hDuR6B7SaHo" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/VitalyGorn/~3/hDuR6B7SaHo/post.aspx</link>
      <author>Vitaly</author>
      <comments>http://www.vitalygorn.com/blog/post/2008/02/Great-resource-on-design-patterns-and-refactoring.aspx#comment</comments>
      <guid isPermaLink="false">http://www.vitalygorn.com/blog/post.aspx?id=0785a65b-9bfd-463c-a6f6-361f78e8c2e4</guid>
      <pubDate>Mon, 04 Feb 2008 06:40:00 -0700</pubDate>
      <category>Software Development</category>
      <category>Architecture</category>
      <dc:publisher>Vitaly</dc:publisher>
      <dc:description>I've stumbled upon a great web resource containing description of design patterns, antipatterns and refactoring techniques. It is easy to read, have good illustrations and intuitive navigation. I would advice visiting it.</dc:description>
      <pingback:server>http://www.vitalygorn.com/blog/pingback.axd</pingback:server>
      <pingback:target>http://www.vitalygorn.com/blog/post.aspx?id=0785a65b-9bfd-463c-a6f6-361f78e8c2e4</pingback:target>
      <slash:comments>0</slash:comments>
      <trackback:ping>http://www.vitalygorn.com/blog/trackback.axd?id=0785a65b-9bfd-463c-a6f6-361f78e8c2e4</trackback:ping>
      <wfw:comment>http://www.vitalygorn.com/blog/post/2008/02/Great-resource-on-design-patterns-and-refactoring.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.vitalygorn.com/blog/syndication.axd?post=0785a65b-9bfd-463c-a6f6-361f78e8c2e4</wfw:commentRss>
    <feedburner:origLink>http://www.vitalygorn.com/blog/post.aspx?id=0785a65b-9bfd-463c-a6f6-361f78e8c2e4</feedburner:origLink></item>
    <item>
      <title>Missing Immediate Window in VS2008</title>
      <description>&lt;p&gt;
Immediate window is useful when debugging your application.
If you used to it in previous versions of Visual Studio you may be surprised
that it absents on its usual place in VS2008. Fortunately, you can add it back.
Right click on the toolbar area, select &lt;strong&gt;Customize&lt;/strong&gt;, find
your beloved Immediate menu item and drop to the main menu (or to toolbar if
you like).
&lt;/p&gt;
&lt;p&gt;
&lt;img src="http://www.vitalygorn.com/blog/image.axd?picture=VS2008_MissingImmediateWindow.png" alt="Adding Immediate Window Back in VS2008" title="Adding Immediate Window Back in VS2008" /&gt;
&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/VitalyGorn?a=hFrfpUEKbak:UDLAyyCoDM4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/VitalyGorn?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/VitalyGorn?a=hFrfpUEKbak:UDLAyyCoDM4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/VitalyGorn?i=hFrfpUEKbak:UDLAyyCoDM4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/VitalyGorn?a=hFrfpUEKbak:UDLAyyCoDM4:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/VitalyGorn?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/VitalyGorn/~4/hFrfpUEKbak" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/VitalyGorn/~3/hFrfpUEKbak/post.aspx</link>
      <author>Vitaly</author>
      <comments>http://www.vitalygorn.com/blog/post/2008/01/Missing-Immediate-Window-in-VS2008.aspx#comment</comments>
      <guid isPermaLink="false">http://www.vitalygorn.com/blog/post.aspx?id=bac1175f-4a94-4ff2-9df6-b9dc626c2b2f</guid>
      <pubDate>Mon, 28 Jan 2008 05:13:00 -0700</pubDate>
      <category>Visual Studio</category>
      <dc:publisher>Vitaly</dc:publisher>
      <dc:description>How to add Immediate window menu item back in Visual Studio 2008</dc:description>
      <pingback:server>http://www.vitalygorn.com/blog/pingback.axd</pingback:server>
      <pingback:target>http://www.vitalygorn.com/blog/post.aspx?id=bac1175f-4a94-4ff2-9df6-b9dc626c2b2f</pingback:target>
      <slash:comments>8</slash:comments>
      <trackback:ping>http://www.vitalygorn.com/blog/trackback.axd?id=bac1175f-4a94-4ff2-9df6-b9dc626c2b2f</trackback:ping>
      <wfw:comment>http://www.vitalygorn.com/blog/post/2008/01/Missing-Immediate-Window-in-VS2008.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.vitalygorn.com/blog/syndication.axd?post=bac1175f-4a94-4ff2-9df6-b9dc626c2b2f</wfw:commentRss>
    <feedburner:origLink>http://www.vitalygorn.com/blog/post.aspx?id=bac1175f-4a94-4ff2-9df6-b9dc626c2b2f</feedburner:origLink></item>
    <item>
      <title>How to make incremental DB update script in VS2008</title>
      <description>&lt;p&gt;
One of the most tedious tasks in database-driven software development is to make database change scripts. You meet it just as you product version becomes higher than 1. You usually have to maintain create script that creates you DB from scratch and also change script(s) that will upgrade existing databases of previous version(s) to the latest one. And those databases most probably have customer data in them that you cannot damage.
&lt;/p&gt;
 
&lt;p&gt;
In the latest release of Visual Studio there is new type of database projects that helps maintaining your database scripts significantly. I&amp;#39;ve already wrote &lt;a href="http://www.vitalygorn.com/blog/blog/post/2008/01/Handling-Database-easily-with-Visual-Studio-2008.aspx" target="_blank"&gt;review&lt;/a&gt; of new features, but such important topic as generation of change scripts in missing in that post, so I decided to write new post on it. 
&lt;/p&gt;
 
&lt;p&gt;
From the first sight it seems that VS can generate only create scripts, which it places in /sql folder by default. Hopefully, it also can generate change script, although this feature not so easy to discover. It can be found in database compare tool. It generates scripts based on differences between two databases (between schema that you have in DB project and some DB instance). It is not well automated, so you have to copy the script it generates, &lt;strong&gt;review it manually, &lt;/strong&gt;and save in a file yourself. 
&lt;/p&gt;
 
&lt;p&gt;
Some manual changes may be need in script. One good example: if you have used rename wizard to &lt;strong&gt;rename column&lt;/strong&gt; in some table you may expect that data that was in that column will be kept by a script. Unfortunately, &lt;strong&gt;this type of change is not handled well&lt;/strong&gt; by VS 2008. Yes, there is warning in UI, but who reads those warnings :-)
&lt;/p&gt;
 
&lt;p&gt;
&amp;nbsp;&lt;a href="http://vitalygorn.com/blog/image.axd?picture=WindowsLiveWriter/HowtomakeDBchangescriptinVS2008_CF5E/VSDBP_RenameWarning_2.png" target="_blank"&gt;&lt;img src="http://vitalygorn.com/blog/image.axd?picture=WindowsLiveWriter/HowtomakeDBchangescriptinVS2008_CF5E/VSDBP_RenameWarning_thumb.png" border="0" alt="VSDBP_RenameWarning" width="350" height="205" /&gt;&lt;/a&gt;
&lt;/p&gt;
 
&lt;p&gt;
There is option in project properties &amp;quot;Perform &amp;#39;smart&amp;#39; column name matching when you add or rename a column&amp;quot;. Here is what MSDN says about this option:
&lt;/p&gt;
 
&lt;blockquote&gt;
	 
	&lt;p&gt;
	Specifies whether to apply a heuristic when you deploy updates to determine when to rename a column instead of performing a DROP and an ADD operation. The heuristic is based on the properties of the column and the names of the source and target columns.
	&lt;/p&gt;
&lt;/blockquote&gt;
 
&lt;p&gt;
I hoped that setting this option will fix the problem with column rename, but unfortunately this did not work for me. I tried renaming CategoryName -&amp;gt; NewCategoryName and CategoryName -&amp;gt; Category1. In both cases this did not work. Perhaps they need to provide more info on the heuristic they use... 
&lt;/p&gt;
 
&lt;p&gt;
There is also &lt;strong&gt;protection from data loss&lt;/strong&gt;. You can control it by setting in project properties. Unfortunately, changing this setting did not work for me too. 
&lt;/p&gt;
 
&lt;p&gt;
&lt;a href="http://vitalygorn.com/blog/image.axd?picture=WindowsLiveWriter/HowtomakeDBchangescriptinVS2008_CF5E/VSDBP_SchemaUpdate_2.png" target="_blank"&gt;&lt;img src="http://vitalygorn.com/blog/image.axd?picture=WindowsLiveWriter/HowtomakeDBchangescriptinVS2008_CF5E/VSDBP_SchemaUpdate_thumb.png" border="0" alt="VSDBP_SchemaUpdate" width="550" height="529" /&gt;&lt;/a&gt; 
&lt;/p&gt;
 
&lt;p&gt;
&lt;a href="http://vitalygorn.com/blog/image.axd?picture=WindowsLiveWriter/HowtomakeDBchangescriptinVS2008_CF5E/VSDBP_Properties_2.png" target="_blank"&gt;&lt;img src="http://vitalygorn.com/blog/image.axd?picture=WindowsLiveWriter/HowtomakeDBchangescriptinVS2008_CF5E/VSDBP_Properties_thumb.png" border="0" alt="VSDBP_Properties" width="504" height="480" /&gt;&lt;/a&gt; 
&lt;/p&gt;
 
&lt;p&gt;
Anyway, this is undoubtedly a great feature. And should help maintaining incremental update scripts a lot.
&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/VitalyGorn?a=AB5L3TsYjOM:k6yiybfhnyc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/VitalyGorn?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/VitalyGorn?a=AB5L3TsYjOM:k6yiybfhnyc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/VitalyGorn?i=AB5L3TsYjOM:k6yiybfhnyc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/VitalyGorn?a=AB5L3TsYjOM:k6yiybfhnyc:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/VitalyGorn?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/VitalyGorn/~4/AB5L3TsYjOM" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/VitalyGorn/~3/AB5L3TsYjOM/post.aspx</link>
      <author>Vitaly</author>
      <comments>http://www.vitalygorn.com/blog/post/2008/01/How-to-make-incremental-DB-update-script-in-VS2008.aspx#comment</comments>
      <guid isPermaLink="false">http://www.vitalygorn.com/blog/post.aspx?id=ff9629d4-a32b-45ea-81c9-63c40294803d</guid>
      <pubDate>Sun, 20 Jan 2008 02:38:00 -0700</pubDate>
      <category>Software Development</category>
      <category>Visual Studio</category>
      <category>SQL Server</category>
      <dc:publisher>Vitaly</dc:publisher>
      <dc:description>One of the most tedious tasks in database-driven software development is to make database change scripts. In the latest release of Visual Studio there is new type of database projects that helps maintaining your database scripts significantly. From the first sight it seems that VS can generate only create scripts, which it places in /sql folder by default. Hopefully, it also can generate change script, although this feature not so easy to discover.</dc:description>
      <pingback:server>http://www.vitalygorn.com/blog/pingback.axd</pingback:server>
      <pingback:target>http://www.vitalygorn.com/blog/post.aspx?id=ff9629d4-a32b-45ea-81c9-63c40294803d</pingback:target>
      <slash:comments>6</slash:comments>
      <trackback:ping>http://www.vitalygorn.com/blog/trackback.axd?id=ff9629d4-a32b-45ea-81c9-63c40294803d</trackback:ping>
      <wfw:comment>http://www.vitalygorn.com/blog/post/2008/01/How-to-make-incremental-DB-update-script-in-VS2008.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.vitalygorn.com/blog/syndication.axd?post=ff9629d4-a32b-45ea-81c9-63c40294803d</wfw:commentRss>
    <feedburner:origLink>http://www.vitalygorn.com/blog/post.aspx?id=ff9629d4-a32b-45ea-81c9-63c40294803d</feedburner:origLink></item>
    <item>
      <title>.NET Framework Library Source Code now available</title>
      <description>&lt;p&gt;
Scott Guthrie &lt;a href="http://weblogs.asp.net/scottgu/archive/2008/01/16/net-framework-library-source-code-now-available.aspx" title=".NET Framework Library Source Code now available"&gt;announced &lt;/a&gt;that source code of .NET Framework library is now available. You can drill down to code written by Microsoft when debugging your application in Visual Studio 2008. And you even see developers comments in source code :-) 
&lt;/p&gt;
&lt;blockquote&gt;
	&lt;p&gt;
	&lt;font&gt;Today I&amp;#39;m happy to announce that this is now available for everyone to use. 
	Specifically, you can now browse and debug the source code for the following 
	.NET Framework libraries:&lt;/font&gt;
	&lt;/p&gt;
	&lt;ul&gt;
		&lt;li&gt;.NET Base Class Libraries (including System, System.CodeDom, 
		System.Collections, System.ComponentModel, System.Diagnostics, System.Drawing, 
		System.Globalization, System.IO, System.Net, System.Reflection, System.Runtime, 
		System.Security, System.Text, System.Threading, etc). &lt;/li&gt;
	&lt;/ul&gt;
	&lt;ul&gt;
		&lt;li&gt;ASP.NET (System.Web, System.Web.Extensions) &lt;/li&gt;
	&lt;/ul&gt;
	&lt;ul&gt;
		&lt;li&gt;Windows Forms (System.Windows.Forms) &lt;/li&gt;
	&lt;/ul&gt;
	&lt;ul&gt;
		&lt;li&gt;Windows Presentation Foundation (System.Windows) &lt;/li&gt;
	&lt;/ul&gt;
	&lt;ul&gt;
		&lt;li&gt;ADO.NET and XML (System.Data and System.Xml)&lt;/li&gt;
	&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;p&gt;
&lt;br /&gt;
Here is sample code snippet. This is the beginning of HttpRuntime.ShutdownAppDomain method:&lt;br /&gt;
&lt;img src="http://www.vitalygorn.com/blog/image.axd?picture=dotNetSC.png" alt="" /&gt;
&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/VitalyGorn?a=mJcdyJJVXTY:6K-rTbEkrRk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/VitalyGorn?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/VitalyGorn?a=mJcdyJJVXTY:6K-rTbEkrRk:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/VitalyGorn?i=mJcdyJJVXTY:6K-rTbEkrRk:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/VitalyGorn?a=mJcdyJJVXTY:6K-rTbEkrRk:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/VitalyGorn?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/VitalyGorn/~4/mJcdyJJVXTY" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/VitalyGorn/~3/mJcdyJJVXTY/post.aspx</link>
      <author>Vitaly</author>
      <comments>http://www.vitalygorn.com/blog/post/2008/01/NET-Framework-Library-Source-Code-now-available.aspx#comment</comments>
      <guid isPermaLink="false">http://www.vitalygorn.com/blog/post.aspx?id=1d2da4d2-2949-4026-95e3-dc8350fc4607</guid>
      <pubDate>Thu, 17 Jan 2008 01:41:00 -0700</pubDate>
      <category>Software Development</category>
      <category>Visual Studio</category>
      <category>.NET</category>
      <dc:publisher>Vitaly</dc:publisher>
      <dc:description>Scott Guhrie announced that source code of .NET Framework library is now available. You can drill down to code written by Microsoft when debugging your application in Visual Studio 2008</dc:description>
      <pingback:server>http://www.vitalygorn.com/blog/pingback.axd</pingback:server>
      <pingback:target>http://www.vitalygorn.com/blog/post.aspx?id=1d2da4d2-2949-4026-95e3-dc8350fc4607</pingback:target>
      <slash:comments>1</slash:comments>
      <trackback:ping>http://www.vitalygorn.com/blog/trackback.axd?id=1d2da4d2-2949-4026-95e3-dc8350fc4607</trackback:ping>
      <wfw:comment>http://www.vitalygorn.com/blog/post/2008/01/NET-Framework-Library-Source-Code-now-available.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.vitalygorn.com/blog/syndication.axd?post=1d2da4d2-2949-4026-95e3-dc8350fc4607</wfw:commentRss>
    <feedburner:origLink>http://www.vitalygorn.com/blog/post.aspx?id=1d2da4d2-2949-4026-95e3-dc8350fc4607</feedburner:origLink></item>
    <item>
      <title>Handling Database easily with Visual Studio 2008</title>
      <description>&lt;h2&gt;Overview&lt;/h2&gt;  
&lt;p&gt;
Visual Studio 2008 Team System has new type of database projects that are much different from those we had in Visual Studio 2005. There is a number of extremely useful features that should make you development much easier. Most of this functionality was previously introduced in Visual Studio 2005 Database Edition. It was released much later than Visual Studio 2005 itself, so some developers (including me) accidentally missed its announcement. Now these tools are integrated into Visual Studio 2008 and replace old database projects.
&lt;/p&gt;
&lt;p&gt;
You start from creating new schema or importing schema of existing database into VS database project, which is presented by &lt;strong&gt;separate scripts for each database object&lt;/strong&gt;. Visual Studio creates quite good catalogue structure by default, but if you have large database then you may add your own folders to better organize your project. As there is separate script file for each database object, it becomes much easier to track changes when your Database Project is put under source control.
&lt;/p&gt;
&lt;p&gt;
After you have imported schema of existing DB (or created new one from scratch), you can &lt;strong&gt;easily deploy your DB&lt;/strong&gt; to any instance of SQL Server and work with it while offline using your private SQL server instance. Visual Studio merges all small separate scripts into several large ones, so you can also use those scripts to manually create database.
&lt;/p&gt;
&lt;p&gt;
To navigate among you database objects, besides Solution Explorer, you can use &lt;strong&gt;Schema View&lt;/strong&gt; pane, that displays database objects as SQL Server Management Studio or Server Explorer does. You also can filter objects if you have large database.
&lt;/p&gt;
&lt;p&gt;
Perhaps the most awesome feature of new database project is &lt;strong&gt;design-time validation of your scripts&lt;/strong&gt;. Visual Studio uses your local database to validate scripts as you type them. It is claimed that you must have either Developer or Enterprise edition of SQL Server locally installed, but it seems that most of the features work ok with SQL Express.
&lt;/p&gt;
&lt;p&gt;
To ease the &lt;strong&gt;rename of database objects&lt;/strong&gt;, Visual Studio provides &lt;strong&gt;refactoring wizard&lt;/strong&gt;. It makes it really painless to rename database tables, columns, views and other objects, because it finds all places where old name was used and provides preview screen with changes for you. There are no other refactoring methods than rename now, so it is not quite clear why the only item &amp;quot;Rename&amp;quot; has been put in &amp;quot;Refactoring&amp;quot; menu. Perhaps there will be some more however...
&lt;/p&gt;
&lt;p&gt;
Another new powerful feature is &lt;strong&gt;database unit tests.&lt;/strong&gt; Visual Studio automates creation of unit tests for database object just as it done for C# and VB code. Good compliment for unit tests is new feature that allows you to &lt;strong&gt;load test data&lt;/strong&gt; in your database. It loads randomly generated values in tables you specify. You can set-up it to load data before executing unit tests. It also can be used for performance testing to foresee how your DB will function on large volumes of data.
&lt;/p&gt;
&lt;p&gt;
And finally, there is handy &lt;strong&gt;tool for comparing schemas and data between databases&lt;/strong&gt;. It is buried in UI, however, and not so easy to find. See screenshots below for help.
&lt;/p&gt;
&lt;h2&gt;Creating Database Project&lt;/h2&gt;  
&lt;p&gt;
&lt;a href="http://vitalygorn.com/blog/image.axd?picture=WindowsLiveWriter/2687889b7d78_D928/VS2008DBP_Create_2.png" target="_blank"&gt;&lt;img src="http://vitalygorn.com/blog/image.axd?picture=WindowsLiveWriter/2687889b7d78_D928/VS2008DBP_Create_thumb.png" border="0" alt="VS2008DBP_Create" width="111" height="81" /&gt;&lt;/a&gt; Here is where you start from.
&lt;/p&gt;
&lt;p&gt;
You can select to create database project using wizard. There is nothing special that can be made only in the wizard, but it allows setup your project quicker, especially if you are not too familiar with this new type of projects yet. Wizard asks you for options of your database and allows you to import schema of existing database.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://vitalygorn.com/blog/image.axd?picture=WindowsLiveWriter/2687889b7d78_D928/VS2008DBP_Wizard_Properties_2.png" target="_blank"&gt;&lt;img src="http://vitalygorn.com/blog/image.axd?picture=WindowsLiveWriter/2687889b7d78_D928/VS2008DBP_Wizard_Properties_thumb.png" border="0" alt="VS2008DBP_Wizard_Properties" width="111" height="90" /&gt;&lt;/a&gt; &lt;a href="http://vitalygorn.com/blog/image.axd?picture=WindowsLiveWriter/2687889b7d78_D928/VS2008DBP_Wizard_DbOptions_2.png" target="_blank"&gt;&lt;img src="http://vitalygorn.com/blog/image.axd?picture=WindowsLiveWriter/2687889b7d78_D928/VS2008DBP_Wizard_DbOptions_thumb.png" border="0" alt="VS2008DBP_Wizard_DbOptions" width="111" height="90" /&gt;&lt;/a&gt; &lt;a href="http://vitalygorn.com/blog/image.axd?picture=WindowsLiveWriter/2687889b7d78_D928/VS2008DBP_Wizard_ImportSchema_2.png" target="_blank"&gt;&lt;img src="http://vitalygorn.com/blog/image.axd?picture=WindowsLiveWriter/2687889b7d78_D928/VS2008DBP_Wizard_ImportSchema_thumb.png" border="0" alt="VS2008DBP_Wizard_ImportSchema" width="111" height="90" /&gt;&lt;/a&gt; &lt;a href="http://vitalygorn.com/blog/image.axd?picture=WindowsLiveWriter/2687889b7d78_D928/VS2008DBP_Wizard_BuildAndDeploy_2.png" target="_blank"&gt;&lt;img src="http://vitalygorn.com/blog/image.axd?picture=WindowsLiveWriter/2687889b7d78_D928/VS2008DBP_Wizard_BuildAndDeploy_thumb.png" border="0" alt="VS2008DBP_Wizard_BuildAndDeploy" width="111" height="90" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;h2&gt;Project Structure&lt;/h2&gt;  
&lt;p&gt;
Here is what we have after wizard finishes. Each database object creation script is placed in a separate file.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://vitalygorn.com/blog/image.axd?picture=WindowsLiveWriter/2687889b7d78_D928/VS2008DBP_ProjectFiles_Overview_2.png" target="_blank"&gt;&lt;img src="http://vitalygorn.com/blog/image.axd?picture=WindowsLiveWriter/2687889b7d78_D928/VS2008DBP_ProjectFiles_Overview_thumb.png" border="0" alt="VS2008DBP_ProjectFiles_Overview" width="211" height="329" /&gt;&lt;/a&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;a href="http://vitalygorn.com/blog/image.axd?picture=WindowsLiveWriter/2687889b7d78_D928/VS2008DBP_ProjectFiles_Tables_2.png" target="_blank"&gt;&lt;img src="http://vitalygorn.com/blog/image.axd?picture=WindowsLiveWriter/2687889b7d78_D928/VS2008DBP_ProjectFiles_Tables_thumb.png" border="0" alt="VS2008DBP_ProjectFiles_Tables" width="247" height="306" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;h2&gt;Design-time validation&lt;/h2&gt;  
&lt;p&gt;
I&amp;#39;ve intentionally made mistake in a column name. Visual Studio immediately shows error message in Error List pane. Unfortunately, error is not highlighted in code editor, but when you click on error message you get positioned on the correct place in code (this works not always, however). 
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;I love this feature&lt;/em&gt;! 
&lt;/p&gt;
&lt;p&gt;
Another good use of validation is to &lt;strong&gt;check existing database for mistakes&lt;/strong&gt;. You can import it&amp;#39;s schema into new database project and build it to start validation.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://vitalygorn.com/blog/image.axd?picture=WindowsLiveWriter/2687889b7d78_D928/VS2008DBP_DesignTimeValidation_2.png" target="_blank"&gt;&lt;img src="http://vitalygorn.com/blog/image.axd?picture=WindowsLiveWriter/2687889b7d78_D928/VS2008DBP_DesignTimeValidation_thumb.png" border="0" alt="VS2008DBP_DesignTimeValidation" width="550" height="353" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;h2&gt;Schema View Pane&lt;/h2&gt;  
&lt;p&gt;
You can make some changes to schema here and easily navigate through you database.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://vitalygorn.com/blog/image.axd?picture=WindowsLiveWriter/2687889b7d78_D928/VS2008DBP_SchemaView_2.png" target="_blank"&gt;&lt;img src="http://vitalygorn.com/blog/image.axd?picture=WindowsLiveWriter/2687889b7d78_D928/VS2008DBP_SchemaView_thumb.png" border="0" alt="VS2008DBP_SchemaView" width="550" height="353" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;h2&gt;Refactoring&lt;/h2&gt;  
&lt;p&gt;
Yet one very powerful feature. If you had to rename a column in a large DB you would appreciate this new rename helper.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://vitalygorn.com/blog/image.axd?picture=WindowsLiveWriter/2687889b7d78_D928/VS2008DBP_Refactor_2.png" target="_blank"&gt;&lt;img src="http://vitalygorn.com/blog/image.axd?picture=WindowsLiveWriter/2687889b7d78_D928/VS2008DBP_Refactor_thumb.png" border="0" alt="VS2008DBP_Refactor" width="550" height="353" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://vitalygorn.com/blog/image.axd?picture=WindowsLiveWriter/2687889b7d78_D928/VS2008DBP_Refactor_Preview_2.png" target="_blank"&gt;&lt;img src="http://vitalygorn.com/blog/image.axd?picture=WindowsLiveWriter/2687889b7d78_D928/VS2008DBP_Refactor_Preview_thumb.png" border="0" alt="VS2008DBP_Refactor_Preview" width="476" height="392" /&gt;&lt;/a&gt;&amp;nbsp;
&lt;/p&gt;
&lt;h2&gt;Comparing databases&lt;/h2&gt;  
&lt;p&gt;
No need to use 3rd party utilities anymore. You can compare databases or database projects in Visual Studio now. Note the toolbar button that the red arrow pointing at - it starts compare wizard.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://vitalygorn.com/blog/image.axd?picture=WindowsLiveWriter/2687889b7d78_D928/VS2008DBP_CompareSchema_2.png" target="_blank"&gt;&lt;img src="http://vitalygorn.com/blog/image.axd?picture=WindowsLiveWriter/2687889b7d78_D928/VS2008DBP_CompareSchema_thumb.png" border="0" alt="VS2008DBP_CompareSchema" width="550" height="353" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Here is how results of comparison look like.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://vitalygorn.com/blog/image.axd?picture=WindowsLiveWriter/2687889b7d78_D928/VS2008DBP_CompareSchema_compared_2.png" target="_blank"&gt;&lt;img src="http://vitalygorn.com/blog/image.axd?picture=WindowsLiveWriter/2687889b7d78_D928/VS2008DBP_CompareSchema_compared_thumb.png" border="0" alt="VS2008DBP_CompareSchema_compared" width="550" height="366" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;h2&gt;Loading Database with test data&lt;/h2&gt;  
&lt;p&gt;
Loading database with test data is very useful for unit tests and also can be used for performance testing. To load you DB with test data you add new item, Data Generation Plan, to you project.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://vitalygorn.com/blog/image.axd?picture=WindowsLiveWriter/2687889b7d78_D928/VS2008DBP_DGP_2.png" target="_blank"&gt;&lt;img src="http://vitalygorn.com/blog/image.axd?picture=WindowsLiveWriter/2687889b7d78_D928/VS2008DBP_DGP_thumb.png" border="0" alt="VS2008DBP_DGP" width="550" height="339" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Then you specify what tables to fill with data, how many records to add and start data load by clicking on toolbar button.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://vitalygorn.com/blog/image.axd?picture=WindowsLiveWriter/2687889b7d78_D928/VS2008DBP_DGP_SettingsAndPreview_2.png" target="_blank"&gt;&lt;img src="http://vitalygorn.com/blog/image.axd?picture=WindowsLiveWriter/2687889b7d78_D928/VS2008DBP_DGP_SettingsAndPreview_thumb.png" border="0" alt="VS2008DBP_DGP_SettingsAndPreview" width="550" height="341" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;h2&gt;Unit Tests&lt;/h2&gt;  
&lt;p&gt;
To create Unit Tests for your stored procedure you select it in Schema View and select Create Unit Tests in context menu.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://vitalygorn.com/blog/image.axd?picture=WindowsLiveWriter/2687889b7d78_D928/VS2008DBP_UT_2.png" target="_blank"&gt;&lt;img src="http://vitalygorn.com/blog/image.axd?picture=WindowsLiveWriter/2687889b7d78_D928/VS2008DBP_UT_thumb.png" border="0" alt="VS2008DBP_UT" width="304" height="257" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
Wizard asking you for a list of procedures to generate unit tests for and details abut project that will host your unit tests. 
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://vitalygorn.com/blog/image.axd?picture=WindowsLiveWriter/2687889b7d78_D928/VS2008DBP_UT_Create_2.png" target="_blank"&gt;&lt;img src="http://vitalygorn.com/blog/image.axd?picture=WindowsLiveWriter/2687889b7d78_D928/VS2008DBP_UT_Create_thumb.png" border="0" alt="VS2008DBP_UT_Create" width="419" height="374" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
If you selected to create new project, Visual Studio asks you for it&amp;#39;s properties. Note that you can automatically deploy database to your database server and load it with a test data as it is configured in your Data Generation Plan.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://vitalygorn.com/blog/image.axd?picture=WindowsLiveWriter/2687889b7d78_D928/VS2008DBP_UT_ProjectConfiguration_2.png" target="_blank"&gt;&lt;img src="http://vitalygorn.com/blog/image.axd?picture=WindowsLiveWriter/2687889b7d78_D928/VS2008DBP_UT_ProjectConfiguration_thumb.png" border="0" alt="VS2008DBP_UT_ProjectConfiguration" width="347" height="442" /&gt;&lt;/a&gt; 
&lt;/p&gt;
&lt;p&gt;
And here is how result looks like. You can go on and customize your Unit Tests as you need.
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://vitalygorn.com/blog/image.axd?picture=WindowsLiveWriter/2687889b7d78_D928/VS2008DBP_UT_Generated_2.png" target="_blank"&gt;&lt;img src="http://vitalygorn.com/blog/image.axd?picture=WindowsLiveWriter/2687889b7d78_D928/VS2008DBP_UT_Generated_thumb.png" border="0" alt="VS2008DBP_UT_Generated" width="550" height="366" /&gt;&lt;/a&gt;&amp;nbsp;
&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;  
&lt;p&gt;
Undoubtedly, new database projects are a great feature. What is cool is that you can set-up really solid solution for your development environment with Visual Studio 2008 and Team Foundation Server. And new features of database projects add missing parts to that. You now can test code in your database objects by running unit tests in nightly builds. And you can validate that only valid code comes to Source Controls using Continuous Integration. That all was possible with C# and VB code previously, but now you need not worry for your stored procedures too.
&lt;/p&gt;
&lt;p&gt;
Even if you do not want to use database project as part of a solution, you may want to use some of its useful features on your stand-alone database:
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;You can validate stored procedures, functions and other objects in your database.&lt;/li&gt;    
	&lt;li&gt;You may want to load you database with test data for performance testing.&lt;/li&gt;    
	&lt;li&gt;You also can use compare wizard to see changes between your databases.&lt;/li&gt;    
	&lt;li&gt;And, finally, you can use renaming wizard to easily rename you database objects if you need to.&lt;/li&gt; 
&lt;/ul&gt;
&lt;p&gt;
&lt;a href="http://msdn2.microsoft.com/en-us/library/aa833253.aspx" target="_blank"&gt;Here&lt;/a&gt; you will find official documentation (that is quite good).
&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/VitalyGorn?a=y4RaJYqOyQY:aIMZ-MQTNTg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/VitalyGorn?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/VitalyGorn?a=y4RaJYqOyQY:aIMZ-MQTNTg:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/VitalyGorn?i=y4RaJYqOyQY:aIMZ-MQTNTg:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/VitalyGorn?a=y4RaJYqOyQY:aIMZ-MQTNTg:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/VitalyGorn?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/VitalyGorn/~4/y4RaJYqOyQY" height="1" width="1"/&gt;</description>
      <link>http://feedproxy.google.com/~r/VitalyGorn/~3/y4RaJYqOyQY/post.aspx</link>
      <author>Vitaly</author>
      <comments>http://www.vitalygorn.com/blog/post/2008/01/Handling-Database-easily-with-Visual-Studio-2008.aspx#comment</comments>
      <guid isPermaLink="false">http://www.vitalygorn.com/blog/post.aspx?id=633299fb-7345-44d4-bbfe-46cba246a7bd</guid>
      <pubDate>Sat, 12 Jan 2008 05:24:00 -0700</pubDate>
      <category>Software Development</category>
      <category>Visual Studio</category>
      <category>SQL Server</category>
      <dc:publisher>Vitaly</dc:publisher>
      <dc:description>Visual Studio 2008 Team System contains new type of Database Projects that have many extremely useful features. Design-type validation, unit tests, refactoring and even more. You will find overview of these new functions in this post.</dc:description>
      <pingback:server>http://www.vitalygorn.com/blog/pingback.axd</pingback:server>
      <pingback:target>http://www.vitalygorn.com/blog/post.aspx?id=633299fb-7345-44d4-bbfe-46cba246a7bd</pingback:target>
      <slash:comments>20</slash:comments>
      <trackback:ping>http://www.vitalygorn.com/blog/trackback.axd?id=633299fb-7345-44d4-bbfe-46cba246a7bd</trackback:ping>
      <wfw:comment>http://www.vitalygorn.com/blog/post/2008/01/Handling-Database-easily-with-Visual-Studio-2008.aspx#comment</wfw:comment>
      <wfw:commentRss>http://www.vitalygorn.com/blog/syndication.axd?post=633299fb-7345-44d4-bbfe-46cba246a7bd</wfw:commentRss>
    <feedburner:origLink>http://www.vitalygorn.com/blog/post.aspx?id=633299fb-7345-44d4-bbfe-46cba246a7bd</feedburner:origLink></item>
  </channel>
</rss>
