August 2001

.NET Interop: Get Ready for Microsoft .NET by Using Wrappers to Interact with COM-based Applications

Very soon, the development of Microsoft .NET applications will require interaction between those apps and existing COM components on both the client and the server. The .NET Framework has made provisions for this interaction by implementing various wrappers for COM objects to allow exposure of their properties and methods to .NET components. These wrappers will make it easy to make the connection between COM and .NET. After discussing wrappers, this article discusses other ways for .NET components to take part in COM+ transactions. To top off the tutorial on the interoperation of COM and .NET, the article discusses how ActiveX containers can host .NET controls, and how .NET containers can host ActiveX controls. David S. Platt

Windows XP: Make Your Components More Robust with COM+ 1.5 Innovations

The next version of COM+, COM+ 1.5, offers many improvements over COM+ 1.0. A comprehensive user interface that displays more data for each application as well as complete support for legacy components make the management of existing applications easier and more efficient. Enhanced queueing support provides more flexibility for managing queued calls, and pooling and recycling means better application lifetime management. Application partitioning in COM+ 1.5 surpasses that offered in COM+ 1.0, and transaction isolation can be configured for safer transactions. COM+ 1.5 also allows you to expose any COM+ component as a Web service, as long as it meets certain criteria. This article discusses these and other new features in COM+ 1.5 that take care of much of the plumbing code, allowing developers to concentrate on business components. Juval Lowy

SQL and XML: Use XML to Invoke and Return Stored Procedures Over the Web

Front-end developers frequently want to add functionality to the presentation tier of an n-tier architecture, but such requests can require changes on all tiers just to get the data and present it. This process can be made easier and more flexible by using SQL Server stored procedures to automate the delivery of data in XML format from the database to the front-end components. In the component presented here, stored procedures are invoked by XML strings, XML is returned, converted using XSL, and presented to the client in HTML. The technique supports rapid changes yet doesn't sacrifice the n-tier approach. This approach can be used with either SQL Server 7.0 or SQL Server 2000. Dave Grundgeiger, Anson Goldade, and Varon Fugman

Fax Services: Send Any Printable File From Your Program in Windows 2000

All versions of Windows 2000 have fax services built in, so sending faxes manually is as easy as setting fax options from the control panel. Faxes can also be sent programmatically in Windows 2000 using either COM Automation or the standard C API. The example in this article uses COM Automation with Visual Basic and MFC to programmatically manage faxing. The objects used for fax transmission, such as the FaxServer and FaxDoc objects, as well as their properties and methods, are explained. Because faxing of files you can't print can be problematic, this process is explained. Finally, this article implements a fax routing extension-a plug-in that exports standard functions and implements routing methods for processing received faxes. Marcin Kaluza

Multiprocessor Optimizations: Fine-Tuning Concurrent Access to Large Data Collections

Application performance involves more than just speed. In a Web server environment, top performance also means ensuring that the maximum numbers of users can be served concurrently. This can be accomplished through efficient use of multiprocessor machines and thread management. This article presents techniques that can solve a number of concurrency problems. One approach, using thread management, controls access to a database on a per-thread basis, which protects the integrity of the data. In the article, reusable thread classes are built and presented. The classes are then tested and their performance in a live environment is examined. Ian Emmons

.NET Delegates: Making Asynchronous Method Calls in the .NET Environment

One of the many great features of the .NET Framework is that it has asynchronous infrastructure built in. In .NET you can call any method asynchronously by defining a delegate for the method and calling the delegate's asynchronous methods. This is beneficial to your application because when a synchronous call is made, the calling thread is blocked until the method completes whereas an asynchronous call is made on a different thread, and this allows the original thread to continue its work while the asynchronous call is in progress.This article explains delegates in .NET and how to use them to perform asynchronous calls, eliminating age-old threading problems. Richard Grimes

Editor's Note: Surfing in the Sky

New Stuff: Resources for Your Developer Toolbox

Theresa W. Carey

Web Q&A: Include Files, ActiveX DLLs, Target a Window in JScript, Cancel a Form Submission, and More

Edited by Nancy Michell

Data Points: ADO to XML: Building a Data Access Tier with the DataManager Component

John Papa

Cutting Edge: Reusability in ASP.NET: Code-behind Classes and Pagelets

Dino Esposito

.NET Column: Implementation of Events with Delegates

Jeffrey Richter

Basic Instincts: Exploiting New Language Features in Visual Basic .NET, Part 2

Ted Pattison

Bugslayer: Optimize and Trim Your Code with New Switches in Visual C++ .NET

John Robbins

C++ Q&A: Getting the Text of a Window in Another Application; Making Backspace Work in the Explorer Bar

Paul DiLascia

Code Download (848 KB)
.Chm Files