Index of series
Part 1 ASP.NET - 4 essential steps before going live (*this post*)
Part 2 ASP.NET - 8 performance tips before going live
Part 3 ASP.NET - 9 User Experience tips before going live
*Updated* 14 July 2011: Explanation about the the "zsValidate page"
Its not easy to launch a website.
As per secretGeek you gotta know:
"HTML, CSS, JavaScript, C#, razor, SQL, DDL, and regex. Oh, plus people skills."
from http://twitter.com/#!/secretGeek/status/83297694449287168
This is a quick check list for an ASP.NET site before going live. There are heaps of those on the web, but this one is customized to ASP.NET and my personal top 4.
Leave a comment if you want to add something
Thx to Damian and Tristan for some additional tips
#1 Check your web.config for security and performance issues
Submit your web.config to http://www.wcanalyzer.com/
Attention: Before submitting to wcanalyzer.com make sure to get rid of all clear text passwords and server/ database names
Figure: Fix all security issues from wcanalyzer
Solution
Use web transforms to get rid of all "Debug" configuration settings and security relevant bits
http://blogs.msdn.com/b/webdevtools/archive/2009/05/04/web-deployment-web-config-transformation.aspx
Tip
There is a nice little tool called the "Web.config Transformation Tester tool" to test whether your transforms work as expected.
Check it out if you struggle with web transformation here http://webconfigtransformationtester.apphb.com/
Some other quick things that you should check your web.config for
Not 100% sure but I hope this analyser covers those
- <compilation debug="false">
Increases performance and caching and less overhead - <customErrors mode="on" or "remoteOnly"
- Disable or at least limit tracing info
<trace mostRecent="true" enabled="true" requestLimit="1000" pageOutput="false" localOnly="true"/>
Tracing works only in debug mode anyway… So this shouldn't be necessary
Tip
"Superhero Sys Admins" put all those in the machine config to enforce this machine wide
#2 Deploy "Release" build
Because you have setup Continuous Delivery as per http://blog.gfader.com/2010/12/do-you-automate-your-deployment-process.html
just check that you really deploy the "Release" version.
Figure: Set your TFS Build configuration to be "Release"
Tip
Change your Build configuration to "Release" will reduce your build time to half. Per default this is set to: "Any CPU|Debug, Any CPU|Release"
#3 Install elmah and have "no error emails" for 1 week
1. "nuget elmah" on your website project
2. Configure error email
<elmah> <errorMail from="devs@northwind.com.au" to=" devs@northwind.com.au" subject="LOCALHOST - Elmah - Error in Website" // Servername gets injected via web.transform async="true" priority="High" smtpPort="25" smtpServer="mail.northwind.com.au" noYsod="false" /> </elmah>
3. Wait 1 week and check that you have 0 error emails
No Go-Live if you can't get that.
Your site shouldn't throw errors, even not missing files 404 or 500.
#4 Have a zsValidate page and get all green ticks
Follow this rule http://www.ssw.com.au/ssw/Standards/Rules/RulesToBetterWebsitesTuningAndMaintenance.aspx#zsValidate
Figure: Green apples are healthy
Update: The zsValidate page checks that all your external dependencies are up and running. This might include the databases, web services, other servers, etc… Everything that is outside the web application process and everything that could cause the website from functioning.
This is part 1 out of 3 or maybe 4. Not sure yet… it is not easy to build websites these days
PS: Needless to say that before you consider this list, you should fulfill all your customer requirements, proof-read every single webpage, know what traffic to expect and have automated unit/integration/stress/performance/black and white tests
9 comments:
great post! thank you!
Nice. Would like to see more about ASP.NET tricks
Provide a link to Part 2 of the series on this page.
@Raju
Done. I added an index at the top of all posts.
Good suggestion
Very useful and nice. Thanks a lot
very tool oriented.
@Lava
Which tip was most helpful for you?
https://asafaweb.com/
I would add this tool to your list
Going forward I would recommend this web.config transform tester instead of the current one: https://elmah.io/tools/webconfig-transformation-tester/. This tools supports better error messages, show a diff of the changes, and more.
Post a Comment