November 2000

Windows CE 3.0: Enhanced Real-Time Features Provide Sophisticated Thread Handling

Windows CE is a small, configurable, feature-rich, real-time operating system. In Windows CE 3.0, the real-time support has been improved. This article looks at specific support for the creation of real-time systems and how it compares to the support in Windows for the desktop. The way interrupt handlers, processes, memory management, and synchronization work in Windows CE 3.0 is discussed. An extensive look at threads and thread priority, misconceptions surrounding them, and their impact on performance is included. Refinements to the Windows CE scheduler and support for nestable interrupts are also covered. Paul Yao

Introducing ADO+: Data Access Services for the Microsoft .NET Framework

ADO+ is the new set of data access services for the .NET Framework. ADO+ is a natural evolution of ADO, built around n-tier development and architected with XML at its core. This article presents the design motivations behind ADO+, as well as a brief introduction to the various classes in the two layers that comprise the ADO+ framework-the connected Managed Providers and the disconnected DataSet. A drilldown into DataSets that covers populating data stores, relationships, filtering, searching and data views is provided. Finally, a discussion of the integration of ADO+ with the .NET XML Framework is presented. Omri Gazitt

Garbage Collection: Automatic Memory Management in the Microsoft .NET Framework

Garbage collection in the Microsoft .NET common language runtime environment completely absolves the developer from tracking memory usage and knowing when to free memory. However, you'll want to understand how it works. Part 1 of this two-part article on .NET garbage collection explains how resources are allocated and managed, then gives a detailed step-by-step description of how the garbage collection algorithm works. Also discussed are the way resources can clean up properly when the garbage collector decides to free a resource's memory and how to force an object to clean up when it is freed. Jeffrey Richter

Windows 2000 Registry: Latest Features and APIs Provide the Power to Customize and Extend Your Apps

The Windows registry as it is recognized today first appeared in Windows 95. Its introduction simplified the storage of initialization information and made that data more secure. This article covers the history of the registry, the form it took in the early days, and its current incarnation in Windows 2000. Practical tips for managing data in the registry are outlined, along with descriptions of special keys, functions, and file types. Manipulation of the registry to customize both application behavior and certain features in Windows is discussed. Also covered are future directions of the registry, including the use of XML to store registry information in a hierarchical fashion. Dino Esposito

RPC and C++: Build a Template Library for Distributed Objects Containing Multiple Interfaces

Building a C++ template library for developing distributed object-oriented applications using Remote Procedure Calls (RPC) allows the programmer to design RPC applications that are composed of components that implement multiple interfaces. This article demonstrates the use of techniques such as assembly-level thunks to build machine code on the fly, and C++ features such as templates, conversion operators, virtual destructors and virtual function tables. Along the way, familiar C++ interfaces and classes are transformed into a distributed application. The benefits of using distributed objects rather than raw remote procedures, which include writing fewer lines of code, is explained. Ajai Shankar

Beyond ASP: XML and XSL-based Solutions Simplify Your Data Presentation Layer

The combination of XML and XSL can provide a powerful alternative to ASP development. This article presents arguments for building even small-scale Internet applications on the XML model. An example written with traditional ASP programming is compared to the same example written with XML and XSL in order to show the benefits of this approach. The example is followed by nine good reasons to make the switch. These reasons include separation of presentation and data, reusability, extensibility, division of labor, enhanced testing, and legacy integration. The XML/XSL solutions described hold the promise of greater simplicity, flexibility, and durability than ASP solutions built the traditional way. Scott Howlett and Jeff Dunmall

Editor's Note: Blasts from the Past-Old Timers Speak Out

New Stuff: Resources for Your Developer Toolbox

Theresa W. Carey

Web Q&A: Onstop, Connecting to SQL with ASP, Hiding Images, Passing Values from a Control

Robert Hess

Cutting Edge: Extend the WSH Object Model with Custom Objects

Dino Esposito

The XML Files: SAX, the Simple API for XML

Aaron Skonnard

Under the Hood: Programming for 64-bit Windows

Matt Pietrek

Basic Instincts: To Cache or not to Cache

Ted Pattison

Wicked Code: Eight Lessons from the COM School of Hard Knocks

Jeff Prosise

C++ Q&A: FileType Icon Detector App, Custom Context Menus, Unreferenced Variables and String Conversions

Paul DiLascia

MSDN Update: News this Month from MSDN

Code Download
.Chm Files