What is Microsoft .NET?

1 Conversation

Introduction

When Microsoft announced an initiative called ".NET" (pronounced
"Dot-Net") toward the end of the year 2000, it immediately became an
immense topic of great confusion. Years later, people are still perplexed, even
a lot of smart people. This is because Microsoft had done a horrific job marketing the thing, which is a

problem Microsoft is now admitting to, and dealing with.

Although it does not do anything that could not already be done before, .NET
works differently and possibly better, in some areas. It resolves many issues that have crept
up in Internet development. Not everyone likes it, but it should not be dismissed without first

understanding what it is.

Simplified Explanation of .NET

.NET technology attempts to solve a classic computing problem: The Problem
of Distributed Applications.
Specifically, .NET uses something called XML Web
Services
as the principal part of its solution.

Other solutions, developed
through the years, to resolve this Problem include HTML forms, Java applets,
ActiveX controls, "classic ASP", and DCOM. Each of these has
shortcomings, which .NET supposedly addresses.

However, there is also something else called the Microsoft .NET Framework,
which should not be confused with the basic .NET technology. Although web
services are the focus of the Framework, it still covers much more than that:
Database access services, web page construction tools, an
"alternative" access to the Windows API (Application Programming
Interface), and much more!

On top of that, Microsoft has applied the word ".NET" like a brand
name, attaching it to products that have little or nothing to do with web
services or the Framework. Hence, the grand confusion. Microsoft has since learned from this mistake, and

they are now retracting a lot of their abuse.

What are XML Web Services?

Web services make it easy to transfer highly structured data using Internet protocols. This
type of data is more "complicated" than conventional Internet
traffic, and was something more difficult (but not impossible) to transfer, before.

Examples of structured data that can be transferred with web services:

  • Whole Database tables and
    queries, sent all in one package
  • Complex objects to be
    translated into a spreadsheet-readable format. For example, a convertible
    bond portfolio, with data on underlying stocks
  • Structured reports: financial
    or scientific, etc.
  • Also, simple units of data
    such as world temperatures, stock quotes, and specialized calculations

The format that .NET uses to describe its structured objects is called SOAP – Simple Object Access

Protocol
.
This is an XML-based, open standard, that allows data to be transferred without the .NET Framework

installed.

Microsoft did not invent the concept of Web Services. They did not invent, nor do they control, the SOAP
specification, either. However, you would need to have Microsoft’s .NET Framework installed, if you wish to

utilize any
of its own, unique services with your transferred data. But, there are alternatives. Other companies have

been introducing their
own web service systems, such as the Java-based "Sun ONE", and most of them are utilizing

SOAP.

You can think of .NET and XML web services as "just another way to transfer data to remote places". But,

that would ignore the efficiencies of its newer design. Remember, all of these technologies were developed

to address the problems companies had using the previous Internet technologies. It turns out that the World

Wide Web was not perfectly constructed for the way people ended up using it.

Smart Clients

Any device or software that can consume SOAP objects, whether or not it has The Framework, is referred to
as a "smart client", by Microsoft.

Some examples of Smart Clients:

Desktop Software

  • Microsoft Office XP (with
    the Web Services Toolkit added)
  • Internet Explorer
  • InfoPath - A new product for building and collection information from custom forms.
  • Other clients, primarily for
    Windows

Devices

  • Pocket PC (Similar to a Palm Pilot, but generally more expensive and difficult to use, like a PC.)
  • Tablet PC (A laptop, with a pen interface, and handwriting recognition.)
  • Mobile Phones (referred to as "Smart
    Phones")
  • Even the Xbox gaming system
    is considered a potential client.

One powerful feature of the .NET Framework is its adaptive
rendering capabilities: The ability to present data in a way that takes the
best advantage of the host's power and features. Data can just as easily be
transmitted to any of these clients, though the look and feel may be different
for each one.

Here are some basic examples of using .NET on “smart” portable devices:

  1. A company can build a private, secure set of web services for their sales staff to log onto from their

    Pocket PCs. That interface allows them to report figures back to the company, without carrying bigger, more

    expensive laptop computers.
  2. A theater could sell tickets to their shows, through web services, to anyone who owns a Smart Phone, as

    an option.

.NET Is a Very Bad Name

Many have said that ".NET" is actually
a very bad name for all of this, and for several reasons. Among them:

  1. The term ".net"
    already had an established meaning in computer terminology: It is assigned
    as a top level Internet domain, like ".com" and
    ".gov". Some people assumed Microsoft was taking over that whole
    domain, which would be quite irksome, but not true.
  2. It does not offer any clue as
    to what the technology does, except something vaguely to do with networks.
  3. It has a period (.) in it.
    This causes several problems. It is an unsearchable term in most search
    engines, for example.

Does .NET Enforce Vendor Lock In?

Some are concerned that utilizing .NET would force people into using only Microsoft software for
everything else, for many years to come.

However, Microsoft should be smart enough to recognize that forcing "lock in" would be

suicide for them
.
Historically speaking, the most modular technologies have always been the most successful, in the computing

world.
IBM PC architecture succeed better than Apple, not because it was "superior", but because there

were so many choices
for configurations and parts were easy to find and replace.

The same will be true for corporate networks. If CEOs feel that they are being limited to choices

dictated to them
by a single software provider, they will abandon that provider as quickly as possible1. Microsoft

would benefit the
most, in the long run, if they keep their architecture and their policies open for integration of

other brands of applications and services.

Examples of Web Services

Microsoft MapPoint .NET

A web service that delivers geographic data. Some folks have used it to start a small business that

offers driving
instructions. Others use it to help track network attacks, for example. You can learn more about it here:
The MapPoint .NET Site

.NET Passport

Microsoft .NET Passport offers the following web-based services:

  • Single Sign In (SSI): Your
    user name and password can be the same for many participating sites.
  • Kid's Passport, with a
    built-in parental consent system
  • Express purchase with a
    virtual "wallet" (This may be discontinued, soon.)

Passport was actually launched in 1999, before .NET was announced. Microsoft, in their infinite wisdom,

decided to
include Passport into the .NET branding, for better or worse. Therefore, it is a mistake to think that

all of .NET is somehow tied to Passport. Passport is just a specific type of web service. And, web

service developers never have to touch Passport if they do not want to.
Even if you think Passport is a bad idea,
that does not mean all of .NET has to be a bad idea.

Microsoft tries to stress that security and privacy are top priorities. Whether you
want to believe them or not, is ultimately up to you.

The only information you need to give, when you set up a
.NET Passport is the following: Your e-mail address (which
doubles as your ID name), a password, your country, your state, and your ZIP code.
Everything else is optional. Even your name
is optional!

You can read more about .NET Passport here:

.NET Passport Overview

The "Hailstorm" That Never Came

Another set of web services initiated by Microsoft ultimately went back to the
drawing board. These fell under the working title of "Hailstorm",
which eventually became something named ".NET My Services". It turns out that no one was

interested in these, so they never really got off the ground.

Other Web Services from Other Companies

Microsoft is not the only company making web services based on .NET. In fact, there is a whole directory

of them, developed
with a specification named UDDI, which stands for Universal Description Discovery and Integration.

You can learn more
about that here: UDDI Business Registry

Why XML?

XML was chosen as the standard data format for one very simple reason: XML
is easy for computers to parse through, and also easy for humans to read.
XML also
offers greater structure than comma delimited files.

Here is a small, simple sample of what XML looks like:


<?xml version="1.0" encoding="utf-8" ?>
<Products>
<Product ID="5">
<Name>Towel</Name>
<Price>12.42</Price>
<Description>The corners are presoaked in tasty nutrients.</Description>
</Product>
<Product ID="6">
<Name>Swedish Babel Fish</Name>
<Price>0.9</Price>
<Description>Small, yellow, leechlike candies.
Put them into your mouth, not into your ear.</Description>
</Product>
</Products>

It looks like HTML, but the tags separate units of data, rather than define formatting.
You can read the data yourself, if you need to. However, you very rarely have to. SOAP
objects are constructed with XML. After they are sent across the network, the .NET Framework
(or some other SOAP parser) can transform them into the class objects or readable data,
automatically. Many tools allow you to edit XML files, as you would a database.

More About The .NET Framework

The .NET Framework can be divided into many layers. Most of them are beyond the scope of
this document. Here are some of the more important ones.

ASP.NET is, by far, the most popular piece of the puzzle. ASP stands for
Active Server Pages, in this case2. It is, essentially, a technology for
dynamically building web pages, on the fly.

Windows Forms are used to build Windows applications, and
"replaces" most of the older Windows API. Why is it in the Framework?
Because Microsoft wanted it that way! But, they get few complaints: Most
programmers find that Working with this newer API is a lot nicer than anything
before it.

There are various Microsoft programming languages on top of everything else,
such as VB.NET, C++, and C#. More languages can be supported, even from other
companies, but they all compile into the same Intermediate Language, or IL.
Therefore, they can all share the same power and features. Choosing a language
to work with becomes more of a personal choice, rather than one of technical
merit.
It also makes cross-language inheritance possible: Classes of objects written
in one language can inherit classes written in other languages.

When the .NET Framework is ported into other platforms, such as Linux, it
must reproduce equivalent services. This would not seem like an easy task, but
it is being attempted. Visit

The Mono Project
for one such endeavor.

Tools for Developing .NET Clients and Services

Visual Studio .NET 2003

You want more talk about bad names for good products? Look no further than
Microsoft Visual Studio. Despite its name, this is not an art program!
It is not a drawing nor a painting program, of any sort! Visual Studio
is a suite of software development languages and tools.

Visual Studio .NET supports many programming languages, all of which compile
into IL. It can be used to build web services, web applications, traditional Windows
applications, console ("DOS-like") applications, program libraries,
etc. However, you usually have to pay a hefty sum to legally acquire this
product.

ASP.NET Web Matrix

This little program was also
released by Microsoft. Unlike VS.NET, the Web Matrix is a free product. It may not have many of the deluxe

features VS.NET has, but it looks and
feels similar. It can only be used to build ASP.NET pages and services, not
Windows applications, nor anything else.

You can use ASP.NET Web Matrix to get started with ASP.NET technology, and
to explore much of its power. It can be downloaded from this web site:

www.ASP.net

"Notepad .NET"

If you were so daring to do so, you could build an entire .NET application,
by writing all the code and XML, etc. by hand, using nothing but Windows
Notepad. However, The IL compiler, included with the free .NET Framework, would be
necessary to run them.

This could be a long and arduous job, but it is still a physically possible
one.

Because open transmission standards (like SOAP) are used, and the documentation
given to The Framework is reasonably good, it is possible for others to build
their own .NET construction tools, as well.

About .NET Security

Web Services, in general, are not any less safe than any other TCP/IP (basic
Internet) traffic.
Still, security is always an important issue with any
computer technology. Most security topics are out of scope for this document. Here
are a few crucial issues.

Some people who have heard a bit about .NET are concerned that XML Web
Services are designed to poke through firewalls, since they use the same ports
as other Internet traffic. Thus, security is placed more into the hands of the
application designer.

Of course, there are also advantages to doing this:

  • Fewer ports are open in the
    server, which means fewer holes for hackers to climb into.
  • The programmer has to jump
    through fewer hurdles (mostly bureaucratic), to get
    a distributed application running in their company.

There are several relatively straight forward steps a company can take to prevent security threats. Most

importantly, programmers must properly validate and authenticate all data requests sent through the HTTP

port.

Programs compiled into the Framework's Intermediate Language (IL) are easier
to decompile than traditional machine-language programs. It is potentially
easier for someone to lift algorithms from a program that might be trade
secrets. The best way address this, is to send your IL code through an "obfuscator" program. This allows the

code to function just as well as it did, before, but it will be much more difficult for humans to examine

after decompiling it. Visual Studio .NET 2003 now includes an obfuscator.

There is also Microsoft’s reputation to contend with. Whether it is fair, or not, the public perception

is that
Microsoft software is always full of holes, and every few months there is a new software worm or virus to

crawl through
them. However, Microsoft has the resources and the determination to improve in this area. As long as

companies are
responsible to patch their software, when necessary, and to place common sense barriers, both physical and

logical, for
their systems, the risks are minimized. No software company can ever be perfect, and no system can ever be

perfect. However, Microsoft has some potential to
be a security leader, though it may take a couple of years. At the very least, you can bet that all their

code is better scrutinized before release, from now on.

There is one .NET concept that has scared some people a great deal: No-Touch Deployment.
This is a concept where users could run executable files on their system, that are hosted on a web server. They are only supposed

to work within various security restraints. Although the chances of this system being compromised are slim,

Microsoft has, thankfully, not enabled it by default, anymore. However, the best defense is always

common-sense advise:
Never, ever download any executable files, of any
sort, unless you know it is something you really need.
You can learn
more about No-Touch Deployment here:

No-Touch Deployment in the .NET Framework
.

The .NET Framework is not exposed outside of the PC. Its functions (APIs)
stay firmly inside the machine it is installed on to. Only the SOAP XML that
carries the data is sent in and out of the system, and only through the Web
Service interface that the programmer designed.

The Conclusion

.NET is a set of technologies focusing on web services, but its name was
also used, by Microsoft, as some sort of bizarre marketing strategy, for other
things.

XML Web Services provide an easy way to transfer structured data through
Internet protocols. XML, specifically, was chosen as the format, because it is
easy for both computers and humans to read.

.NET is, thus, a viable solution to the Classic Problem of Distributed
Applications
.

The .NET Framework includes a platform of components that focus on web
services, but also includes a bunch of other things. Some of its components,
such as Windows Forms, and ASP.NET allow data to adaptively render in format
and features, for various devices. The Framework also provides a very nice API
for software developers.

There will always be people who will blindly criticize everything that has to do with Microsoft.

Sometimes people spread
misconceptions about their products, either accidentally or intentionally. Now that you understand what is,

and is not,
relevant to .NET, you can better decide if it might be something worth evaluating further.

1If you have

heard of Microsoft’s "License 6" fiasco, it would prove how sensitive CEOs could be.
2ASP can also stand for lots of
other things, including: Application Service Provider, and Association of
Shareware Professionals.

Bookmark on your Personal Space


Entry

A966963

Infinite Improbability Drive

Infinite Improbability Drive

Read a random Edited Entry


Written and Edited by

Disclaimer

h2g2 is created by h2g2's users, who are members of the public. The views expressed are theirs and unless specifically stated are not those of the Not Panicking Ltd. Unlike Edited Entries, Entries have not been checked by an Editor. If you consider any Entry to be in breach of the site's House Rules, please register a complaint. For any other comments, please visit the Feedback page.

Write an Entry

"The Hitchhiker's Guide to the Galaxy is a wholly remarkable book. It has been compiled and recompiled many times and under many different editorships. It contains contributions from countless numbers of travellers and researchers."

Write an entry
Read more