What is .NET?
December 4, 2000
To explain what Microsoft .NET is, let us begin by discussing what
Microsoft .NET is not. First, it is not a new language for which you
need to learn a whole bunch of new syntax and the like. Second, .NET
it is not a new operating system or anything like that (some people
have gotten this impression). Finally, .NET is not the end-all for
web development solutions, but it sure is a good start. .NET is a
run-time that is an add-on or plug-in to Microsoft IIS, but that is
just what makes the stuff work. .NET is really a framework, a model
for developing web-based applications called "Web Services." .NET is
about making web sites and applications into services a consumer can
use. For instance, one goal Microsoft has with .NET is for the next
version of Office to be a web service. In an article I read a while
back, Office.NET was slated to be a web-based service offering that
would facilitate subscription based pricing (which can be good or bad
depending on how you look at it) in an entirely web based
environment. Rather then buying a CD and installing hundreds of
megabytes worth of software, just connect to "Office.NET" and begin
working. Of course, this type of ideal cannot be fully realized yet
(and we will probably see a hybrid version) with our current
bandwidth constraints, but with .NET, Microsoft is planting the seed
and taking major strides towards this type of computing.
So if Microsoft .NET is more of a framework then anything else,
what does it frame? Good question! To be honest, .NET is not exactly
a unique concept, if any of you are familiar with Enterprise Java
Beans, then you have an early form of what .NET is intended to be.
Basically the .NET framework is a three-tiered architecture for
developing web-based applications. The .NET "stuff" itself sits in
the middle tier, where all the application logic is developed. For
those of you who do not know what a three tiered architecture is, it
is pretty easy. The first tier or "Front-end" is exactly that, the
front-end or the client, what the user gets. The middle tier is the
where all the application logic sits; it includes business rules and
anything necessary to take data from the backend and communicate it
to the front-end. The final tier is also the "Back-end" wherein the
database resides and all that other fun stuff. The advantages of a
three-tiered system are many, but a few in particular are that the
backend is modular, or it does not really matter what DBMS sits back
there, if you switch it to something else and have an appropriate
driver for it, your set, the application works the same. Furthermore,
the separation of logic and data processing from presentation means
you can change the processing and application logic without having to
touch the front-end. Below is a picture of Microsoft's vision for
this three-tier system. It is a little more detailed then the above
explanation, but you will get the idea.

Image from the September Issue of MSDN
Online Magazine
As I mentioned before, Enterprise Java Beans (EJB) have been doing
this sort of thing for a while now. In a three-tiered architecture
using EJB, you have a bunch of EJB's which are
JAVA programs used for
various data processing tasks. Then, you write pages that will talk
to these EJB's and present the desired output. Very neat, but limited
because you have to use JAVA and not everyone is a JAVA fan (I for
one am not). .NET builds off this and does it better, in fact if
Microsoft delivers as promised, .NET does it right. Rather then being
forced to program in JAVA for all your application logic, Microsoft
has given the .NET runtime the brains to read just about any
language. That is right, I said any language. That means you can
develop some logic in C++,
Perl,
Visual Basic, JAVA, Pascal or even
Microsoft's new C# (a language that combines the power of C++ with
the ease of use of Visual Basic) and .NET will compile it into it's
own Intermediate Language (IL) that is understood by the server. In
fact, you should be able to program a function in one language and
pass variables and their values to functions programmed in a
different language!
Now, not all those languages are de facto supported initially, but
Microsoft has given developer's the rights and ability to create .NET
support for just about any language you want, so expect to see a lot
of them available as .NET becomes more popular after its release.
Modern Microsoft languages will be supported natively, while Perl,
Cobol, Java and other .NET compilers are already in the works by
third parties.
The .NET Revolution
The .NET Revolution
The Future of ASP
|