[{"data":1,"prerenderedAt":230},["ShallowReactive",2],{"blog:2007:aspnet-mvc-preview-available":3,"blogMore-Development":216,"comments-aspnet-mvc-preview-available":229},{"id":4,"title":5,"body":6,"category":196,"commentCount":197,"date":198,"description":199,"excerpt":200,"extension":201,"filenames":202,"hidden":203,"image":202,"meta":204,"minutes":194,"navigation":205,"path":206,"seo":207,"showCategory":202,"stem":208,"tags":209,"updated":202,"url":213,"wordCount":214,"__hash__":215},"content\u002Fblog\u002F2007\u002Faspnet-mvc-preview-available.md","ASP.NET MVC preview available",{"type":7,"value":8,"toc":192},"minimark",[9,21,32,41,50,82,85,121,124,161,171,186],[10,11,12,13,20],"p",{},"The first ",[14,15,19],"a",{"href":16,"rel":17},"https:\u002F\u002Fasp.net\u002Fdownloads\u002F3.5-extensions\u002F",[18],"nofollow","public preview of Microsoft’s ASP.NET MVC (model view controller) framework"," is now available.",[22,23,24],"blockquote",{},[10,25,26,27,31],{},"Download ",[14,28,30],{"href":29},"https:\u002F\u002Fgo.microsoft.com\u002Ffwlink\u002F?LinkID=105029","ASP.NET 3.5 Extensions (EXE)"," (3.7 MB)",[22,33,34],{},[10,35,26,36,40],{},[14,37,39],{"href":38},"https:\u002F\u002Fasp.net\u002Fdownloads\u002F3.5-extensions\u002FMVCToolkit.zip","MVC Toolkit (ZIP)"," (400 KB)",[10,42,43,44,49],{},"The project takes cues from Ruby on Rail’s success and looks to address dissatisfaction with the testability and maintainability of WebForms applications and provides an alternative approach that is centered around views, models, controllers with a clear separation of concern and the ability to mock test the individual elements.The ",[14,45,48],{"href":46,"rel":47},"https:\u002F\u002Fquickstarts.asp.net\u002F3-5-extensions\u002F",[18],"official documentation is online"," and there is a great four-part series over at Scott Guthrie’s blog which covers:",[51,52,53,61,68,75],"ul",{},[54,55,56],"li",{},[14,57,60],{"href":58,"rel":59},"https:\u002F\u002Fweblogs.asp.net\u002Fscottgu\u002Farchive\u002F2007\u002F11\u002F13\u002Fasp-net-mvc-framework-part-1.aspx",[18],"Introduction",[54,62,63],{},[14,64,67],{"href":65,"rel":66},"https:\u002F\u002Fweblogs.asp.net\u002Fscottgu\u002Farchive\u002F2007\u002F12\u002F03\u002Fasp-net-mvc-framework-part-2-url-routing.aspx",[18],"URL routing",[54,69,70],{},[14,71,74],{"href":72,"rel":73},"https:\u002F\u002Fweblogs.asp.net\u002Fscottgu\u002Farchive\u002F2007\u002F12\u002F06\u002Fasp-net-mvc-framework-part-3-passing-viewdata-from-controllers-to-views.aspx",[18],"Passing data from controllers to views",[54,76,77],{},[14,78,81],{"href":79,"rel":80},"https:\u002F\u002Fweblogs.asp.net\u002Fscottgu\u002Farchive\u002F2007\u002F12\u002F09\u002Fasp-net-mvc-framework-part-4-handling-form-edit-and-post-scenarios.aspx",[18],"Handling forms",[10,83,84],{},"Phil Hack and Rob Conery are both now at Microsoft and working on the framework, they have some interesting things to say on it too:",[51,86,87,94,100,107,114],{},[54,88,89],{},[14,90,93],{"href":91,"rel":92},"https:\u002F\u002Fwww.haacked.com\u002Farchive\u002F2007\u002F12.aspx",[18],"Extending to add conventions",[54,95,96],{},[14,97,99],{"href":98},"https:\u002F\u002Fwww.haacked.com\u002Farchive\u002F2007\u002F12\u002F07\u002Ftdd-and-dependency-injection-with-asp.net-mvc.aspx","Test-driven development and dependency injection",[54,101,102],{},[14,103,106],{"href":104,"rel":105},"https:\u002F\u002Fblog.wekeroad.com\u002F2007\u002F12\u002F05\u002Faspnet-mvc-preview-using-the-mvc-ui-helpers\u002F",[18],"Using user interface (HTML) helpers",[54,108,109],{},[14,110,113],{"href":111,"rel":112},"https:\u002F\u002Fblog.wekeroad.com\u002F2007\u002F12\u002F06\u002Faspnet-mvc-using-restful-architecture\u002F",[18],"Using RESTful architecture",[54,115,116],{},[14,117,120],{"href":118,"rel":119},"https:\u002F\u002Fwww.nikhilk.net\u002FAjax-MVC.aspx",[18],"Using Ajax",[10,122,123],{},"A few other people have already written about the subject too:",[51,125,126,133,140,147,154],{},[54,127,128],{},[14,129,132],{"href":130,"rel":131},"https:\u002F\u002Fpolymorphicpodcast.com\u002Fshows\u002Faspnetmvc\u002F",[18],"Jeffrey Palermo’s podcast interview",[54,134,135],{},[14,136,139],{"href":137,"rel":138},"https:\u002F\u002Fweblogs.asp.net\u002Ffredriknormen\u002Farchive\u002F2007\u002F11\u002F19\u002Fasp-net-mvc-framework-exception-handling.aspx",[18],"Fredrol Normén on exception handling",[54,141,142],{},[14,143,146],{"href":144,"rel":145},"https:\u002F\u002Fblogs.msdn.com\u002Fbrada\u002Farchive\u002F2007\u002F11\u002F14\u002Frss-feed-with-the-new-asp-net-mvc-framework.aspx",[18],"Brad Abrams on creating an RSS feed with LinqToSql",[54,148,149],{},[14,150,153],{"href":151,"rel":152},"https:\u002F\u002Fdotnetslackers.com\u002Farticles\u002Faspnet\u002FAnArchitecturalViewOfTheASPNETMVCFramework.aspx",[18],"Dino Esposito on architecture",[54,155,156],{},[14,157,160],{"href":158,"rel":159},"https:\u002F\u002Fwww.codeplex.com\u002FMVCContrib",[18],"MVC Contrib open-source additions & helpers",[22,162,163],{},[10,164,165,166,170],{},"Most of the examples and many of the routines\u002Fhelpers fail to encode output which opens them up to HTML and script injection vulnerabilities. Remember to ",[14,167,169],{"href":168},"\u002Fblog\u002F2007\u002Fweb-application-security-talk-at-gsdf\u002F","HttpUtility.HtmlEncode output"," and use Reflector if you’re unsure whether a function is encoding correctly.",[10,172,173,174,179,180,185],{},"The CTP requires Visual Studio 2008 to get the most out if it so either head over to ",[14,175,178],{"href":176,"rel":177},"https:\u002F\u002Fmsdn2.microsoft.com\u002Fen-us\u002Fsubscriptions\u002Fbb608344.aspx",[18],"MSDN Subscriber Downloads"," or grab a ",[14,181,184],{"href":182,"rel":183},"https:\u002F\u002Fmsdn2.microsoft.com\u002Fen-us\u002Fvstudio\u002Fproducts\u002Faa700831.aspx",[18],"90-day trial edition"," if you don’t already have it installed.",[10,187,188],{},[189,190,191],"em",{},"[)amien",{"title":193,"searchDepth":194,"depth":194,"links":195},"",2,[],"Development",10,"2007-12-10T01:25:57+00:00","The first public preview of Microsoft’s ASP.NET MVC (model view controller) framework is now available.","[object Object]","md",null,false,{},true,"\u002Fblog\u002F2007\u002Faspnet-mvc-preview-available",{"title":5,"description":199},"blog\u002F2007\u002Faspnet-mvc-preview-available",[210,211,212],".NET","ASP.NET","webdev","\u002Fblog\u002F2007\u002Faspnet-mvc-preview-available\u002F",263,"EzwAYOUl5vAM7PA9rlu_pLhuORq9d8c91Uzdmv8RUTQ",[217,221,225],{"title":218,"date":219,"url":220},"Transactions in the MongoDB EF Core Provider","2025-10-25","\u002Fblog\u002F2025\u002Fmongodb-explicit-transactions\u002F",{"title":222,"date":223,"url":224},"Queryable Encryption with the MongoDB EF Core Provider","2025-09-22","\u002Fblog\u002F2025\u002Fmongodb-queryable-encryption\u002F",{"title":226,"date":227,"url":228},"Lazy Loading with EF Core Proxies","2025-04-02","\u002Fblog\u002F2025\u002Fef-proxies\u002F",[],1780900529399]