Explore the New Features
Windows NT 4.0 is currently undergoing beta testing and is due for release
early this summer. NT 4.0 combines--and improves on--the Windows 95 user
interface without compromising NT's robust architecture. NT 4.0 also offers
improved interoperability with other systems, although this improvement is
mostly relevant for integration with legacy systems.
User Interface
NT 4.0 has sometimes been called the Shell Update Release because Windows NT
Workstation and Server both get the Windows 95 user interface (known as the shell)
in this release. This fact is ironic because much of the work on this user
interface was originally for Microsoft's forthcoming Cairo operating system
(which has become a floating collection of features to put in future versions of
NT). As the situation stands, responsibility for the shell bounces between the
NT and Windows 95 teams, as each leap-frogs the other in major releases. One way
to look at the state of the interface is that the Win95 team added the "eye
candy" we've become familiar with, and then the NT team got to figure out
how to make the interface robust and secure, support multiple logins and
multiple profiles, and be Unicode-aware.
From a technical perspective, the new user interface in NT 4.0 consists of
several pieces that will be familiar from the Windows 95 interface. The most
obvious piece includes the new shell components, such as the Taskbar, Start
Menu, Desktop, and Explorer. From Windows 95, you
can also recognize NT 4.0's new common controls and common dialogs (for
instance, the FileSave dialog); the new look, which incorporates user
interface features such as 3D forms, single-button close, and Microsoft Sans
Serif font for menus; and even the new WinHelp system, which has such features
as full-text search and easy-to-use "what's this" help.
Some of this shell-related functionality first shipped with Windows NT
3.51. In particular, the Windows common controls--implemented in the
COMMCTRL.DLL--provide most of the intrinsic control for new shell components
such as the Explorer (see screen 1). In its dual-pane view with everything
turned on, the Explorer primarily consists of a Treeview, Listview, Toolbar,
Tooltip, and Status control. Although support for these controls shipped with NT
3.51, we didn't get a chance to play with them until the new Windows shell and
applications designed for the Windows 95 Compatibility Logo started shipping.
Eventually, most of the operating system and virtually all applications will use
these controls and will look and feel similar in Windows 95 and NT.
Still more aspects of the new user interface will become obvious once you
get a chance to use it. Some, such as right mouse-button context menus and
tabbed dialogs for properties, aren't so much shell features as they are
strongly suggested guidelines for application developers. Some shell features
don't even have any visible interface. A good example is the ShellExecuteEx
function, which is called when a user types something into the Run dialog. In
this case, the user's string can contain a program, a file of a registered type,
a folder to open or explore, or even a Hypertext Transfer Protocol (HTTP) or
File Transfer Protocol (FTP) Universal Resource Locator (URL). Windows NT knows
how to activate the string, even to the point of starting the Internet Explorer
or initiating a Remote Access Service (RAS) AutoDial to access a remote file or
folder.
Shell-related Differences
Although the NT 4.0 shell is similar to the Windows 95 interface, some
features and functions in the new shell work uniquely with NT (however, some of
these will be in the next update to Windows 95). Perhaps the best place to start
discussing shell-related differences between NT 4.0 and Windows 95 is at the
point where a user logs on. Administrators and experienced NT users know that
previous versions of NT store individual user profile information in the
registry and maintain it in a separate hive, or disk file, in the systemroot\system32\config
directory. The Program Manager uses this information to implement user-specific
and common program groups. The new shell replaces program groups with folders
that contain shortcuts, and administrators implement the functionality of common
program groups by placing folders and shortcuts under the systemroot\profiles\All
Users directory. Screen 2 shows the structure of the profiles subdirectory,
including subdirectories for Administrator, All Users, Default User, and one for
each user on the system.
As you might expect, the NT implementation of the new shell is secure. The
NT 4.0 shell security includes the usual user profile protections and addresses
such features as the wastebasket, or Recycle Bin. An important point is that the
NT shell provides several Unicode interfaces, all of which are missing in
Unicode-ignorant Windows 95. Although these Unicode interfaces are primarily a
developer issue, they have some important ramifications. For example, the NT
version of the Briefcase can convert Unicode to ANSI (file names only), and the
Find Files feature includes an ANSI-only search option.
One of the NT shell's handiest features is the built-in support for viewing
the properties of Object Linking and Embedding (OLE) documents, such as those
that Microsoft's Office suite of applications creates. In the Windows 95 shell,
the properties page for this article looks like screen 3. NT 4.0, however,
understands the latest version of the document summary information and adds
properties tabs for contents and customizing. Users can now select from a richer
set of properties or even develop their own, assigning text, date, number, or
yes/no values (see screen 4). Also promised--but not delivered in the first
beta--is a new Task Manager.
Alas, a few features from the Windows 95 implementation of the shell are
missing or limited in NT 4.0. A good example is changing the display resolution.
Windows 95's desktop properties control lets you easily change the display
resolution. In NT 4.0, you still have to reboot to implement this change. Some
Plus! pack functionality, which many people lump in with Windows 95, is an
example of features that appear to be new in the NT 4.0 shell but that were
already part of NT. These features that were already in NT include full-window
drag, RAS server, and animated icons. Other Windows 95 Plus! features, such as
the sound schemes, are in NT, and yet other features, such as disk
defragmentation, will never work under NT. Fortunately, NT 4.0 does
include the Plus! pack's well-done Pinball arcade-style game.
Internet
In recent months, Microsoft has made a lot of noise about how important the
Internet is and how all Microsoft products revolve around it, but NT 4.0 doesn't
have much new Internet technology. The most important Internet-related feature
in NT 4.0 Server is Microsoft's Internet Information Server (IIS--formerly
code-named Gibraltar). IIS shipped in February as an add-on to Windows NT and
has received favorable reviews, particularly for its speed. The IIS version that
will ship with NT 4.0 will be only a minor update of the February release and
not add any major new functionality.
On the client side, Microsoft has packaged several components for
developers to use when creating Internet-enabled applications. Of course,
Microsoft did include a newer version of the Internet Explorer than the version
that shipped with Windows 95 (and the updated version is now also available for
Windows 95).
Network OLE
One big feature under the hood in NT 4.0 is the first release of Network
OLE. You won't really see anything in Network OLE, and users will
probably be unaware of its existence. However, having Network OLE will let
developers and solution providers use off-the-shelf and custom-created OLE
components to build robust distributed applications. Without going into much
detail, I'll just say that Network OLE uses an industry standard Remote
Procedure Call (RPC) mechanism to enable an OLE-based application to start and
manipulate a remote or networked OLE server. To facilitate this architecture, a
Service Control Manager (SCM) manages object creation on the local machine by
examining the cache of running objects and causing them to be created remotely
when appropriate.
Roughly the same functionality is available today with the remote
automation capabilities of Microsoft Visual Basic (VB) 4.0's Enterprise Edition.
However, that solution works only with OLE Automation, whereas Network OLE
supports any built-in or custom OLE service. Network OLE also improves
performance over Remote Automation because Network OLE dispenses with Remote
Automation's proxy and Automation Manager. Note: Windows 95 currently does not
have a Service Control Manager, so Windows 95 cannot use Network OLE. Microsoft
has indicated that some sort of Windows 95 support is forthcoming, but the
company has not yet said how it will package and deliver this support.
NT 4.0 also includes support for OLE free threading. To isolate threads,
previous OLE implementations were either not thread-safe or had to use what
Microsoft called "apartment-model" threading. Although OLE free
threading requires significant additional development work, it removes OLE from
the message loop, which results in fewer thread transitions and can measurably
improve performance. Applications that are free threaded can initialize a pool
of worker threads, which means the application scales better. This capability is
particularly useful in server applications. In addition, an application can
implement some components using the free-threading model and some using the
apartment model. This flexibility is important when you can't re-architect your
applications or when some of your development tools--for instance, VB--don't
support free threading.