October2004October 2004

Bootstrapper: Use the Visual Studio 2005 Bootstrapper to Kick-Start Your Installation

There are plenty of times when you need to get information on running processes, not the least of which is during performance tuning. Using the techniques in this article and special .NET classes you'll see how to get a process' ID, name, priority, number of threads, kernel handle, and memory consumption, as well as its user-mode, kernel-mode, and total elapsed running time and put them to use in a custom app called AssemblyBrowser. Sean Draine

.NET Internals: Examine Running Processes Using Both Managed and Unmanaged Code

There are plenty of times when you need to get information on running processes, not the least of which is during performance tuning. Using the techniques in this article and special .NET classes you'll see how to get a process' ID, name, priority, number of threads, kernel handle, and memory consumption, as well as its user-mode, kernel-mode, and total elapsed running time and put them to use in a custom app called AssemblyBrowser. Christophe Nasarre

ASP.NET 2.0: Speed Up Your Site with the Improved View State in ASP.NET 2.0

View state is a wonderful thing. It allows the ASP.NET developer to maintain state for server-side controls that are not form elements.Used judiciously, it can improve the user experience. But in the wrong hands, it can cause your pages to grind to a halt. The release of ASP.NET 2.0 will include a variety of improvements to view state that will make it easier to use and less likely to slow performance. Fritz Onion

Advanced Serialization: Format Your Way to Success with the .NET Framework Versions 1.1 and 2.0

While .NET offers adequate support for the simple serialization cases, issues arise when you're attempting to support delegates and subscribers, versioning, and class hierarchies. . In addition, the introduction of generics in The .NET Framework breaks new ground in the complexity of the serialization task and the power of serialization tools. This article discusses these issues and related pitfalls, suggests techniques and workarounds that address them, and recommends when and how to best use the new serialization abilities. Juval Lowy

BizTalk 2004: Automate Your Business Processes with Human Workflow Services and Visual Studio

BizTalk Server is an excellent platform for automating B2B and EAI workflows. Process-driven workflows send messages between machines and access data. Until now, such processes were very difficult to automate, but with the introduction of Human Workflow Services in BizTalk Server 2004, this class of workflow automation is a very real possibility. This article explains it all. Chris Whytock

Unit Testing: Mock Objects to the Rescue! Test Your .NET Code with NMock

The problem: unit testing libraries, especially data access components, that have a complex set of dependencies. The solution: providing a dynamic mock implementation of your data access classes. Here the author explains just how to make testing easier and more reliable using NMock. Mark Seemann

Code Download (2,085 KB)
.Chm Files

Columns

Editor's Note: Old, New, Borrowed, Blue
A traditional marriage "rule" is that the wedding should feature something old, something new, something borrowed, and something blue. The reasoning behind this escapes us. Why blue? Why have so many successful marriages (Britney Spears comes to mind) ignored this rule entirely? Can you borrow someone's new, blue thing? How long will this analogy go? In any event, this month we have news from all four of these categories.
New Stuff: Resources for Your Developer Toolbox
MKS Inc. , a provider of tools for porting Unix/Linux applications to Windows®, has just announced the availability of its new 64-bit products. MKS is shipping a beta version of MKS Toolkit for Enterprise Developers 64-bit edition with support for extended-architecture 64-bit platforms such as AMD64 running Windows 64-bit OS. Nancy Michell
Web Q&A: Refreshing Web Pages, Spyware, Group Policy, and More
Edited by Nancy Michell
Data Points: Handling Data Concurrency Using ADO.NET, Part 2
Enterprise development has been moving towards a discon-nected model in recent years and ADO. NET development is no exception. While the disconnected model of the ADO. NET DataSet offers great flexibility, that adaptability also means looser control over data updates than you get with a connected data access model. John Papa
Advanced Basics: Building a Progress Bar that Doesn't Progress
In many situations, accurately estimating the length of a certain process (copying a large file, loading data from a server, retrieving files from the Internet) would be both difficult and inefficient. Duncan Mackenzie
.NET Column: P/Invoke Revisited
In the July 2003 installment of the . NET column I covered the basics of Win32® interoperation with the Microsoft® . NET Framework (P/Invoke). Based on reader feedback, this topic is worthy of further coverage, so I have decided to revisit P/Invoke in this column. Jason Clark
Cutting Edge: Binary Serialization of DataSets
The ADO. NET DataSet object plays an essential role in most of today's distributed, multitiered applications. Instances of the DataSet class are used to move data across the tiers and to exchange data with external services. Dino Esposito
Service Station: Securing Web Services with WSE 2.0
Beginning this month, The XML Files will run under the name Service Station. We have made this change so that the column can discuss broader topics such as Web services, service-oriented architecture, and the like.Aaron Skonnard
Security Briefs: Password Minder Internals
In my last column I introduced Password Minder, the tool I use to manage all of my passwords. It generates a long, random password for each site I visit, and makes it possible for me to use the most complex passwords possible, without ever having to see the actual password material or type it in manually. Keith Brown
.NET Matters: ThreadPoolWait and HandleLeakTracker
Stephen Toub
C++ Q&A: Create Client Windows, Drag and Drop Between Listboxes
Paul DiLascia
{End Bracket}: Microsoft Java Virtual Machine Update
In a settlement agreement reached in January 2001 to resolve a dispute over the Microsoft distribution of its Java implementation, Sun Microsystems and Microsoft agreed to limit the duration of the time Microsoft would use Sun's source code and compatibility test suites to support the Microsoft® Java Virtual Machine (MSJVM). Brian Keller