Microsoft .Net: More than Web Services

By Michael Cardi

The buzzword in development circles this year is ".NET." Seems everyone is talking about this new development platform from Microsoft. Yet when you try to find out what exactly the deal with .NET is, you can rarely get a straight answer. For managers, this is a particularly frustrating problem since it's hard enough to decide on technology issues, but when you don't understand the benefits of a new technology, it becomes next to impossible to make a decision.

Most articles, presentations and marketing materials describe the Microsoft .NET platform as the best way to build XML Web services. Therefore, many managers may have incorrectly associated Microsoft .NET only with Web services. While Web services are an integral part of Microsoft .Net, they are not the only reason why a company should migrate to .NET.

The following is my Top-10 list of .NET benefits, and I don't mention Web services.

10. No Benefit in Using One Language Over Another. Before .NET, you had to decide which language to use in your applications. Unfortunately, each language had its pros and cons. For example, C++ provided better performance than Visual Basic, but a Visual Basic application was much easier to create and maintain. But now in .NET, it doesn't matter what language you choose because all .NET languages are compiled into the same intermediate language called MSIL (Microsoft Intermediate Language).

Management translation: This is a benefit because companies that are mostly VB shops no longer have to go out and get a C++ programmer to write the part of the application that needs to be optimized. Companies can now better leverage their existing programming skill sets.

9. Visual Studio .NET has only one Integrated Development Environment (IDE). With Visual Studio 6.0, developers had to use one IDE for developing Visual Basic applications and another for Web sites. Now with Visual Studio .NET, it's done all from one IDE. This means developers only have to learn one IDE.

Management translation: Since there is only one IDE, managers will save money in training and have more flexibility interchanging desktop developers and Web developers.

8. Improved Error Handling. In Visual Basic 6.0, and especially VBScript (used in traditional Active Server Pages), programmers didn't have many options to handle errors. Trapping and handling errors was often difficult and this resulted in many applications being built with little or no error handling. Now with .NET, constructs like "Try, Catch, Finally" make handling errors much easier.

Management translation: The increase in error handling techniques will result in a better experience for the user and lower maintenance costs because developers will be able to fix problems more quickly.

7. ASP.NET Has Complied Code. Traditional Active Server Pages needed to be interpreted at run time, one line at a time. It wasn't the quickest way to get something done. Now with ASP.NET, code in the ASP pages is compiled using Just In Time (JIT) compilation. The result of the compilation is stored in memory on the server so the page has to run through the JIT only the first time the page is accessed.

As a result, ASP.NET pages are faster than traditional ASP pages.

Management translation: Compiled code will result in faster applications and happier customers.

6. .NET Has Inheritance. All Microsoft .NET languages support true inheritance. This is really huge. Inheritance is one of the big three in Object-Oriented Programming (the other two are encapsulation and polymorphism). For example, before .NET, Visual Basic only supported interface inheritance. With interface inheritance you do not get any code, all you get is the method signature. But now with Visual Basic .NET, you can create a base class and inherit all the code it contains.

Management translation: The ability to inherit code will lower development and maintenance costs.

5. ASP.NET Supports Full-blown Languages. .NET is the end of the line for VBScript. Before, when working in Active Server Pages, you needed to program in VBScript, which really wasn't a full programming language. For example, if you declared a field, you had to make it generic. VBScript didn't have all the "bells and whistles" of a real language. But now with ASP.NET you can use Visual Basic .NET to code your Active Server Pages. In fact, VB Script is gone and is no longer an option.

Management translation: Now when a developer is writing a Web application, they are using the same language as they would when writing a desktop application. This lets companies interchange desktop and Web developers easier.

4. Traditional Active Server Pages Can Run Side-by-Side with ASP.NET pages. Unlike many programming changeovers, you don't have to flip the switch overnight and change completely over to .NET structure. With .NET you can run new ASP.NET applications side-by-side on the server with other traditional ASP applications. Traditional ASP pages have an extension ".asp" while ASP .Net pages have an extension ".aspx." And as the company grows, it can migrate to the .NET platform at its leisure.

Management translation: Companies can start changing over to .NET without facing the costs of a complete transition to the new platform.

3. .NET can call COM components. Many companies have invested time and capital in creating applications that used COM (Component Object Model) components to encapsulate their business logic. The good news is .NET applications can continue to call COM components through a run-time callable wrapper. This should make transition easier and more cost effective.

Management translation: Companies can keep what they already have and develop around the new .NET platform.

2. There Are No More Registry Settings for Installs. In some sense, .NET harkens back to the older, simpler days of DOS. If someone had a DOS program, they could copy the program folder over to another computer and 99 percent of the time it would work. But Windows applications use .dll files that need to be registered in the system registry. As a result, copying a folder of files from one machine to another machine will not work. With .NET, it is possible to make a self-contained application. This means developers can then take a folder off one server and copy it to another server in one fell-swoop.

Management Translation: Self-containment will make it easier for server-to-server transfers and will lower installation and maintenance costs.

1. The elimination of .dll Hell. .NET allows multiple .dll files with the same name to exist on a computer without interfering with each other. For example, if I create a program that uses a file called "customer.dll," under the old system, there can only be one .dll file on my machine by that name used at one time. If my program uses version 2.0 of "customer.dll" it will run perfectly. But if someone loads another program onto that computer that uses version 1.0 of "customer.dll," version 2.0 of "customer.dll" would be removed and replaced by version 1.0. As a result, all applications that were designed and tested with version 2.0 of "customer.dll" may crash and behave incorrectly.

.dll compatibility problems are very difficult to resolve because the errors that you receive are usually symptoms of the real problem. It's a very frustrating problem that programmers have been dealing with since the registry was invented. The level of frustration one feels when dealing with .dlls is so bad that programmers have labeled the experience as ".dll Hell." However, with .NET, this is no longer an issue. .NET allows many .dlls with the same name to be installed on the same machine at the same time. This feature alone will have programmers singing .NET's praises.

Management translation: Programmers won't have to burn hours trying to work their way through the maze of .dll files to find problems. This means lower maintenance costs.

All of these improvements have made .NET an easier tool for developers to work with and as a result, a more cost-effective solution for managers to provide to their customers. I am very impressed with .NET's capabilities and think many other programmers will be too.



Michael Cardi (mcardi@pinndec.com) is the managing architect for Pinnacle Decision Systems in Middletown, Conn. Cardi has been using Microsoft .NET since Beta 1.0.