<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:georss="http://www.georss.org/georss" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>Scott Klueppel's Blog - ASP.NET MVC</title>
    <link>http://offroadcoder.com/</link>
    <description>making the hard line look easy</description>
    <language>en-us</language>
    <copyright>Scott Klueppel</copyright>
    <lastBuildDate>Mon, 01 Feb 2010 02:50:19 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.1.8102.813</generator>
    <managingEditor>me@offroadcoder.com</managingEditor>
    <webMaster>me@offroadcoder.com</webMaster>
    <item>
      <trackback:ping>http://offroadcoder.com/Trackback.aspx?guid=5d833e28-847b-41a8-905f-549b0f6c1f84</trackback:ping>
      <pingback:server>http://offroadcoder.com/pingback.aspx</pingback:server>
      <pingback:target>http://offroadcoder.com/PermaLink,guid,5d833e28-847b-41a8-905f-549b0f6c1f84.aspx</pingback:target>
      <dc:creator>Scott Klueppel</dc:creator>
      <georss:point>30.109017 -81.497099</georss:point>
      <wfw:comment>http://offroadcoder.com/CommentView,guid,5d833e28-847b-41a8-905f-549b0f6c1f84.aspx</wfw:comment>
      <wfw:commentRss>http://offroadcoder.com/SyndicationService.asmx/GetEntryCommentsRss?guid=5d833e28-847b-41a8-905f-549b0f6c1f84</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I’m not sure if what I’m doing is actually the right way to create a “user control”
in ASP.NET MVC, but it’s worth sharing this tidbit either way. Instead of using a <em>MVC
View User Control</em> to create a hidden field, a text box, two anchors, and three
JavaScript functions, I chose to put it all in a <em>HtmlHelper</em> in which I write
out the HTML and JavaScript myself. Everything worked fine except the almost magical
auto-repopulating of the hidden and text fields after a post that didn’t work as expected
as in a typical <em>MVC View Page</em>.
</p>
        <p>
          <strong>The situation:</strong> I have a page that needs to be called as a popup from
many pages in my MVC application. The page allows single or multiple selection of
“items” driven by an XML file. In the event that one day, almost always immediately,
I have two or more of these “controls” on one view page, I need the two fields and
the three JavaScript functions to have unique names so they don’t cross paths and
cause unexpected behavior. I had an <em>ASP.NET User Control</em> to do this in plain
old ASP.NET (POAN) since v1.1, and I can’t live without it. 
</p>
        <p>
          <strong>The confusion:</strong> If I were to place the hidden, textbox, anchors, and
JavaScript functions directly in the calling page, something magical happens after
a post. If the controls had values before the post, they appear to magically retain
there values after the post. It wasn’t until a colleague of mine, Sat, and I dug into
Reflector for a while did we realize what was happening. Html.TextBox, Html.Hidden,
and others all do something similar to auto-magically re-populate their values after
the post. Since I’m writing out my fields as &lt;input type=”hidden”/&gt; and &lt;input
type=”text”/&gt;, the magic doesn’t happen.
</p>
        <p>
          <em>      NOTE: The magic will also not happen if you just
write &lt;input type=”text”/&gt; on the page. It only happens if you use Html.TextBox.</em>
        </p>
        <p>
          <strong>The solution:</strong> I am still new to MVC and still trying to wrap my head
around the “right way” to do things. Reflector showed that the <em>HtmlHelpers</em> all
looked at the ModelState in the ViewData before rendering their HTML. They looked
for their value by key (key being the control/tag name), and, if present, used that
as the control/tag’s value. Bing! Maybe I should do the same thing. So just before
I go to town with TagBuilder to assemble my controls/tags, I look in the ViewData’s
ModelState for my value. If it is there, it must have been posted there by me (my
control).
</p>
        <div style="width: 650px; font-family: consolas; background: #3f3f3f; color: #dcdccc; font-size: 9pt">
          <p style="margin: 0px">
            <span style="color: #85ac8d">   48</span>         <span style="color: #2b91af">UrlHelper</span><span style="color: #dfdfbf">urlHelper</span> = <span style="color: #e1e18a; font-weight: bold">new</span><span style="color: #2b91af">UrlHelper</span>(<span style="color: #dfdfbf">helper</span>.<span style="color: #dfdfbf">ViewContext</span>.<span style="color: #dfdfbf">RequestContext</span>);
</p>
          <p style="margin: 0px">
            <span style="color: #85ac8d">   49</span>         <span style="color: #e1e18a; font-weight: bold">string</span><span style="color: #dfdfbf">textValue</span> = <span style="color: #e1e18a; font-weight: bold">null</span>;
</p>
          <p style="margin: 0px">
            <span style="color: #85ac8d">   50</span>         <span style="color: #2b91af">ModelState</span><span style="color: #dfdfbf">state</span>;
</p>
          <p style="margin: 0px">
            <span style="color: #85ac8d">   51</span> 
</p>
          <p style="margin: 0px">
            <span style="color: #85ac8d">   52</span>         <span style="color: #e1e18a; font-weight: bold">if</span> (<span style="color: #dfdfbf">helper</span>.<span style="color: #dfdfbf">ViewData</span>.<span style="color: #dfdfbf">ModelState</span>.<span style="color: #dfdfbf">TryGetValue</span>(<span style="color: #dfdfbf">textFieldName</span>, <span style="color: #e1e18a; font-weight: bold">out</span><span style="color: #dfdfbf">state</span>))
</p>
          <p style="margin: 0px">
            <span style="color: #85ac8d">   53</span>        
{
</p>
          <p style="margin: 0px">
            <span style="color: #85ac8d">   54</span>             <span style="color: #dfdfbf">textValue</span> = <span style="color: #dfdfbf">state</span>.<span style="color: #dfdfbf">Value</span>.<span style="color: #dfdfbf">AttemptedValue</span>;
</p>
          <p style="margin: 0px">
            <span style="color: #85ac8d">   55</span>        
}
</p>
        </div>
        <br />
        <p>
Works like a charm! Now my hidden, textbox, two anchors, and three JavaScript functions
are bundled nicely inside of an <em>HtmlHelper</em> class that looks and feels like
I’m using a built-in ASP.NET MVC <em>HtmlHelper</em> class. Most importantly, I have
the pleasure of typing only this on all my consuming pages.
</p>
        <div style="width: 650px; font-family: consolas; background: #3f3f3f; color: #dcdccc; font-size: 9pt">
          <p style="margin: 0px">
            <span style="color: #85ac8d">   40</span>     <span style="background: #ffee62; color: #000">&lt;%</span><span style="color: #efef8f">=</span><span style="color: #dfdfbf">Html</span>.<span style="color: #dfdfbf">MySelector</span>(<span style="color: #c89191">"selectedIDs"</span>, <span style="color: #c89191">"selectedNames"</span>, <span style="color: #c89191">"State"</span>)<span style="background: #ffee62; color: #000">%&gt;</span></p>
        </div>
        <img width="0" height="0" src="http://offroadcoder.com/aggbug.ashx?id=5d833e28-847b-41a8-905f-549b0f6c1f84" />
      </body>
      <title>Auto-populating ASP.NET MVC “controls” after a post</title>
      <guid isPermaLink="false">http://offroadcoder.com/PermaLink,guid,5d833e28-847b-41a8-905f-549b0f6c1f84.aspx</guid>
      <link>http://offroadcoder.com/2010/02/01/AutopopulatingASPNETMVCControlsAfterAPost.aspx</link>
      <pubDate>Mon, 01 Feb 2010 02:50:19 GMT</pubDate>
      <description>&lt;p&gt;
I’m not sure if what I’m doing is actually the right way to create a “user control”
in ASP.NET MVC, but it’s worth sharing this tidbit either way. Instead of using a &lt;em&gt;MVC
View User Control&lt;/em&gt; to create a hidden field, a text box, two anchors, and three
JavaScript functions, I chose to put it all in a &lt;em&gt;HtmlHelper&lt;/em&gt; in which I write
out the HTML and JavaScript myself. Everything worked fine except the almost magical
auto-repopulating of the hidden and text fields after a post that didn’t work as expected
as in a typical &lt;em&gt;MVC View Page&lt;/em&gt;.
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;The situation:&lt;/strong&gt; I have a page that needs to be called as a popup from
many pages in my MVC application. The page allows single or multiple selection of
“items” driven by an XML file. In the event that one day, almost always immediately,
I have two or more of these “controls” on one view page, I need the two fields and
the three JavaScript functions to have unique names so they don’t cross paths and
cause unexpected behavior. I had an &lt;em&gt;ASP.NET User Control&lt;/em&gt; to do this in plain
old ASP.NET (POAN) since v1.1, and I can’t live without it. 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;The confusion:&lt;/strong&gt; If I were to place the hidden, textbox, anchors, and
JavaScript functions directly in the calling page, something magical happens after
a post. If the controls had values before the post, they appear to magically retain
there values after the post. It wasn’t until a colleague of mine, Sat, and I dug into
Reflector for a while did we realize what was happening. Html.TextBox, Html.Hidden,
and others all do something similar to auto-magically re-populate their values after
the post. Since I’m writing out my fields as &amp;lt;input type=”hidden”/&amp;gt; and &amp;lt;input
type=”text”/&amp;gt;, the magic doesn’t happen.
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NOTE: The magic will also not happen if you just
write &amp;lt;input type=”text”/&amp;gt; on the page. It only happens if you use Html.TextBox.&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;The solution:&lt;/strong&gt; I am still new to MVC and still trying to wrap my head
around the “right way” to do things. Reflector showed that the &lt;em&gt;HtmlHelpers&lt;/em&gt; all
looked at the ModelState in the ViewData before rendering their HTML. They looked
for their value by key (key being the control/tag name), and, if present, used that
as the control/tag’s value. Bing! Maybe I should do the same thing. So just before
I go to town with TagBuilder to assemble my controls/tags, I look in the ViewData’s
ModelState for my value. If it is there, it must have been posted there by me (my
control).
&lt;/p&gt;
&lt;div style="width: 650px; font-family: consolas; background: #3f3f3f; color: #dcdccc; font-size: 9pt"&gt;
&lt;p style="margin: 0px"&gt;
&lt;span style="color: #85ac8d"&gt;&amp;nbsp;&amp;nbsp; 48&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #2b91af"&gt;UrlHelper&lt;/span&gt; &lt;span style="color: #dfdfbf"&gt;urlHelper&lt;/span&gt; = &lt;span style="color: #e1e18a; font-weight: bold"&gt;new&lt;/span&gt; &lt;span style="color: #2b91af"&gt;UrlHelper&lt;/span&gt;(&lt;span style="color: #dfdfbf"&gt;helper&lt;/span&gt;.&lt;span style="color: #dfdfbf"&gt;ViewContext&lt;/span&gt;.&lt;span style="color: #dfdfbf"&gt;RequestContext&lt;/span&gt;);
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&lt;span style="color: #85ac8d"&gt;&amp;nbsp;&amp;nbsp; 49&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #e1e18a; font-weight: bold"&gt;string&lt;/span&gt; &lt;span style="color: #dfdfbf"&gt;textValue&lt;/span&gt; = &lt;span style="color: #e1e18a; font-weight: bold"&gt;null&lt;/span&gt;;
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&lt;span style="color: #85ac8d"&gt;&amp;nbsp;&amp;nbsp; 50&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #2b91af"&gt;ModelState&lt;/span&gt; &lt;span style="color: #dfdfbf"&gt;state&lt;/span&gt;;
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&lt;span style="color: #85ac8d"&gt;&amp;nbsp;&amp;nbsp; 51&lt;/span&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&lt;span style="color: #85ac8d"&gt;&amp;nbsp;&amp;nbsp; 52&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #e1e18a; font-weight: bold"&gt;if&lt;/span&gt; (&lt;span style="color: #dfdfbf"&gt;helper&lt;/span&gt;.&lt;span style="color: #dfdfbf"&gt;ViewData&lt;/span&gt;.&lt;span style="color: #dfdfbf"&gt;ModelState&lt;/span&gt;.&lt;span style="color: #dfdfbf"&gt;TryGetValue&lt;/span&gt;(&lt;span style="color: #dfdfbf"&gt;textFieldName&lt;/span&gt;, &lt;span style="color: #e1e18a; font-weight: bold"&gt;out&lt;/span&gt; &lt;span style="color: #dfdfbf"&gt;state&lt;/span&gt;))
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&lt;span style="color: #85ac8d"&gt;&amp;nbsp;&amp;nbsp; 53&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
{
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&lt;span style="color: #85ac8d"&gt;&amp;nbsp;&amp;nbsp; 54&lt;/span&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; &lt;span style="color: #dfdfbf"&gt;textValue&lt;/span&gt; = &lt;span style="color: #dfdfbf"&gt;state&lt;/span&gt;.&lt;span style="color: #dfdfbf"&gt;Value&lt;/span&gt;.&lt;span style="color: #dfdfbf"&gt;AttemptedValue&lt;/span&gt;;
&lt;/p&gt;
&lt;p style="margin: 0px"&gt;
&lt;span style="color: #85ac8d"&gt;&amp;nbsp;&amp;nbsp; 55&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
}
&lt;/p&gt;
&lt;/div&gt;
&lt;br&gt;
&lt;p&gt;
Works like a charm! Now my hidden, textbox, two anchors, and three JavaScript functions
are bundled nicely inside of an &lt;em&gt;HtmlHelper&lt;/em&gt; class that looks and feels like
I’m using a built-in ASP.NET MVC &lt;em&gt;HtmlHelper&lt;/em&gt; class. Most importantly, I have
the pleasure of typing only this on all my consuming pages.
&lt;/p&gt;
&lt;div style="width: 650px; font-family: consolas; background: #3f3f3f; color: #dcdccc; font-size: 9pt"&gt;
&lt;p style="margin: 0px"&gt;
&lt;span style="color: #85ac8d"&gt;&amp;nbsp;&amp;nbsp; 40&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="background: #ffee62; color: #000"&gt;&amp;lt;%&lt;/span&gt;&lt;span style="color: #efef8f"&gt;=&lt;/span&gt; &lt;span style="color: #dfdfbf"&gt;Html&lt;/span&gt;.&lt;span style="color: #dfdfbf"&gt;MySelector&lt;/span&gt;(&lt;span style="color: #c89191"&gt;"selectedIDs"&lt;/span&gt;, &lt;span style="color: #c89191"&gt;"selectedNames"&lt;/span&gt;, &lt;span style="color: #c89191"&gt;"State"&lt;/span&gt;)&lt;span style="background: #ffee62; color: #000"&gt;%&amp;gt;&lt;/span&gt;
&lt;/p&gt;
&lt;/div&gt;
&lt;img width="0" height="0" src="http://offroadcoder.com/aggbug.ashx?id=5d833e28-847b-41a8-905f-549b0f6c1f84" /&gt;</description>
      <comments>http://offroadcoder.com/CommentView,guid,5d833e28-847b-41a8-905f-549b0f6c1f84.aspx</comments>
      <category>ASP.NET</category>
      <category>ASP.NET MVC</category>
      <category>C#</category>
      <category>Javascript</category>
    </item>
    <item>
      <trackback:ping>http://offroadcoder.com/Trackback.aspx?guid=a79d6f30-2b6b-4707-85e0-3f4560b4f09e</trackback:ping>
      <pingback:server>http://offroadcoder.com/pingback.aspx</pingback:server>
      <pingback:target>http://offroadcoder.com/PermaLink,guid,a79d6f30-2b6b-4707-85e0-3f4560b4f09e.aspx</pingback:target>
      <dc:creator>Scott Klueppel</dc:creator>
      <georss:point>30.109017 -81.497099</georss:point>
      <wfw:comment>http://offroadcoder.com/CommentView,guid,a79d6f30-2b6b-4707-85e0-3f4560b4f09e.aspx</wfw:comment>
      <wfw:commentRss>http://offroadcoder.com/SyndicationService.asmx/GetEntryCommentsRss?guid=a79d6f30-2b6b-4707-85e0-3f4560b4f09e</wfw:commentRss>
      <slash:comments>6</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
In a <a href="http://gotjeep.net/Blogs/PermaLink,guid,e29199af-6868-44d5-bd16-873aa770d39a.aspx">previous
post about the AJAX Extensions</a>, I detailed the copy commands to retrieve the DLLs
from the GAC. Same thing, this time for the ASP.NET 3.5 Extensions. If you are demoing
CTP material in a hosted environment, you will likely need these in your app's bin
to avoid the inevitable configuration error.
</p>
        <p>
copy "C:\WINDOWS\assembly\GAC_MSIL\System.Web.Extensions\3.6.0.0__31bf3856ad364e35"
C:\dev\MMVCApp\bin<br />
copy "C:\WINDOWS\assembly\GAC_MSIL\System.Web.Extensions.Design\3.6.0.0__31bf3856ad364e35"
C:\dev\MMVCApp\bin
</p>
        <img width="0" height="0" src="http://offroadcoder.com/aggbug.ashx?id=a79d6f30-2b6b-4707-85e0-3f4560b4f09e" />
      </body>
      <title>Getting your ASP.NET Futures DLLs out of the GAC</title>
      <guid isPermaLink="false">http://offroadcoder.com/PermaLink,guid,a79d6f30-2b6b-4707-85e0-3f4560b4f09e.aspx</guid>
      <link>http://offroadcoder.com/2008/01/21/GettingYourASPNETFuturesDLLsOutOfTheGAC.aspx</link>
      <pubDate>Mon, 21 Jan 2008 03:25:40 GMT</pubDate>
      <description>&lt;p&gt;
In a &lt;a href="http://gotjeep.net/Blogs/PermaLink,guid,e29199af-6868-44d5-bd16-873aa770d39a.aspx"&gt;previous
post about the AJAX Extensions&lt;/a&gt;, I detailed the copy commands to retrieve the DLLs
from the GAC. Same thing, this time for the ASP.NET 3.5 Extensions. If you are demoing
CTP material in a hosted environment, you will likely need these in your app's bin
to avoid the inevitable configuration error.
&lt;/p&gt;
&lt;p&gt;
copy "C:\WINDOWS\assembly\GAC_MSIL\System.Web.Extensions\3.6.0.0__31bf3856ad364e35"
C:\dev\MMVCApp\bin&lt;br&gt;
copy "C:\WINDOWS\assembly\GAC_MSIL\System.Web.Extensions.Design\3.6.0.0__31bf3856ad364e35"
C:\dev\MMVCApp\bin
&lt;/p&gt;
&lt;img width="0" height="0" src="http://offroadcoder.com/aggbug.ashx?id=a79d6f30-2b6b-4707-85e0-3f4560b4f09e" /&gt;</description>
      <comments>http://offroadcoder.com/CommentView,guid,a79d6f30-2b6b-4707-85e0-3f4560b4f09e.aspx</comments>
      <category>.NET Framework</category>
      <category>ASP.NET</category>
      <category>ASP.NET MVC</category>
      <category>C#</category>
    </item>
    <item>
      <trackback:ping>http://offroadcoder.com/Trackback.aspx?guid=a1477bfd-e498-42d3-b190-b84f7d27c259</trackback:ping>
      <pingback:server>http://offroadcoder.com/pingback.aspx</pingback:server>
      <pingback:target>http://offroadcoder.com/PermaLink,guid,a1477bfd-e498-42d3-b190-b84f7d27c259.aspx</pingback:target>
      <dc:creator>Scott Klueppel</dc:creator>
      <georss:point>30.109017 -81.497099</georss:point>
      <wfw:comment>http://offroadcoder.com/CommentView,guid,a1477bfd-e498-42d3-b190-b84f7d27c259.aspx</wfw:comment>
      <wfw:commentRss>http://offroadcoder.com/SyndicationService.asmx/GetEntryCommentsRss?guid=a1477bfd-e498-42d3-b190-b84f7d27c259</wfw:commentRss>
      <slash:comments>3</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
A great series of blog posts by Scott Guthrie about the ASP.NET <a href="http://en.wikipedia.org/wiki/Model-view-controller">MVC</a> Framework
coming soon as part of the <a href="http://weblogs.asp.net/scottgu/archive/2007/11/29/net-web-product-roadmap-asp-net-silverlight-iis7.aspx">ASP.NET
3.5 Extensions release</a>. 
</p>
        <p>
Upon hearing the news, a few friends started questioning its intent, usefulness, and
longevity. Many of us have been using or contemplating conversion to the <a href="http://msdn.microsoft.com/msdnmag/issues/06/08/DesignPatterns/">MVP
pattern</a>, most recently using <a href="http://www.codeplex.com/websf">WCSF</a>.
The recent split of the MVP pattern by Fowler has caused many believers to question
their faith. While many are still "proving" MVP, MVC has been around for nearly 30
years. <a href="http://www.polymorphicpodcast.com/shows/aspnetmvc/">Some believe</a> that
MVP and MVC can co-exist. <a href="http://www.pnpguidance.net/Category/WebClientSoftwareFactory.aspx">Here</a> is
a comparison of MVP and MVC that concludes by painting an optimistic picture
of MVP and MVC contributing to each other.
</p>
        <p>
ASP.NET MVC appears to be the answer to my unit testing, REST, and code separation
prayers. Thank you ScottGu and team!
</p>
        <p>
          <a href="http://weblogs.asp.net/scottgu/archive/2007/12/09/asp-net-3-5-extensions-ctp-preview-released.aspx">Check
it out!</a>
        </p>
        <img width="0" height="0" src="http://offroadcoder.com/aggbug.ashx?id=a1477bfd-e498-42d3-b190-b84f7d27c259" />
      </body>
      <title>ASP.NET MVC</title>
      <guid isPermaLink="false">http://offroadcoder.com/PermaLink,guid,a1477bfd-e498-42d3-b190-b84f7d27c259.aspx</guid>
      <link>http://offroadcoder.com/2007/12/19/ASPNETMVC.aspx</link>
      <pubDate>Wed, 19 Dec 2007 02:06:20 GMT</pubDate>
      <description>&lt;p&gt;
A great series of blog posts by Scott Guthrie about the ASP.NET &lt;a href="http://en.wikipedia.org/wiki/Model-view-controller"&gt;MVC&lt;/a&gt; Framework
coming soon as part of the &lt;a href="http://weblogs.asp.net/scottgu/archive/2007/11/29/net-web-product-roadmap-asp-net-silverlight-iis7.aspx"&gt;ASP.NET
3.5 Extensions release&lt;/a&gt;. 
&lt;/p&gt;
&lt;p&gt;
Upon hearing the news, a few friends started questioning its intent, usefulness, and
longevity. Many of us have been using or contemplating conversion to the &lt;a href="http://msdn.microsoft.com/msdnmag/issues/06/08/DesignPatterns/"&gt;MVP
pattern&lt;/a&gt;, most recently using &lt;a href="http://www.codeplex.com/websf"&gt;WCSF&lt;/a&gt;.
The recent split of the MVP pattern by Fowler has caused many believers to question
their faith. While many are still "proving" MVP, MVC has been around for nearly 30
years. &lt;a href="http://www.polymorphicpodcast.com/shows/aspnetmvc/"&gt;Some believe&lt;/a&gt; that
MVP and MVC can co-exist. &lt;a href="http://www.pnpguidance.net/Category/WebClientSoftwareFactory.aspx"&gt;Here&lt;/a&gt; is
a comparison of MVP and MVC that concludes by painting&amp;nbsp;an optimistic picture
of MVP and MVC contributing to each other.
&lt;/p&gt;
&lt;p&gt;
ASP.NET MVC appears to be the answer to my unit testing, REST, and code separation
prayers. Thank you ScottGu and team!
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://weblogs.asp.net/scottgu/archive/2007/12/09/asp-net-3-5-extensions-ctp-preview-released.aspx"&gt;Check
it out!&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://offroadcoder.com/aggbug.ashx?id=a1477bfd-e498-42d3-b190-b84f7d27c259" /&gt;</description>
      <comments>http://offroadcoder.com/CommentView,guid,a1477bfd-e498-42d3-b190-b84f7d27c259.aspx</comments>
      <category>.NET Framework</category>
      <category>AJAX</category>
      <category>ASP.NET</category>
      <category>ASP.NET MVC</category>
      <category>C#</category>
      <category>Javascript</category>
    </item>
  </channel>
</rss>