On June 12, 2003, online dating service Match.com migrated its 30 million page view a day site from classic ASP to ASP.NET. The move was driven by the company's growing difficulty in adapting the site to new features and ad campaigns and debugging and maintaining the site in a timely manner. The site also ran slower under load than it would have liked.
Before the switchover, 104 servers running Windows 2000, IIS 5 and ASP 3.0 supported Match.com. The company used Visual Interdev for development and Visual SourceSafe for version control. Its 40 GBs of data, which consists, in part, of information on its 12 million members, was stored in SQL Server 2000.
Jason Alexander, Match.com Technical Development Lead, guided 18 developers in the migration effort.
"Our biggest problem was trying to structure the project so that our entire team could develop on the project at the same time, without anyone stepping on anyone else's toes," Alexander said. "Luckily, with the .NET architecture, and the flexibility of Visual Studio .NET, we were able to structure our Web application to be separate from our class libraries. Each feature team could easily work without any conflicts with other groups."
Eight months, 49 assemblies, and 500,000 lines of code later, the new C#-based ASP.NET Match.com runs 45 Web servers, four file servers, 20 image servers, six read-only databases, two keyword search databases, and one master writeable database. The company upgraded the operating system to Windows Server 2003 but kept the data in SQL Server 2000.
Structured on a three-tiered architecture, the site consists of a business layer, data layer, and presentation layer.
Match.com relies heavily on ASP.NET Web Forms and ASP.NET server and custom controls, which output standard HTML and encapsulate behavior and content that can be plugged in to any page on the site and re-used anywhere.
ASP.NET Web services are used to exchange data between internal and external affiliates and vendors, some of whom run mixed technologies.
The database is accessed through ADO.NET and the SQL Server Managed Provider with extensive and exclusive use of data readers.
Its millions of daily e-mails are handled by the System.Web.Mail classes that access Enterprise mail services.
From a performance standpoint each Web server registers between 25 and 35% CPU utilization and between 700 and 900 MB of memory usage. The site has demonstrated 99.9% availability since launch.
"At the end of the day, we cut our server farm in half to a site that is twice as fast, and twice as easy to debug, maintain, and build upon. This is a huge business savings, and will continue to be so because we can offer extremely fast development cycles," said Alexander.