<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://dotnetslackers.com/Community/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><title type="html">Andrew Siemer</title><subtitle type="html">Enterprise Web Applications, ASP.NET, C#, SQL Server, Architecture, &amp;amp; Writing</subtitle><id>http://dotnetslackers.com/Community/blogs/asiemer/atom.aspx</id><link rel="alternate" type="text/html" href="http://dotnetslackers.com/Community/blogs/asiemer/default.aspx" /><link rel="self" type="application/atom+xml" href="http://dotnetslackers.com/Community/blogs/asiemer/atom.aspx" /><generator uri="http://communityserver.org" version="3.1.30415.43">Community Server</generator><updated>2009-11-11T21:49:00Z</updated><entry><title>Building Distributed Applications in ASP.NET MVC at MvcConf 2010 on 7/22/2010</title><link rel="alternate" type="text/html" href="http://dotnetslackers.com/Community/blogs/asiemer/archive/2010/07/15/building_2D00_distributed_2D00_applications_2D00_in_2D00_asp.net_2D00_mvc_2D00_at_2D00_mvcconf_2D00_2010_2D00_on.aspx" /><id>http://dotnetslackers.com/Community/blogs/asiemer/archive/2010/07/15/building_2D00_distributed_2D00_applications_2D00_in_2D00_asp.net_2D00_mvc_2D00_at_2D00_mvcconf_2D00_2010_2D00_on.aspx</id><published>2010-07-16T01:30:57Z</published><updated>2010-07-16T01:30:57Z</updated><content type="html">&lt;p&gt;&lt;/p&gt;  &lt;p&gt;Next week Thursday I will be speaking at &lt;a href="http://mvcconf.com/"&gt;MvcConf&lt;/a&gt;.&amp;#160; This is a virtual, free conference that has attracted some very heavy hitters MVC hitters to come and chat about their voodoo.&amp;#160; This should be interest sting.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://mvcconf.com/"&gt;http://mvcconf.com/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Below is the abstract and TOC for my presentation.&amp;#160; If you think I missed something or am watering down the presentation please feel free to contact me to give me your suggestions.&lt;/p&gt;  &lt;h3&gt;Abstract&lt;/h3&gt;  &lt;p&gt;In this session we will take a look at a handful of common ways that MVC applications are created along with each approaches pros and cons. We will start with a very simplistic, not so flexible, ecommerce application. This will then be followed by several iterations of refactoring to embrace different design patterns, easier code management, loose coupling, better testability, more flexible deployment options, etc. Our final iteration will put us in a place where we can easily scale the system to include the ability to plug in a distribution layer for remote processing with a little IoC and MVC.&lt;/p&gt;  &lt;p&gt;We will start by looking at the traditional demo style application where business logic, data access, and everything in between is handled in a controller – not much different than the bloated code behind of WebForms days. Then we will take a look at how to slowly refactor that type of application into something better. We will take a look at how to move towards the single responsibility principle. Next we will take a look at moving to logical separation of our code using namespaces (creating layers). Then we will move towards physical separation with different class library projects (creating tiers). Once our code is pushed into appropriate buckets we will look at removing tight coupling by implementing dependency injection. Then will be ready to plug in an IoC container (StructureMap in this case) which will allow us to easily swap out our concrete implementation as requirements change with little ripple affect felt by our application. At this point our application will be ready to easily support distributed processing on an as needed basis.&lt;/p&gt;  &lt;h3&gt;The map from start to finish&lt;/h3&gt;  &lt;ol&gt;   &lt;li&gt;Standard MVC demo application      &lt;ol&gt;       &lt;li&gt;All code in a controller/action, or the view          &lt;ol&gt;           &lt;li&gt;Domain model &lt;/li&gt;            &lt;li&gt;Business logic &lt;/li&gt;            &lt;li&gt;Data access (LINQ to SQL) &lt;/li&gt;         &lt;/ol&gt;       &lt;/li&gt;        &lt;li&gt;b. Why is this bad?          &lt;ol&gt;           &lt;li&gt;Causes code duplication and increased complexity &lt;/li&gt;            &lt;li&gt;Tight coupling results in less flexible code &lt;/li&gt;            &lt;li&gt;No abstractions and/or leaky abstractions cause unforeseen ripple effects &lt;/li&gt;            &lt;li&gt;Not easily testable &lt;/li&gt;            &lt;li&gt;Refactoring is more difficult &lt;/li&gt;            &lt;li&gt;Deployment options are fairly fixed &lt;/li&gt;            &lt;li&gt;Versioning specific parts of the application is not easy &lt;/li&gt;            &lt;li&gt;Not compose-able &lt;/li&gt;            &lt;li&gt;Not easily distributable &lt;/li&gt;         &lt;/ol&gt;       &lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt;    &lt;li&gt;Separating our concerns      &lt;ol&gt;       &lt;li&gt;Putting code into small singularly focused classes &lt;/li&gt;        &lt;li&gt;Why is this better?          &lt;ol&gt;           &lt;li&gt;More testable &lt;/li&gt;            &lt;li&gt;Easier to manage &lt;/li&gt;            &lt;li&gt;More reusable &lt;/li&gt;            &lt;li&gt;Refactoring gets better &lt;/li&gt;         &lt;/ol&gt;       &lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt;    &lt;li&gt;Logical separation (layers)      &lt;ol&gt;       &lt;li&gt;Moving classes to appropriate namespaces &lt;/li&gt;        &lt;li&gt;Why is this better?          &lt;ol&gt;           &lt;li&gt;Easier to manage &lt;/li&gt;            &lt;li&gt;A required step to getting closer to tiers &lt;/li&gt;         &lt;/ol&gt;       &lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt;    &lt;li&gt;Physical separation (tiers)      &lt;ol&gt;       &lt;li&gt;Moving classes into appropriate physical assemblies &lt;/li&gt;        &lt;li&gt;Why is this better?          &lt;ol&gt;           &lt;li&gt;Deployment options become more flexible &lt;/li&gt;         &lt;/ol&gt;       &lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt;    &lt;li&gt;Refactoring for dependency injection      &lt;ol&gt;       &lt;li&gt;Achieving loose coupling with interfaces and constructor injection &lt;/li&gt;        &lt;li&gt;Why is this better          &lt;ol&gt;           &lt;li&gt;Loosely coupled &lt;/li&gt;            &lt;li&gt;More compose-able &lt;/li&gt;            &lt;li&gt;Easiest to test &lt;/li&gt;         &lt;/ol&gt;       &lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt;    &lt;li&gt;Using an IoC container for flexible composition      &lt;ol&gt;       &lt;li&gt;Implementing an inversion of control (IoC) container – StructureMap &lt;/li&gt;        &lt;li&gt;Why is this better?          &lt;ol&gt;           &lt;li&gt;Dynamically compose-able. &lt;/li&gt;            &lt;li&gt;Ultimate flexibility for the developer &lt;/li&gt;            &lt;li&gt;Easy to seamlessly slip in new functionality &lt;/li&gt;            &lt;li&gt;Capable of &lt;i&gt;supporting&lt;/i&gt; distributed processing &lt;/li&gt;         &lt;/ol&gt;       &lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt;    &lt;li&gt;Adding a WCF service client and services to support seamless application distribution      &lt;ol&gt;       &lt;li&gt;Why is this better?          &lt;ol&gt;           &lt;li&gt;Ability to distribute specific pieces of our applications to other servers &lt;/li&gt;            &lt;li&gt;Supporting horizontal scalability gets easier &lt;/li&gt;            &lt;li&gt;Vertical scalability can be applied to areas of your application rather than being forced to beef up the entire application &lt;/li&gt;         &lt;/ol&gt;       &lt;/li&gt;     &lt;/ol&gt;   &lt;/li&gt; &lt;/ol&gt;&lt;img src="http://dotnetslackers.com/Community/aggbug.aspx?PostID=36830" width="1" height="1"&gt;</content><author><name>asiemer</name><uri>http://dotnetslackers.com/Community/members/asiemer.aspx</uri></author></entry><entry><title>ASP.NET MVC Cookbook – public review</title><link rel="alternate" type="text/html" href="http://dotnetslackers.com/Community/blogs/asiemer/archive/2010/04/19/asp.net_2D00_mvc_2D00_cookbook_2D00_ndash_2D00_public_2D00_review.aspx" /><id>http://dotnetslackers.com/Community/blogs/asiemer/archive/2010/04/19/asp.net_2D00_mvc_2D00_cookbook_2D00_ndash_2D00_public_2D00_review.aspx</id><published>2010-04-19T18:46:49Z</published><updated>2010-04-19T18:46:49Z</updated><content type="html">&lt;p&gt;I have recently started writing another book.&amp;#160; The topic of this book is ASP.NET MVC.&amp;#160; This book differs from my previous book in that rather than working towards building one project from end to end – this book will demonstrate specific topics from end to end.&amp;#160; It is a recipe book (hence the cookbook name) and will be part of the &lt;a href="https://www.packtpub.com/books/cookbooks"&gt;Packt Publishing cookbook series&lt;/a&gt;.&amp;#160; An example recipe in this book might be how to consume JSON, creating a master /details page, jquery modal popups, custom ActionResults, etc.&amp;#160; Basically anything recipe oriented around the topic of ASP.NET MVC might be acceptable.&amp;#160; &lt;/p&gt;  &lt;p&gt;If you are interested in helping out with the review process you can join the “ASP.NET MVC 2 Cookbook-review” group on Google here: &lt;a title="http://groups.google.com/group/aspnet-mvc-2-cookbook-review" href="http://groups.google.com/group/aspnet-mvc-2-cookbook-review"&gt;http://groups.google.com/group/aspnet-mvc-2-cookbook-review&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Currently the suggested TOC for the project is listed.&amp;#160; Also, chapters 1, 2, and most of 8 are posted.&amp;#160; Chapter 5 should be available tonight or tomorrow.&lt;/p&gt;  &lt;p&gt;In addition to reporting any errors that you might find (much appreciated), I am very interested in hearing about recipes that you want included, expanded, or removed (as being redundant or overly simple).&amp;#160; Any input is appreciated!&amp;#160; Hearing user feedback after the book is complete is a little late in my opinion (unless it is positive feedback of course).&lt;/p&gt;  &lt;p&gt;Thank you!&lt;/p&gt;&lt;img src="http://dotnetslackers.com/Community/aggbug.aspx?PostID=34888" width="1" height="1"&gt;</content><author><name>asiemer</name><uri>http://dotnetslackers.com/Community/members/asiemer.aspx</uri></author></entry><entry><title>$15 off C# in Depth 2nd Edition</title><link rel="alternate" type="text/html" href="http://dotnetslackers.com/Community/blogs/asiemer/archive/2010/02/17/15_2D00_off_2D00_c_2D00_in_2D00_depth_2D00_2nd_2D00_edition.aspx" /><id>http://dotnetslackers.com/Community/blogs/asiemer/archive/2010/02/17/15_2D00_off_2D00_c_2D00_in_2D00_depth_2D00_2nd_2D00_edition.aspx</id><published>2010-02-17T17:08:18Z</published><updated>2010-02-17T17:08:18Z</updated><content type="html">&lt;p&gt;If you like C# at all then you know that Jon Skeet (&lt;a href="http://www.yoda.arachsys.com/csharp/"&gt;writings&lt;/a&gt;, &lt;a href="https://msmvps.com/blogs/jon_skeet/"&gt;blog&lt;/a&gt;, &lt;a href="http://stackoverflow.com/users/22656/jon-skeet"&gt;StackOverflow&lt;/a&gt;) is the man when it comes to this language.&amp;#160; Just look at his StackOverflow flair!!!&amp;#160; He is the top dude by a long shot in C# and has been for a long time.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://stackoverflow.com/users/22656/jon-skeet"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="image" border="0" alt="image" src="http://dotnetslackers.com/Community/blogs/asiemer/image_5861E137.png" width="229" height="75" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;His latest book “C# in Depth 2nd edition” is currently available in the Manning Early Access Program (MEAP) and ready for you to get your hands on!&amp;#160; &lt;/p&gt;  &lt;p&gt;$15 off C# in Depth 2nd edition: use code dotd0217 at checkout. &lt;a href="http://manning.com/skeet2/"&gt;http://manning.com/skeet2/&lt;/a&gt;&lt;/p&gt;&lt;img src="http://dotnetslackers.com/Community/aggbug.aspx?PostID=34716" width="1" height="1"&gt;</content><author><name>asiemer</name><uri>http://dotnetslackers.com/Community/members/asiemer.aspx</uri></author></entry><entry><title>Method not found: 'Void System.Web.Mvc.ViewContext..ctor(System.Web.Mvc.ControllerContext, System.Web.Mvc.IView, System.Web.Mvc.ViewDataDictionary, System.Web.Mvc.TempDataDictionary)'</title><link rel="alternate" type="text/html" href="http://dotnetslackers.com/Community/blogs/asiemer/archive/2010/01/31/method-not-found-void-system-web-mvc-viewcontext-ctor-system-web-mvc-controllercontext-system-web-mvc-iview-system-web-mvc-viewdatadictionary-system-web-mvc-tempdatadictionary.aspx" /><id>http://dotnetslackers.com/Community/blogs/asiemer/archive/2010/01/31/method-not-found-void-system-web-mvc-viewcontext-ctor-system-web-mvc-controllercontext-system-web-mvc-iview-system-web-mvc-viewdatadictionary-system-web-mvc-tempdatadictionary.aspx</id><published>2010-02-01T04:41:14Z</published><updated>2010-02-01T04:41:14Z</updated><content type="html">&lt;p&gt;I am finding that there are several complaints about getting Spark View Engine to work with ASP.NET MVC.&amp;#160; I had to tweak the Spark View Engine code base to get things running again.&lt;/p&gt;  &lt;p&gt;I had to download the spark view engine source code (&lt;a href="http://sparkviewengine.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=27600"&gt;http://sparkviewengine.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=27600&lt;/a&gt;).&amp;#160; Once I did that I went through each of the projects that had a reference to the 1.0 version of System.Web.Mvc assembly and updated to reference to point to System.Web.Mvc 2.0.&amp;#160; From there you can build the solution (in visual studio) and you will find that a whole bunch of tests start to fail.&amp;#160; You can attempt to fix them (by adding the additional TextWriter parameter you will find is now needed).&amp;#160; You will also see that the SparkView.cs file complains about a missing parameter.&amp;#160; In the Render method (line 100 of the source code I downloaded) I had to update the instantiation of the wrappedViewContext to look like this (add writer to the end of the list of parameters): &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; public void Render(ViewContext viewContext, TextWriter writer)   &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; var wrappedHttpContext = new HttpContextWrapper(viewContext.HttpContext, this);    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; var wrappedViewContext = new ViewContext(    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; new ControllerContext(wrappedHttpContext, viewContext.RouteData, viewContext.Controller),    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; viewContext.View,    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; viewContext.ViewData,    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; viewContext.TempData,    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; writer); //&amp;#160; &amp;lt;-- add the writer to the end of the list of parameters    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ...    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; } &lt;/p&gt;  &lt;p&gt;Once the code is updated you can run the build.cmd script that is in the root of the source you downloaded.&amp;#160; The build process will create a zip file in the build/dist folder.&amp;#160; Take those new dll&amp;#39;s and add them to your website.&amp;#160; Things should work once again. &lt;/p&gt;&lt;img src="http://dotnetslackers.com/Community/aggbug.aspx?PostID=34617" width="1" height="1"&gt;</content><author><name>asiemer</name><uri>http://dotnetslackers.com/Community/members/asiemer.aspx</uri></author></entry><entry><title>Can you help me formulate a TOC for an ASP.NET MVC Cookbook</title><link rel="alternate" type="text/html" href="http://dotnetslackers.com/Community/blogs/asiemer/archive/2010/01/15/can_2D00_you_2D00_help_2D00_me_2D00_formulate_2D00_a_2D00_toc_2D00_for_2D00_an_2D00_asp.net.aspx" /><id>http://dotnetslackers.com/Community/blogs/asiemer/archive/2010/01/15/can_2D00_you_2D00_help_2D00_me_2D00_formulate_2D00_a_2D00_toc_2D00_for_2D00_an_2D00_asp.net.aspx</id><published>2010-01-15T23:17:44Z</published><updated>2010-01-15T23:17:44Z</updated><content type="html">&lt;p&gt;Hey there everyone.&amp;#160; I was recently tasked to pitch a book to my publisher.&amp;#160; As a first step I need to come up with an outline for the Table of Contents.&amp;#160; This book is the standard cookbook style with an added focus on the MVC side of ASP.NET.&amp;#160; I have been poking about at other similarly styled books to get some ideas.&amp;#160; I think comparing ASP.NET Web Forms to ASP.NET MVC would provide some folks with a good reference point when looking at the two ways of doing things.&amp;#160; &lt;/p&gt;  &lt;p&gt;(Thanks to my friend James Shaw for this idea…made my life easier)&lt;/p&gt;  &lt;p&gt;Below is what I have some up with so far.&amp;#160; Can you please take a quick look to make sure I haven’t missed anything?&amp;#160; Perhaps more important than missing a topic…am I including too much?&amp;#160; Feel free to contact me directly with any comments at &lt;a href="mailto:asiemer@hotmail.com"&gt;asiemer@hotmail.com&lt;/a&gt; or leave a comment below. &lt;/p&gt;  &lt;p&gt;Thanks!&lt;/p&gt;  &lt;p&gt;1. &lt;strong&gt;Working with the View&lt;/strong&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;1. Discovering the problems of a non-strongly typed view&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;2. Creating a strongly typed view&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;3. Working with a ViewModel&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;4. How to use strongly typed input builders&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;5. Create a custom input builder&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;6. Consolidating view code into a partial view&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;7. Using the Spark view engine&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;8. Using the FubuMVC view engine&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;9. Exposing a view that returns an image&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;10. Creating a JSON result&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;11. Consuming a JSON view&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;12. Exposing a view that returns a PDF&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;2. &lt;strong&gt;Actions&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;3. &lt;strong&gt;Controllers&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;4. &lt;strong&gt;Routes&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;5. &lt;strong&gt;Master Pages&lt;/strong&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;1. How to create a master page&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;2. Controlling which master page is used with a custom base page&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;3. Working with Spark View Engine master pages&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;6. &lt;strong&gt;Working with data in the view&lt;/strong&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;1. Reintroducing for and foreach&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;2. Displaying data from an xml file&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;3. Displaying an array as a group of check boxes&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;4. Displaying an array as a group of radio buttons&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;5. Creating a page-able set of data&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;6. How to sort data &lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;7. Navigating to a specific page of data&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;8. Deleting a record from a data set&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;9. Adding a javascript delete confirmation pop-up &lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;10. Adding a modal window delete confirmation pop-up&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;11. Displaying a modal window to show a records details&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;12. Adding a totals row to the bottom of a set of data&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;13. Using the free telerik grid&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;7. &lt;strong&gt;Working with Forms&lt;/strong&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;1. Posting a form to the appropriate action&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;2. Setting the field tab order&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;3. Setting a default button&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;8. &lt;strong&gt;MVC and templating&lt;/strong&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;1. Plugging in a new skin from the template gallery&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;2. Using T4 to create strongly typed helpers&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;3. Using T4MVC to destroy magic strings&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;4. Creating a view template&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;9. &lt;strong&gt;Validation Recipes&lt;/strong&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;1. Validating with Data Annotation Validators&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;2. Reporting validation errors with ViewData.ModelState&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;3. Using Html.ValidationMessage to display validation errors&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;4. Summarizing validation errors with Html.ValidationSummary&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;5. Using the xVal validation framework&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;6. Using Castle Validator for validation&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;7. Client side validation with JQuery Validation&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;8. Making a required field&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;9. Setting an acceptable range&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;10. Requiring the password and password verification fields to match&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;11. Using a regex pattern to validate data&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;12. Forcing a choice to be made in a drop down menu&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;10. &lt;strong&gt;Managing large applications with Areas&lt;/strong&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;1. Creating a separate project as an area&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;2. Creating an area in the same project&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;3. Using areas to manage segments of your site&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;4. Creating portable areas to compartmentalize functionality&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;11.&lt;strong&gt; Maintaining state&lt;/strong&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;1. Working with application wide information&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;2. Maintaining a user’s information during their session&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;3. Using cookies to remember a user&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;4. Managing state in a web farm scenario using SQL Server&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;12. &lt;strong&gt;Error Handling&lt;/strong&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;1. Handling errors in your code&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;2. Handling errors for a view&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;3. Handling errors in your application&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;4. Showing friendly error information&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;5. Using Error Logging Modules and Handlers (ELMAH) to deal with unhandled exceptions&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;6. Reporting caught exceptions to ELMAH&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;13.&lt;strong&gt; Security&lt;/strong&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;1. Using membership and roles to manage users&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;2. Using windows authentication&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;3. Restricting access to all pages&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;4. Restricting access to selected pages&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;5. Restricting access to pages by role&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;6. Restricting access to a controller&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;7. Restricting access to a selected area&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;14. &lt;strong&gt;Profiles and Themes&lt;/strong&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;1. Using profiles&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;2. Inheriting a profile&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;3. Using an migrating anonymous profiles&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;4. Managing user profiles&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;5. Using themes&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;6. User personalized themes&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;15. &lt;strong&gt;Configuration&lt;/strong&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;1. Adding custom application settings in web.config&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;2. Displaying custom error messages&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;3. Maintaining session state across multiple web servers&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;4. Accessing other web.config configuration elements&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;5. Adding your own configuration elements to web.config&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;6. Encrypting web.config sections&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;16. &lt;strong&gt;Tracing and Debugging&lt;/strong&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;1. Uncovering page level problems&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;2. Uncovering application wide problems&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;3. Writing trace data to the event log&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;4. Sending trace data via email&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;5. Using a breakpoint to stop execution of an application when a condition is met&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;17. &lt;strong&gt;Caching&lt;/strong&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;1. Caching a whole page&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;2. Caching pages based on route details&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;3. Caching pages based on browser type and version&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;4. Caching pages based on developer defined custom strings&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;5. Caching partial pages&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;6. Caching application data&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;7. Caching object data&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;8. Installing MemCached Win32 as an alternate cache provider&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;9. Using the MemCached Enyim client to cache application data&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;10. Installing Microsoft Velocity&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;11. Using Velocity to cache application data&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;18. &lt;strong&gt;Localizing your application&lt;/strong&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;1. Providing multiple language support&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;2. Using resource files to manage display data&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;3. Managing currency display based on selected language&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;19. &lt;strong&gt;HTTP Handlers and Modules&lt;/strong&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;1. Tracking access to your resources with an HTTP Handler&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;2. Create a file download HTTP Handler&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;3. Control leeching of your resources with an HTTP Module&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;20. &lt;strong&gt;Making ASP.NET even more powerful&lt;/strong&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;1. Making controllers testable by implementing a ControllerFactory&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;2. Implementing inversion of control with StructureMap&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;3. Install MVC Turbine and write less code&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;4. Creating testable views&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;5. Creating testable controllers&lt;/p&gt;&lt;/blockquote&gt;&lt;img src="http://dotnetslackers.com/Community/aggbug.aspx?PostID=34498" width="1" height="1"&gt;</content><author><name>asiemer</name><uri>http://dotnetslackers.com/Community/members/asiemer.aspx</uri></author></entry><entry><title>VirtualDNUG.com a virtual .net users group</title><link rel="alternate" type="text/html" href="http://dotnetslackers.com/Community/blogs/asiemer/archive/2010/01/05/virtualdnug-com-a-virtual-net-users-group.aspx" /><id>http://dotnetslackers.com/Community/blogs/asiemer/archive/2010/01/05/virtualdnug-com-a-virtual-net-users-group.aspx</id><published>2010-01-05T21:33:37Z</published><updated>2010-01-05T21:33:37Z</updated><content type="html">&lt;p&gt;Hey all!&amp;#160; I am finally going to put my full steam into setting up my &lt;a href="http://virtualdnug.com"&gt;VirtualDNUG&lt;/a&gt; users group.&amp;#160; With the help of the good folks over at &lt;a href="http://www.ineta.org/"&gt;ineta&lt;/a&gt; (they are providing a LiveMeeting license for us) I am hoping to host a great environment for learning.&amp;#160; I will probably start off with topics on ASP.NET MVC and the various side projects that surround that world (Turbine, Spark View Engine, FubuMVC, etc.) but I am totally open to just about any other cutting edge .net topics as well.&lt;/p&gt;  &lt;p&gt;If you are interested in attending our initial meetings, would like to present, or have a topic that you would like to be covered, please contact me directly at &lt;a href="mailto:asiemer@hotmail.com"&gt;asiemer@hotmail.com&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://dotnetslackers.com/Community/aggbug.aspx?PostID=34350" width="1" height="1"&gt;</content><author><name>asiemer</name><uri>http://dotnetslackers.com/Community/members/asiemer.aspx</uri></author></entry><entry><title>ASP.NET MVC 2 in Action conducting a public review</title><link rel="alternate" type="text/html" href="http://dotnetslackers.com/Community/blogs/asiemer/archive/2010/01/05/asp.net_2D00_mvc_2D00_2_2D00_in_2D00_action_2D00_conducting_2D00_a_2D00_public_2D00_review.aspx" /><id>http://dotnetslackers.com/Community/blogs/asiemer/archive/2010/01/05/asp.net_2D00_mvc_2D00_2_2D00_in_2D00_action_2D00_conducting_2D00_a_2D00_public_2D00_review.aspx</id><published>2010-01-05T19:56:04Z</published><updated>2010-01-05T19:56:04Z</updated><content type="html">&lt;p&gt;Since I enjoyed the first edition of the ASP.NET MVC in Action book I figured I would jump on this second edition of this book and framework as quickly as I could.&amp;#160; I just read this post from Jeffrey Palermo:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://jeffreypalermo.com/blog/mvc-2-in-action-book-conducting-public-reviews/"&gt;http://jeffreypalermo.com/blog/mvc-2-in-action-book-conducting-public-reviews/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Which basically states that they are actively working on the next edition of the book.&amp;#160; More importantly, the chapters that they have completed so far are in a publicly viewable location: &lt;a href="http://github.com/jeffreypalermo/mvc2inaction"&gt;http://github.com/jeffreypalermo/mvc2inaction&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Here is a re-post of Jeffrey’s original post:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;If you’d like to get an early glimpse of ASP.NET MVC 2 in Action, you can participate on the public email list at&lt;a href="http://groups.google.com/group/mvc2inaction-discuss"&gt;http://groups.google.com/group/mvc2inaction-discuss&lt;/a&gt;.&amp;#160; The first bit of the manuscript is ready to review, and it consists of &lt;a href="http://groups.google.com/group/mvc2inaction-discuss/browse_thread/thread/134fa8c15ef87f2f"&gt;chapter 23, Data Access with NHibernate&lt;/a&gt;.&amp;#160; You can also access every bit of code, text, and image at the book’s &lt;a href="http://github.com/jeffreypalermo/mvc2inaction"&gt;GitHub repository&lt;/a&gt;.&amp;#160; With the first book, &lt;a href="http://bit.ly/mvcinaction"&gt;ASP.NET MVC in Action&lt;/a&gt;, Manning conducted an Early Access Program (MEAP).&amp;#160; Manning will still conduct it, but our program is a early, early access program.&amp;#160; In other words, you can have access to the unedited, perhaps dirty, manuscript and help as it drives forward to polish and completion.&lt;/p&gt;  &lt;p&gt;As each piece of the manuscript is complete, we will post it to this list and ask for feedback.&amp;#160; Anyone who gives us constructive feedback on the list WILL be thanked in the acknowledgements section at the front of the book when it goes to print.&amp;#160; Also, you will have influence in shaping this book so that it is as good as it can be.&lt;/p&gt;  &lt;p&gt;Our hope is that this book serves the .Net community that is working ASP.NET MVC 1 and ASP.NET MVC 2 applications.&lt;/p&gt;  &lt;p&gt;The author team consists of:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://jeffreypalermo.com"&gt;Jeffrey Palermo&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://flux88.com/"&gt;Ben Scheirman&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.lostechies.com/blogs/jimmy_bogard/default.aspx"&gt;Jimmy Bogard&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.lostechies.com/blogs/hex/"&gt;Eric Hexter&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://mhinze.com/"&gt;Matt Hinze&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;If this book project interests you, and if you know people who should be involved, please blog, tweet, and otherwise post a link to this announcement.&lt;/p&gt;&lt;img src="http://dotnetslackers.com/Community/aggbug.aspx?PostID=34345" width="1" height="1"&gt;</content><author><name>asiemer</name><uri>http://dotnetslackers.com/Community/members/asiemer.aspx</uri></author></entry><entry><title>NBuilder article just submitted to DotNetSlackers.com</title><link rel="alternate" type="text/html" href="http://dotnetslackers.com/Community/blogs/asiemer/archive/2010/01/04/nbuilder-article-just-submitted-to-dotnetslackers-com.aspx" /><id>http://dotnetslackers.com/Community/blogs/asiemer/archive/2010/01/04/nbuilder-article-just-submitted-to-dotnetslackers-com.aspx</id><published>2010-01-04T17:34:52Z</published><updated>2010-01-04T17:34:52Z</updated><content type="html">&lt;p&gt;I just finished the first article to a two maybe three part mini-series on NBuilder for DotNetSlackers.com.&amp;#160; NBuilder is a great little tool for generating your objects for you.&amp;#160; Often times you will create an application that is dependent on data or a set of hydrated objects for it to work or for you to be able to test your application’s UI, etc.&amp;#160; Sometimes you are not in charge of the data portion of the application.&amp;#160; In that case you might find yourself creating mocks with complex scenarios of spinning up new instances of objects and hydrating them with all sorts of test data.&amp;#160; &lt;/p&gt;  &lt;p&gt;This article series will highlight the new open source project NBuilder and show how to streamline the creation and management of this type of scenario using the features of NBuilder.&amp;#160; We will also take a look at how you can use NBuilder in a testing type scenario which often requires a similar style of data mocking.&lt;/p&gt;&lt;img src="http://dotnetslackers.com/Community/aggbug.aspx?PostID=34308" width="1" height="1"&gt;</content><author><name>asiemer</name><uri>http://dotnetslackers.com/Community/members/asiemer.aspx</uri></author></entry><entry><title>Scrum on a Page</title><link rel="alternate" type="text/html" href="http://dotnetslackers.com/Community/blogs/asiemer/archive/2009/12/30/scrum-on-a-page.aspx" /><id>http://dotnetslackers.com/Community/blogs/asiemer/archive/2009/12/30/scrum-on-a-page.aspx</id><published>2009-12-31T00:19:32Z</published><updated>2009-12-31T00:19:32Z</updated><content type="html">&lt;p&gt;Some while back I had a chance to work with the good folks at Neudesic.&amp;#160; They presented us with the concept of Scrum on a Page.&amp;#160; I never received the soft copy of this document and so I finally decided to create one.&amp;#160; Click the image below to get the full size image!&lt;/p&gt;  &lt;p&gt;&lt;a href="http://dotnetslackers.com/Community/blogs/asiemer/image_5AE6828B.png"&gt;&lt;img title="image" style="border-top-width:0px;display:inline;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" height="388" alt="image" src="http://dotnetslackers.com/Community/blogs/asiemer/image_thumb_65A66A91.png" width="500" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Scrum on a Page describes most of the really important details about Scrum, who is involved, the meetings, and what the process is.&amp;#160; This is a good doc to have if you are just now learning Scrum.&amp;#160; Please feel free to make suggestions if you like.&lt;/p&gt;&lt;img src="http://dotnetslackers.com/Community/aggbug.aspx?PostID=34230" width="1" height="1"&gt;</content><author><name>asiemer</name><uri>http://dotnetslackers.com/Community/members/asiemer.aspx</uri></author></entry><entry><title>Book review: Brownfield Application Development in .NET</title><link rel="alternate" type="text/html" href="http://dotnetslackers.com/Community/blogs/asiemer/archive/2009/12/28/book-review-brownfield-application-development-in-net.aspx" /><id>http://dotnetslackers.com/Community/blogs/asiemer/archive/2009/12/28/book-review-brownfield-application-development-in-net.aspx</id><published>2009-12-28T22:26:40Z</published><updated>2009-12-28T22:26:40Z</updated><content type="html">&lt;p&gt;The first question you may have in reading the title to this post is what is a Brownfield application?&amp;#160; The book opens up a discussion on this topic with this opening line:&lt;/p&gt;  &lt;blockquote style="width:381px;height:5.04%;"&gt;   &lt;p&gt;“An industrial Brownfield is a commercial site contaminated by hazardous waste that has the potential to be reused once it’s cleaned up.&amp;#160; To a software developer, a Brownfield Application is an existing project, or codebase, that may be contaminated by poor practices, structure, and design but which has the potential to be revived through comprehensive and directed refactoring.”&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;I was able to review the book “&lt;a target="_blank"&gt;Brownfield Application Development in .NET&lt;/a&gt;” very early on in it’s creation.&amp;#160; I am now the technical reviewer for the final stretch of this project.&amp;#160; &lt;/p&gt;  &lt;p&gt;I have to say up front that I never considered myself a Brownfield application enthusiast in the least!&amp;#160; I didn’t really even know that a Brownfield application as defined above actually had a name other than FUBAR.&amp;#160; And to be quite honest the whole concept of a Brownfield applications is something that I have always tried to avoid.&amp;#160; However, after having read this book a few times I must say that while I don’t consider myself a Brownfield developer I think we all come across them and interact with them more often than we might think.&amp;#160; While not wanting to identify with the Brownfield developer myself…I have to swallow the lump at the back of my throat and admit that we are all Brownfield developers from time to time during our careers.&lt;/p&gt;  &lt;p&gt;We have all heard the expression that code not under test is legacy code and have all worked on code bases without tests.&amp;#160; &lt;/p&gt;  &lt;p&gt;We have all probably been to a dev shop that didn’t have proper source control.&lt;/p&gt;  &lt;p&gt;We have all seen deployment processes that require all hands to be on deck in the wee hours of the night to push and pull and tweak the code through to production.&lt;/p&gt;  &lt;p&gt;If any of these statements ring a bell with you (and probably many other examples as well) then you have been involved with a so-called Brownfield project.&amp;#160; &lt;/p&gt;  &lt;p&gt;If you are anything like me, you probably show up to the first day of work at a new contract and find at least one “are you serious?” feature of your new work environment in the first 30 minutes to an hour…with many more that follow closely behind.&amp;#160; If you are anything like me you see problems…sure…but you also know that there is a better solution or an industry standard way of dealing with each and every one of those problems.&lt;/p&gt;  &lt;p&gt;This book does a great job of not only laying out a road map for locating each of the various types of pain points offered by a Brownfield application but it also does a great job of suggesting how to deal with each of those pain points.&amp;#160; And while the book is entitled “Brownfield Application Development in .NET”, don’t think that this book only deals with the technical side of this problem.&amp;#160; It does a great job of covering all the aspects of these sorts of problematic applications and the culture and company that is ultimately responsible for allowing them to be created in the first place.&amp;#160; &lt;/p&gt;  &lt;p&gt;This book offers up ways to deal with some of the political aspects of fixing this type of application.&amp;#160; It provides suggestions for how to deal with the people on these types of projects.&amp;#160; Rules around broken builds are provided.&amp;#160; A definition of what a “check in dance” is and how it changes when an additional feature is added to the big picture.&amp;#160; And of course many of the tools that are out there to deal with these sorts of problems are covered too.&lt;/p&gt;  &lt;p&gt;Here is a great blurb from the book:&lt;/p&gt;  &lt;blockquote style="width:381px;height:0%;"&gt;   &lt;p&gt;“Maintenance of the application does not begin once it has been released into production.&amp;#160; From a developer’s perspective, each line of code you write enters maintenance mode immediately after it is written.”&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;And then you have lines such as this:&lt;/p&gt;  &lt;blockquote style="width:381px;height:0%;"&gt;   &lt;p&gt;“Then words like “spaghetti” and “minefield” start to enter the project’s lexicon.”&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Whether this topic is old hat to you, or something that you have never thought of I find that this book is very easy to read and quite clear when making it’s points.&amp;#160; I will share more as I read more.&amp;#160; I really can’t wait for this book to be published.&amp;#160; I think that this is going to be one of those books that every developer and software shop should own.&amp;#160; It clearly defines what should be required by our industry…but rarely is.&lt;/p&gt;&lt;img src="http://dotnetslackers.com/Community/aggbug.aspx?PostID=34157" width="1" height="1"&gt;</content><author><name>asiemer</name><uri>http://dotnetslackers.com/Community/members/asiemer.aspx</uri></author></entry><entry><title>Javier Lozano’s interview for DotNetRadio is now available!</title><link rel="alternate" type="text/html" href="http://dotnetslackers.com/Community/blogs/asiemer/archive/2009/11/25/javier-lozano-s-interview-for-dotnetradio-is-now-available.aspx" /><id>http://dotnetslackers.com/Community/blogs/asiemer/archive/2009/11/25/javier-lozano-s-interview-for-dotnetradio-is-now-available.aspx</id><published>2009-11-25T18:18:20Z</published><updated>2009-11-25T18:18:20Z</updated><content type="html">&lt;p&gt;Hey all.&amp;#160; Just wanted to let you know that the interview that I did with &lt;a href="http://blog.lozanotek.com/" target="_blank"&gt;Javier Lozano&lt;/a&gt; (lozanotek.com) is now available on &lt;a href="http://www.dotnetradio.com" target="_blank"&gt;DotNetRadio&lt;/a&gt;!&amp;#160; This was a pretty hefty interview so I had to cut it in half.&amp;#160; In the first half of the interview we discussed the following points.&lt;/p&gt;  &lt;li&gt;How and why was ASP.NET MVC created? &lt;/li&gt;  &lt;li&gt;What are the pain points of ASP.NET Webforms? &lt;/li&gt;  &lt;li&gt;What can a WebForms developer expect when moving to ASP.NET MVC? &lt;/li&gt;  &lt;li&gt;MVC is like BizTalk – it can do anything – it just can’t do anything out of the box! &lt;/li&gt;  &lt;li&gt;What did ASP.NET MVC get right…what did it get wrong? &lt;/li&gt;  &lt;li&gt;What are the differences between WebForms and MVC with regards to saving state and workflow? &lt;/li&gt;  &lt;li&gt;What sort of validation is provided with MVC 1 or MVC2? &lt;/li&gt;  &lt;li&gt;What is a strongly typed view and how does that work? &lt;/li&gt;  &lt;li&gt;Creating strongly typed views and why that is important &lt;/li&gt;  &lt;li&gt;What is the difference between a Model and a ViewModel and why would a developer want to use that? &lt;/li&gt;  &lt;li&gt;What does the term “magic string” mean and why is that bad? &lt;/li&gt;  &lt;li&gt;How do magic strings relate to MVC 1, MVC 2, and what tools are provided by MVC Contrib to help remove magic strings from an MVC application? &lt;/li&gt;  &lt;li&gt;What are MVC Contrib Input Builders and how do those work? &lt;/li&gt;  &lt;li&gt;How would you use templating in ASP.NET MVC? &lt;/li&gt;  &lt;li&gt;How does Dynamic Data work in ASP.NET MVC? &lt;/li&gt;  &lt;li&gt;How do you create inject-able controllers via an MVC Contrib Controller Factory? &lt;/li&gt;  &lt;li&gt;Using inversion of control containers in the MVC framework &lt;/li&gt;  &lt;li&gt;What is painful about the WebForms view engine used in ASP.NET MVC? &lt;/li&gt;  &lt;li&gt;Why are there so many view engines available for MVC? &lt;/li&gt;  &lt;li&gt;How does nVelocity make working in the View easier? &lt;/li&gt;  &lt;li&gt;Why are code behind files the ultimate evil? &lt;/li&gt;  &lt;li&gt;How is the workflow different in the WebForms view engine compared to other MVC view engines such as SPARK or nVelocity?    &lt;p&gt;&lt;a href="http://feedburner.google.com/fb/a/dashboard?id=iml4jckpbnijoui949k25vl0ac" target="_blank"&gt;Subscribe to the podcast!&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;Please feel free to let me know if you have any feedback.&amp;#160; In the next post I will put up the second half of Javier Lozano’s.&amp;#160; And after that I will post the &lt;a href="http://girldeveloper.com/" target="_blank"&gt;Sara Chipps&lt;/a&gt; interview!&lt;/p&gt;    &lt;p&gt;Upcoming interviews will include include Jeffrey Palermo, Ayende Rahien, Gil Zilberfeld, Bill Pringle, Patrick Smacchia, Scott Belware, and many more!&amp;#160; Stay tuned.&lt;/p&gt;    &lt;p&gt;Follow me on Twitter at &lt;a href="http://twitter.com/asiemer" target="_blank"&gt;@asiemer&lt;/a&gt; and follow the show at &lt;a href="http://www.twitter.com/dnetradio" target="_blank"&gt;@dnetradio&lt;/a&gt;.&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt; &lt;/li&gt;&lt;img src="http://dotnetslackers.com/Community/aggbug.aspx?PostID=33428" width="1" height="1"&gt;</content><author><name>asiemer</name><uri>http://dotnetslackers.com/Community/members/asiemer.aspx</uri></author></entry><entry><title>Send in questions for upcoming guests and get DotNetRadio SWAG</title><link rel="alternate" type="text/html" href="http://dotnetslackers.com/Community/blogs/asiemer/archive/2009/11/16/send-in-questions-for-upcoming-guests-and-get-dotnetradio-swag.aspx" /><id>http://dotnetslackers.com/Community/blogs/asiemer/archive/2009/11/16/send-in-questions-for-upcoming-guests-and-get-dotnetradio-swag.aspx</id><published>2009-11-16T18:44:21Z</published><updated>2009-11-16T18:44:21Z</updated><content type="html">&lt;p&gt;&lt;strong&gt;Gil Zilberfeld from TypeMock:&lt;/strong&gt; As you may know by now (from my tweeting or by looking on the &lt;a href="http://www.dotnetradio.com" target="_blank"&gt;DotNetRadio&lt;/a&gt; schedule listed on the site) there is an upcoming interview with Gil Zilberfeld from TypeMock.&amp;#160; He will be on the show at 5am PST.&amp;#160; Please send in your TypeMock and unit testing questions for him.&amp;#160; The submitters of any questions that I use on the show will get some DotNetRadio swag! &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Jeffrey Palermo from Headspring Systems:&lt;/strong&gt; What you may not know is that I am scheduling an interview (possibly tomorrow) with Jeffrey Palermo from Headspring Systems (creator of &lt;a href="http://www.codeplex.com/MVCContrib" target="_blank"&gt;MVC Contrib&lt;/a&gt; and author of ASP.NET MVC in Action).&amp;#160; We will be discussing MVC Contrib and application architecture using that project.&amp;#160; Send your questions for him soon as that interview may be taking place as early as tomorrow evening if things work out.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Feedback:&lt;/strong&gt; In addition to sending in questions, please also send in your feedback.&amp;#160; As this is a new podcast I am testing out the show format, music, ad spaces, etc.&amp;#160; If you have any feedback, good or bad, please send it to me at &lt;a href="mailto:podcast@dotnetradio.com"&gt;podcast@dotnetradio.com&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Guest Ideas?&lt;/strong&gt;&amp;#160; Also, I have a long list of guests that I am trying to get on to the show that I think would be fun to hear from.&amp;#160;&amp;#160; But I am sure that there are many listeners out there that may have a different idea of who would be a good guest on the show.&amp;#160; If you have some ideas please feel free to send them my way to &lt;a href="mailto:podcast@dotnetradio.com"&gt;podcast@dotnetradio.com&lt;/a&gt;! &lt;/p&gt;&lt;img src="http://dotnetslackers.com/Community/aggbug.aspx?PostID=33258" width="1" height="1"&gt;</content><author><name>asiemer</name><uri>http://dotnetslackers.com/Community/members/asiemer.aspx</uri></author></entry><entry><title>DotNetRadio.com - Podcast #2 – interview with Atif Aziz creator of ELMAH</title><link rel="alternate" type="text/html" href="http://dotnetslackers.com/Community/blogs/asiemer/archive/2009/11/14/dotnetradio.com_2D00_podcast_2D00_2_2D00_ndash_2D00_interview_2D00_with_2D00_atif_2D00_aziz_2D00_creator.aspx" /><id>http://dotnetslackers.com/Community/blogs/asiemer/archive/2009/11/14/dotnetradio.com_2D00_podcast_2D00_2_2D00_ndash_2D00_interview_2D00_with_2D00_atif_2D00_aziz_2D00_creator.aspx</id><published>2009-11-14T09:48:00Z</published><updated>2009-11-14T09:48:00Z</updated><content type="html">&lt;p&gt;&lt;span style="font-size:medium;font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&lt;/span&gt;    &lt;div style="font-size:85%;margin:10px;color:#000000;font-family:arial, helvetica, sans-serif;background-color:#ffffff;-webkit-background-clip:initial;-webkit-background-origin:initial;"&gt;     &lt;p&gt;&lt;span style="font-size:medium;font-family:&amp;#39;Times New Roman&amp;#39;;"&gt;&lt;/span&gt;        &lt;div style="font-size:85%;margin:10px;color:#000000;font-family:arial, helvetica, sans-serif;background-color:#ffffff;-webkit-background-clip:initial;-webkit-background-origin:initial;"&gt;         &lt;p&gt;Andrew sits down with Atif Aziz. Atif Aziz is a senior IT business analyst at Cargill International and an ex-Microsoftie. His primary focus is helping customers move to the .NET Framework. He speaks regularly at Microsoft conferences and can be reached &lt;a href="http://www.raboof.com/contact.aspx"&gt;through his web site&lt;/a&gt;. You can find out more about Atif Aziz by visiting his web site &lt;a href="http://www.raboof.com"&gt;www.raboof.com&lt;/a&gt;.&lt;/p&gt;          &lt;ul&gt;           &lt;li&gt;&lt;a href="http://www.raboof.com"&gt;Raboof.com&lt;/a&gt; = FooBar!! &lt;/li&gt;            &lt;li&gt;Atif describes to us what &lt;a href="http://code.google.com/p/elmah/"&gt;ELMAH&lt;/a&gt; is and the history behind it. He then goes into detail as to how to get ELMAH installed and running. Atif then outlines the types of storage that are supported and how to implement a custom storage provider. Next we get into how ELMAH handles exceptions, how it works with the .NET runtime, and what the appropriate way to handle exceptions with ELMAH is. He then gets into the details of how to signal ELMAH about exceptions that occur as the filtering that ELMAH provides. &lt;/li&gt;            &lt;li&gt;&lt;a href="http://aspexceptionreporter.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=35343"&gt;OrbitOne ASP.NET Exception Reporting&lt;/a&gt; (based on ELMAH) – a good example of centralized exception logging and extending ELMAH &lt;/li&gt;            &lt;li&gt;&lt;a href="http://www.veracode.com/content/view/840/38"&gt;ELMAH has earned Veracode Application Security rating&lt;/a&gt; and has earned OWASP top 10 and SANS-CWE top 25 placements &lt;/li&gt;            &lt;li&gt;What is &lt;a href="http://code.google.com/p/fizzler/"&gt;Fizzler&lt;/a&gt;? A .NET based CSS selector built on top of HTML Agility Pack to parse nodes of HTML by CSS selector. Using LINQ with Fizzler. How does jQuery (client side selector) compare to Fizzler? How is Fizzler able to select out nodes, make changes, and put those changes back? Fizzler and &lt;a href="http://www.codeplex.com/htmlagilitypack"&gt;HTML Agility Pack&lt;/a&gt; is very powerful when paired together for parsing and modifying HTML nodes &lt;/li&gt;            &lt;li&gt;How does &lt;a href="http://jayrock.berlios.de/"&gt;Jayrock&lt;/a&gt; fit into a web developers world? Jayrock is an easy to use way for JavaScript to communicate with back end web services using JSON as the wire format and JSON-RPC as the procedure invocation protocol. Jayrock can generate the client code that is needed for you. Jayrock works with .NET 1.0!! Jayrock is considerably easier to use compared with WCF. Jayrock follows the Duct Tape Programmer mentality of simple and easy to use with rock solid stability &lt;/li&gt;            &lt;li&gt;&lt;a href="http://code.google.com/p/backlinq/"&gt;BackLINQ&lt;/a&gt; &amp;quot;was a pretty bad start&amp;quot; ...but a good story &lt;/li&gt;            &lt;li&gt;&lt;a href="http://code.google.com/p/linqbridge/"&gt;LINQBridge&lt;/a&gt; provides LINQ capabilities to .NET 2.0 framework &lt;/li&gt;            &lt;li&gt;Unit testing is awesome…but not worth updating older codebases that are based on infrastructure &lt;/li&gt;            &lt;li&gt;&lt;a href="http://code.google.com/p/morelinq/"&gt;MoreLINQ&lt;/a&gt;, by &lt;a href="http://stackoverflow.com/users/22656/jon-skeet"&gt;Jon Skeet, StackOverflow super star&lt;/a&gt;, and author of &lt;a href="http://www.manning.com/skeet/"&gt;C# in Depth&lt;/a&gt;. MoreLINQ provides 22 additional really useful LINQ methods such as Zip(), ToDelimitedString(), TakeLast(), etc. &lt;/li&gt;            &lt;li&gt;Open Source works when everyone contributes little bits, be it code, documentation, writing blog posts and articles, etc. &lt;/li&gt;         &lt;/ul&gt;          &lt;p&gt;&lt;b&gt;Send me your questions and comments!&lt;/b&gt;&amp;#160; &lt;br /&gt;If you would like to submit a question to be answered in the next show, please record an audio file and email it to podcast@dotnetradio.com. All you need is a telephone! Call (646) 200-0000, talk, then navigate to&lt;a href="http://cinch.blogtalkradio.com/YOURPHONENUMBER"&gt;http://cinch.blogtalkradio.com/YOURPHONENUMBER&lt;/a&gt; to retrieve your recording. Then send it my way.&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;       &lt;/div&gt;&lt;/p&gt;&lt;img src="http://dotnetslackers.com/Community/aggbug.aspx?PostID=33229" width="1" height="1"&gt;</content><author><name>asiemer</name><uri>http://dotnetslackers.com/Community/members/asiemer.aspx</uri></author></entry><entry><title>Podcasting has been more fun than I had anticipated</title><link rel="alternate" type="text/html" href="http://dotnetslackers.com/Community/blogs/asiemer/archive/2009/11/13/podcasting-has-been-more-fun-than-i-had-anticipated.aspx" /><id>http://dotnetslackers.com/Community/blogs/asiemer/archive/2009/11/13/podcasting-has-been-more-fun-than-i-had-anticipated.aspx</id><published>2009-11-13T23:00:12Z</published><updated>2009-11-13T23:00:12Z</updated><content type="html">&lt;p&gt;Going into the whole podcasting adventure was something that I didn’t know if I was ready for or not.&amp;#160; I won’t lie, it has taken a LOT more time than I had initially estimated.&amp;#160; But getting the opportunity to meet and interact with the people that I have has been wonderful.&amp;#160; I thought setting up interviews, given that the site is new, would be difficult.&amp;#160; As it turns out getting people to come on the show has worked out quite well.&amp;#160; So much so that people are now asking to come on the show directly.&amp;#160; Wonderful.&lt;/p&gt;  &lt;p&gt;So far I have interviewed &lt;a href="http://flux88.com/" target="_blank"&gt;Ben Schierman&lt;/a&gt;, &lt;a href="http://blog.lozanotek.com/" target="_blank"&gt;Javier Lozano&lt;/a&gt;, &lt;a href="http://raboof.com/" target="_blank"&gt;Atif Aziz&lt;/a&gt;, and &lt;a href="http://girldeveloper.com/" target="_blank"&gt;Sara Chipps&lt;/a&gt; (in that order).&amp;#160; &lt;/p&gt;  &lt;p&gt;Ben’s interview, which largely discussed ASP.NET MVC and surrounding technologies, &lt;a href="http://www.dotnetradio.com/archive/2009/11/04/podcast-1.aspx" target="_blank"&gt;is already posted&lt;/a&gt;.&amp;#160; &lt;/p&gt;  &lt;p&gt;I just finished the rough edit of Atif’s interview which was fantastic (he is reviewing that now).&amp;#160; He has a wealth of untapped knowledge that would take several interviews to get out of him.&amp;#160; We discussed some of his open source projects which touched &lt;a href="http://code.google.com/p/elmah/" target="_blank"&gt;ELMAH&lt;/a&gt;, &lt;a href="http://raboof.com/Projects/Fizzler/" target="_blank"&gt;Fizzler&lt;/a&gt;, &lt;a href="http://raboof.com/Projects/Jayrock/" target="_blank"&gt;Jayrock&lt;/a&gt;, &lt;a href="http://www.softpedia.com/get/Programming/Components-Libraries/LINQBridge.shtml" target="_blank"&gt;LINQBridge&lt;/a&gt;, &lt;a href="http://www.raboof.com/Projects/BackLINQ/" target="_blank"&gt;BackLINQ&lt;/a&gt;, and &lt;a href="http://code.google.com/p/morelinq/" target="_blank"&gt;MoreLINQ&lt;/a&gt; among many other interesting things. &lt;/p&gt;  &lt;p&gt;The next interview I will be posting will be the interview I had with Javier Lozano.&amp;#160;&amp;#160; That interview took us through quite a few details of the ASP.NET MVC framework.&amp;#160; We discussed the existing MVC framework, new features of &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=d3f06bb9-5f5f-4f46-91e9-813b3fce2db1&amp;amp;displaylang=en" target="_blank"&gt;ASP.NET MVC 2 (preview 2)&lt;/a&gt;, the &lt;a href="http://www.codeplex.com/MVCContrib" target="_blank"&gt;MVC Contrib&lt;/a&gt;, Javier’s &lt;a href="http://mvcturbine.codeplex.com/" target="_blank"&gt;MVC Turbine&lt;/a&gt; project (which is awesome),&amp;#160; the MVC controls provider by such vendors as as &lt;a href="http://www.telerik.com/products/aspnet-mvc.aspx" target="_blank"&gt;Telerik&lt;/a&gt; and &lt;a href="http://samples.syncfusion.com/onlinesamples/mvcdemolaunchpad/default.aspx" target="_blank"&gt;Syncfusion&lt;/a&gt;, followed by a quick discussion of the Community for MVC (&lt;a href="http://www.c4mvc.net/" target="_blank"&gt;C4MVC&lt;/a&gt;) which I personally attended this last time around and loved!&amp;#160; C4MVC is a must for any MVC developer.&amp;#160; &lt;/p&gt;  &lt;p&gt;Then earlier this week I had a chance to speak with Sara Chipps from GirlDeveloper.com.&amp;#160; Sara covered ideas about how to make personal projects a reality.&amp;#160; We discussed her personal project &lt;a href="http://bundl.it" target="_blank"&gt;bundl.it&lt;/a&gt; which is similar to tinyurl.com except that it gives you one shortened url that points to a container (or bundle) of URLs!&amp;#160; We then discussed some agile practices, jquery, async web pages, and architecting for speed and scalability.&amp;#160; She then told me about a developer chat she created on &lt;a href="http://tinychat.com/" target="_blank"&gt;tinychat.com&lt;/a&gt; called WAN party (which was Super WAN Party last night) where several big names in our industry get together for a round table to discuss todays trends.&amp;#160; The key here is that everyone can interact with this folks.&amp;#160; I attended last night and have to say that I was quite impressed.&amp;#160; This was really quite a fun interview and I can’t wait to get it in front of you all!&lt;/p&gt;  &lt;p&gt;If you are waiting for the next interview, watch for my tweet from &lt;a href="http://www.twitter.com/dnetradio" target="_blank"&gt;@dnetradio&lt;/a&gt; tonight.&amp;#160; I will be posting Atif Aziz’s interview later this evening.&lt;/p&gt;&lt;img src="http://dotnetslackers.com/Community/aggbug.aspx?PostID=33223" width="1" height="1"&gt;</content><author><name>asiemer</name><uri>http://dotnetslackers.com/Community/members/asiemer.aspx</uri></author></entry><entry><title>Interviewing Sara J Chipps 11 Nov 2009 (tomorrow) at 7am</title><link rel="alternate" type="text/html" href="http://dotnetslackers.com/Community/blogs/asiemer/archive/2009/11/11/interviewing-sara-j-chipps-11-nov-2009-tomorrow-at-7am.aspx" /><id>http://dotnetslackers.com/Community/blogs/asiemer/archive/2009/11/11/interviewing-sara-j-chipps-11-nov-2009-tomorrow-at-7am.aspx</id><published>2009-11-12T02:49:00Z</published><updated>2009-11-12T02:49:00Z</updated><content type="html">&lt;div style="float:right;"&gt;

&lt;/div&gt;
&lt;div&gt;Hey all.&amp;nbsp; I wanted to let you know that I am going to be interviewing Sara J Chipps (of &lt;a href="http://www.girldeveloper.com"&gt;www.girldeveloper.com&lt;/a&gt;) tomorrow at 7am.&amp;nbsp; We will be discussing all sorts of programmer goodness from making your personal projects a reality (such as Sara&amp;rsquo;s &lt;a href="http://bundl.it"&gt;http://bundl.it&lt;/a&gt; project), agile development, commenting your code, and your responsibility as a developer to the next person reading your code.&amp;nbsp; We will also be looking at jQuery, asynchronous processes, and architecting for speed and scalability.&amp;nbsp; And of course, being that we are talking with a &amp;hellip;or &amp;ldquo;THE&amp;rdquo;&amp;hellip; girl developer we will also touch upon what it is like to be a lady working in mostly male dominated industry.&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Send in your questions and comments!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;If you have any questions for Sara prior to the interview or during it please twitter your question my way and include #DNetRadio in your post.&amp;nbsp; &lt;/p&gt;
&lt;p&gt;You can also record an audio file and email it to &lt;a href="mailto:podcast@dotnetradio.com"&gt;podcast@dotnetradio.com&lt;/a&gt;. All you need is a telephone! Call (646) 200-0000, talk, then navigate to &lt;a href="http://cinch.blogtalkradio.com/YOURPHONENUMBER"&gt;http://cinch.blogtalkradio.com/YOURPHONENUMBER&lt;/a&gt; to retrieve your recording. Then send it my way!&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div style="padding-right:0px;display:inline;padding-left:0px;float:none;padding-bottom:0px;margin:0px;padding-top:0px;" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:a2ffe593-6fb6-46e8-ba46-355b3b3c7cbf" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a rel="tag" href="http://technorati.com/tags/Sara+J+Chipps"&gt;Sara J Chipps&lt;/a&gt;&lt;/div&gt;&lt;img src="http://dotnetslackers.com/Community/aggbug.aspx?PostID=33190" width="1" height="1"&gt;</content><author><name>asiemer</name><uri>http://dotnetslackers.com/Community/members/asiemer.aspx</uri></author></entry></feed>
