August 2002

Scripting and .NET: Visual Studio for Applications Provides Customized Scripting Facilities for Your .NET Project

In the past, the Microsoft Active Scripting architecture has allowed you to make your applications extensible. But it came with some drawbacks. You couldn't call into DLLs; you had to use COM interfaces. The scripts were not compiled, so they ran more slowly than they otherwise might, and a number of objects had to ride along with the script. To solve these problems and make extensibility easier to attain, Visual Studio for Applications was introduced. Presented here is an introduction to VSA that covers language support, types, events, and much more. Chris Sells

ASP.NET: Intercept, Monitor, and Modify Web Requests with HTTP Filters in ISAPI and ASP.NET

There can be many reasons to reroute incoming Web requests. For instance, sometimes it's necessary to redirect a browser to a page based on user criteria without passing long lists of parameters in the URL. In the past, the only way to intercept such page requests and send them elsewhere was with ISAPI. Now, in ASP.NET, the IHttpModule interface provides notification of server requests, and lets you easily reroute them based on criteria other than browser type or version. Here the author demonstrates the use of IHttpModule for interception and explains the use of ISAPI filters for anyone who isn't yet using ASP.NET. Panos Kougiouris

Scripting SQL: VBScript Interfaces in SQL Server 2000 Let You Transform Data and Provide Reports to Your Users

Application service providers often must send information to clients automatically rather than on-demand. For example, a manufacturer may want to know each day how many of their products were sold by a retail chain. While SQL Server is ideal for maintaining this type of database, you have to write scripts to get the data out in a client-friendly format. Here you will see how you can use Data Transformation Services (DTS), a powerful tool in SQL Server, to automate the retrieval and formatting of data from SQL Server 2000 and make the process of pushing data to your users a lot easier. Alok Mehta and Daniel Williams

Windows XP: Escape from DLL Hell with Custom Debugging and Instrumentation Tools and Utilities, Part 2

Building on his article published in the June issue, which demonstrated several ways to get process and DLL-related information from APIs such as PSAPI, NTDLL, and TOOLHELP32, the author presents some unusual ways to get system-oriented info that you can easily integrate in your own toolkit. There are three tools included as samples: LoadLibrarySpy, which monitors an application and detects which DLLs are really loaded; WindowDump, which retrieves the content and a detailed description of any window; and FileUsage, which redirects console-mode applications to tell you which process is using any opened file. Christophe Nasarre

Commerce with ASP.NET: Leverage the Authentication and Form Validation Features of ASP.NET to Bolster Your Commerce App

If you're planning to build an e-commerce site, you'll be pleased to see that ASP.NET makes it easier than ever. Existing controls can be used and extended to add a great deal more functionality than you might expect. In this article, forms-based authentication is used to verify the identity of users and make certain areas of the site, such as the check-out page, inaccessible to unauthorized users. The power and flexibility of validation controls are demonstrated using the CustomValidator control to connect to a Web Service that verifies addresses. A shopping cart is then implemented in ASP.NET using the DataGrid, and finally, credit card authorization and billing are performed. Jason Lefebvre and Robert Lair

SENS: System Event Notification Services and WMI Enable Flexible, Efficient Mobile Network Computing

Networked applications must deal with a host of connection problems ranging from timeouts to congestion to unavailability. If these applications can check the current connection status and, when disconnected, cache transmissions, they become more efficient. Fortunately, both the System Event Notification System (SENS) and Windows Management Instrumentation (WMI) can send notifications to keep applications informed of network status. In this article, the author explains the use of several SENS interfaces, including ISensNetwork and ISensLogon, which trigger events for connects/disconnects and logons/logoffs, respectively. The author then shows how you can subscribe to each of these events, and follows with a discussion of when you might use WMI events instead. Aspi Havewala

.NET Reflection: Dynamically Bind Your Data Layer to Stored Procedures and SQL Commands Using .NET Metadata and Reflection

One major inconvenience of using SQL stored procedures from code is having to match type information. You have to write long wrapper functions around the procedures just to expose the data types. In the .NET Framework, however, the reflection services of the System.Reflection namespace allow you to query rich metadata that describe data types. This article explains how to use reflection in .NET to end your stored procedure nightmares. The author creates four custom classes, including one that generates a SQLCommand object based on the metadata of a method. Using this library, you'll be on your way to automating the generation of stored procedures. Atif Aziz

Editor's Note: Parallel Networking

New Stuff: Resources for Your Developer Toolbox

Theresa W. Carey

Web Q&A: Passing XML to SQL Server, Document.write on Resize, Transformations on the Fly, and More

Edited by Nancy Michell

The XML Files: Dynamic Discovery in .NET, Codebehind, WebService Inheritance, and More

Aaron Skonnard

Cutting Edge: Designing Reader Classes for .NET Documents

Dino Esposito

Advanced Basics: Best Practices for Windows Forms Applications

Ken Spencer

The ASP Column: Code-behind in ASPX Files

George Shepherd

Wicked Code: Code Your Way to ASP.NET Excellence

Jeff Prosise

C++ Q&A: Call Unmanaged DLLs from C#, Killing Processes Cleanly

Paul DiLascia

Resource File: Skills Development

Code Download (1,949 KB)
.Chm Files