<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://codebetter.com/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><title type="html">David Hayden [MVP C#]</title><subtitle type="html">&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;.NET Tutorials, Patterns, and Practices</subtitle><id>http://codebetter.com/blogs/david.hayden/atom.aspx</id><link rel="alternate" type="text/html" href="http://codebetter.com/blogs/david.hayden/default.aspx" /><link rel="self" type="application/atom+xml" href="http://codebetter.com/blogs/david.hayden/atom.aspx" /><generator uri="http://communityserver.org" version="3.0.20416.853">Community Server</generator><updated>2008-05-05T16:08:00Z</updated><entry><title>T4 Templates for Code Generation Screencast</title><link rel="alternate" type="text/html" href="http://codebetter.com/blogs/david.hayden/archive/2008/07/22/t4-templates-for-code-generation-screencast.aspx" /><id>http://codebetter.com/blogs/david.hayden/archive/2008/07/22/t4-templates-for-code-generation-screencast.aspx</id><published>2008-07-22T19:55:00Z</published><updated>2008-07-22T19:55:00Z</updated><content type="html">&lt;p&gt;&lt;a class="" title="Code Generation in Visual Studio Screencast" href="http://www.pnpguidance.net/Screencast/T4TemplatesVisualStudioCodeGenerationScreencast.aspx"&gt;&lt;img title="T4 Template Screencast" style="WIDTH:318px;HEIGHT:283px;" height="283" alt="T4 Template Screencast" src="http://codebetter.com/photos/david.hayden/images/181127/original.aspx" width="318" align="right" border="0" /&gt;&lt;/a&gt;I put together a quick screencast showing how to leverage T4 Templates in Visual Studio 2008 for Code Generation:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;&lt;a href="http://www.pnpguidance.net/Screencast/T4TemplatesVisualStudioCodeGenerationScreencast.aspx"&gt;T4 Templates in Visual Studio for Code Generation Screencast&lt;/a&gt; &lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;I show step-by-step how to create a simple T4 Template and then how to generate various Entity, Data Access Object, and Factory Classes using more advanced T4 Templates that one might use&amp;nbsp;to create&amp;nbsp;a simple custom data access layer. I have seen other screencasts that have used &lt;a class="" title="SMO Tutorials" href="http://davidhayden.com/blog/dave/category/51.aspx?Show=All"&gt;SQL Server Management Objects&lt;/a&gt;, but in my case I use database schema related functionality in good &amp;#39;ol ADO.NET. Although I wouldn&amp;#39;t use this technique to build a data access layer given all the cool &lt;a class="" title="Code Generation Tools" href="http://davidhayden.com/blog/dave/category/15.aspx?Show=All"&gt;code generators&lt;/a&gt; and &lt;a class="" title=".NET O/R Mappers" href="http://davidhayden.com/blog/dave/category/24.aspx?Show=All"&gt;O/R Mappers&lt;/a&gt;, it is a pretty decent way to show the possibilities with T4 Templates.&lt;/p&gt;
&lt;p&gt;I picked up a new iPhone 3G the other day and absolutely love it, so I also created a version of the screencast that you can download and play on the iPhone. In fact, several of the more recent &lt;a class="" title="Screencasts" href="http://www.pnpguidance.net/Screencasts.aspx"&gt;Unity and Enterprise Library 4.0 Screencasts&lt;/a&gt; now have an iPhone version.&lt;/p&gt;
&lt;p&gt;If you are interested in some of the ADO.NET techniques I used in the screencast to get database schema information, check out the show notes with links to various tutorials.&lt;/p&gt;
&lt;p&gt;I hope the screencast is useful.&lt;/p&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=181128" width="1" height="1"&gt;</content><author><name>dhayden</name><uri>http://codebetter.com/members/dhayden.aspx</uri></author></entry><entry><title>Unity IoC and ASP.NET Part II Screencast with Appearances by Autofac and Ninject</title><link rel="alternate" type="text/html" href="http://codebetter.com/blogs/david.hayden/archive/2008/07/01/unity-ioc-and-asp-net-part-ii-screencast-with-appearances-by-autofac-and-ninject.aspx" /><id>http://codebetter.com/blogs/david.hayden/archive/2008/07/01/unity-ioc-and-asp-net-part-ii-screencast-with-appearances-by-autofac-and-ninject.aspx</id><published>2008-07-01T19:12:00Z</published><updated>2008-07-01T19:12:00Z</updated><content type="html">&lt;p&gt;&lt;a class="" href="http://www.pnpguidance.net/Screencast/UnityAspWebDependencyInjectionGuestsAutofacNinject.aspx"&gt;&lt;img title="Unity IoC and ASP.NET Screencast" style="BORDER-RIGHT:0px;BORDER-TOP:0px;BORDER-LEFT:0px;WIDTH:318px;BORDER-BOTTOM:0px;HEIGHT:283px;" height="283" alt="Unity IoC and ASP.NET Screencast" src="http://codebetter.com/photos/david.hayden/images/180168/original.aspx" width="318" align="right" /&gt;&lt;/a&gt;I created a final screencast&amp;nbsp;focusing on Unity, called-&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;&lt;span id="ctl00_ContentPlaceHolder1_ThePostTitle"&gt;&lt;a class="" href="http://www.pnpguidance.net/Screencast/UnityAspWebDependencyInjectionGuestsAutofacNinject.aspx"&gt;Unity and ASP.NET Web Pages Dependency Injection Part II with Special Guests - Autofac and Ninject&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;span&gt;&amp;nbsp;As promised in the previous screencast:&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;&lt;span&gt;&lt;span id="ctl00_ContentPlaceHolder1_ThePostTitle"&gt;&lt;a class="" href="http://www.pnpguidance.net/Screencast/UnityIoCASPNETScreencastDependencyInjectionWebPages.aspx"&gt;Unity IoC and ASP.NET Screencast - Dependency Injection into Web Pages&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;span&gt;&lt;span&gt;I wanted to show at least one other way to accomplish dependency injection with &lt;a class="" href="http://www.pnpguidance.net/Category/Unity.aspx"&gt;Unity&lt;/a&gt; in ASP.NET Webforms Web Pages without requiring base classes for pages, masterpages, usercontrols, etc. This example highlights the use of a custom HttpModule and subscribing to the PreRequestHandlerExecute Event. This is a very common method that I mentioned being used&amp;nbsp;in the&amp;nbsp;older Web Client Software Factory v1.0 and 1.1 as well as currently in Autofac via the &lt;strong&gt;DependencyInjectionModule&lt;/strong&gt; in &lt;strong&gt;Autofac.Integration.Web&lt;/strong&gt;. I am sure it is being used numerous other places as well.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span&gt;During the screencast I discuss two other dependency injection tools, &lt;strong&gt;Autofac&lt;/strong&gt; and &lt;strong&gt;Ninject&lt;/strong&gt;, which are wonderful IoC Containers that are open-source, lightweight, and easy-to-use as well as offer some wonderful integrations with Webforms, ASP.NET MVC Framework, Winforms, WCF, and various other 3rd party open-source&amp;nbsp;libraries like Castle DynamicProxy2, Log4Net, etc.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span&gt;During the screencast I show a custom HttpModule, &lt;strong&gt;NinjectHttpModule&lt;/strong&gt;, that I created and added to my copy of &lt;strong&gt;Ninject.Framework.Web&lt;/strong&gt; to offer this same functionality&amp;nbsp;with Ninject. Using inspiration from both Autofac and Ninject, I then&amp;nbsp;show a &lt;strong&gt;Unity.Integrations.Web&lt;/strong&gt; Assembly that uses techniques from both Autofac and Ninject to provide this functionality with Unity.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span&gt;In addition to Unity, I highly recommend you check out Autofac and Ninject. Download the source code and binaries, check out the examples on the wiki&amp;#39;s, and get involved in the discussion groups:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;&lt;span&gt;&lt;span&gt;&lt;a class="" href="http://code.google.com/p/autofac/"&gt;Autofac&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;span&gt;&lt;span&gt;&lt;a class="" href="http://www.ninject.org/"&gt;Ninject&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span&gt;&lt;span&gt;You can find links to samples I have created using Autofac and Ninject in the screencast show notes.&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;
&lt;p&gt;Hope you enjoy the &lt;a class="" href="http://www.pnpguidance.net/Screencast/UnityAspWebDependencyInjectionGuestsAutofacNinject.aspx"&gt;screencast&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/span&gt;&lt;/span&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=180172" width="1" height="1"&gt;</content><author><name>dhayden</name><uri>http://codebetter.com/members/dhayden.aspx</uri></author></entry><entry><title>C# 3.0 Language Features and LINQ Heroes Happen Here Presentation</title><link rel="alternate" type="text/html" href="http://codebetter.com/blogs/david.hayden/archive/2008/06/22/c-3-0-language-features-and-linq-heroes-happen-here-presentation.aspx" /><id>http://codebetter.com/blogs/david.hayden/archive/2008/06/22/c-3-0-language-features-and-linq-heroes-happen-here-presentation.aspx</id><published>2008-06-22T15:29:00Z</published><updated>2008-06-22T15:29:00Z</updated><content type="html">&lt;p&gt;&lt;img title="C# 3.0 Language Examples" style="WIDTH:300px;HEIGHT:226px;" height="226" alt="C# 3.0 Language Examples" src="http://codebetter.com/photos/david.hayden/images/179588/original.aspx" width="300" align="right" /&gt;Yesterday we had our &lt;strong&gt;Heroes Happen Here&lt;/strong&gt; Launch Event in Sarasota, Florida. I presented the new language features in C# 3.0 as well as LINQ. It was rather cool to give this presentation, because&amp;nbsp;a couple weeks earlier I was answering questions and showing demos on these same topics in The Learning Center at TechEd 2008 in Orlando.&lt;/p&gt;
&lt;p&gt;There&amp;nbsp;was a lot of material to cover in an hour, but we got through it all with good participation:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;Object and Collection Initializers&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Automatically Implemented Properties&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Partial Methods&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Implicitly Typed Local Variables&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Anonymous Types&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Extension Methods&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Lambda Expressions and Closures&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Query Expressions&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;For LINQ I showed several demos solving the same challenge using the various flavors of LINQ:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;LINQ To Objects&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;LINQ To XML&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;LINQ To SQL&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;LINQ To DataSets&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;LINQ To Entities&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;ASP.NET Dynamic Data using LINQ To SQL&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;For those looking for resources on C# 3.0, I would first check out the &lt;a class="" href="http://msdn.microsoft.com/en-us/library/aa287558(VS.71).aspx"&gt;C# Language Section on MSDN&lt;/a&gt;, which has links to the language specification, downloadable samples, keywords, etc. If you don&amp;#39;t have Visual Studio, you can download the &lt;a class="" href="http://www.microsoft.com/express/vcsharp/"&gt;Visual C# 2008 Express Edition&lt;/a&gt; for free.&lt;/p&gt;
&lt;p&gt;For LINQ samples, check out the &lt;a class="" href="http://msdn.microsoft.com/en-us/vcsharp/aa336746.aspx"&gt;101 LINQ Examples on MSDN&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you are interested in books, I reviewed 4 that I really enjoyed and highly recommend on C# and LINQ:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;&lt;a class="" href="http://davidhayden.com/blog/dave/archive/2008/06/08/AcceleratedCSharp2008BookReview.aspx"&gt;Accelerated C# 2008&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;a class="" href="http://davidhayden.com/blog/dave/archive/2008/05/23/CSharpInDepthBookReview.aspx"&gt;C# in Depth&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;a class="" href="http://codebetter.com/blogs/david.hayden/archive/2008/04/06/book-review-linq-in-action.aspx"&gt;LINQ in Action&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;a class="" href="http://codebetter.com/blogs/david.hayden/archive/2008/01/12/book-review-pro-linq-language-integrated-query-in-c-2008.aspx"&gt;Pro LINQ&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;If you are looking for bite-sized examples on C# 3.0, I put together a series of C# 3.0 Language Samples when I was learning&amp;nbsp;the new C#&amp;nbsp;3.0 Language Features&amp;nbsp;myself:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;&lt;a id="viewpost.ascx_TitleUrl" href="http://davidhayden.com/blog/dave/archive/2006/11/30/ExtensionMethodsCSharp.aspx"&gt;Extension Methods in C# 3.0 - C# Tutorials and Examples&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;a href="http://davidhayden.com/blog/dave/archive/2006/11/30/LambdaExpressionsExtensionMethodsLINQ.aspx"&gt;Lambda Expressions Extension Methods and LINQ in C# 3.0 - C#3.0 Tutorials and Examples&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;a href="http://davidhayden.com/blog/dave/archive/2006/12/04/ObjectInitializationExpressions.aspx"&gt;C# 3.0 Feature - Object Initialization Expressions - C# 3.0 Examples and Tutorials&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;a href="http://davidhayden.com/blog/dave/archive/2006/12/06/AnonymousTypesCSharp.aspx"&gt;Anonymous Types in C# 3.0 Needed for LINQ&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;a href="http://davidhayden.com/blog/dave/archive/2006/12/06/ImplicitlyTypedLocalVariables.aspx"&gt;Implicitly Typed Local Variables in C# 3.0 - The var Keyword&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;a href="http://davidhayden.com/blog/dave/archive/2006/12/07/AutomaticallyImplementedPropertiesCSharpCompiler.aspx"&gt;Automatically Implemented Properties - Visual Studio Orcas C# Compiler - C# 3.0&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;a href="http://davidhayden.com/blog/dave/archive/2006/12/13/QueryExpressionTranslationAndLINQ.aspx"&gt;Query Expression Translation in C# 3.0 - C# 3.0 Expression Queries and LINQ&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;a href="http://davidhayden.com/blog/dave/archive/2006/12/18/ExpressionTrees.aspx"&gt;Expression Trees in C# 3.0 - C# 3.0 Examples and Tutorials&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;a href="http://davidhayden.com/blog/dave/archive/2006/12/21/QueryExpressionsAnonymousTypesLambaExpressions.aspx"&gt;C# 3.0 Features - C# 3.0 Examples - Query Expressions - Anonymous Types - Lamba Expressions - Extension Methods&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;a href="http://davidhayden.com/blog/dave/archive/2006/12/21/BuildExpressionTreesTutorialAndExamples.aspx"&gt;Expression Trees C# 3.0 Part II - Building Expression Trees - C# 3.0 Examples and Tutorials&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;a href="http://davidhayden.com/blog/dave/archive/2007/07/19/PartialMethodsCodeGeneration.aspx"&gt;C# and VB Partial Methods in Orcas Beta 2 for Code Generation - Business Object Validation Example&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;etc...&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;I&amp;nbsp;created some &lt;a class="" href="http://davidhayden.com/blog/dave/category/59.aspx?Show=All"&gt;LINQ To SQL Tutorials&lt;/a&gt; as well. As I mentioned at the presentation, check out &lt;a class="" href="http://codebetter.com/blogs/ian_cooper/archive/2008/04/06/architecting-linq-to-sql-applications-part-8.aspx"&gt;Ian Cooper&amp;#39;s LINQ To SQL Series&lt;/a&gt;. &lt;a class="" href="http://blogs.msdn.com/mattwar/"&gt;Matt Warren&lt;/a&gt; has a great series of articles on building an IQueryable Provider for insight on how LINQ to SQL works.&lt;/p&gt;
&lt;p&gt;Thanks to everyone who attended the &lt;strong&gt;Heroes Happen Here&lt;/strong&gt; Event in Sarasota.&lt;/p&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=179590" width="1" height="1"&gt;</content><author><name>dhayden</name><uri>http://codebetter.com/members/dhayden.aspx</uri></author></entry><entry><title>Unity and ASP.NET Screencast</title><link rel="alternate" type="text/html" href="http://codebetter.com/blogs/david.hayden/archive/2008/06/17/unity-and-asp-net-screencast.aspx" /><id>http://codebetter.com/blogs/david.hayden/archive/2008/06/17/unity-and-asp-net-screencast.aspx</id><published>2008-06-17T18:30:00Z</published><updated>2008-06-17T18:30:00Z</updated><content type="html">&lt;p&gt;&lt;a class="" title="Patterns &amp;amp; Practices Tutorials Samples" href="http://www.pnpguidance.net/"&gt;&lt;img title="Patterns &amp;amp; Practices Guidance" style="BORDER-RIGHT:0px;BORDER-TOP:0px;BORDER-LEFT:0px;WIDTH:230px;BORDER-BOTTOM:0px;HEIGHT:140px;" height="140" alt="Patterns &amp;amp; Practices Guidance" src="http://codebetter.com/photos/david.hayden/images/179381/original.aspx" width="230" align="right" /&gt;&lt;/a&gt;I am still catching up after a week at TechEd and getting used to the fact that the kids are off from School for the summer. Ahhhhh... the joys and challenges of a stay-at-home Dad :)&lt;/p&gt;
&lt;p&gt;This past weekend I downloaded &lt;a class="" href="http://davidhayden.com/blog/dave/archive/2008/06/13/ScreenflowScreencastSoftwareWinsBestMacOSXLeopardApplication.aspx"&gt;Screenflow&lt;/a&gt;, which is a &lt;a class="" href="http://davidhayden.com/blog/dave/archive/2008/06/13/ScreenflowScreencastSoftwareWinsBestMacOSXLeopardApplication.aspx"&gt;screencast application for the Mac&lt;/a&gt;. My goal was to create a new &lt;a class="" href="http://www.pnpguidance.net/Screencast/UnityIoCASPNETScreencastDependencyInjectionWebPages.aspx"&gt;Unity and ASP.NET Screencast&lt;/a&gt; using Screenflow, but I need to spend a bit more time with Screenflow before I go into &amp;quot;production&amp;quot; with it. It is different enough from Camtasia, which I love, such that I need to iron out the use of Visual Studio 2008 in VMware Fusion, Apple Keynotes, the iSight Camera on the MacBook Pro, and the fact that I prefer to do the screencast using my external monitor and headset. Another week and I think I will have it all figured out.&lt;/p&gt;
&lt;p&gt;In the meantime, I went ahead and created the screencast in Camtasia, which is&amp;nbsp;a phenomenal screencast application for the PC.&amp;nbsp;Therefore, if you are interested in seeing one way to get &lt;a class="" href="http://www.pnpguidance.net/Category/Unity.aspx"&gt;Unity IoC&lt;/a&gt; to work in ASP.NET Webforms for dependency injection into your pages, check out the following screencast:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;&lt;span id="ctl00_ContentPlaceHolder1_ThePostTitle"&gt;&lt;a class="" href="http://www.pnpguidance.net/Screencast/UnityIoCASPNETScreencastDependencyInjectionWebPages.aspx"&gt;Unity IoC and ASP.NET Screencast - Dependency Injection into Web Pages&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;span&gt;You can also download the code presented in the screencast.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;The screencast uses a similar technique&amp;nbsp;to what you will&amp;nbsp;find in the &lt;a class="" href="http://www.pnpguidance.net/Category/WebClientSoftwareFactory.aspx"&gt;Web Client Software Factory&lt;/a&gt;, where you can derive your web pages from a base page class and then call &lt;strong&gt;UnityContainer.BuildUp&lt;/strong&gt; on the page to do property injection into the page. Of course, the WCSF does not use Unity, but the techniques are similar. Although I don&amp;#39;t show it, you can use a similar technique for your MasterPages and UserControls.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Hopefully you find the screencast useful.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;On a side-note, you might want to check out &lt;a class="" href="http://www.pnpguidance.net/Post/Ninject10ReleasedLightningFastDependencyInjectionNET.aspx"&gt;Ninject 1.0 - Lightning fast dependency injection for .NET&lt;/a&gt;, which I noticed was released in 1.0. You gotta love the contributions by the developer community.&lt;/span&gt;&lt;/p&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=179382" width="1" height="1"&gt;</content><author><name>dhayden</name><uri>http://codebetter.com/members/dhayden.aspx</uri></author></entry><entry><title>Logging Application Block and Unity Screencast - EntLib 4.0</title><link rel="alternate" type="text/html" href="http://codebetter.com/blogs/david.hayden/archive/2008/06/01/logging-application-block-and-unity-screencast-entlib-4-0.aspx" /><id>http://codebetter.com/blogs/david.hayden/archive/2008/06/01/logging-application-block-and-unity-screencast-entlib-4-0.aspx</id><published>2008-06-02T03:48:00Z</published><updated>2008-06-02T03:48:00Z</updated><content type="html">&lt;p&gt;&lt;a class="" href="http://www.pnpguidance.net/Screencast/EnterpriseLibrary4LoggingApplicationBlockUnityIoCScreencast.aspx"&gt;&lt;img title="Logging Application Block Screencast" style="BORDER-RIGHT:0px;BORDER-TOP:0px;BORDER-LEFT:0px;WIDTH:318px;BORDER-BOTTOM:0px;HEIGHT:283px;" height="283" alt="Logging Application Block Screencast" src="http://codebetter.com/photos/david.hayden/images/178954/original.aspx" width="318" align="right" /&gt;&lt;/a&gt;I created another screencast over the weekend showing how you can integrate Unity with &lt;a class="" href="http://www.pnpguidance.net/Tag/EnterpriseLibrary4.aspx"&gt;Enterprise Library 4.0&lt;/a&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;&lt;span id="ctl00_ContentPlaceHolder1_ThePostTitle"&gt;&lt;a class="" href="http://www.pnpguidance.net/Screencast/EnterpriseLibrary4LoggingApplicationBlockUnityIoCScreencast.aspx"&gt;Enterprise Library 4.0 Logging Application Block and Unity IoC Screencast&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;span&gt;This&amp;nbsp;screencast discusses the Logging Application Block with Unity. The Logging Application Block comes with a LoggingBlockExtension that adds the various configuration information into Unity so you can inject a LogWriter Class into your custom business classes.&amp;nbsp;This is&amp;nbsp;very similar to how the Data Access Application Block works with Unity as I showed in a previous screencast:&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;&lt;span&gt;&lt;span id="ctl00_ContentPlaceHolder1_ThePostTitle"&gt;&lt;a class="" href="http://www.pnpguidance.net/Post/EnterpriseLibrary4DataAccessApplicationBlockDAABUnityIoCScreencast.aspx"&gt;Enterprise Library 4.0 Data Access Application Block ( DAAB ) and Unity IoC Screencast&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;span&gt;&lt;span&gt;The screencast walks through a Model-View-Presenter type scenario where you have an &lt;strong&gt;AddCustomerPresenter&lt;/strong&gt; Class with a dependency on an &lt;strong&gt;ICustomerDataSource&lt;/strong&gt; that has a dependency on the &lt;strong&gt;LogWriter&lt;/strong&gt; Class in the Logging Application Block.&amp;nbsp;The&amp;nbsp;screencast&amp;nbsp;shows how to create the UnityContainer, add the appropriate Enterprise Library Unity Extensions, add additional type mappings, etc. The example uses a simple Rolling&amp;nbsp;Flat File TraceListener and shows you the new Midnight Rollover Setting for incremental daily log files.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;span&gt;If you are interested in the Validation Application Block with Unity, you can also check out that previous screencast as well:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;&lt;span&gt;&lt;span&gt;&lt;span id="ctl00_ContentPlaceHolder1_ThePostTitle"&gt;&lt;a class="" href="http://www.pnpguidance.net/Screencast/EnterpriseLibrary4ValidationApplicationBlockUnityIoCScreencast.aspx"&gt;Enterprise Library 4.0 Validation Application Block and Unity IoC Screencast&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&amp;nbsp;For more information on the Logging Application Block, I have some tutorials that I wrote for Logging Application Block in Enterprise Library 2.0 that essentially still apply:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt; 
&lt;ul&gt;
&lt;div&gt;
&lt;li&gt;&lt;a href="http://davidhayden.com/blog/dave/archive/2006/02/14/2801.aspx"&gt;Enterprise Library Logging Application Block Part I - TraceListeners&lt;/a&gt; 
&lt;li&gt;&lt;a href="http://davidhayden.com/blog/dave/archive/2006/02/15/2802.aspx"&gt;Enterprise Library Logging Application Block Part II - Simple ASP.NET 2.0 Website Example - Logging Unhandled Exceptions&lt;/a&gt; 
&lt;li&gt;&lt;a href="http://davidhayden.com/blog/dave/archive/2006/02/18/2805.aspx"&gt;Enterprise Library Logging Application Block Part III - Programmatically Using Logging Application Block With No Configuration File&lt;/a&gt; 
&lt;li&gt;&lt;a href="http://davidhayden.com/blog/dave/archive/2006/02/19/2806.aspx"&gt;Enterprise Library Logging Application Block Part IV - Conclusion - Free .NET Tutorials and Examples&lt;/a&gt;&lt;/li&gt;&lt;/div&gt;&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I hope the Logging Application Block Screencast proves somewhat useful.&lt;/p&gt;
&lt;p&gt;Dave&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=178955" width="1" height="1"&gt;</content><author><name>dhayden</name><uri>http://codebetter.com/members/dhayden.aspx</uri></author></entry><entry><title>Presenting C# 3.0 and LINQ at Sarasota Florida Visual Studio 2008 Launch Event</title><link rel="alternate" type="text/html" href="http://codebetter.com/blogs/david.hayden/archive/2008/05/31/presenting-c-3-0-and-linq-at-sarasota-florida-visual-studio-2008-launch-event.aspx" /><id>http://codebetter.com/blogs/david.hayden/archive/2008/05/31/presenting-c-3-0-and-linq-at-sarasota-florida-visual-studio-2008-launch-event.aspx</id><published>2008-05-31T19:22:00Z</published><updated>2008-05-31T19:22:00Z</updated><content type="html">&lt;p&gt;Feels weird to have a Visual Studio 2008, SQL Server 2008, and Windows Server 2008 launch events happening in June, but the Sarasota Florida .NET Developer Launch Event is on Saturday, June 21, 2008 at the Sarasota Community Foundation. There are not many details published yet, but unless things change, I will be presenting the new language features in C# 3.0 as well as the various flavors of LINQ. Since I have been presenting on various Visual Studio 2008 SP1 features for quite some time, expect me to sneak in Entity Framework, Astoria, and Dynamic Data whenever possible.&lt;/p&gt;
&lt;p&gt;I haven&amp;#39;t put the presentation together yet, but expect C# 3.0&amp;nbsp;information on:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;Anonymous Types&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Automatically Implemented Properties&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Extension Methods&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Implicitly Typed Local Variables&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Lambda Expressions&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Expression Trees&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Object and Collection Initializers&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Partial Methods&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;With LINQ we will probably dig into:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;LINQ To Objects&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;LINQ To Xml&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;LINQ To DataSets&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;LINQ To SQL&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;LINQ To Entities&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;and then if possible I will briefly toss in the following topics as related to the above:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;ADO.NET Entity Framework and EntityDataSource&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;ADO.NET Data Services ( Astoria )&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;ASP.NET Dynamid Data&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;All of this is tentative based on the amount of time in the session, etc., but I hope to see you at the &lt;a class="" href="http://www.flacodebrew.net/Post/SarasotaVisualStudio2008SQLServer2008WindowsServer2008LaunchEvent.aspx"&gt;Sarasota Launch Event&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a class="" title="Florida .NET Developer" href="http://www.davidhayden.com/"&gt;David Hayden&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=178923" width="1" height="1"&gt;</content><author><name>dhayden</name><uri>http://codebetter.com/members/dhayden.aspx</uri></author></entry><entry><title>Day of Patterns &amp; Practices - Your Thoughts? Catch me at Party at Palermo, TechEd, Florida Tweener</title><link rel="alternate" type="text/html" href="http://codebetter.com/blogs/david.hayden/archive/2008/05/31/day-of-patterns-amp-practices-your-thoughts-catch-me-at-party-at-palermo-teched-florida-tweener.aspx" /><id>http://codebetter.com/blogs/david.hayden/archive/2008/05/31/day-of-patterns-amp-practices-your-thoughts-catch-me-at-party-at-palermo-teched-florida-tweener.aspx</id><published>2008-05-31T18:46:00Z</published><updated>2008-05-31T18:46:00Z</updated><content type="html">&lt;p&gt;&lt;a class="" href="http://www.pnpguidance.net/"&gt;&lt;img style="BORDER-RIGHT:0px;BORDER-TOP:0px;BORDER-LEFT:0px;WIDTH:200px;BORDER-BOTTOM:0px;HEIGHT:210px;" height="210" src="http://codebetter.com/photos/david.hayden/images/178920/original.aspx" width="200" align="right" alt="" /&gt;&lt;/a&gt;I run a very humble free event, called &lt;a class="" href="http://www.pnpguidance.net/FreeDayPatternsAndPracticesTampa2008.aspx"&gt;Day of Patterns &amp;amp; Practices&lt;/a&gt;, which is a day long event in Tampa, Florida where we discuss various proven practices as well as&amp;nbsp;tools and technologies that support those practices. The event has a website, called &lt;a class="" href="http://www.pnpguidance.net/"&gt;PnPGuidance&lt;/a&gt;, that started out as a support site for these events but has grown into a resource on Patterns &amp;amp; Practices in general. Although a little known fact, the Day of Patterns &amp;amp; Practices was the first &amp;quot;Day Of&amp;quot; event established in Florida :)&lt;/p&gt;
&lt;p&gt;I snag two of the coolest and&amp;nbsp;generous people&amp;nbsp;you will ever meet on this planet, Jeff Barnes and Stan Schultes, to help me deliver&amp;nbsp;material that is practical and useful to day-to-day development. Although not necessarily the goal, the event&amp;nbsp;in the past&amp;nbsp;has&amp;nbsp;had a Microsoft Patterns &amp;amp; Practices focus where we talk about Enterprise Library and the numerous software factories.&lt;/p&gt;
&lt;p&gt;For example, the first event in May 2007 focused on the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;Enterprise Library&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Smart Client Software Factory&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Web Client Software Factory&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Web Service Software Factory: ASMX and WCF&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;The second event in Jan 2008 focused on:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;Web Client Software Factory 2.0&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Web Service Software Factory: Modeling Edition&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Test-Driven Development&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;ASP.NET MVC Framework&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Recently with the release of Enterprise Library 4.0, ObjectBuilder 2.0, and Unity 1.1, I am already thinking about the next event with presentations such as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;Enterprise Library 4.0&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;ObjectBuilder 2.0&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Unity 1.1&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Prism ( or maybe Caliburn )&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;As I think about the possible topics and the timeframe of the next Day of Patterns &amp;amp; Practices, a few things come to mind:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;div&gt;I don&amp;#39;t want to do these events too often so that they lose their value.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;I worry about too much of a focus on Microsoft Patterns &amp;amp; Practices.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;I don&amp;#39;t know if the developer need is breadth or depth on these topics.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;How can I expand this to more than just Tampa, Florida?&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;Since doing these events, I have received hundreds of emails from various developers, developer groups, and events both locally and internationally, to present on these topics as well as&amp;nbsp;asking if I offered training or had an event schedule where I might be traveling on these topics. Truth be told, although I consult and present on these topics to clients, the Day of Patterns &amp;amp; Practices Event is just a once or twice a year event that has been focused in Tampa, Florida&amp;nbsp;( closest Microsoft venue to my house :). I prefer to keep them free, informal, but very pragmatic and useful for day-to-day development.&lt;/p&gt;
&lt;p&gt;The original idea was to present these topics as more of a road show across Florida, but&amp;nbsp;If you&amp;nbsp;aren&amp;#39;t familiar with&amp;nbsp;the Florida .NET Developer Community, we literally have code camps, developer groups meetings, geek luncheons, geek laagers, &amp;quot;Day Of&amp;quot; events, launch events, pub clubs, etc. happening all the time. Florida is a very close knit and busy .NET Developer Community which makes it difficult to find the time and a venue for the Day of Patterns &amp;amp; Practices Events, because&amp;nbsp;the presenters present at other events all across Florida. You can thank the very cool Joe Healy, Russ Fustino, Dave Noderer, Shawn Weisfield, etc. and&amp;nbsp;others that&amp;nbsp;suport the&amp;nbsp;cool development environment. Btw, Kyle Baley&amp;#39;s Bahama .NET Developer Group is an honorary Florida .NET Developer Group :)&lt;/p&gt;
&lt;p&gt;That being said, I will be at TechEd 2008, the Florida Tweener, and&amp;nbsp;Party&amp;nbsp;at Palermo&amp;nbsp;in Orlando next week and I would love to hear from others as to what you would like to see from the Day of Patterns &amp;amp; Practices Event.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;What would you like to see as the next topics?&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Are you looking for breadth or in-depth talks?&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Would you prefer a single day event, multiple days, or possibly a series of evening events?&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Would you be interested in a Day of Patterns &amp;amp; Practices - ALT.NET Version?&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;How often would you like these events?&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Would you prefer it to be run as a paid course event with more structure?&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;Would you like to see it in your city?&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;I would love to talk with other developers next week about anything :) as well as what you would like to see from the Day of Patterns &amp;amp; Practices Event. I am considering the next event to be in August in Tampa, Florida with the above presentations, but I am open to ideas and feedback. If you are interested in speaking, I am also always looking for knowledgeable developers to talk on such topics.&lt;/p&gt;
&lt;p&gt;See you next week,&lt;/p&gt;
&lt;p&gt;Dave&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=178922" width="1" height="1"&gt;</content><author><name>dhayden</name><uri>http://codebetter.com/members/dhayden.aspx</uri></author></entry><entry><title>ReSharper Introspection Severity and the var Keyword</title><link rel="alternate" type="text/html" href="http://codebetter.com/blogs/david.hayden/archive/2008/05/29/resharper-introspection-severity-and-the-var-keyword.aspx" /><id>http://codebetter.com/blogs/david.hayden/archive/2008/05/29/resharper-introspection-severity-and-the-var-keyword.aspx</id><published>2008-05-29T17:38:00Z</published><updated>2008-05-29T17:38:00Z</updated><content type="html">&lt;p&gt;I flagged a blog post the other day from&amp;nbsp;a news&amp;nbsp;feed where someone implied that they had removed ReSharper 4.0 Beta because they did not agree with the ReSharper 4.0 &lt;u&gt;hints&lt;/u&gt; regarding the use of the &lt;strong&gt;var&lt;/strong&gt; keyword. If you install the ReSharper 4.0 beta and don&amp;#39;t change any of the Introspection Settings in the options, ReSharper will offer you the &lt;u&gt;hint&lt;/u&gt; of using the var keyword when declaring variables, etc. It may seem like a suggestion, warning, or even an error when you see the little squiggle, but hey, it&amp;#39;s a hint.&lt;/p&gt;
&lt;p&gt;Now the beauty about these little hints, suggestions, etc.&amp;nbsp;is that&amp;nbsp;they teach you a little about what is possible in&amp;nbsp;your programming&amp;nbsp;language. Maybe you didn&amp;#39;t realize the var keyword existed and when you could and could not take advantage of it. Better yet, and here is the real kicker, you have the option of adjusting the settings:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;img title="ReSharper 4.0" style="WIDTH:488px;HEIGHT:300px;" height="300" alt="ReSharper 4.0" src="http://codebetter.com/photos/david.hayden/images/178840/original.aspx" width="488" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Therefore based on your coding standards and beliefs, you have the ability to personally adjust the settings for the various hints, suggestions, warnings, errors, etc. So before you jump into the mistake of un-installing&amp;nbsp;ReSharper ( or any tool )&amp;nbsp;on such a coding style disagreement, you may want to see if you can adjust the settings to your particular style :)&lt;/p&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=178842" width="1" height="1"&gt;</content><author><name>dhayden</name><uri>http://codebetter.com/members/dhayden.aspx</uri></author></entry><entry><title>EntLib 4.0 Validation Application Block and Unity Screencast</title><link rel="alternate" type="text/html" href="http://codebetter.com/blogs/david.hayden/archive/2008/05/26/entlib-4-0-validation-application-block-and-unity-screencast.aspx" /><id>http://codebetter.com/blogs/david.hayden/archive/2008/05/26/entlib-4-0-validation-application-block-and-unity-screencast.aspx</id><published>2008-05-27T03:05:00Z</published><updated>2008-05-27T03:05:00Z</updated><content type="html">&lt;p&gt;&lt;a class="" title="Validation Application Block Screencast" href="http://www.pnpguidance.net/Screencast/EnterpriseLibrary4ValidationApplicationBlockUnityIoCScreencast.aspx"&gt;&lt;img style="BORDER-RIGHT:0px;BORDER-TOP:0px;BORDER-LEFT:0px;WIDTH:318px;BORDER-BOTTOM:0px;HEIGHT:283px;" height="283" src="http://codebetter.com/photos/david.hayden/images/178732/original.aspx" width="318" align="right" alt="" /&gt;&lt;/a&gt;In my last screencast I talked about integrating the Data Access Application Block with &lt;a class="" href="http://www.pnpguidance.net/Category/Unity.aspx"&gt;Unity&lt;/a&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;&lt;a href="http://www.pnpguidance.net/Screencast/EnterpriseLibrary4DataAccessApplicationBlockDAABUnityIoCScreencast.aspx"&gt;Enterprise Library 4.0 Data Access Application Block ( DAAB ) and Unity IoC Screencast&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;In the following screencast on the Validation Application Block in &lt;a class="" title="Enterprise Library 4.0" href="http://www.pnpguidance.net/Tag/EnterpriseLibrary4.aspx"&gt;Enterprise Library 4.0&lt;/a&gt;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;&lt;a href="http://www.pnpguidance.net/Screencast/EnterpriseLibrary4ValidationApplicationBlockUnityIoCScreencast.aspx"&gt;Enterprise Library 4.0 Validation Application Block and Unity IoC Screencast&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;we don&amp;#39;t need to discuss Unity Extensions like in the previous screencast, because we can get really nice injection of validator classes, such as IValidator&amp;lt;Customer&amp;gt;, into our custom classes by creating a simple wrapper around the Validation Application Block and registering the wrapper with Unity.&lt;/p&gt;
&lt;p&gt;The screencast shows how to create a simple wrapper around the Validation Application Block, register it with Unity.RegisterType, access the custom validator classes via Unity.Resolve, and have Unity inject those validator classes into custom classes, such as an AddCustomerPresenter Class. The same techniques will work if you are using the ASP.NET MVC Framework and injecting validator classes into a Controller.&lt;/p&gt;
&lt;p&gt;For more information on the Validation Application Block:&lt;/p&gt;
&lt;ul&gt;
&lt;div&gt;
&lt;li&gt;&lt;a href="http://davidhayden.com/blog/dave/archive/2006/12/23/ValidationApplicationBlockEnterpriseLibrary3PartI.aspx"&gt;Validation Application Block in Enterprise Library 3.0 - Using Validation Facade Class - Part I&lt;/a&gt; 
&lt;li&gt;&lt;a href="http://davidhayden.com/blog/dave/archive/2006/12/24/ValidationApplicationBlockEnterpriseLibrary3PartII.aspx"&gt;Validation Application Block in Enterprise Library 3.0 - ValidationFactory Class - Part II&lt;/a&gt; 
&lt;li&gt;&lt;a href="http://davidhayden.com/blog/dave/archive/2006/12/25/ValidationApplicationBlockEnterpriseLibrary3PartIII.aspx"&gt;Validation Application Block Ruleset in Enterprise Library 3.0 - Enterprise Library 3.0 Tutorials - Part III&lt;/a&gt; 
&lt;li&gt;&lt;a href="http://davidhayden.com/blog/dave/archive/2006/12/25/ValidationApplicationBlockEnterpriseLibrary3PartIV.aspx"&gt;Validation Application Block - Rules in External XML Configuration File - App.Config Web.Config - Enterprise Library 3.0 - Part IV&lt;/a&gt;&lt;/li&gt;&lt;/div&gt;&lt;/ul&gt;
&lt;p&gt;You can also check out my Unity Dependency Injection Screencasts:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;&lt;a href="http://www.pnpguidance.net/Screencast/UnityIoCDependencyInjectionASPNETMVCFrameworkScreencast.aspx"&gt;Unity IoC - Dependency Injection in ASP.NET MVC Framework Screencast&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;a href="http://www.pnpguidance.net/Screencast/UnityDependencyInjectionIoCScreencast.aspx"&gt;Unity Dependency Injection IoC Screencast&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Thanks for all the positive feedback on the previous screencast :) Enjoy!&lt;/p&gt;
&lt;p&gt;David Hayden&lt;/p&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=178733" width="1" height="1"&gt;</content><author><name>dhayden</name><uri>http://codebetter.com/members/dhayden.aspx</uri></author></entry><entry><title>Enterprise Library 4.0 DAAB with Unity Screencast</title><link rel="alternate" type="text/html" href="http://codebetter.com/blogs/david.hayden/archive/2008/05/20/enterprise-library-4-0-daab-with-unity-screencast.aspx" /><id>http://codebetter.com/blogs/david.hayden/archive/2008/05/20/enterprise-library-4-0-daab-with-unity-screencast.aspx</id><published>2008-05-20T19:44:00Z</published><updated>2008-05-20T19:44:00Z</updated><content type="html">&lt;p&gt;&lt;a class="" href="http://www.pnpguidance.net/Post/EnterpriseLibrary4DataAccessApplicationBlockDAABUnityIoCScreencast.aspx"&gt;&lt;img title="Enterprise Library 4.0 Screencast" style="BORDER-RIGHT:0px;BORDER-TOP:0px;BORDER-LEFT:0px;WIDTH:318px;BORDER-BOTTOM:0px;HEIGHT:283px;" height="283" alt="Enterprise Library 4.0 Screencast" src="http://codebetter.com/photos/david.hayden/images/178522/original.aspx" width="318" align="right" /&gt;&lt;/a&gt;I received a few requests for a screencast to go along with my tutorial:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;&lt;a href="http://davidhayden.com/blog/dave/archive/2008/05/19/EnterpriseLibrary4DataAccessApplicationBlockDAABUnityIoCTutorial.aspx"&gt;Enterprise Library 4.0 Data Access Application Block ( DAAB ) and Unity IoC Tutorial - DataAccessBlockExtension&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;so I went ahead and cooked one up:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;&lt;span id="ctl00_ContentPlaceHolder1_ThePostTitle"&gt;&lt;a class="" href="http://www.pnpguidance.net/Post/EnterpriseLibrary4DataAccessApplicationBlockDAABUnityIoCScreencast.aspx"&gt;Enterprise Library 4.0 Data Access Application Block ( DAAB ) and Unity IoC Screencast&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;span&gt;The screencast walks you through creating a console application that uses the Enterprise Library 4.0 Data Access Application Block for use with &lt;a class="" href="http://www.pnpguidance.net/Category/Unity.aspx"&gt;Unity&lt;/a&gt;. I show how to obtain database classes using Unity.Resolve&amp;lt;Database&amp;gt; as well as how to inject the database classes into your custom classes ( CustomerDAO in this case ).&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;I discuss a couple of the Unity Extension Classes, &lt;a class="" href="http://www.pnpguidance.net/Tag/EnterpriseLibraryCoreExtension.aspx"&gt;EnterpriseLibraryCoreExtension&lt;/a&gt; and &lt;a class="" href="http://www.pnpguidance.net/Tag/DataAccessBlockExtension.aspx"&gt;DataAccessBlockExtension&lt;/a&gt;, and jump into Reflector to show you what the DataAccessBlockExtension is doing behind the scenes.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;You might want to take a peek at my article on the &lt;strong&gt;DatabaseConfigurationView&lt;/strong&gt; Class to get more information on how&amp;nbsp;the DataAccessBlockExtension&amp;nbsp;gets access to the &lt;a href="http://davidhayden.com/blog/dave/archive/2006/01/08/2686.aspx"&gt;Data Access Application Block&lt;/a&gt; Configuration Information to populate the UnityContainer:&lt;/span&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;&lt;span&gt;&lt;a href="http://davidhayden.com/blog/dave/archive/2007/03/13/DatabaseConfigurationViewClassDataAccessApplicationBlock.aspx"&gt;&lt;font face="Verdana" color="#0000ff" size="2"&gt;DatabaseConfigurationView Class in Enterprise Library Data Access Application Block - Read Database Connection Strings and Configuration&lt;/font&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;I hope the screencast is useful. Feel free to browse through any of the other &lt;a class="" href="http://www.pnpguidance.net/Screencasts.aspx"&gt;screencasts&lt;/a&gt; as well.&lt;/span&gt;&lt;/p&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=178524" width="1" height="1"&gt;</content><author><name>dhayden</name><uri>http://codebetter.com/members/dhayden.aspx</uri></author><category term="Featured" scheme="http://codebetter.com/blogs/david.hayden/archive/tags/Featured/default.aspx" /></entry><entry><title>Unity 1.1 Released and Included in Enterprise Library 4.0</title><link rel="alternate" type="text/html" href="http://codebetter.com/blogs/david.hayden/archive/2008/05/19/unity-1-1-released-and-included-in-enterprise-library-4-0.aspx" /><id>http://codebetter.com/blogs/david.hayden/archive/2008/05/19/unity-1-1-released-and-included-in-enterprise-library-4-0.aspx</id><published>2008-05-19T04:33:00Z</published><updated>2008-05-19T04:33:00Z</updated><content type="html">&lt;p&gt;Nothing scarier than hearing about Unity 1.1 being released after Enterprise Library 4.0, but rest assured Unity 1.1 is included with Enterprise Library 4.0.&lt;/p&gt;
&lt;p&gt;Unity 1.1 fixes a few bugs and has other enhancements:&lt;/p&gt;
&lt;ul&gt;
&lt;div&gt;
&lt;li&gt;Removal of all obsolete ObjectBuilder code. 
&lt;li&gt;Fix for a bug when using lifetime managers with open generic types. 
&lt;li&gt;Fix for a bug where the RegisterType method was overriding the RegisterInstance method. 
&lt;li&gt;Performance improvement when resolving singletons. 
&lt;li&gt;Exposure of some additional internal classes as public to make it easier write extensions that need to resolve dependencies in a customized way. 
&lt;li&gt;Addition of try...catch blocks to improve the error messages returned when value resolution fails.&lt;/li&gt;&lt;/div&gt;&lt;/ul&gt;
&lt;p&gt;You can download Unity 1.1 &lt;a class="" href="http://www.microsoft.com/downloads/details.aspx?FamilyId=6A9E363C-8E0A-48D3-BBE4-C2F36423E2DF&amp;amp;displaylang=en"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;More importantly, however, I had a chance to play with Enterprise Library 4.0 and Unity this evening and created a tutorial that shows you how to use Unity with the Data Access Application Block:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="" href="http://davidhayden.com/blog/dave/archive/2008/05/19/EnterpriseLibrary4DataAccessApplicationBlockDAABUnityIoCTutorial.aspx"&gt;Enterprise Library 4.0 Data Access Application Block ( DAAB ) and Unity IoC Tutorial - DataAccessBlockExtension&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;The other application blocks work similarly so hopefully&amp;nbsp;the tutorial&amp;nbsp;gives you an idea on how it all works.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=178399" width="1" height="1"&gt;</content><author><name>dhayden</name><uri>http://codebetter.com/members/dhayden.aspx</uri></author></entry><entry><title>Enterprise Library 4.0 Released with Unity IoC Integration</title><link rel="alternate" type="text/html" href="http://codebetter.com/blogs/david.hayden/archive/2008/05/16/enterprise-library-4-0-released-with-unity-ioc-integration.aspx" /><id>http://codebetter.com/blogs/david.hayden/archive/2008/05/16/enterprise-library-4-0-released-with-unity-ioc-integration.aspx</id><published>2008-05-17T03:20:00Z</published><updated>2008-05-17T03:20:00Z</updated><content type="html">&lt;p&gt;I was wondering just the other day when &lt;strong&gt;Enterprise Library 4.0&lt;/strong&gt; might be released and low and behold today was the day.&lt;/p&gt;
&lt;p&gt;There are no new application blocks with Enterprise Library 4.0, but there are a few enhancements to existing blocks and the much anticipated Unity IoC Integration. If you so desire, you can now use Unity to wire up your application blocks when using Enterprise Library in your applications. This is, of course, optional. You&amp;nbsp;can use the existing configuration model that has been at the core of Enterprise Library since 2.0 and replaced the Configuration Application Block.&lt;/p&gt;
&lt;p&gt;You can download Enterprise Library 4.0 &lt;a class="" href="http://www.microsoft.com/downloads/details.aspx?FamilyId=90DE37E0-7B42-4044-99BE-F8ECFBBC5B65&amp;amp;displaylang=en"&gt;here&lt;/a&gt;. I recommend you visit the &lt;a class="" href="http://msdn.microsoft.com/en-us/library/cc467894.aspx"&gt;landing page&lt;/a&gt; to learn about all the particulars of Enterprise Library 4.0.&lt;/p&gt;
&lt;p&gt;If you are a veteran Enterprise Library developer, it is essentially business as usual unless you choose to use Unity for configuration and you haven&amp;#39;t played with it yet. For more information on Unity, I have a couple of &lt;a class="" href="http://www.pnpguidance.net/Screencasts.aspx"&gt;Unity Screencasts&lt;/a&gt; and a number of &lt;a class="" href="http://www.pnpguidance.net/Category/Unity.aspx"&gt;Unity Tutorials&lt;/a&gt; on PnPGuidance:&lt;/p&gt;
&lt;ul&gt;
&lt;div&gt;
&lt;li&gt;&lt;a href="http://www.pnpguidance.net/Screencast/UnityDependencyInjectionIoCScreencast.aspx"&gt;Unity Dependency Injection IoC Screencast&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.pnpguidance.net/Screencast/UnityIoCDependencyInjectionASPNETMVCFrameworkScreencast.aspx"&gt;Unity IoC - Dependency Injection in ASP.NET MVC Framework Screencast&lt;/a&gt;&lt;/li&gt;&lt;/div&gt;&lt;/ul&gt;
&lt;p&gt;Unity is pretty simple to use as dependency injection / IoC&amp;nbsp;tools go.&lt;/p&gt;
&lt;p&gt;Over the years I have probably written well over 50 - 100 tutorials on Enterprise Library. Down right pathetic as to how much I have written on Enterprise Library actually :) It was a great learning experience, however. For the most part all of the tutorials still apply, so if you are just learning Enterprise Library feel free to go through them. Even though I broke them down into &lt;a class="" href="http://davidhayden.com/blog/dave/category/50.aspx?Show=All"&gt;Enterprise Library 2.0 Tutorials&lt;/a&gt; and &lt;a class="" href="http://davidhayden.com/blog/dave/category/60.aspx?Show=All"&gt;Enterprise Library 3.0 Tutorials&lt;/a&gt;, the information is still accurate for Enterprise Library 4.0 with possibly a few exceptions.&lt;/p&gt;
&lt;p&gt;I often get asked where to start with all the tutorials, so I usually just point people to the following introductory tutorials that focus on the fundamentals for about each application block.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://davidhayden.com/blog/dave/archive/2006/01/08/2686.aspx"&gt;Enterprise Library 2.0 Data Access Application Block&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://davidhayden.com/blog/dave/archive/2006/02/14/2801.aspx"&gt;Enterprise Library 2.0 Logging Application Block Part I - TraceListeners&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://davidhayden.com/blog/dave/archive/2006/02/15/2802.aspx"&gt;Enterprise Library 2.0 Logging Application Block Part II - Simple ASP.NET 2.0 Website Example - Logging Unhandled Exceptions&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://davidhayden.com/blog/dave/archive/2006/02/18/2805.aspx"&gt;Enterprise Library 2.0 Logging Application Block Part III - Programmatically Using Logging Application Block With No Configuration File&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://davidhayden.com/blog/dave/archive/2006/02/19/2806.aspx"&gt;Enterprise Library 2.0 Logging Application Block Part IV - Conclusion - Free .NET Tutorials and Examples&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://davidhayden.com/blog/dave/archive/2006/02/25/2814.aspx"&gt;Caching Application Block - Enterprise Library 2.0 - IsolatedStorage and Database Caching&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://davidhayden.com/blog/dave/archive/2006/03/02/2870.aspx"&gt;Cryptography Application Block in Enterprise Library 2.0 - Symmetric Encryption Providers - RijndaelManaged ( AES ) - Part I&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://davidhayden.com/blog/dave/archive/2006/03/05/2875.aspx"&gt;Hashing Passwords Using Enterprise Library 2.0 Cryptography Application Block - SHA1Managed Hash Provider&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://davidhayden.com/blog/dave/archive/2006/12/23/ValidationApplicationBlockEnterpriseLibrary3PartI.aspx"&gt;Validation Application Block in Enterprise Library 3.0 - Using Validation Facade Class - Part I&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://davidhayden.com/blog/dave/archive/2006/12/24/ValidationApplicationBlockEnterpriseLibrary3PartII.aspx"&gt;Validation Application Block in Enterprise Library 3.0 - ValidationFactory Class - Part II&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://davidhayden.com/blog/dave/archive/2006/12/25/ValidationApplicationBlockEnterpriseLibrary3PartIII.aspx"&gt;Validation Application Block Ruleset in Enterprise Library 3.0 - Enterprise Library 3.0 Tutorials - Part III&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://davidhayden.com/blog/dave/archive/2006/12/25/ValidationApplicationBlockEnterpriseLibrary3PartIV.aspx"&gt;Validation Application Block - Rules in External XML Configuration File - App.Config Web.Config - Enterprise Library 3.0 - Part IV&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://davidhayden.com/blog/dave/archive/2007/03/01/EnvironmentalOverridesEnterpriseLibrary3.aspx"&gt;Environmental Overrides in Enterprise Library 3.0 - Managing Development, Test, Staging, and Production Configurations Made Easy!&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://davidhayden.com/blog/dave/archive/2007/03/03/PolicyInjectionApplicationBlockSample.aspx"&gt;Policy Injection Application Block Sample - Enterprise Library 3.0 Coolness&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://davidhayden.com/blog/dave/archive/2007/03/06/PolicyInjectionApplicationBlockExampleLogging.aspx"&gt;Policy Injection Application Block Example - Enterprise Library 3.0 Tutorials&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://davidhayden.com/blog/dave/archive/2007/04/03/PolicyInjectionApplicationBlockCrosscuttingConcernsVsBusinessLogic.aspx"&gt;Enterprise Library 3.0 Policy Injection Application Block - Crosscutting Concerns vs. Business Logic in AOP&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;You can also find some Enterprise Library Tutorials on &lt;a class="" title="Patterns &amp;amp; Practices Guidance" href="http://www.pnpguidance.net/"&gt;PnPGuidance&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Hope this helps,&lt;/p&gt;
&lt;p&gt;Dave&lt;/p&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=178337" width="1" height="1"&gt;</content><author><name>dhayden</name><uri>http://codebetter.com/members/dhayden.aspx</uri></author></entry><entry><title>Visual Studio 2008 SP1 "Background Compiling" for C#</title><link rel="alternate" type="text/html" href="http://codebetter.com/blogs/david.hayden/archive/2008/05/13/visual-studio-2008-sp1-quot-background-compiling-quot-for-c.aspx" /><id>http://codebetter.com/blogs/david.hayden/archive/2008/05/13/visual-studio-2008-sp1-quot-background-compiling-quot-for-c.aspx</id><published>2008-05-13T18:41:00Z</published><updated>2008-05-13T18:41:00Z</updated><content type="html">&lt;p&gt;I don&amp;#39;t know the proper term for the new functionality in Visual Studio 2008 SP1 for C# that does code anaysis and finds compilation errors without an explicit compile ( what I would term &amp;quot;Background Compilation&amp;quot; ), but Scott Guthrie provides the following description:&lt;/p&gt;
&lt;p&gt;&amp;quot;The C# code editor now identifies and displays red squiggle errors for many semantic code issues that previously required an explicit compilation to identify.&amp;nbsp; For example, if you try to declare and use an unknown type in the C# code-editor today you won&amp;#39;t see a compile error until you do a build.&amp;nbsp; Now with SP1 you&amp;#39;ll see live red squiggle errors immediately (no explicit compile required):&amp;quot;&lt;/p&gt;
&lt;p&gt;Holy time savings Batman, this is much needed functionality for those developers who are not using ReSharper or another tool that provides similar code analysis in the background. I had to jump on my development machine that is &lt;u&gt;not&lt;/u&gt; running the Visual Studio 2008 SP1 Beta just to make sure this background compilation wasn&amp;#39;t already being done in Visual Studio 2008.&lt;/p&gt;
&lt;p&gt;I didn&amp;#39;t put the feature through a thorough testing, but I was just happy that it would identify unknown classes and other little things. The red squiggles are a huge time saver.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img style="WIDTH:469px;HEIGHT:380px;" height="380" src="http://codebetter.com/photos/david.hayden/images/178161/original.aspx" width="469" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img style="WIDTH:490px;HEIGHT:382px;" height="382" src="http://codebetter.com/photos/david.hayden/images/178163/original.aspx" width="490" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;This is worth Visual Studio 2008 SP1 alone. And, no, I don&amp;#39;t know what performance impact this has on large projects :)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Recent Visual Studio 2008 SP1 Beta Posts:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;&lt;a href="http://davidhayden.com/blog/dave/archive/2008/05/12/EntityDataSourceADONETEntityDataModelVisualStudio2008SP1.aspx"&gt;EntityDataSource Companion to ADO.NET Entity Data Model in Visual Studio 2008 SP1&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;a href="http://davidhayden.com/blog/dave/archive/2008/05/13/DynamicDataEntitiesWebsitesEntityDataSourceASPNETWebsiteScaffolding.aspx"&gt;Dynamic Data Entities Websites - EntityDataSource and ASP.NET Website Scaffolding - Rapid Application Development ( RAD )&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=178166" width="1" height="1"&gt;</content><author><name>dhayden</name><uri>http://codebetter.com/members/dhayden.aspx</uri></author></entry><entry><title>Book Review: C# in Depth</title><link rel="alternate" type="text/html" href="http://codebetter.com/blogs/david.hayden/archive/2008/05/08/book-review-c-in-depth.aspx" /><id>http://codebetter.com/blogs/david.hayden/archive/2008/05/08/book-review-c-in-depth.aspx</id><published>2008-05-08T14:42:00Z</published><updated>2008-05-08T14:42:00Z</updated><content type="html">&lt;p&gt;&lt;a href="http://www.amazon.com/gp/product/1933988363?ie=UTF8&amp;amp;tag=davidhacom-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=1933988363"&gt;&lt;img src="http://codebetter.com/photos/david.hayden/images/177873/original.aspx" align="right" border="0" alt="" /&gt;&lt;/a&gt;&lt;img style="BORDER-RIGHT:medium none;BORDER-TOP:medium none;MARGIN:0px;BORDER-LEFT:medium none;BORDER-BOTTOM:medium none;" height="1" alt="" src="http://www.assoc-amazon.com/e/ir?t=davidhacom-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=1933988363" width="1" border="0" /&gt;While hanging at the pool last night with the kids, I finished an excellent book on C# by Jon Skeet, called &lt;a href="http://www.amazon.com/gp/product/1933988363?ie=UTF8&amp;amp;tag=davidhacom-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=1933988363"&gt;C# in Depth: What you need to master C# 2 and 3&lt;/a&gt;&lt;img style="BORDER-RIGHT:medium none;BORDER-TOP:medium none;MARGIN:0px;BORDER-LEFT:medium none;BORDER-BOTTOM:medium none;" height="1" alt="" src="http://www.assoc-amazon.com/e/ir?t=davidhacom-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=1933988363" width="1" border="0" /&gt;. The book is about 370 pages, but feels like twice that size base on&amp;nbsp;the depth of its content. Jon not only shows you what is possible with all the new language features in C# 2 and 3, but also explains why they are possible, the problems they solve in previous versions of the language, and thoughts on when and how to use them. By combining both the C# 2 and C# 3 languages features in a single book with an emphasis on the evolution of the language, you end up with a clear roadmap of C# and an appreciation and deeper understanding&amp;nbsp;as to&amp;nbsp;why you are using certain features as you develop.&lt;/p&gt;
&lt;p&gt;In my opinion, it was enjoyable to read the C# 2 coverage in the book as much as it was to read the C# 3 coverage. If you feel you could use a better understanding of delegates, generics, nullable types, anonymous methods, and iterators, Jon goes into it pretty deep. Along the way he is going to challenge a lot of myths, explain a number of concepts like covariance and contravariance, show a lot more type inference occurring than I originally thought was possible, and provide numerous code snippets that will give you a better command of using those features to their fullest. During his trip into C# 2, he&amp;nbsp;provides you with a look back at C# 1 so you understand the evolution that is occuring as well as giving you sneak peeks at C# 3 when appropriate.&lt;/p&gt;
&lt;p&gt;One of the big values to note is that Jon is mainly focusing on the C# language and at times showing the framework taking advantage of those features. This gives you an appreciation for both the C# language and the .NET Framework and a clear understanding of both.&lt;/p&gt;
&lt;p&gt;Jon then dives into the what, how, and why of the C# 3 features ( and compiler features ): automatically implemented properties, implicitly typed local variables, object and collection intializers, implicitly typed arrays, anonymous types, lambda expressions, expression trees, extension methods, etc. While discussing these features, we always get the reasons behind the new features in terms of the previous versions of the C# language. What was nice here is that we weren&amp;#39;t getting pounded with LINQ when talking about C# 3. We get plenty of that from a LINQ book and it was nice to stay focused on the C# 3 language itself. I particularly enjoyed the topics of lambda expressions and expression trees as they are a probably a bit more difficult to digest of all the new features. I also love the whole evolution of delegates as we move from anonymous methods to lambda expressions. I can never read too much of that :) We also get a nice combination of code samples mixing C# 2 and C# 3 features in numerous ways to show off the possibilities.&lt;/p&gt;
&lt;p&gt;Last,&amp;nbsp;C# In Depth&amp;nbsp;gives you&amp;nbsp;a quick introduction of LINQ&amp;nbsp;and its flavors of&amp;nbsp;LINQ To Objects, LINQ To Datasets, and LINQ To SQL. This isn&amp;#39;t a LINQ book, so&amp;nbsp;you&amp;#39;re not getting&amp;nbsp;in-depth coverage in these areas, but rather just an introduction to give you a taste for&amp;nbsp;applying the C# features covered as they pertain to LINQ. Think of the coverage as a transition to a book on LINQ.&lt;/p&gt;
&lt;p&gt;Overall, I cannot think of anything I would really change about the book. The coverage was solid. I will say it is a challenging read, so don&amp;#39;t think you are going to breeze right through it. I ended up reading several sections over and over and often had Snippet Compiler running on the laptop to&amp;nbsp;run the code snippets. Because the book is frequently looking back to previous versions of C# or looking ahead when appropriate to give you the full picture, you need to stay on your toes. It is all worth it in the end, however :)&lt;/p&gt;
&lt;p&gt;I highly recommend &lt;a href="http://www.amazon.com/gp/product/1933988363?ie=UTF8&amp;amp;tag=davidhacom-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=1933988363"&gt;C# in Depth&lt;/a&gt;&lt;img style="BORDER-RIGHT:medium none;BORDER-TOP:medium none;MARGIN:0px;BORDER-LEFT:medium none;BORDER-BOTTOM:medium none;" height="1" alt="" src="http://www.assoc-amazon.com/e/ir?t=davidhacom-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=1933988363" width="1" border="0" /&gt; for anyone wanting a better grasp of the C# language.&lt;/p&gt;
&lt;p&gt;by &lt;a class="" title="Florida .NET Developer" href="http://www.davidhayden.com/"&gt;David Hayden&lt;/a&gt;&lt;/p&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=177889" width="1" height="1"&gt;</content><author><name>dhayden</name><uri>http://codebetter.com/members/dhayden.aspx</uri></author></entry><entry><title>MacBook Pro, iWork, Expression Studio 2 and other Rumblings...</title><link rel="alternate" type="text/html" href="http://codebetter.com/blogs/david.hayden/archive/2008/05/05/macbook-pro-iwork-expression-studio-2-and-other-rumblings.aspx" /><id>http://codebetter.com/blogs/david.hayden/archive/2008/05/05/macbook-pro-iwork-expression-studio-2-and-other-rumblings.aspx</id><published>2008-05-05T20:08:00Z</published><updated>2008-05-05T20:08:00Z</updated><content type="html">&lt;p&gt;I have been quiet the past couple of weeks on CodeBetter. Truth be told I had nothing really &amp;quot;CodeBetter&amp;quot; worthy to say ( and still don&amp;#39;t ) as most of my time over the past couple of months has been occupied trying to figure out the new MacBook Pro I purchased to replace my aging Dell XPS laptop that is just not fast enough to run Visual Studio 2008 let alone Vista.&lt;/p&gt;
&lt;p&gt;No real reason to purchase the Mac over another laptop other than I was just looking for a little adventure.&amp;nbsp;From time-to-time&amp;nbsp;you need to burst that self-made bubble where you are comfortable, and&amp;nbsp;head in an unknown direction where you can&amp;nbsp;feel the excitement of&amp;nbsp;being clumsy, out-of-place, and at the mercy of others as you ask what you know are the most basic questions. Unless you put yourself in those situations, however,&amp;nbsp;you just stop growing as a developer and a person.&lt;/p&gt;
&lt;p&gt;So here I am two months into my MacBook Pro and I still feel green, but I am being very productive andI am having&amp;nbsp;loads of&amp;nbsp;fun as I get to play with some tools and toys that make me feel a little more worldly so-to-speak.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;VMware Fusion&lt;/h2&gt;
&lt;p&gt;First and foremost, VMware Fusion is a freaking unbelievable application that allows you to run Windows on your Mac. I am running my full stack of developer, web development, and graphic design tools and they work flawlessly with no noticeable performance hit. And, I am not using BootCamp. This is pure VMware Fusion on a MacBook Pro. If you have any doubts about running Fusion, I can tell you that after 2 months I have not come across a single problem ( knock on wood ).&lt;/p&gt;
&lt;p&gt;I talk about this in a couple of posts, but you can find similar information all over the web:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;&lt;a href="http://davidhayden.com/blog/dave/archive/2008/04/16/MacBookProVisualStudio2008vmwareFusion.aspx"&gt;MacBook Pro running Visual Studio 2008 using vmware Fusion&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;a href="http://davidhayden.com/blog/dave/archive/2008/04/20/VmwareFusionUnityMacBookPro.aspx"&gt;vmware Fusion Unity - Windows Apps Running Alongside Mac Applications on MacBook Pro&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;a href="http://davidhayden.com/blog/dave/archive/2008/05/02/FreeVMwareFusionUpdateMacBookAirTimeMachine.aspx"&gt;Free VMware Fusion 1.1.2 Update - Better Support for MacBook Air and Time Machine&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;One of the coolest things you can do with VMware Fusion is set it up in Unity Mode where the virtualization desktop goes away and your Windows Apps run along-side Mac Apps on the Mac Desktop. As I have migrated some of my daily activities to Mac Apps, this all works out really slick.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;Apple iWork &amp;#39;08&lt;/h2&gt;
&lt;p&gt;I had a couple of presentations to give&amp;nbsp;the other day to a new client and I took a gamble on moving some of my Powerpoint Presentations to Keynotes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;&lt;a href="http://davidhayden.com/blog/dave/archive/2008/04/30/AppleiWorks08KeynotesPresentationsSimplyStunning.aspx"&gt;Apple iWork &amp;#39;08 Keynotes for Presentations - Simply Stunning&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;I am not an&amp;nbsp;adept Powerpoint user. However, I tell you what, Keynotes&amp;nbsp;is absolutely amazing to create presentations. Without using any documentation and the stock templates, you can put together some really nice presentations complete with transitions and actions very easily.&lt;/p&gt;
&lt;p&gt;I haven&amp;#39;t done much with Pages ( word processing ) and Numbers (spreadsheet ) that come with iWork, but Keynotes is definitely as good as they say in the Mac community. I will use Keynotes from now on for all my presentations.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;Expression Studio 2&lt;/h2&gt;
&lt;p&gt;I am actively trying to use Expression Studio in my day-to-day tasks to replace my&amp;nbsp;old versions of Adobe Dreameaver and Adobe Fireworks from the Macromedia days. Yeah, that old. Thing is, they work flawlessly and are really enjoyable to use, having a wonderful UI and a wonderful set of features in my probably 3 to 4 year old versions.&lt;/p&gt;
&lt;p&gt;My first thoughts are to use Expression Design 2 and Expression Web 2 which I talk about here-&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;&lt;a href="http://davidhayden.com/blog/dave/archive/2008/05/01/MicrosoftExpressionStudio2Released.aspx"&gt;Microsoft Expression Studio 2 Released&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;a href="http://davidhayden.com/blog/dave/archive/2008/05/04/ExpressionDesign2NeedsBitmapGraphicsToolsCropLassoMagicWandMarquee.aspx"&gt;Expression Design 2 Needs Some Bitmap Graphics Tools like Crop Lasso Magic Wand Marquee&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;&lt;a href="http://davidhayden.com/blog/dave/archive/2008/05/04/ExpressionWeb2PublishWebsiteFTPExplorerTreeView.aspx"&gt;Expression Web 2 - FTP Explorer to Publish Websites Should be a TreeView&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;At this point, I realize Expression Design 2 will not do. It is a good product for vector graphics, but I can&amp;#39;t do much with it in terms of bitmap or pixel graphics. It doesn&amp;#39;t have the tools.&lt;/p&gt;
&lt;p&gt;I just started playing with Expression Web 2, so I don&amp;#39;t have much to say on it at the moment other than the FTP Site Publisher is questionable. Even &lt;a class="" href="http://davidhayden.com/blog/dave/archive/2008/05/03/CodaMacWebDesignDevelopmentTool.aspx"&gt;Coda for Mac Web Development&lt;/a&gt; is better at publishing sites at $79, but I need to dig into Expression Web 2 a bit more.&lt;/p&gt;
&lt;p&gt;I am thinking about just trying&amp;nbsp;the new versions of Adobe Fireworks and Dreamweaver on the Mac and see what they offer, if anything. The upgrade prices are a bit steep for just wanting to more-or-less get to the latest versions.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;I have a few other things I have been playing with, but most of it is on the Mac. I have got a number of new Mac Apps that are pretty cool. I have been using AppleTV quite a bit and converting movies over to it. I am creating&amp;nbsp;a Dashboard widget using DashCode on the Mac,. Etc. If anyone else is playing with a Mac for the first time, I would love to hear about it. It&amp;#39;s nice to have others to bounce ideas off of and share experiences.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Dave&lt;/p&gt;&lt;img src="http://codebetter.com/aggbug.aspx?PostID=177698" width="1" height="1"&gt;</content><author><name>dhayden</name><uri>http://codebetter.com/members/dhayden.aspx</uri></author></entry></feed>