Microsoft .NET FAQ
When Microsoft formally introduced its .NET strategy in mid-2000, analysts
were confused about how the company would pull off such a massive platform
shift. Over two years later, they're still wondering. But .NET isn't vaporware,
and it's not a pipe dream. In fact, .NET is happening today.
Q: What is .NET?
It's a dessert topping,
it's a floor cleaner--it's a dessert topping and a floor cleaner! Actually,
.NET is many things, but primarily it's a marketing term for a set of products
and technologies that Microsoft is creating to move personal and enterprise
computing beyond the PC desktop and into a distributed Internet-based environment.
So .NET--which was originally called Next Generation Windows Services (NGWS)--is
also a platform, one that Microsoft sees as the successor to Windows. The
.NET platform is based on Web services which are, in turn, defined by a
language called XML.
Q: What is XML?
XML--the eXtensible
Markup Language--is a self-descriptive, data definition language. It's structure
is similar to HTML, the language of the Web, but it's far more powerful
because it's not limited to a static list of language constructs ("tags")
that the language's authors supply. Instead, XML is extensible and dynamic:
Programmers can define new types of data using XML and then describe that
data so that others will know how to use it.
Q: What
are Web services?
Web services are functions
exposed by server-side applications. They are programmable units that
other applications (and Web services) can access over the Internet.
Q. Does .NET require
Windows?
Technically, no, but realistically,
yes. It's possible the .NET platform could be ported to other operating
systems, such as Linux, FreeBSD, the Macintosh, or whatever, and indeed,
some work is being done now in this area. However, .NET very much requires
Windows today, on both the server and the client. One might say that .NET
and Windows have a symbiotic relationship going forward.
Q.
Is .NET is being ported to Linux?
Yes. A company called Ximian
is porting the standards-based parts of .NET to Linux as you read this,
and the work is amazingly far along. Code-named Mono, this project seeks
to bring the C# programming language, the Common Language Runtime (CLR,
see below), and other .NET features to Linux.
On a related note, Microsoft
has contracted Corel (makers of CorelDRAW and Word Perfect) to port .NET
to FreeBSD at some undetermined date in the future. This project has not
yet started.
Q.
Which Windows versions support .NET?
You can
run .NET client applications and services on Windows 98, 98 SE, Millennium
Edition (Me), NT 4.0, 2000, and XP, as well Windows CE .NET-based products,
such as the Pocket PC and Microsoft SmartPhone 2002.
On the server, you can use
Windows NT 4.0, 2000, or Windows .NET Server 2003.
Q. Isn't .NET just another
name for COM, COM+, Windows DNA, or some other previous Windows technology?
Actually, no. Microsoft
spent considerable time and effort developing and promoting a set of Windows
technologies that was at various times called OLE, COM, COM+, and Windows
DNA (Distributed InterNet Architecture) but .NET is not the next iteration.
Windows DNA, which was the final umbrella term for this set of technologies,
was based around a concept where Windows-based software components could
expose their services for other local and remote Windows software components.
But though this sounds passingly similar to .NET, Windows DNA is very
much based on proprietary Windows technologies. By comparison, .NET is
based on open standards (XML and various related technologies), so it
will be much easier for other vendors to adopt the platform and write
compatible software. So we can eventually expect to see .NET clients and
servers on platforms other than Windows.
Q: So
are all older applications useless now? What about all those COM components
I developed over the past several years?
Obviously, any existing
applications, services, and components will continue to work with future
Windows versions. However, Microsoft has also added interoperability features
so that you can use this older code--now referred to as unmanaged code--with
new .NET applications and services.
Q: So
what technologies are part of .NET?
.NET is comprised of several
related technologies, including:
.NET Framework
- A runtime environment and set of standard services which .NET capable
applications and services can utilize. Implemented as a code library,
the .NET Framework includes the Common Language Runtime (CLR), the .NET
run-time environment; ASP .NET, a Web applications platform; and ADO .NET,
for data store access.
.NET Compact Framework
- A subset of the .NET Framework designed for Pocket PCs, Microsoft Smart
Phones, and other Windows CE .NET-based mobile devices.
MSN consumer services
- Microsoft will use its consumer-oriented MSN online service to expose
Web services to individuals. The current version, MSN 8, includes the
.NET Passport's authentication services, email, address book, calendaring
and tasks, and other similar services.
.NET Enterprise Servers
- An extensive set of Microsoft server software that runs on Windows servers,
including Application Server, BizTalk Server, Exchange Server, Host Integration
Server, Internet Security and Acceleration Server, SQL Server, and many
others. Microsoft is currently shipping many such server products, but
they are all based on Windows DNA currently, not .NET. Future server products--beginning
with Windows .NET Server 2003, due in April 2003--will actually be based
on .NET technologies for the first time.
Visual Studio .NET
- Microsoft's .NET development environment, with support for languages
such as Visual Basic .NET, Visual C++ .NET, Visual C# .NET, and Visual
J#, which all target the .NET Framework. Other vendors can add other language
capabilities to Visual Studio .NET, and the suite can be used to target
a wide range of applications and services, including .NET Web services,
Windows applications, and Web applications. Note that Visual Studio .NET
is not required to create .NET applications and services: Developers can
download the .NET Framework for free; this download includes compilers
for Visual Basic .NET, Visual C++ .NET and Visual C# .NET.
Q: Will
I need to upgrade my Windows NT4/2000 servers to Windows .NET Server 2003
to serve .NET applications and services?
No, you can install the
.NET Framework on Windows NT 4.0 or Windows 2000. However, Microsoft hopes
that it's new .NET Enterprise Servers add enough value that you will want
to upgrade to one or more of them.
Q: What
does Windows .NET Server 2003 bring to the picture compared to Windows
2000 Server?
Windows .NET Server 2003
is an evolutionary upgrade to Windows 2000 Server, with hundreds of new
features.
Q: Visual
Studio .NET sounds nice, but what about other programming languages?
One of the biggest advancements
in Visual Studio .NET is that the environment, like the underlying .NET
CLR, is not tied to any one language. Microsoft ships C#, C++, Visual
Basic, and ECMAScript/JScript/JavaScript support in the box, and will
ship its Visual J# .NET add-on later in 2002. But hundreds of companies
are porting various programming languages to .NET and the Visual Studio
.NET environment, including Delphi/Object Pascal, Perl, PHP, and many
more.
Q. What
if I want to create standalone Windows applications that don't rely on
the .NET Framework? Is this still possible?
You can still write Visual
C++ applications and services that rely on technology such as the Win32
API, MFC, ATL, or COM/COM+. However, Visual Basic programmers will have
to learn the new Windows Form model exposed by the .NET Framework.
Q: What's
the future of Web-based scripting under .NET? If one wanted to write Web
scripts that work with the widest variety of browsers?
You want to look into something
called ASP .NET, which is a server-side scripting environment based on
.NET. What this gives you is the ability to use any .NET compatible language,
built-in browser detection features you won't need to hand-code, and compatibility
with non-PC devices like Smart Phones and Pocket PCs. The future of Web
scripting is server-side.
Q: When
will the .NET Framework be shipped as part of Windows? Is it included
in Windows 2000 SP3 or Windows XP SP1?
Windows .NET Server 2003
will be the first full Windows version to ship with the .NET Framework
included as an integral component; this product is due in April 2003.
However, Windows 2000 SP3 and Windows XP SP1 do include an optional install
of the .NET Framework as well.
Q: Parts
of .NET sounds a lot like Java. Is it just a Java rip-off?
Not exactly. Like Java,
.NET includes a run-time environment that provides a number of important
developer services, such as garbage protection. And yes, C#--an object
oriented, C-like programming language similar to Java--is the preferred
language for .NET development. But Java isn't the first object-oriented
C-like language, and it certainly isn't the first developer tool to offer
a run-time environment (indeed, Microsoft has used a run-time environment
for Visual Basic for almost a decade, beginning well before Java was invented).
Also, .NET offers three
critical advantages over Java: First, it allows the programmer to use
any compatible programming language, compared to the one (Java) that the
Java environment allows. Secondly, .NET applications and services are
fully compiled, unlike Java applications and services, so they offer much
better performance. And finally, critical portions of .NET--including
the CLR and the C# programming language--have been opened as international
standards. Despite promises, Java's inventor--Sun Microsystems--has constantly
reneged on its Java standardization efforts. This standards-based approach
will eventually see .NET ported to operating systems other than Windows.
Q: What
about Windows? If .NET is successful, does that mean Windows goes away?
No. Windows is a crucial
component of .NET, on both the server and the client (desktop). Server-side,
Windows servers will be used to execute .NET code and provide .NET services
to users. On the client, a future Windows version called Windows .NET
will provide pervasive .NET integration and be what Microsoft calls the
most complete .NET client. And on handheld and connected devices, Windows
CE .NET offer a subset of the .NET Framework called the .NET Compact Framework,
that enables .NET compatibility there as well. Even if .NET succeeds beyond
Microsoft's wildest dreams, Windows doesn't go away. Instead, it becomes
a key component of a far wider strategy that moves beyond the PC to include
PC-like devices such as cell phones, PDAs, set-top boxes, and the like.
Q: What
about 64-bit Windows versions? Will .NET applications and services have
to be recoded or recompiled to run on this new platform?
Most .NET applications and
services should run fine on 64-bit Windows platforms that are .NET Framework-enabled
without having to be recoded or recompiled at all.
Q: .NET
sounds like it requires a 24/7 Internet connection. What happens when
that connection goes down, or if we have a dial-up Internet connection?
For .NET to be fully realized,
bandwidth will have to be like electricity. That is, it will have to be
always on, and very reliable. In the meantime, Microsoft realizes that
many people will be accessing .NET services through an unreliable or slow
connection, and for this reason, the technology is being built to deal
gracefully with interruptions.
Q: How
do we know .NET isn't just a passing fad?
I think the clearest way
to understand this is to look at how they've architected .NET. Unlike
many of Microsoft's previous technology initiatives, .NET is a brand new
platform that's been done right. Just head into a Borders or Barnes and
Nobles, and check out the wide variety of .NET related topics there are
out there, everything from building mobile Web applications, to Windows
Form applications, to pre-.NET application porting. Microsoft .NET is
real, it's here to stay, and though the phrase "betting the company"
is getting a bit tired, this time it's true: Microsoft's future is completely
wrapped up in .NET.
Q. What
companies and products does Microsoft's .NET product line compete with?
Honestly, there isn't a
single company or product line out there that competes with the full .NET
initiative. For Web services, the obvious competitor is Sun, with its
J2EE (Java 2 Enterprise Edition). And Java is right there as a non-OS
platform of sorts as well, though it has glaring performance and compatibility
deficiencies. IBM has a Web services strategy, of sorts, as well. And
of course various companies make developer tools that compete with Visual
Studio .NET.
However, the biggest .NET
competitor might ultimately be Linux. If the Linux community can successful
port key .NET technologies and provide key .NET services via free server
products, it could give Microsoft a run for its money.
Q. OK,
so what's the point? How does this make my life better?
With apologies to Microsoft
for stealing the term, .NET enables a better PC ecosystem. That is, by
making life easier for everyone involved with PCs, the benefits are cross-pollinated.
Here's how .NET makes life easier on various groups:
Programmers
- Because developers now have a consistent, language-neutral programming
environment, they can create better applications and services more quickly.
And because .NET encompasses such a wider range of functionality, those
applications and services can be connected to back-end services via the
Internet, offering better, and more exciting functionality.
IT administrators
- Because .NET applications and services do away with the "DLL Hell"
found in previous Windows applications, they are amazingly easy to distribute
and install.
End users - For the
reasons listed above, and many others, a new generation of .NET applications
and services will provide new types of connected functionality. Access
your email from anywhere. Pay for products online without typing in
your credit card information. Access weather, traffic, music, and other
personal information from a variety of devices, from anywhere in the world.
The future is all connected, and .NET will get us there.
|