Make Your Case
By Elden Nelson
In a perfect world, developers like you would be able to spend your time, well, developing. In the real world, though, you're more likely to spend as much time wearing the hat of a politician, fighting to get the company to let you use the tools and technology you want so you can get the job done in the best way possible.
I recently received a letter from an asp.netPRO reader in exactly this kind of situation, saying, "I'm part of a multi-company assessment team researching technologies and tools for Internet and intranet development. We want to standardize the technologies across the companies as much as possible. The team seems to be dividing into two camps: .NET vs. Java. How I can best 'sell' ASP.NET when it comes time to provide a recommendation to the company?"
I've seen variations of this letter often enough that I thought it was time to bring it up with the real brains of this outfit: the readers of asp.netPRO and asp.netNOW. I included this question in the August 14, 2003 issue of asp.netNOW, asking for your ideas. As usual, you didn't disappoint, delivering stellar observations and pointing out valuable resources. And because enough of you responded that you've got the same question, I figured I'd pass along a few of your insights.
Be fair, be honest: Before loading up your arsenal, let me make one recommendation: Don't make your case by putting down Java/J2EE. The fact is, Java has gained the wide acceptance it has because it does in fact have considerable merit. Attacking a proven technology only hurts your case by making you look biased.
Apples to apples: Microsoft has done a very sneaky thing. It took Sun's own demo Web app - a pet store - and created a .NET version of the same thing, then ran a series of benchmarks against the two. Of course, Microsoft would never have publicized this if it had lost, but it won, both in terms of speed (10 times faster, says Microsoft) and lines of code (2100 vs. 14000). For what it's worth, the pet store app is also a valuable tool for learning how numerous .NET technologies work together. Check out the code and analysis at http://msdn.microsoft.com/library/en-us/dnbda/html/bdasamppet.asp.
Talk about tools: asp.netPRO reader Andrew Wasson of Luna Design & Communications notes that .NET developers have the edge with tool quality and variety. You can choose between VS .NET, Dreamweaver MX, and C#Builder if you're looking for professional-level tools. If you're looking for free tools, you've got a choice between Web Matrix and a free personal version of C#Builder. Not too shabby.
Time is on your side (and so is money): The point made in Microsoft's pet store application is born out in real-world development scenarios, too: You can develop faster and with less code in .NET than you can in Java. Mark Overstreet, developer for the Commonwealth of Kentucky, says, "The time to complete a project in JAVA takes longer. The language is not more complicated than .NET languages, but the tools are not as mature/developer friendly. Our .NET team can code a non-trivial application in about half the time of an equivalent JAVA team. Also, as long as your project can scale on a Microsoft platform, the upfront costs are always going to be less."
Keep the horse ahead of the cart: Bruce Keene, Information Technologist for the U.S. Fish & Wildlife Service, makes an excellent point: Before you start arguing what technology to use, know what you need the technology to do. Says Keene, "Once your business requirements are known, you'll be better situated to prototype some technologies (such as .NET vs. Java and open source, IIS vs. Apache, etc.), letting you better understand what will best achieve your business goals."
This is, of course, just the tip of the iceberg. Drop me a line at [email protected] and tell me what other important points need to be made, how you've made them, and how it worked (or how it's working) out.
Elden Nelson is editor-in-chief of asp.netPRO and its companion e-newsletter, asp.netNOW.