Microsoft .Net and C#

A new development framework challenges enterprise Java

AFTER BEING THRASHED in the enterprise software market by the likes of Sun, IBM, and Linux, Microsoft is pinning its comeback hopes on its new application framework, .Net. Although the freedom to use practically any programming language is key to .Net’s appeal, developers are most excited about C#, the C++ derivative that Microsoft created with .Net in mind. The disruptive potential of these technologies is enormous because they change the rules for all types of Windows development, from desktop software to Web-enabled enterprise solutions.

Most of the changes are for the better. The .Net framework and C# extend Windows’ reach by making powerful but often-overlooked Windows facilities — including messaging, transactions, and XML — more accessible to developers. The combination of C# and Visual Studio .Net make the creation and deployment of Web services almost automatic. And Web applications written for ASP.Net and deployed to IIS (Internet Information Server) 6.0 — the Web server component of Windows.Net — will enjoy substantial performance, stability, and scalability advantages over traditional ASP (Active Server Pages) applications.

Although worthwhile, .Net’s benefits will exact a heavy cost. Current Windows developers will need expensive retraining. Visual Basic coders will be stunned by significant language changes and the complexity of the massive .Net framework. C++ programmers will applaud C#’s adherence to tenets of their pet language, but they, too, may find themselves bewildered by sweeping language and API changes.

Alterations to the JScript language, the elimination of VBScript, and the deprecation of COM (Component Object Model) interfaces to system services will add up to lots of hours spent recoding existing Web applications for ASP .Net. Rerouting an existing Java project to .Net, even if you use J# (Microsoft’s Java language implementation), will add several months to the project’s rollout target. A server shift from Unix to Windows will call for new skills across the entire IT staff, affecting system and database administrators alike.

With all this in mind, it’s easy to understand why .Net and C# inspire a mix of interest and caution. But for companies already doing Windows development, adopting .Net isn’t a question of whether, but when. Financial justifications for delaying migration will eventually be steamrolled by pressure from developers, business partners, application service providers, and tools suppliers.

Getting Windows developers aboard the .Net express is a bagatelle compared to the challenge of winning over Java, Unix, and Linux devotees. Playing against Java and J2EE (Java 2 Enterprise Edition), .Net has two primary trump cards: Visual Studio .Net and Web services. The beta of the Visual Studio .Net IDE (integrated development environment), due in early 2002, is already a huge hit with developers, and it could continue to give Windows an edge over Java in the race to Web services.

Technically, Visual Studio .Net is not required for .Net or C# development, but it’s got a slick, responsive, programmer-friendly interface and cuts through .Net’s complexity so well that it is a practical necessity. Java lacks a predominant IDE, and this could be spun to Microsoft’s advantage. It takes time and money to get a team of Java developers trained on the company’s chosen tools, and it would be difficult to assemble a combination of Java tools that rivals the productivity benefits of Visual Studio .Net.

Web services are so conceptually simple — remote object access via HTTP and XML — that one might wonder how Microsoft can score its implementation of Web services as a major win over J2EE. Indeed, there are several ways to create Web services in Java. What sets .Net, Visual Studio .Net, and C# apart is that their designs revolve around making Web services easier to create and consume. Visual Studio .Net reduces the discovery, creation, deployment, and use of Web services to point-and-click operations.

Microsoft’s new enterprise technologies will certainly create turmoil as companies involved in Windows development adjust to the changing landscape. The combination of .Net and C# will also have an unsettling influence in some non-Windows shops, forcing the review of long-standing assumptions about Windows’ role in their operations. Java and Unix are well-established, but their reign as unchallenged rulers of the enterprise software domain is coming to an end.

Source: www.infoworld.com