Under the Covers: Architecture at AnandTech and the Performance of ASP.NET
by Jason Clark on November 27, 2004 12:10 AM EST- Posted in
- IT Computing
Architecting www.anandtech.com
In a previous article about our migration, we discussed briefly what we did to move to ASP.NET. In this edition, we'll go into a bit more detail specifically on the development side.AnandTech consists of a few different applications that make the entire site operate. The main website (www.anandtech.com) serves the articles that we write - this was the first application that we migrated. The migration of the main website was fairly straightforward; we simply ported our ColdFusion code into ASP.NET, learning new syntax as we went. We made use of the code-behind techniques for which ASP.NET is known as we ported parts of the application. And, we wrote a web API similar to our old ColdFusion site to handle back-end logic. Each time that a request begins, we have an init class, which handles instantiating the framework for the page request. The page inherits the web-based API and can then execute methods for the various operations in the pages. This is not much different than most web-based applications of this size.
One thing that we took for granted in our old ColdFusion website was debugging output. ColdFusion has a fairly unique feature that allows you to expose debugging output for a page request. This output consists of the various web-based variables, form, URL and the contents of cookies. It also outputs the SQL syntax submitted to the RDBMS and the various method calls made to any functions in the application. This type of debugging output is extremely helpful when troubleshooting a problem or even when tuning an application, as you can see clearly what the page is doing and how long it's taking to perform each individual method call or query to the database.
So, during our development of the API, we wrote a debug class, which tied into our database class and the OnRequestEnd event from the Global.asax part of the .NET framework. Essentially, it tracked query calls and variables and outputted the data in the OnRequestEnd event of the page request.
26 Comments
View All Comments
overclockingoodness - Sunday, November 28, 2004 - link
msva124 (#3 and #4): Are you stupid or something? What's wrong with telling us about the back-end of AnandTech? I guess you would call it "kissing your own ass" when AnandTech gets exclusive products, months before they are released in the market. You read the whole article, didn't you? You knew what the article was going to be about? Why in the hell did you read it you moron?By the way, Jason didn't call himself an architect. He meant that he will have new functionality to build into the website (which also means architect). It seems like you dropped out of school a little bit early. Why don't you go ahead and get your diploma and once you are educated, you can come discuss things with us.
I can't believe where these trolls come from. Are you just jealous that you can't even dream about some of the stuff AnandTech has? It's okay, go cry to your mommy.
Seriously, awesome work Jason. And please do another article soon as we call as see msva124 die of jealousy.
michaelpatrick33 - Sunday, November 28, 2004 - link
Gee msva124 I didn't realize that website creator(s) weren't allowed to talk about their own process. I guess you don't believe in people having their own personal websites and sharing anything about their own websites either. Great info and great job Jason and please keep informing us of your "architect" process for we know you are using the English language in a symbolic manner to rightly show your pride in your accomplishmentsmsva124 - Sunday, November 28, 2004 - link
And I love the way you call yourself an "architect".msva124 - Sunday, November 28, 2004 - link
Thankfully, not many other websites dedicate so much time to kissing their own asses.Marlin1975 - Saturday, November 27, 2004 - link
I think its Opterons, Quad maybe?JustAnAverageGuy - Saturday, November 27, 2004 - link
Nice summary :)Might be worth mentioning what kind of hardware you had for the scalability test.