|
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. 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. If you've got a question about this
exciting set of technologies, please
ask me and I'll post the answer here.
Q: What is .NET?
A: 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?
A: XML--the eXtensible Markup Language--is a
self-descriptive, data definition language. It's 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?
A: Web services are server-side applications that expose
their services as programmable units that other
applications (and Web services) can access over the
Internet.
Q. Does .NET require Windows?
A. 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.
Q: .NET
is being ported to Linux?
A. 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?
A: You can run .NET client applications and services on
Windows 98, 98 SE, Millennium Edition (Me), NT 4.0,
2000, or XP. Beginning in late 2002, you will be able to
run .NET applications and services on Windows CE .NET
products, such as the Pocket PC and Microsoft Smart
Phone, as well.
On the server, you can use
Windows NT 4.0, 2000, or .NET Server.
Q: Are
there any .NET features in Windows XP?
A. Yes, but not much. Because Windows XP was designed
and built before the .NET Framework was complete, it
only includes bare-bones .NET functionality. The primary
conduit for .NET in XP is Windows Messenger, which is
used to expose .NET alert and rendezvous services. XP
also includes integration with the .NET Passport
service, so that you can optionally auto-logon to
Passport when you logon to Windows.
Q: Isn't .NET just another name
for COM, COM+, Windows DNA, or some other previous
Windows technology?
A: 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?
A. 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?
A: .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. Microsoft will ship a version of the .NET
Framework--dubbed the .NET Compact Framework--for Pocket
PCs, Microsoft Smart Phones, and other similar devices
in late 2002.
.NET My Services
- A set of free, consumer-oriented services that will
expand on .NET Passport's authentication services
(available today) to offer Web server-based storage of
personal information such as name and address, calendar,
address book, and credit card information. Microsoft
expects to ship .NET My Services (previously code-named
Hailstorm) for consumers by the
end of 2002. A business oriented version of .NET My
Services is also in the works.
.NET Enterprise Servers
- A set of expensive 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, due in
late 2002--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, and Visual C# .NET, 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 to serve .NET applications and services?
A. 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 bring to the picture compared
to Windows 2000 Server?
A. Windows .NET Server is a minor upgrade to Windows
2000 Server, but I'll have more information about this
product when Release Candidate 1 (RC1) hits sometime
this summer. In the meantime, check out
my review of
Windows .NET Server Beta 3.
Q:
Visual Studio .NET sounds nice, but what about other
programming languages?
A.
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?
A. 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?
A. You want to look into something called
ASP .NET, which is a server-side scripting environment.
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?
Will it be included in Windows 2000 SP3 or Windows XP
SP1?
A. Windows .NET Server will be the first Windows version
to ship with the .NET Framework included as an integral
component; this product is due in late 2002. I've asked
Microsoft whether the .NET Framework will be included in
Windows 2000 SP3 and/or Windows XP SP1 (both due later
this year) but the company is unwilling to discuss this
topic until later. My guess is that, no, the .NET
Framework will not be part of these releases.
Q: Parts of .NET sounds a lot
like Java. Is it just a Java rip-off?
A. 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?
A: 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 will 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?
A. 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?
A. 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?
A. I think the clearest way to understand
|