|
Why .NET? A
Manager’s Perspective
Part
2—The Return of Client/Server
Client/server applications are back! Using the .NET framework, developers can
build and deploy client/server applications much more easily. If you are
thinking of building a moderately complex internal application using the
browser as your user interface, think again and take a serious look at the .NET
framework.
This is the second in a series of
articles that try to answer the question: Why should my organization upgrade
its development tools to the .NET framework? Microsoft has done an excellent
job in building a next generation development environment. It is significantly
easier to build web and client/server applications, to access and update
information in databases, to move information to/from XML, and to build web
services.
Unfortunately, Microsoft has
done a poor job of marketing the .NET development environment. Many IT managers
are confused by the alphabet soup of .NET tools—ADO.NET, ASP.NET, VB.NET, C#,
CLR. They don’t know why they might want to upgrade to .NET. Building on our
experience using .NET tools, we describe the business benefits that will accrue
to companies that switch from a traditional Visual Basic 6 or C++ development
environment to a .NET development environment. In this article, we will focus
on building client/server applications using the .NET framework.
Client/server applications were
common in the 1990s as PCs proliferated and IT managers replaced
character-oriented mainframe applications with the easier to use graphical user
interface of client/server applications. These applications, however, lost
favor in the late 1990s with the growth of the worldwide web, the dot com
bubble, and the spread of the browser as a user interface.
IT managers liked these
intranet-based applications because they were much easier to deploy. As long as
there was a browser on the users’ PC, they could run the application. There was
no need to distribute an install to each user and no problems with dll hell.
Most importantly, upgrades were easy. After you replace the application on the
server, you can be sure that all your users were running the latest version.
In addition, connecting to a
database or other data source was much easier with browser-based applications.
You didn’t have to worry about establishing an ODBC connection from each user’s
PC to the server database. All the work was done on the server. The user’s PC
was the equivalent of a dumb terminal.
Both users and IT managers found
significant problems, however, with the browser as a user interface. It was
very hard to build complex applications in the browser. Simple user interface
capabilities that users became accustomed to were difficult or impossible to
implement in the browser. This includes: drag and drop, data validation for
each input box, implementing actions on right click, printing reports, and
using a wide variety of controls (e.g., spinners, splitters, sliders, and tree
controls).
Once the ‘cool factor’ of
building web applications wore off, IT managers became frustrated with intranet
development. The tools for building user interfaces in HTML are poor. You can
not just drag and drop controls onto a form. Developers often have to rely on
Notepad to directly edit their HTML. In addition, the debugging and testing
tools are not as sophisticated for web applications as they are for
client/server applications. These factors led to harder to use applications
with significantly higher development costs.
Now client/server applications
are back. Microsoft has built a development environment and a set of tools that
preserve and extend all the benefits of building client/server applications and
overcome the shortcomings of these applications. Specifically, the .NET
framework provides for:
-
Simplified deployment. Installs are no longer needed
for each application. The user must first install the .NET runtime (CLR) on
their machine. Then to add a new application or to upgrade an existing
application, you just need to use the XCOPY function to copy the folder that
contains the application and its dlls onto the user machine. There is no need
to register or un-register dlls. Different applications can use different
versions of the same dll, eliminating “dll hell.”
-
Easier to connect to data sources. The .NET framework
provides several means of moving data between a server data source and the
client application. The data can be moved as XML, allowing for easy access for
anyone who is connected to the internet. Large quantities of data can be moved
in binary format using ‘remoting’ when the client PC is on the company LAN.
Finally, web services can be used to get data, providing a common method for
data access for client/server, extranet, and internet applications.
-
Better client/server development environment. Microsoft
has made incremental changes to the development environment, adding new
controls and exposing a great deal of operating system functionality through a
new set of classes. This is especially appealing to Visual Basic developers.
With Visual Basic.NET, they can now code many lower level functions that were
previously only available to the C++ developer.
We have used these tools to
quickly build and deploy several internal applications, including a timesheet
system that works with Microsoft Excel as the user interface and a bug tracking
system developed in Visual Basic.NET. We saw significant productivity increases
over intranet applications and over Visual Basic 6 client/server applications
using the .NET tools.
The bottom line is that the .NET
framework has made it significantly easier to build client/server applications.
We expect to see many organizations building all but the simplest applications
using this client/server approach.
|