Number 1
April 2002

How Progress Happens: .NET and Java


Is the .NET Framework just a copy of Java? Some strong similarities between the two technologies are hard to deny. The Common Language Runtime (CLR) is similar to the Java virtual machine, for example, and C# is much like the Java language. Yet the relationship between .NET and Java is more complicated than this. To really understand where we are today, it’s instructive to look at how we got here.

It wasn’t obvious at the time, but in hindsight, it’s clear that 1996 was a crucial moment in the history of software. Two things happened that year that created the foundation for the world we live in today. One of those events was Microsoft’s release of what they eventually called Windows DNA. The core innovations in Windows DNA were Active Server Pages (ASP), Microsoft Transaction Server (MTS, later renamed COM+), and ActiveX Data Objects (ADO). These three technologies are now the heart of what’s come to be known as an application server. (In fact, all of the vendors in this market call their product an application server except Microsoft. Given that it shipped the first one, it’s a little odd that the company has chosen not to use this industry-standard term.)

The second critical event in 1996 was Sun’s release of Java: the virtual machine, the language, and the initial set of libraries, eventually referred to as Java 2 Platform, Standard Edition (J2SE). These two events–the first application server and the first mainstream, fully modern programming environment–were completely separate. Windows DNA targeted servers, while Sun initially focused Java on clients. Yet these two technologies were the seeds around which coalesced today’s enterprise software world.

The Java side, by now including IBM and others, was the first to react to its competitor’s innovations. The core technologies that make up Java 2 Platform, Enterprise Edition (J2EE) were largely in place by 1998, and those technologies obviously owe a great deal to what Microsoft shipped in 1996. JavaServer Pages is much like Microsoft’s ASP, Enterprise JavaBeans is much like MTS, and JDBC is quite similar to ADO. JSP, EJB, and JDBC are the foundation for every Java application server today–they’re the heart of J2EE–but denying the Java world’s debt to Microsoft requires willful blindness.

Still, the Java camp didn’t just copy Windows DNA. In every case, they made additions to the original ideas. EJB has several features that have no analog in MTS, while JSP provides quite a few interesting enhancements to the core idea of server-side web scripting. This is how things are supposed to work: good ideas spread from their source, inspiring others to build on them. We who use these technologies are the ultimate beneficiaries.

Today, with .NET, it’s Microsoft’s turn. C# clearly owes a debt to the Java language, while Microsoft’s Common Language Runtime has much in common with the Java VM. Like the Java camp, however, Microsoft has added enhancements in both of these areas that go beyond what their competitor provides. Similarly, the .NET Framework includes Enterprise Services, ASP.NET, and ADO.NET, the next generation of the original application server technologies. Each of these builds on the original, adds new innovations, and in some cases incorporates ideas from the competition. (ASP.NET, for example, may have more in common with JSP than it does with the original ASP.) Microsoft also ups the ante for development platforms with solid support for Web services.

The .NET Framework puts Microsoft ahead today. Still, the truth is that both sides innovate and both sides build on the innovations of the other. Isn’t competition great?


Now Available: Understanding .NET: A Tutorial and Analysis

Understanding .NET provides a big-picture introduction to the whole of .NET. The book’s goal is to be the first book a developer reads to start getting into .NET, and the only book technical managers need to make good decisions about .NET. Because really grasping a technology requires knowing not just how things work but also why they’re important, Understanding .NET includes a large number of analysis boxes, providing opinion and perspective on this new family of technologies. To see reader reviews or to order a copy, visit Amazon .

Understanding .NET is the first book in Addison-Wesley’s Independent Technology Guides series, for which I am the series editor. Every book in this series gives a solid introduction to an important technology–books on web services, J2EE, LDAP directories, and other topics are on the way. Each book has an easy-to-read layout with margin notes emphasizing the main point of most paragraphs, plenty of diagrams, and distinct analysis sections, allowing the writer to clearly mark opinions, discussions of controversial issues, and other topics that are especially interesting. Just as important, each book provides an independent perspective on the subject rather than reflecting the position of any particular vendor. Watch for the next book in this series, Eric Newcomer’s Understanding Web Services, later this year.






David Chappell is Principal of Chappell & Associates ( in San Francisco, California. Through his keynotes, seminars, writing, and consulting, David helps IT professionals around the world understand, use, market, and make better decisions about enterprise software technologies. David has been the keynote speaker for conferences in the U.S., Europe, Latin America, and the Middle East, and at many in-house events. His popular seminars have been attended by tens of thousands of developers and decision makers in more than two dozen countries, and his books have been translated into ten languages. David’s consulting clients have included Compaq, Microsoft, Stanford University and others. Contact him at



©Copyright2007 David Chappell and Associates
All rights Reserved.


To subscribe or unsubscribe to this newsletter, go to