Martin Heller
Contributing Writer

In Praise of ASP.NET

analysis
Feb 28, 20074 mins

I'm working on a data-intensive Web site for a client, the kind of gig I can't really talk about except in general terms. Basically, we have extracted the non-proprietary information from thousands of detailed technology reports, and loaded them into a database. After conducting an extended internal test of a Web application I built to search the database, we're upgrading the interface and making

I’m working on a data-intensive Web site for a client, the kind of gig I can’t really talk about except in general terms. Basically, we have extracted the non-proprietary information from thousands of detailed technology reports, and loaded them into a database. After conducting an extended internal test of a Web application I built to search the database, we’re upgrading the interface and making the site available to subscribers.

When I started working on this project, ASP.NET 2.0 was still in beta test, and Ruby on Rails had just been released. As it happened, the client had Windows 2003 servers and SQL Server 2000, but using those servers wasn’t a hard and fast requirement: they were willing to add Linux servers and MySQL if needed. In fact, we did another project later in 2006 using Ruby on Rails and MySQL, which was hosted at TextDrive.com.

However, we chose to implement this prototype site in ASP.NET 2.0 using standard Microsoft controls. I wrote any code needed in C#, but there was surprisingly little of it to write: most of the search display pages could be created using a SQL data source configured to plug a search parameter into the query string, and a GridView control bound to the data source. We got all sorts of functionality for free from the GridView control, including column sorting and row paging.

Drilldown pages used GridView, FormView, and DetailsView controls, also bound to SQL data sources. The only page that required a significant amount of code was the one that displayed a table constructed from multiple database records containing cell contents and locations: that page looped through a DataView row by row on page load, adding rows and cells to an ASP.NET Table object.

When I had questions, I consulted an early edition of what is now ASP.NET 2.0 Illustrated, by Alex Homer and Dave Sussman (Addison Wesley, 2006, 756 pp., $54.99, ISBN 0-321-41834-4). Usually, I found my answer in under five minutes. Full disclosure: at the time, I was editor of the Microsoft .NET Development Series, in which this book was published.

ASP.NET 2.0 Illustrated
When I had questions, I consulted an early edition of what is now ASP.NET 2.0 Illustrated , by Alex Homer and Dave Sussman (Addison Wesley, 2006, 756 pp., $54.99, ISBN 0-321-41834-4). Usually, I found my answer in under five minutes. Full disclosure: at the time, I was editor of the Microsoft .NET Development Series, in which this book was published.

Now that I’m building a new version of the site, I’m taking advantage of what I learned from the first site, from Alex and Dave’s book, and from my experience reviewing third-party ASP.NET controls for InfoWorld. This time around, I started by creating a master page with all the common headers and footers, and each actual page fits into the master.

I also chose to use the Infragistics Netadvantage WebGrid control for the new site. It has more sophisticated abilities than the standard Microsoft GridView, including the ability to group rows by the value of a column, filter by the value of a column, and automatically use Ajax to avoid some full-page callbacks to the server. I haven’t quite gotten what I want out of it yet, but I’m sure it’s there, because I have demos that do what I want: it’ll take me a few more hours to find out exactly how to fit it all together.

Microsoft has always said that the power of its tools and technologies is multiplied by its robust “ecosystem” of ISV partners who produce additional tools and controls. I’ve got to say that, in my experience, it’s true.

Am I saying that I’m against Open Source? Not at all. What I am saying is that well-designed, well-constructed commercial components can often pay for themselves very quickly in terms of developer productivity and time to market.

Martin Heller

Martin Heller is a contributing writer at InfoWorld. Formerly a web and Windows programming consultant, he developed databases, software, and websites from his office in Andover, Massachusetts, from 1986 to 2010. From 2010 to August of 2012, Martin was vice president of technology and education at Alpha Software. From March 2013 to January 2014, he was chairman of Tubifi, maker of a cloud-based video editor, having previously served as CEO.

Martin is the author or co-author of nearly a dozen PC software packages and half a dozen Web applications. He is also the author of several books on Windows programming. As a consultant, Martin has worked with companies of all sizes to design, develop, improve, and/or debug Windows, web, and database applications, and has performed strategic business consulting for high-tech corporations ranging from tiny to Fortune 100 and from local to multinational.

Martin’s specialties include programming languages C++, Python, C#, JavaScript, and SQL, and databases PostgreSQL, MySQL, Microsoft SQL Server, Oracle Database, Google Cloud Spanner, CockroachDB, MongoDB, Cassandra, and Couchbase. He writes about software development, data management, analytics, AI, and machine learning, contributing technology analyses, explainers, how-to articles, and hands-on reviews of software development tools, data platforms, AI models, machine learning libraries, and much more.

More from this author