August2005August 2005

Concurrency: What Every Dev Must Know About Multithreaded Apps

Multithreading offers lots of benefits, but it's not a technique you can employ willy nilly without first learning about all the potential pitfalls. To get you started, Vance Morrison covers multithreading and the shared memory threading model, race conditions and how concurrent access can break invariants. He also discusses how to use locks so you can understand the costs involved. Vance Morrison

Proxy Detection: Take the Burden Off Users with Automatic Configuration in .NET

Proxy settings can be a real pain in the neck and very frustrating for users to configure properly. In this article, Durgaprasad Gorti discusses how you can use automatic proxy configuration via script and how it works in the Microsoft .NET Framework 1.1 and 2.0. Durgaprasad Gorti

Data Binding: Give Your Everyday Custom Collections a Design-Time Makeover

In this article, Paul Ballard shows how you can provide data binding support for your custom collections to enable sorting, searching, and editing in as simple a manner as possible. In addition, he shows how to make all of these features available in the Windows and Web Forms Designers, just like an ADO.NET DataSet. Paul Ballard

Winsock: Get Closer to the Wire with High-Performance Sockets in .NET

The Win32 Windows Sockets library (Winsock) provides mechanisms to improve the performance of programs that use sockets, and the Microsoft .NET Framework provides a layer over Winsock so that managed applications can communicate over sockets. To use all these layers to write a truly high-performance socket-based application requires a little background information, as Daryn Kiely explains here. Daryn Kiely

Easy UI Testing: Isolate Your UI Code Before It Invades Your Business Layer

The User Interface Process Application Block (UIP) from the Microsoft Patterns & Practices team can help you isolate your UI, write unit tests for your UI logic, and write a UI that really is the thin layer it was always meant to be. Mark Seemann shows you how it's done in this article. Mark Seemann

Code Download (711 KB)
.Chm Files

Columns

Editor's Note: Connected Systems Developer Competition
Last month, we told you about a contest to help design the next-generation PC hardware and we know you're working feverishly on your entries for that. Well, this month we have news of an even more exciting competition—one that MSDN Magazine is proudly co-sponsoring.
New Stuff: Resources for Your Developer Toolbox
Tired of spending oodles of time trying to reproduce bugs so you can then fix them? RadViewSoftware Inc. has a new addition to their Web application function and load testing tools that captures everything that goes on at the client and the server in synchronized logs. Marnie Hutcheson
Extreme ASP.NET: Tools of the Trade: SQL Server Profiler and Query Analyzer
In my last column, I discussed Microsoft® Application Center Test and how it could be used to measure the performance of your Web application (see Extreme ASP. NET: Tools of the Trade: Application Center Test). Rob Howard
Basic Instincts: Reflection in Visual Basic .NET
In the May 2005 Basic Instincts column I wrote about the Microsoft® . NET Framework support for custom attributes and attribute-based programming (see Basic Instincts: Designing With Custom Attributes). Ted Pattison
Data Points: The Enterprise Library Data Access Application Block, Part 2
Last month I explored the foundation of the Enterprise Library Data Access Application Block (DAAB) including how it all fits into an architecture (see Data Points: The Enterprise Library Data Access Application Block, Part 1). John Papa
Cutting Edge: DataSets vs. Collections
In software, five years is like a geological era. Five years ago, the Microsoft® . NET Framework had just been announced. Since then, the DataSet has emerged as the key object for performing a variety of data-related tasks in . Dino Esposito
Test Run: Test Harness Design Patterns
The Microsoft® . NET Framework provides you with many ways to write software test automation. But in conversations with my colleagues I discovered that most engineers tend to use only one or two of the many fundamental test harness design patterns available to them. James McCaffrey and James Newkirk
Service Station: The Application Connection Designer
In some of my past columns on service orientation and contract-first development, I've mentioned the new suite of designers, formerly codenamed "Whitehorse," that are part of Visual Studio® Team edition for Software Architects Team System. Aaron Skonnard
Pure C++: Generic Programming: Template Specialization
As I discussed in my last column, a param-eterized type that does more than simple storage and retrieval is constrained as to the acceptable types that may be safely bound to it (see Pure C++: CLR Generics Versus C++ Templates. Stanley B. Lippman
C++ at Work: Dialog Templates, RegexTest
Paul DiLascia
{End Bracket}: Improving Managed DirectX Performance
It seems that at least twice a week, I am asked about poor performance in Managed DirectX®. This frequency is actually a big improvement over the 5-10 times a week I was asked a few years ago when the technology first came out. Tom Miller