ASP.NET MVC Best practices
Transcript of ASP.NET MVC Best practices
Hattan Shobokshi
ASP.NET MVC Best Practices
*Housekeeping
*Stuttering is a communication disorder involving disruptions, or “disfluencies,” in a person’s speech.
*Across all cultures, roughly 1% of people currently has a stuttering disorder.
*http://westutter.org/
Who am I?
Hattan ShobokshiSenior Software Engineer
http://speakerrate.com/hattanhttp://www.slideshare.net/
shobokshi
Goals for this talk
* Look at Examples of BAD CODE
* PRG Pattern
* Load JavaScript files from CDN
* Do not Include view formatting in the controller
* T4 Templates
* Custom View & Controller Templates
* Diagnostic Tools
* Telerik Grid Control
PRG Pattern
*HTTP POST
*Redirect
*HTTP GET
*The prg pattern is used to ensure that the intended modification of data only happens once.
Microsoft Ajax Content Delivery
Network
*Content Delivery Network
* Improve Application Performance
*Reuse Javascript files Cached by different domains
*Available Content Files:
* jQuery
* jQuery Validation
* jQuery UI
*Ajax Control Toolkit
*ASP.NET Ajax
*ASP.NET MVC JavaScript Files
*http://www.asp.net/ajaxlibrary/cdn.ashx
<script src='http://ajax.aspnetcdn.com/ajax/jquery/jquery-1.4.4.min.js' type='text/javascript'></script>
*T4 : Text Template Transformation Toolkit
* Code Generation Tool
* Built into Visual Studio (2008 and 2010)
* .tt File Extension
* No syntax highlighting by default
* Clarius Visual T4 Add-on http://www.visualt4.com/
* Tip: Windows 7/Vista unblock zip file, unblock individual files
* More informationhttp://www.olegsych.com/2007/12/text-template-transformation-toolkit/
T4MVC
*T4 template for ASP.NET MVC
*Creates strongly typed helpers
*Eliminates magic strings (View names, HtmlHelper parameters)
*Download via NuGet or
*http://mvccontrib.codeplex.com/wikipage?title=T4MVC
*http://blogs.msdn.com/b/davidebb/archive/2010/03/12/a-better-way-to-auto-run-t4mvc-when-you-build.aspx
T4MVC
*<%= Html.ActionLink(“New Dinner", “Create", "Dinners")%>
*<%= Html.ActionLink(" New Dinner", MVC.Dinners.Create())%>
*<img src="/Content/nerd.jpg" />
*<img src="<%= Links.Content.nerd_jpg %>" />
http://mvccontrib.codeplex.com/wikipage?title=T4MVC_doc
T4 Code Templates
*Custom Tooling
*Customize Default View Templates
*Add new View Templates
*Customize Controller Template
*T4 Templates
*~\Microsoft Visual Studio 10.0\Common7\IDE\ItemTemplates\CSharp\Web\MVC 2
*~\Microsoft Visual Studio 10.0\Common7\IDE\ItemTemplates\VisualBasic\Web\MVC 2
Route Debugger
*Add Reference to Dll
*Enable route debugging with 1 line of code
RouteDebug.RouteDebugger.RewriteRoutesForTesting(RouteTable.Routes);
*http://haacked.com/archive/2008/03/13/url-routing-debugger.aspx
MVC Diagnostics
*Environment Information
*MVC Assembly Version
*Referenced Assembly Information
*Web Forms page, not an mvc page
*http://bradwilson.typepad.com/blog/2010/03/diagnosing-aspnet-mvc-problems.html
*Telerik Grid Control
*http://demos.telerik.com/aspnet-mvc/
* Grid Control
*Out of the box support for Sorting, Filtering
*Out of the box paging support
*Out of the box ajax support
*Very little javascript you have to write!
What did we just talk about?
* Look at Examples of BAD CODE
* PRG Pattern
* Load JavaScript files from CDN
* Do not Include view formatting in the controller
* T4 Templates
* Custom View & Controller Templates
* Diagnostic Tools
* Telerik Grid Control
The End
Thank you!