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