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

9 comments:

skoub said...

great post! thank you!

Anonymous said...

Nice. Would like to see more about ASP.NET tricks

Raju said...

Provide a link to Part 2 of the series on this page.

Peter Gfader said...

@Raju

Done. I added an index at the top of all posts.

Good suggestion

Unknown said...

Very useful and nice. Thanks a lot

Anonymous said...

very tool oriented.

Peter Gfader said...

@Lava

Which tip was most helpful for you?

Anonymous said...

https://asafaweb.com/
I would add this tool to your list

Thomas Ardal said...

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

Latest Posts

Popular Posts