Website check list - Part 1 ASP.NET - 4 essential steps before going live

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 Winking smile 

image
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

  1. <compilation debug="false">
    Increases performance and caching and less overhead
  2. <customErrors mode="on" or "remoteOnly"
  3. 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.

image
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
image
Figure: Green apples are healthy Winking smile

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 Winking smile

Latest Posts

Popular Posts