Building Portals, Intranets, and Corporate Web Sites Using Microsoft Servers

 <  Day Day Up  >  

As in life, there is no single ultimate truth in software development. The choice of the software development tool depends perhaps to a larger degree on personal preferences and past experiences of the members of the development team. How many times have you met a weathered COBOL developer whose credo is, "Why learn new tools when everything I need could be done in COBOL?"

Despite the inevitable bias creeping into any technology comparison discussion, side-by-side technology analysis can reveal many interesting facts and make the task of selecting an appropriate technology easier. In this section we take a look at several competing web application development technologies, including legacy technology from Microsoft (ASP) and competing development environments from Sun (J2EE) and IBM (WebSphere).

ASP

ASP gained great popularity by allowing developers to easily build dynamic web applications by mixing HTML with script-based code (VBScript or JScript). In ASP, the code was interspersed with HTML, and the way ASP was implemented prevented the developers from using object-oriented principles. The absence of the clear separation of presentation (HTML) code and application logic (script) and inadequate support for object-oriented features often led to the creation of spaghetti code with its usual problems: high cost of debugging and maintenance and low level of code reuse. Because ASP uses interpreted scripting language, its performance is lackluster. ASP developers had to use other technologies, usually COM, to implement application components that required high performance. The ASP/COM connection was based on late binding, a technology that resolves references to COM objects at runtime. This by itself led to multiple issues with both performance and debugging.

ASP.NET, even though it shares a name with ASP, was completely rewritten to address all of ASP's shortcomings. ASP.NET produces compiled code and provides well-rounded object-oriented technology. Because ASP.NET is part of the .NET Framework, it can easily use all of the services provided by the framework and the Base Class Library. This feature ”the ability to stay completely within a single technology ”is one of the biggest advantages of .NET. Indeed, all pieces of a multitier distributed application, including web application components, Window GUI applications, Windows services, and others, can be developed using only .NET. With the release of the next version of Microsoft SQL Server, this advantage will be even more pronounced due to the ability to develop SQL Server stored procedures using any CLR-compliant language.

The WebForms introduced by ASP.NET represent a major step away from the structure-based spaghetti code of the old ASP. WebForms allow developers to physically separate the HTML presentation code of the web page from the processing logic implemented by any .NET language and employ many new language features, including built-in authentication support, support for various caching techniques, and others. The new modeof web application development is then very similar to traditional wizard-based Windows application development in which a GUI is built using graphical designers and developers write event-handling and business logic code.

ASP.NET delivers additional great benefits for a web site's administrators: The simple copy-based mode of application deployment and the ability to update web applications without stopping them or restarting the server can run circles around the old ASP installation scenario. Prior to ASP.NET, administrators had to use complex installation scripts that would stop the running application and the server, unregister the COM components, and perform the installation and registration of updated modules.

Even though the ASP.NET designers did not try to reach full backwards compatibility with ASP, many familiar ASP features have made it into ASP.NET. For example, the core ASP objects Request, Response , and Server are available in ASP.NET. The similarity between the two technologies eases the learning curve for ASP developers and makes the transition process smoother. The process of conversion of ASP applications to ASP.NET could be aided by the possibility of the coexistence of both ASP and ASP.NET modules on the same server. In fact, it is possible to have web applications composed of both ASP and ASP.NET parts .

Simply put, there's no competition: ASP.NET is the clear winner over ASP. For more details on differences and similarities between ASP and ASP.NET, refer to the "Migrating to ASP.NET: Key Considerations" article available on MSDN at http://msdn.microsoft.com/library/default.asp?url=/library/enus/dnaspp/html/aspnetmigrissues.asp.

Personal Home Pages (PHP) is another script-based technology that is very similar in its ideology and development practice to older versions of ASP. Much of the previous discussion applies to the PHP versus ASP.NET comparison as well.

Java (Sun J2EE and IBM WebSphere)

Years of marketing wars between Microsoft and various companies representing the Java development camp have led to a wide chasm between Java and Microsoft-oriented developers. Multiple discussions comparing tools and products from Microsoft with the ones from Sun, IBM, Oracle, BEA, and others achieve almost religious fervor. Time and again, industry pundits publish articles promoting their preferred provider under the guise of neutrality.

The truth is that there's no apparent winner. You should take prior experiences of the development team, personal preferences and prejudices, the targeted platform, licensing agreements with software and hardware vendors , and many other factors into account when you make the choice between .NET and its competitors .

Both J2EE and the .NET Framework offer similar services, especially when it comes to creating XML web services. In fact, the standards underpinning web services ”Simple Object Access Protocol (SOAP), Universal Description, Discovery and Integration (UDDI), and Web Services Description Language (WSDI) ”have been developed jointly by Microsoft and IBM. Both .NET Framework and IBM WebSphere therefore adhere to the same set of standards.

The difference comes in a core design philosophy. J2EE-based offerings all are language-centric: Java is the only supported language. J2EE is supported on multiple platforms and a wide range of hardware. The cost of this versatility is the multitude of vendors, which results in a multitude of tools typically employed in a J2EE-centric development. A typical scenario would be, for example, using IBM WebSphere Studio Application Developer to build web applications and web services in conjunction with an Oracle database server. A J2EE-based development team must include members with expertise in various software development tools, each with its own architecture and development methodology.

Microsoft historically has been an underdog in the enterprise tools and servers market. Even though the latest batch of Microsoft servers, primarily Microsoft SQL Server 2000, have proven worthy of competition with established enterprise products like the Oracle 9i database server and IBM's DB2, the impression that Microsoft's server products are designed to target low-end markets still lingers.

While J2EE is centered on a single language, the .NET Framework is built on a concept of multiple languages all targeting a unified execution environment represented by CLR. Even though at the moment .NET Framework development is centered around Windows, this is not a built-in limitation. While Microsoft has not indicated what it plans for .NET beyond the Windows platform, third-party developers are already shipping development environments that claim to run .NET on other operating systems, including Linux. We might expect additional platforms to be supported when more MSIL-to-native code compilers are developed.

When it comes to developer productivity, the .NET Framework with its unified development model and single integrated development environment (IDE) incorporating revolutionary productivity tools like Intellisense has a definite advantage. .NET and other Microsoft products tightly integrate with web services, allowing for a generic approach to a host of software development tasks .

Microsoft's competitive pricing policy of offering its server products at a fraction of the cost of analogous products from Oracle and IBM can be very attractive if your development effort is starting from scratch, without the burden of prior investment in software and hardware. The actual costs of implementation and deployment could vary widely, especially if your selected configuration involves purchasing client access licenses (CALs).

After the release of the .NET Framework, Microsoft implemented Sun's Java Pet Store blueprint J2EE application using .NET Framework and published the comparison between the two implementations . Later, Microsoft published another study comparing the process of building XML web services using .NET Framework versus IBM Websphere Studio Application Developer, and it made available a .NET versus Websphere 4.0 benchmark kit. Whitepapers, source code, and comparison tables are available at the following Microsoft site: gotdotnet.com/team/compare/.

 <  Day Day Up  >  

Категории