MSDN Magazine > Issues and Downloads > 2003 >  MSDN Magazine December 2003
December2003 December 2003
Threading: Break Free of Code Deadlocks in Critical Sections Under Windows
Critical sections, a mechanism that prohibits more than one thread at a time from executing a particular section of code, is a topic that has not received much attention and thus tends not to be well understood. A solid understanding of critical sections in Windows can really come in handy when you need to track down multithreading performance issues in your code. This articles delves under the hood of critical sections to reveal information useful in finding deadlocks and in pinpointing performance problems. It also includes a handy utility program that shows all of your critical sections and their current states. Matt Pietrek and Russ Osterlund
MSMQ and .NET: Send MSMQ Messages Securely Across the Internet with HTTP and SOAP
When creating a distributed system you frequently need to provide for communication between two entities that are not in sync. Microsoft Message Queue Server (MSMQ) provides the kind of store-and-forward messaging in a pre-built infrastructure that can help you address these kinds of messaging needs. In the past, MSMQ was accessed using a COM wrapper. Now there's a .NET wrapper that lets you accomplish your messaging goals easily from your Framework-based code. To illustrate the use of the wrapper, the author builds a messaging application, sends MSMQ messages over the Web, and discusses messaging security. David S. Platt
Remoting: Managing the Lifetime of Remote .NET Objects with Leasing and Sponsorship
Leasing and sponsorship is the solution for managing the lifecycle of a remote object in .NET. Each object has a lease that prevents the local garbage collector from destroying it, and most distributed applications rely upon leasing. There are several ways in which objects and clients can extend the lease, including dedicated sponsor objects. In this article, the author explains leasing, shows how to configure it, and how it relates to the various remoting activation models. He then discusses design guidelines and options, along with their impact on throughput and performance. Additionally, he introduces a helper class used to automate the management of lease sponsors. Juval Lowy
Beyond Macros: Create Word and Excel Smart Documents with C++ and XML
One of the coolest new parts of Office 2003 is a programmability feature called Smart Documents, which allows developers to augment Word and Excel documents with programmable content and behavior. Typically, examples illustrating Office programmability use Visual Basic or Visual Basic .NET. In this article, the author develops a Smart Document for Excel using C++. He describes the new ISmartDocument interface and shows how to use it to manage a simple task list such as an Excel spreadsheet. Mike Kelly
Office 2003: Host an Interactive Visio Drawing Surface in .NET Custom Clients
Microsoft Office Visio 2003 introduces a new drawing component that allows you to embed an interactive drawing surface into your application's user interface. You can drive the Visio drawing component from events in your host application or with data from a Web Service and an ADO.NET data adapter. The Visio drawing component supports the rich Visio application programming model, giving you control over how graphics are used and displayed on the drawing surface. This article explains how to embed the Visio drawing component into a C#-based Windows Forms client app that retrieves data from the Fabrikam 2.0 Web Service. Mai-lan Tomsen Bukovec and Blair Shaw
Code Download (1,465 KB)
.Chm Files

Editor's Note: A Look Back and a Look Ahead
New Stuff: Resources for Your Developer Toolbox
Theresa W. Carey
Web Q&A: Virtual Directories, Releasing DB Connections, and More
Edited by Nancy Michell
Data Points: Exploring SQL Server Triggers
John Papa
Cutting Edge: Custom Design-time Control Features in Visual Studio .NET
Dino Esposito
The XML Files: A Survey of Publicly Available Web Services at Microsoft
Aaron Skonnard
Advanced Basics: Windows Forms Q&A
Ken Spencer
Design Patterns: Asynchronous Wait State Pattern in ASP.NET
Lyn Robison
C++ Q&A: Docking the Menu Bar, Abstract Classes vs. Interfaces, and More
Paul DiLascia
Talking To…: Steve Lombardi Discusses the Highlights of Microsoft MapPoint 2004
Page view tracker