<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://dotnetslackers.com/Community/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>DotNetSlackers Community</title><link>http://dotnetslackers.com/Community/blogs/</link><description /><dc:language>en-US</dc:language><generator>CommunityServer 2007.1 SP1 (Build: 30415.43)</generator><item><title>$15 off C# in Depth 2nd Edition</title><link>http://dotnetslackers.com/Community/blogs/asiemer/archive/2010/02/17/15_2D00_off_2D00_c_2D00_in_2D00_depth_2D00_2nd_2D00_edition.aspx</link><pubDate>Wed, 17 Feb 2010 17:08:18 GMT</pubDate><guid isPermaLink="false">6afe0437-14b4-41d5-bc66-6d54a24dbd48:34716</guid><dc:creator>asiemer</dc:creator><slash:comments>0</slash:comments><description>&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;</description></item><item><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>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</link><pubDate>Mon, 01 Feb 2010 04:41:14 GMT</pubDate><guid isPermaLink="false">6afe0437-14b4-41d5-bc66-6d54a24dbd48:34617</guid><dc:creator>asiemer</dc:creator><slash:comments>0</slash:comments><description>&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;</description></item><item><title>Can you help me formulate a TOC for an ASP.NET MVC Cookbook</title><link>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</link><pubDate>Fri, 15 Jan 2010 23:17:44 GMT</pubDate><guid isPermaLink="false">6afe0437-14b4-41d5-bc66-6d54a24dbd48:34498</guid><dc:creator>asiemer</dc:creator><slash:comments>0</slash:comments><description>&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;</description></item><item><title>VirtualDNUG.com a virtual .net users group</title><link>http://dotnetslackers.com/Community/blogs/asiemer/archive/2010/01/05/virtualdnug-com-a-virtual-net-users-group.aspx</link><pubDate>Tue, 05 Jan 2010 21:33:37 GMT</pubDate><guid isPermaLink="false">6afe0437-14b4-41d5-bc66-6d54a24dbd48:34350</guid><dc:creator>asiemer</dc:creator><slash:comments>0</slash:comments><description>&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;</description></item><item><title>ASP.NET MVC 2 in Action conducting a public review</title><link>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</link><pubDate>Tue, 05 Jan 2010 19:56:04 GMT</pubDate><guid isPermaLink="false">6afe0437-14b4-41d5-bc66-6d54a24dbd48:34345</guid><dc:creator>asiemer</dc:creator><slash:comments>2</slash:comments><description>&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;</description></item><item><title>NBuilder article just submitted to DotNetSlackers.com</title><link>http://dotnetslackers.com/Community/blogs/asiemer/archive/2010/01/04/nbuilder-article-just-submitted-to-dotnetslackers-com.aspx</link><pubDate>Mon, 04 Jan 2010 17:34:52 GMT</pubDate><guid isPermaLink="false">6afe0437-14b4-41d5-bc66-6d54a24dbd48:34308</guid><dc:creator>asiemer</dc:creator><slash:comments>0</slash:comments><description>&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;</description></item><item><title>Scrum on a Page</title><link>http://dotnetslackers.com/Community/blogs/asiemer/archive/2009/12/30/scrum-on-a-page.aspx</link><pubDate>Thu, 31 Dec 2009 00:19:32 GMT</pubDate><guid isPermaLink="false">6afe0437-14b4-41d5-bc66-6d54a24dbd48:34230</guid><dc:creator>asiemer</dc:creator><slash:comments>3</slash:comments><description>&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;</description></item><item><title>GZip Encoder WCF XmlDictionaryReaderQuotas MaxStringContentLength 8192 Error</title><link>http://dotnetslackers.com/Community/blogs/antrad/archive/2009/12/30/gzip-encoder-wcf-xmldictionaryreaderquotas-maxstringcontentlength-8192-error.aspx</link><pubDate>Tue, 29 Dec 2009 21:03:00 GMT</pubDate><guid isPermaLink="false">6afe0437-14b4-41d5-bc66-6d54a24dbd48:34199</guid><dc:creator>antrad</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;I used a MessageEncoder from Microsoft samples that you can find on this &lt;a target="_blank" title="GZIP WCF Message Encoding" href="http://msdn.microsoft.com/en-us/library/ms751458.aspx"&gt;link&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;But when i processed big message it didn&amp;#39;t work for an error similar to this:&lt;/p&gt;
&lt;p&gt;&lt;b&gt;The maximum string content length quota (8192) has been
exceeded while reading XML data. This quota may be increased by
changing the MaxStringContentLength property on the
XmlDictionaryReaderQuotas object used when creating the XML reader.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;I found some solutions but every solutions doesn&amp;#39;t work, so I changed code for resolve problem:&lt;/p&gt;
&lt;p&gt;Go to file GZipMessageEncodingBindingElement in class GZipMessageEncodingBindingElement, find method ApplyConfiguration and change it as follow:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre style="font-family:Andale Mono, Lucida Console, Monaco, fixed, monospace;color:#000000;background-color:#eee;font-size:12px;border:1px dashed #999999;line-height:14px;padding:5px;overflow:auto;width:100%;"&gt;&lt;code&gt;//Called by the WCF to apply the configuration settings (the property above) to the binding element&lt;br /&gt;        public override void ApplyConfiguration(BindingElement bindingElement)&lt;br /&gt;        {&lt;br /&gt;            GZipMessageEncodingBindingElement binding = (GZipMessageEncodingBindingElement)bindingElement;&lt;br /&gt;            PropertyInformationCollection propertyInfo = this.ElementInformation.Properties;&lt;br /&gt;            if (propertyInfo[&amp;quot;innerMessageEncoding&amp;quot;].ValueOrigin != PropertyValueOrigin.Default)&lt;br /&gt;            {&lt;br /&gt;                switch (this.InnerMessageEncoding)&lt;br /&gt;                {&lt;br /&gt;                    case &amp;quot;textMessageEncoding&amp;quot;:&lt;br /&gt;                        TextMessageEncodingBindingElement encoder = new TextMessageEncodingBindingElement();&lt;br /&gt;                        encoder.ReaderQuotas.MaxStringContentLength = int.MaxValue;&lt;br /&gt;                        binding.InnerMessageEncodingBindingElement = encoder;&lt;br /&gt;                        break;&lt;br /&gt;                    case &amp;quot;binaryMessageEncoding&amp;quot;:&lt;br /&gt;                        BinaryMessageEncodingBindingElement binEncoder = new BinaryMessageEncodingBindingElement();&lt;br /&gt;                        binEncoder.ReaderQuotas.MaxStringContentLength = int.MaxValue;&lt;br /&gt;                        binding.InnerMessageEncodingBindingElement = binEncoder;&lt;br /&gt;                        break;&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;            else {&lt;br /&gt;                TextMessageEncodingBindingElement encoder = new TextMessageEncodingBindingElement();&lt;br /&gt;                encoder.ReaderQuotas.MaxStringContentLength = int.MaxValue;&lt;br /&gt;                binding.InnerMessageEncodingBindingElement = encoder;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;It works for text encoding and binary encoding.&lt;/p&gt;
&lt;p&gt;Bye&lt;/p&gt;
&lt;p&gt;Antonio&lt;/p&gt;&lt;img src="http://dotnetslackers.com/Community/aggbug.aspx?PostID=34199" width="1" height="1"&gt;</description><category domain="http://dotnetslackers.com/Community/blogs/antrad/archive/tags/WCF/default.aspx">WCF</category></item><item><title>Book review: Brownfield Application Development in .NET</title><link>http://dotnetslackers.com/Community/blogs/asiemer/archive/2009/12/28/book-review-brownfield-application-development-in-net.aspx</link><pubDate>Mon, 28 Dec 2009 22:26:40 GMT</pubDate><guid isPermaLink="false">6afe0437-14b4-41d5-bc66-6d54a24dbd48:34157</guid><dc:creator>asiemer</dc:creator><slash:comments>4</slash:comments><description>&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;</description></item><item><title>Javier Lozano’s interview for DotNetRadio is now available!</title><link>http://dotnetslackers.com/Community/blogs/asiemer/archive/2009/11/25/javier-lozano-s-interview-for-dotnetradio-is-now-available.aspx</link><pubDate>Wed, 25 Nov 2009 18:18:20 GMT</pubDate><guid isPermaLink="false">6afe0437-14b4-41d5-bc66-6d54a24dbd48:33428</guid><dc:creator>asiemer</dc:creator><slash:comments>0</slash:comments><description>&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;</description></item><item><title>Location Formats for ASP.NET MVC</title><link>http://dotnetslackers.com/Community/blogs/bmains/archive/2009/11/23/location-formats-for-asp-net-mvc.aspx</link><pubDate>Mon, 23 Nov 2009 19:03:00 GMT</pubDate><guid isPermaLink="false">6afe0437-14b4-41d5-bc66-6d54a24dbd48:33399</guid><dc:creator>bmains</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;ASP.NET MVC is a wonderful thing.&amp;nbsp; One of the many great features is
the ability to customize all of the .NET framework&amp;#39;s code by swapping
out one implementation and using another.&amp;nbsp; One such instance is
creating a custom view engine, which you can do as illustrated in this
example: &lt;a href="http://www.singingeels.com/Articles/Creating_a_Custom_View_Engine_in_ASPNET_MVC.aspx"&gt;http://www.singingeels.com/Articles/Creating_a_Custom_View_Engine_in_ASPNET_MVC.aspx&lt;/a&gt;.&amp;nbsp;
The point of my article is not to illustrate how this can be done, but
about how to customize it for your needs.&amp;nbsp; By default, the web forms
view engine looks for views in the folder&amp;nbsp;of the controller or the
shared folder.&amp;nbsp; So if you try to trigger an action method &amp;quot;Index&amp;quot;
within the controller of type CustomerController, a partial view
(.ascx) or the view (.aspx) is sought for in the ~/Shared folder or
~/Customer folder.&lt;/p&gt;
&lt;p&gt;Now, I tend to like to use partial views in order to separate and
reuse functionality a lot.&amp;nbsp; So I tend to have a lot of partial views
that tend to get reused across pages and I don&amp;#39;t want everything to be
in the shared folder (by default, partial views have to be in the
shared folder or in the same folder as the controller).&amp;nbsp; So I added
some code to the view engine that allowed me to create subfolders
within the shared folder and for the view engine to look for the
classes there.&amp;nbsp; Imagine this folder structure:&lt;/p&gt;
&lt;p&gt;Shared&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Customers&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Orders&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Products&lt;/p&gt;
&lt;p&gt;So the shared folder breaks up my partial views into the folder above.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Thinking long-term, rather than hard-coding all these folder
references and assigning them to the ViewLocationFormats and
PartialViewLocationFormats properties, I wanted something that I
wouldn&amp;#39;t have to worry about changing later.&amp;nbsp; So in true ASP.NET MVC
framework form, I created some extra code to create the ability to
automatically add references to subfolders too.&amp;nbsp; In order to do this,
it&amp;#39;s required to use the VirtualPathProvider class to extract the URL,
as in the following code:&lt;/p&gt;
&lt;p&gt;public MyViewEngine() {&lt;br /&gt;var locations&amp;nbsp;= new List&amp;lt;string&amp;gt;&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;~/Views/{1}/{0}.aspx&amp;quot;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;~/Views/{1}/{0}.ascx&amp;quot;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;~/Views/Shared/{0}.aspx&amp;quot;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;~/Views/Shared/{0}.ascx&amp;quot;&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;var dir = this.VirtualPathProvider.GetDirectory(&amp;quot;~/Views/Shared&amp;quot;);&lt;br /&gt;var subs = dir.Directories.OfType&amp;lt;VirtualDirectory&amp;gt;();&lt;br /&gt;&lt;br /&gt;foreach (var sub in subs)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; locations.Add(&amp;quot;~&amp;quot; + sub.VirtualPath.Substring(sub.VirtualPath.IndexOf(&amp;quot;/&amp;quot;, 2)) + &amp;quot;{0}.ascx&amp;quot;);&lt;br /&gt;}&lt;/p&gt;
&lt;p&gt;base.ViewLocationFormats = locations.ToArray();&lt;br /&gt;base.PartialViewLocationFormats = base.ViewLocationFormats;&lt;br /&gt;}&lt;/p&gt;
&lt;p&gt;This is the constructor for the custom view engine.&amp;nbsp; It contains
some additional code to use the VirtualPathProvider property (a
property of our custom view engine) to extract the subdirectories of
the shared folder.&amp;nbsp; You see the four hard-coded references&amp;nbsp;at the
beginning, and so we need to create virtual path strings (which start
with &amp;quot;~&amp;quot; and work from the beginning of the virtual directory) to add
to the custom list.&amp;nbsp; When working with folders using
VirtualPathProvider, the issue becomes the way paths are referenced.&amp;nbsp;
By default, the path may be:&lt;/p&gt;
&lt;p&gt;/MyVirtualFolder/Views/Shared/Customers/&lt;/p&gt;
&lt;p&gt;When you need:&lt;/p&gt;
&lt;p&gt;~/Views/Shared/Customers/&lt;/p&gt;
&lt;p&gt;And so some additional work to format the path is needed (the
substring strips off the virtual directory folder.&amp;nbsp; Now we have a
component that will allow the MVC framework to look for partial views
in all subdirectories in the shared folder.&lt;/p&gt;&lt;img src="http://dotnetslackers.com/Community/aggbug.aspx?PostID=33399" width="1" height="1"&gt;</description><category domain="http://dotnetslackers.com/Community/blogs/bmains/archive/tags/Web/default.aspx">Web</category><category domain="http://dotnetslackers.com/Community/blogs/bmains/archive/tags/MVC/default.aspx">MVC</category></item><item><title>Send in questions for upcoming guests and get DotNetRadio SWAG</title><link>http://dotnetslackers.com/Community/blogs/asiemer/archive/2009/11/16/send-in-questions-for-upcoming-guests-and-get-dotnetradio-swag.aspx</link><pubDate>Mon, 16 Nov 2009 18:44:21 GMT</pubDate><guid isPermaLink="false">6afe0437-14b4-41d5-bc66-6d54a24dbd48:33258</guid><dc:creator>asiemer</dc:creator><slash:comments>1</slash:comments><description>&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;</description></item><item><title>Singular Reponsibility Principle (SRP) could have came in handy....</title><link>http://dotnetslackers.com/Community/blogs/bmains/archive/2009/11/14/singular-reponsibility-principle-srp-could-have-came-in-handy.aspx</link><pubDate>Sat, 14 Nov 2009 12:44:00 GMT</pubDate><guid isPermaLink="false">6afe0437-14b4-41d5-bc66-6d54a24dbd48:33231</guid><dc:creator>bmains</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;I was going back through an application I am currently working on for a client and trying to come up with a way to bridge a gap between that application and a new web site they want, which has two separate application architectures and ORM solutions.&amp;nbsp; I realized how some of my errors have come to light, and how the SRP principle could have came in handy.&amp;nbsp; Let me explain.&lt;/p&gt;
&lt;p&gt;When using an ORM solution like LINQ to SQL or ADO.NET Entity Framework, each of these ORM&amp;#39;s generates its own class and so you can&amp;#39;t simply reuse these objects if each project has it&amp;#39;s own class definition generated.&amp;nbsp; One of my coding blunders has come to light in relation to SRP. Imagine having a plain old CLR object (POCO) that receives data from an ORM generated class as such:&lt;/p&gt;
&lt;p&gt;//Class to receive data from a Customer LINQ to SQL class&lt;br /&gt;public class CustomerData&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp; public int Key { get; set; }&lt;br /&gt;&amp;nbsp;&amp;nbsp; public string Name { get; set; }&lt;br /&gt;&amp;nbsp;&amp;nbsp; .&lt;br /&gt;&amp;nbsp;&amp;nbsp; .&lt;br /&gt;}&lt;/p&gt;
&lt;p&gt;One of the convenient ways to load this object that I would do would be to add a method that does this, within CustomerData:&lt;/p&gt;
&lt;p&gt;public static CustomerData FromCustomer(Customer linqToSqlObj)&lt;br /&gt;{&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return new CustomerData&lt;br /&gt;&amp;nbsp; &amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Key = linqToSqlObj.Key,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Name = linqToSqlObj.Name&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;br /&gt;}&lt;/p&gt;
&lt;p&gt;And so this static method helped quickly create an instance. &amp;nbsp;The problem with this approach is that now I have a class customized for my LINQ to SQL project. &amp;nbsp;If I want to say use it for a shared project, a project that&amp;#39;s shared across multiple projects which may have multiple ORM&amp;#39;s, this shared project can&amp;#39;t have access to the data access layer (well it shouldn&amp;#39;t if it&amp;#39;s a shared project) and so the challenge then becomes how can you create this class?&lt;/p&gt;
&lt;p&gt;There are a couple of approaches.&amp;nbsp; One I&amp;#39;ve used is to use extension methods.&amp;nbsp; This allows an attachment of a method to do the conversion in a project that can access both objects.&amp;nbsp; This class could look like:&lt;/p&gt;
&lt;p&gt;public static class CustomerDataExtensions&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static CustomerData FromCustomerFromCustomer(this Customer linqToSqlObj)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return new CustomerData&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Key = linqToSqlObj.Key,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Name = linqToSqlObj.Name&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;/p&gt;
&lt;p&gt;This extension method appends a conversion method onto the LINQ object.&amp;nbsp; In this way, the responsibilities are separated, even though they may appear not to be.&lt;/p&gt;&lt;img src="http://dotnetslackers.com/Community/aggbug.aspx?PostID=33231" width="1" height="1"&gt;</description><category domain="http://dotnetslackers.com/Community/blogs/bmains/archive/tags/Application+Design/default.aspx">Application Design</category><category domain="http://dotnetslackers.com/Community/blogs/bmains/archive/tags/C_2300_/default.aspx">C#</category></item><item><title>DotNetRadio.com - Podcast #2 – interview with Atif Aziz creator of ELMAH</title><link>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</link><pubDate>Sat, 14 Nov 2009 09:48:00 GMT</pubDate><guid isPermaLink="false">6afe0437-14b4-41d5-bc66-6d54a24dbd48:33229</guid><dc:creator>asiemer</dc:creator><slash:comments>0</slash:comments><description>&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;</description></item><item><title>Podcasting has been more fun than I had anticipated</title><link>http://dotnetslackers.com/Community/blogs/asiemer/archive/2009/11/13/podcasting-has-been-more-fun-than-i-had-anticipated.aspx</link><pubDate>Fri, 13 Nov 2009 23:00:12 GMT</pubDate><guid isPermaLink="false">6afe0437-14b4-41d5-bc66-6d54a24dbd48:33223</guid><dc:creator>asiemer</dc:creator><slash:comments>0</slash:comments><description>&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;</description></item><item><title>Interviewing Sara J Chipps 11 Nov 2009 (tomorrow) at 7am</title><link>http://dotnetslackers.com/Community/blogs/asiemer/archive/2009/11/11/interviewing-sara-j-chipps-11-nov-2009-tomorrow-at-7am.aspx</link><pubDate>Thu, 12 Nov 2009 02:49:00 GMT</pubDate><guid isPermaLink="false">6afe0437-14b4-41d5-bc66-6d54a24dbd48:33190</guid><dc:creator>asiemer</dc:creator><slash:comments>0</slash:comments><description>&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;</description></item><item><title>Controller IControllerFactory could not create a controller for controller name 'Content'.</title><link>http://dotnetslackers.com/Community/blogs/bmains/archive/2009/11/10/controller-icontrollerfactory-could-not-create-a-controller-for-controller-name-content.aspx</link><pubDate>Tue, 10 Nov 2009 17:04:00 GMT</pubDate><guid isPermaLink="false">6afe0437-14b4-41d5-bc66-6d54a24dbd48:33163</guid><dc:creator>bmains</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;I got this error when I tried to run this code in my view.&lt;/p&gt;
&lt;p&gt;&amp;lt;img src=&amp;#39;&amp;lt;%= Url.Content(&amp;quot;~/Content/Images/logo.gif&amp;quot;) %&amp;gt;&amp;#39; /&amp;gt;&lt;/p&gt;
&lt;p&gt;At first I didn&amp;#39;t realize the underlying issue but then quickly realized that when the MVC framework can&amp;#39;t find a resource available on disk, it attempts to serve up the resource using a controller.&amp;nbsp; My folder structure actually had changed during the project and no the logo resided in Content/Images/Framework, but the URL was using the old directory.&lt;/p&gt;
&lt;p&gt;When it can&amp;#39;t find the file being accessed, the framework attempts to route the file through the route table established on the global.asax, which is exactly what it was trying to do; it was looking for a controller with the name ContentController, with an Images action method.&amp;nbsp; And since that can&amp;#39;t be found, nothing gets returned.&lt;/p&gt;
&lt;p&gt;The RouteTable.Routes property (of RouteCollection type) returns a RouteExistingFiles property.&amp;nbsp; The default value is false, meaning files on disk do not go through the routing process.&amp;nbsp; If you set this value to true, existing file routes go through the routing process, which requires a controller.&lt;/p&gt;&lt;img src="http://dotnetslackers.com/Community/aggbug.aspx?PostID=33163" width="1" height="1"&gt;</description><category domain="http://dotnetslackers.com/Community/blogs/bmains/archive/tags/Web/default.aspx">Web</category><category domain="http://dotnetslackers.com/Community/blogs/bmains/archive/tags/MVC/default.aspx">MVC</category></item><item><title>Just interviewed Atif Aziz for the DotNetRadio podcast</title><link>http://dotnetslackers.com/Community/blogs/asiemer/archive/2009/11/08/just_2D00_interviewed_2D00_atif_2D00_aziz.aspx</link><pubDate>Sun, 08 Nov 2009 17:03:09 GMT</pubDate><guid isPermaLink="false">6afe0437-14b4-41d5-bc66-6d54a24dbd48:33126</guid><dc:creator>asiemer</dc:creator><slash:comments>0</slash:comments><description>&lt;p style="padding-right:10px;padding-left:10px;float:right;padding-bottom:10px;padding-top:10px;text-align:right;"&gt;&lt;/p&gt;  &lt;p&gt;I just got through interviewing &lt;a href="http://raboof.com/" target="_blank"&gt;Atif Aziz&lt;/a&gt; (&lt;a href="http://twitter.com/raboof" target="_blank"&gt;@raboof&lt;/a&gt; on twitter – foobar spelled backwards!) probably most known (at least to me) for his &lt;a href="http://code.google.com/p/elmah/" target="_blank"&gt;ELMAH&lt;/a&gt; (Error Logging Modules and Handlers) contribution.&amp;#160; We discussed ELMAH, ELMAH’s Veracode Application Security Rating which made &lt;a href="http://www.owasp.org/index.php/Top_10_2007" target="_blank"&gt;OWASP top 10 in 2007&lt;/a&gt; and &lt;a href="http://www.sans.org/top25-programming-errors/" target="_blank"&gt;SANS-CWE top 25&lt;/a&gt;, &lt;a href="http://code.google.com/p/fizzler/" target="_blank"&gt;Fizzler&lt;/a&gt;, &lt;a href="http://code.google.com/p/jayrock/" target="_blank"&gt;Jayrock&lt;/a&gt;, &lt;a href="http://www.raboof.com/Projects/BackLINQ/" target="_blank"&gt;BackLINQ&lt;/a&gt;, &lt;a href="http://code.google.com/p/linqbridge/" target="_blank"&gt;LINQBridge&lt;/a&gt;, and &lt;a href="http://code.google.com/p/morelinq/" target="_blank"&gt;MoreLINQ&lt;/a&gt;.&amp;#160; Atif is a very smart guy and you can truly hear his passion for sharing with the development community when speaking with him.&amp;#160; This was a great interview that I think any .net developer could learn a thing or two from.&amp;#160; Look for this interview in the near future on the &lt;a href="http://www.dotnetradio.com" target="_blank"&gt;DotNetRadio&lt;/a&gt; podcast.&amp;#160; &lt;/p&gt;  &lt;p&gt;Subscribe to the podcast feed here: &lt;a href="http://feeds.feedburner.com/Dotnetradio"&gt;http://feeds.feedburner.com/Dotnetradio&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;And follow the show on twitter here: &lt;a href="http://twitter.com/dnetradio"&gt;http://twitter.com/dnetradio&lt;/a&gt;&lt;/p&gt;  &lt;div class="wlWriterEditableSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:7970b48d-d1c4-4cc7-8143-70db1fc1feaf" style="padding-right:0px;display:inline;padding-left:0px;float:none;padding-bottom:0px;margin:0px;padding-top:0px;"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Atif+Aziz" rel="tag"&gt;Atif Aziz&lt;/a&gt;,&lt;a href="http://technorati.com/tags/ELMAH" rel="tag"&gt;ELMAH&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Jayrock" rel="tag"&gt;Jayrock&lt;/a&gt;,&lt;a href="http://technorati.com/tags/BackLINQ" rel="tag"&gt;BackLINQ&lt;/a&gt;,&lt;a href="http://technorati.com/tags/LINQBridge" rel="tag"&gt;LINQBridge&lt;/a&gt;,&lt;a href="http://technorati.com/tags/MoreLINQ" rel="tag"&gt;MoreLINQ&lt;/a&gt;&lt;/div&gt;&lt;img src="http://dotnetslackers.com/Community/aggbug.aspx?PostID=33126" width="1" height="1"&gt;</description></item><item><title>Interviewing Javier Lozano 7 Nov 2009 (tonight) at 8pm PST</title><link>http://dotnetslackers.com/Community/blogs/asiemer/archive/2009/11/07/interviewing_2D00_javier_2D00_lozano_2D00_7_2D00_nov_2D00_2009_2D00_tonight_2D00_at_2D00_8pm_2D00_pst.aspx</link><pubDate>Sat, 07 Nov 2009 22:26:53 GMT</pubDate><guid isPermaLink="false">6afe0437-14b4-41d5-bc66-6d54a24dbd48:33111</guid><dc:creator>asiemer</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Hey all.&amp;#160; I wanted to let you know who was slated for the next interview - &lt;a href="http://blog.lozanotek.com/About.aspx" target="_blank"&gt;Javier Lozano&lt;/a&gt;.&amp;#160; &lt;/p&gt;  &lt;p&gt;Javier is a .NET consultant in Des Moines, Iowa. He&amp;#39;s an ASP.NET MVP and MCSD specializing in ASP.NET, system architecture, and training. Javier is also a co-founder of the &lt;strong&gt;&lt;a href="http://www.iadnug.org"&gt;Iowa .NET Users Group&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;On his blog you can find posts on ASP.NET, architecture, design patterns, .NET, XML and Indigo (WCF). Javier enjoys giving back to the community by speaking at user groups, local/regional .NET events, being active in forums and by writing articles for &lt;strong&gt;&lt;a href="http://www.codeproject.com"&gt;Code Project&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;In his &lt;em&gt;spare time&lt;/em&gt;, Javier enjoys spending time with his wife, &lt;strong&gt;&lt;a href="http://dominiclozano.com"&gt;newborn son&lt;/a&gt; &lt;/strong&gt;, two golden retrievers and writing about himself in the third person.&lt;/p&gt;  &lt;p&gt;It is my plan to interview Javier tonight and get the podcast ready for release by the middle of next week.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Got Questions for Javier?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;If you have any questions about &lt;a href="http://www.asp.net/mvc/"&gt;ASP.NET MVC&lt;/a&gt;, &lt;a href="http://mvcturbine.codeplex.com/" target="_blank"&gt;Turbine&lt;/a&gt;, or anything else you think appropriate for Javier feel free to send them my way at &lt;a href="mailto:podcast@dotnetradio.com" target="_blank"&gt;podcast@dotnetradio.com&lt;/a&gt;.&amp;#160; The interview will be tonight at 8pm (PST).&amp;#160; Feel free to send your questions in real time via twitter to &lt;a href="http://www.twitter.com/dnetradio" target="_blank"&gt;@DNetRadio&lt;/a&gt;.&lt;/p&gt;  &lt;div class="wlWriterEditableSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:115de82d-3825-4b2e-819c-f83cc953040f" style="padding-right:0px;display:inline;padding-left:0px;float:none;padding-bottom:0px;margin:0px;padding-top:0px;"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Javier+Lozano" rel="tag"&gt;Javier Lozano&lt;/a&gt;,&lt;a href="http://technorati.com/tags/ASP.NET+MVC" rel="tag"&gt;ASP.NET MVC&lt;/a&gt;,&lt;a href="http://technorati.com/tags/MVC+Turbine" rel="tag"&gt;MVC Turbine&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Dependency+Injection" rel="tag"&gt;Dependency Injection&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Inversion+of+Control" rel="tag"&gt;Inversion of Control&lt;/a&gt;,&lt;a href="http://technorati.com/tags/MVC+Contrib" rel="tag"&gt;MVC Contrib&lt;/a&gt;&lt;/div&gt;&lt;img src="http://dotnetslackers.com/Community/aggbug.aspx?PostID=33111" width="1" height="1"&gt;</description></item><item><title>Interview with Ben Scheirman co-author of ASP.NET MVC in Action on DotNetRadio.com</title><link>http://dotnetslackers.com/Community/blogs/asiemer/archive/2009/11/05/interview_2D00_with_2D00_ben_2D00_scheirman_2D00_co_2D00_author_2D00_of_2D00_asp.net_2D00_mvc_2D00_in_2D00_action.aspx</link><pubDate>Fri, 06 Nov 2009 03:59:54 GMT</pubDate><guid isPermaLink="false">6afe0437-14b4-41d5-bc66-6d54a24dbd48:33084</guid><dc:creator>asiemer</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;I recently sat down with Ben Scheirman (co-author of ASP.NET MVC in Action) for my first interview on my new show DotNetRadio.&amp;#160; It was quite a talk!&amp;#160; We covered the following points:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;An introduction to Ben Scheirman and how he got into web development &lt;/li&gt;    &lt;li&gt;Bens path through various web technologies such as ColdFusion, PHP, Ruby, and ASP.NET &lt;/li&gt;    &lt;li&gt;A brief discussion on code testability &lt;/li&gt;    &lt;li&gt;Working with ASP.NET web forms using the model view presenter pattern &lt;/li&gt;    &lt;li&gt;How &lt;a href="http://www.asp.net/mvc/"&gt;ASP.NET MVC&lt;/a&gt; simplifies the testing process &lt;/li&gt;    &lt;li&gt;Ben informs us of how you can sell test driven development to a client…or sneak it in &lt;/li&gt;    &lt;li&gt;Regression testing &lt;/li&gt;    &lt;li&gt;We run through the process of refactoring and how you really should trust&lt;a href="http://www.jetbrains.com/resharper/"&gt;ReSharper&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;We briefly touch upon the concept of Continuous Integration &lt;/li&gt;    &lt;li&gt;Ben discusses a new way of testing using &lt;a href="http://github.com/machine/machine.specifications"&gt;MSpec&lt;/a&gt; to create documentation out of your unit tests &lt;/li&gt;    &lt;li&gt;This leads us into behavior driven development and context specification &lt;/li&gt;    &lt;li&gt;Next we discuss how twitter can be used as a developer tool &lt;/li&gt;    &lt;li&gt;Ben describes to us how he got involved with co-authoring &lt;a href="http://www.manning.com/palermo/"&gt;ASP.NET MVC in Action&lt;/a&gt; and the process involved with writing a book based on “preview” code. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Check it out at &lt;a href="http://dotnetradio.com/"&gt;http://dotnetradio.com/&lt;/a&gt;.&amp;#160; You can follow the show on Twitter at &lt;a href="http://twitter.com/dnetradio" target="_blank"&gt;DNetRadio&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;As this is a new show the format is not entirely worked out just yet!&amp;#160; I am still trying to work out the music, the format, guest lineup, advertisers, etc.&amp;#160; Also, since I am a coder by day and a coder/writer at night – pro-audio is a totally foreign concept to me.&amp;#160; I am all ears if after listening to the show or visiting the site you come up with a WTF moment or just some good general advice.&amp;#160; Shoot it my way!&lt;/p&gt;&lt;img src="http://dotnetslackers.com/Community/aggbug.aspx?PostID=33084" width="1" height="1"&gt;</description></item><item><title>) Expected Error in ASP.NET MVC</title><link>http://dotnetslackers.com/Community/blogs/bmains/archive/2009/11/03/expected-error-in-asp-net-mvc.aspx</link><pubDate>Tue, 03 Nov 2009 01:20:00 GMT</pubDate><guid isPermaLink="false">6afe0437-14b4-41d5-bc66-6d54a24dbd48:33035</guid><dc:creator>bmains</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;I&amp;#39;ve been just getting into MVC lately and run into a weird error, mostly weird because it&amp;#39;s mostly due to the error message itself than the actual problem.&amp;nbsp; The problem is very easy to fix, but first, a little background.&amp;nbsp; In the various MVC frameworks out there, there are two ways to render controls: using these two syntaxes:&lt;/p&gt;
&lt;p&gt;&amp;lt;%= Html.HelperMethod() %&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;% Html.HelperMethod(); %&amp;gt;&lt;/p&gt;
&lt;p&gt;Note the syntaxes; the first syntax returns a string.&amp;nbsp; This string gets rendered directly&amp;nbsp;to the output stream.&amp;nbsp; The second option uses&amp;nbsp;the&amp;nbsp;current context to render the HTML directly to the browser via the HttpResponse.&amp;nbsp; It&amp;#39;s up to you to determine which of these options the helper method you are currently using, which is helped along using the inline&amp;nbsp;documentation.&amp;nbsp; But I ran into an interesting situation: if you forget (or don&amp;#39;t realize) that the options you are using happen to use the &amp;lt;%= %&amp;gt; syntax and includes a semi-colon, you may get the ) expected error.&amp;nbsp; Why, I don&amp;#39;t know, but that&amp;#39;s what I been running into.&lt;/p&gt;
&lt;p&gt;Some of the issues may be with the HTML helper themselves; for instance, some of the features you may use may need to use the latter option of rendering rather than the former, which seems to have been what my issue was, but I haven&amp;#39;t yet placed my entire finger on it.&lt;/p&gt;&lt;img src="http://dotnetslackers.com/Community/aggbug.aspx?PostID=33035" width="1" height="1"&gt;</description><category domain="http://dotnetslackers.com/Community/blogs/bmains/archive/tags/Web/default.aspx">Web</category><category domain="http://dotnetslackers.com/Community/blogs/bmains/archive/tags/MVC/default.aspx">MVC</category></item><item><title>Telerik RadCompression is awesome!</title><link>http://dotnetslackers.com/Community/blogs/bmains/archive/2009/10/31/telerik-radcompression-is-awesome.aspx</link><pubDate>Sat, 31 Oct 2009 03:04:00 GMT</pubDate><guid isPermaLink="false">6afe0437-14b4-41d5-bc66-6d54a24dbd48:32993</guid><dc:creator>bmains</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;The latest release of Telerik&amp;#39;s RadControls framework for ASP.NET AJAX has a really cool feature: RadCompression.&amp;nbsp; Telerik provides a HTTP module that compresses your JavaScript files, Silverlight applications, and AJAX/web service requests.&amp;nbsp; While it may not work with every request (it doesn&amp;#39;t support web service page methods and it doesn&amp;#39;t support certain application types), it does work really well in what it does.&lt;/p&gt;
&lt;p&gt;We added this to our application in our development environment, and noticed that it did improve the web site speed on our local machine by up to 20% (as a rough estimate from visual tests and not actually performing benchmarking).&lt;/p&gt;
&lt;p&gt;It&amp;#39;s very easy to add; all you need to do is add the reference to the module in the config file, as documented here: http://www.telerik.com/help/aspnet-ajax/radcompression.html&lt;/p&gt;&lt;img src="http://dotnetslackers.com/Community/aggbug.aspx?PostID=32993" width="1" height="1"&gt;</description><category domain="http://dotnetslackers.com/Community/blogs/bmains/archive/tags/Web/default.aspx">Web</category><category domain="http://dotnetslackers.com/Community/blogs/bmains/archive/tags/Third+Party+Tools/default.aspx">Third Party Tools</category></item><item><title>Interview with Ben Scheirman coming soon to DotNetRadio.com</title><link>http://dotnetslackers.com/Community/blogs/asiemer/archive/2009/10/18/interview_2D00_with_2D00_ben_2D00_scheirman_2D00_coming_2D00_soon_2D00_to_2D00_dotnetradio.com.aspx</link><pubDate>Mon, 19 Oct 2009 03:17:01 GMT</pubDate><guid isPermaLink="false">6afe0437-14b4-41d5-bc66-6d54a24dbd48:32773</guid><dc:creator>asiemer</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;This morning I had the chance to speak with &lt;a href="http://flux88.com/" target="_blank"&gt;Ben Scheirman&lt;/a&gt;.&amp;#160; We chatted for roughly an hour or so discussing how he entered into the web development industry, going on the road to teach &lt;a href="http://www.asp.net/mvc/"&gt;ASP.NET MVC&lt;/a&gt; in its early days, his book &lt;a href="http://www.manning.com/palermo/" target="_blank"&gt;ASP.NET MVC in Action&lt;/a&gt;, and his thoughts on the use of the &lt;a href="http://www.asp.net/mvc/"&gt;MVC&lt;/a&gt; framework.&amp;#160; We discussed some patterns and tools for testing, tools for development in general such as &lt;a href="http://www.jetbrains.com/resharper/" target="_blank"&gt;ReSharper&lt;/a&gt;, and the use of the &lt;a href="http://sparkviewengine.com/" target="_blank"&gt;Spark View Engine&lt;/a&gt;.&amp;#160; Watch for this podcast to be posted within the next couple of days.&amp;#160; &lt;/p&gt;  &lt;p&gt;Being the first podcast for DotNetRadio and the first podcast I have ever done I am hoping that my listeners will share any ideas to improve the show.&amp;#160; I am all ears!&amp;#160; Feel free to share your feedback with me at &lt;a href="mailto:podcast@dotnetradio.com"&gt;podcast@dotnetradio.com&lt;/a&gt;.&amp;#160; &lt;/p&gt;  &lt;p&gt;Tell your friends about DotNetRadio!&amp;#160; You can also follow us at &lt;a href="http://www.twitter.com/dnetradio" target="_blank"&gt;twitter.com/DNetRadio&lt;/a&gt;.&lt;/p&gt;  &lt;div class="wlWriterEditableSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:6985a5f5-1862-4bbf-9787-f7251f37527e" style="padding-right:0px;display:inline;padding-left:0px;float:none;padding-bottom:0px;margin:0px;padding-top:0px;"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Ben+Scheirman" rel="tag"&gt;Ben Scheirman&lt;/a&gt;,&lt;a href="http://technorati.com/tags/asp.net+mvc" rel="tag"&gt;asp.net mvc&lt;/a&gt;,&lt;a href="http://technorati.com/tags/spark+view+engine" rel="tag"&gt;spark view engine&lt;/a&gt;,&lt;a href="http://technorati.com/tags/ReSharper" rel="tag"&gt;ReSharper&lt;/a&gt;&lt;/div&gt;&lt;img src="http://dotnetslackers.com/Community/aggbug.aspx?PostID=32773" width="1" height="1"&gt;</description></item><item><title>DotNetRadio.com</title><link>http://dotnetslackers.com/Community/blogs/asiemer/archive/2009/10/13/dotnetradio.com.aspx</link><pubDate>Tue, 13 Oct 2009 05:44:26 GMT</pubDate><guid isPermaLink="false">6afe0437-14b4-41d5-bc66-6d54a24dbd48:32679</guid><dc:creator>asiemer</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;I decided to start a podcast.&amp;#160; I am going to host it under the name of DotNetRadio…sounded appropriate!&amp;#160; I am in the early stages of getting things set up which means that there is still some flexibility in how things are done.&amp;#160; I was wondering if anyone out there is willing to share some input regarding the creation of a podcast, how they might like to see the show format take shape, who they would be interested in hearing an interview of, etc.&amp;#160; &lt;/p&gt;  &lt;p&gt;I initially did a test recording using a standard analog mic.&amp;#160; Totally sucked!&amp;#160; So I upgraded to a better quality USB mic.&amp;#160; This certainly made things sound better but it still sounded like I was talking through a can.&amp;#160; Tomorrow I should be receiving the Behringer podcaststudio.&amp;#160; I am hoping that this will be an exceptional upgrade (though still not pro-audio).&amp;#160; This package comes with a good mic, head set, mixer, usb interface, etc.&amp;#160; I also got a pop filter that clips on to the mic (everyone said it is a must).&amp;#160; We will see how it goes.&lt;/p&gt;  &lt;p&gt;Take a look at DotNetRadio.com.&amp;#160; Let me know what you think and more importantly if you have any suggestions send that my way too!&lt;/p&gt;&lt;img src="http://dotnetslackers.com/Community/aggbug.aspx?PostID=32679" width="1" height="1"&gt;</description></item><item><title>Function to get the Ordinal Numbers</title><link>http://dotnetslackers.com/Community/blogs/kaushalparik/archive/2009/09/30/function-to-get-the-ordinal-numbers.aspx</link><pubDate>Wed, 30 Sep 2009 11:43:00 GMT</pubDate><guid isPermaLink="false">6afe0437-14b4-41d5-bc66-6d54a24dbd48:32494</guid><dc:creator>kaushalparik</dc:creator><slash:comments>2</slash:comments><description>&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; public string GetOrdinal(int Number)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (((Number % 100) / 10) != 1)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ((Number % 10) == 1)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return &amp;quot;st&amp;quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if ((Number % 10) == 2)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return &amp;quot;nd&amp;quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if ((Number % 10) == 3)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return &amp;quot;rd&amp;quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return &amp;quot;th&amp;quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return &amp;quot;th&amp;quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&lt;/p&gt;&lt;img src="http://dotnetslackers.com/Community/aggbug.aspx?PostID=32494" width="1" height="1"&gt;</description></item></channel></rss>