October 2001

COM+ Integration: How .NET Enterprise Services Can Help You Build Distributed Applications

The .NET Common Language Runtime (CLR) is Microsoft's next-generation component technology. The CLR is a replacement for COM, but not for COM+. COM+, now called .NET Enterprise Services, is the Microsoft object runtime environment for scalable system development. This article explains how to implement and deploy COM+ configured classes using the CLR, how to access object context and call context, and the rules for managing context-relative object references. Also discussed are ways to manage precious resources such as data connections and pooled objects, and the relationship between COM+ and the new .NET remoting architecture. Tim Ewald

Visual FoxPro 7.0: Program Your Data with Powerful New COM, XML, and Web Services Support

Visual FoxPro 7.0 represents a significant improvement over version 6.0. There are many new features designed to support COM, XML, and Web Services. Now COM servers built with Visual FoxPro are more flexible and robust thanks to strong typing and the ability to implement interfaces from other type libraries. IDE features like the new object browser combine convenience and efficiency, and other language features such as event handlers and early binding to COM objects increase performance. Lastly, an enhanced session class plus several new XML functions make Visual FoxPro a great choice for Web application development. Erik Moore

MSLU: Develop Unicode Applications for Windows 9x Platforms with the Microsoft Layer for Unicode

The Microsoft Layer for Unicode (MSLU) provides Unicode support on Windows platforms that don't provide their own support, including Windows 98, Windows 95, and Windows Me. With MSLU you can write Unicode applications easily for these platforms. MSLU is simple to install, small (even though it wraps more than 400 APIs), and easy on system resources. This article explains the design criteria behind MSLU and how to put the layer to work for you. Michael Kaplan and Cathy Wissink

BizTalk: Implement Design Patterns for Business Rules with Orchestration Designer

Because the value of good software planning and design should never be underestimated, it can be beneficial to use one of the many existing design patterns as a foundation for solving some of your toughest architecture problems. This article describes several traditional design patterns including the Observer pattern and the Dispatcher pattern, elaborates on their structures, what they're used for, and how they can help you build a BizTalk-based solution. Following this is a discussion on using the BizTalk Orchestration Designer to build designs and integrate existing business processes. Christian Thilmany and Todd McKinney

ISAPI Extensions: Creating a DLL to Enable HTTP-based File Uploads with IIS

The MIME-compliant content type, called multipart/form-data, makes writing HTML that uploads files almost trivial. On the server side though, ASP does not have a way to access data in the multipart/form-data format. The most flexible way to access the uploaded file is through a C++ ISAPI Extension DLL. This article describes a reusable ISAPI extension DLL that allows you to upload images and files without writing C++ code. It is coupled with a few COM components that make it readily reusable for ASP development. With .NET, this whole process is much easier, and this article shows preliminary code that uploads files using ASP.NET features. Panos Kougiouris

Win32 Resources: Using C++ to Programmatically Retrieve a Global Cursor's Shape and ID

Getting global cursor information is useful when developing software that drives or gathers information about other UI-based applications, including information about a remote machine. This article describes a way to programmatically identify the current cursor's ID and bitmap at any point in time. The first technique described is based on polling for information and shows how to get the handle of the current global cursor. This handle will then allow you to get information about the cursor. You can also monitor WinEvents for changes to the global cursor. Dmitri Klementiev

ISAPI Filters: Designing SiteSentry, an Anti-Scraping Filter for IIS

The Microsoft Internet API for IIS, ISAPI, sits between the client and the Web server. Therefore, you can access the HTTP data stream before IIS gets to see it. The project in this article takes advantage of the ISAPI architecture to create a filter that monitors access to a Web site to determine if visits are from typical users or from automated processes designed to pilfer information from your site. The author tracks the regularity of visits to the site to determine the likely source. Once the determination is made, the app either redirects the user or continues to track information about those hits. Rodney Bennett

Editor's Note: Lessons Learned from SirCam and Code Red

New Stuff: Resources for Your Developer Toolbox

Theresa W. Carey

Web Q&A: XML to HTML, Editable Dropdown List, Sending Large XML Files to SQL, Streaming Media, and More

Edited by Nancy Michell

Cutting Edge: Build a Variety of Custom Controls Based on the DataGrid Control

Dino Esposito

Bugslayer: Handling Assertions in ASP.NET Web Apps

John Robbins

.NET Column: Extolling the Virtues of Enumerated Types

Jeffrey Richter

C++ Q&A: Displaying a JPG in your MFC Application

Paul DiLascia

Code Download (1,230 KB)
.Chm Files