Welcome  |  Sign In
 | 
Skip Navigation Links
  

MSDN Magazine

Click to Rate and Give Feedback
Authors
 Jeffrey Richter
Popular Articles
One-time passwords offer solutions to dictionary attacks, phishing, interception, and lots of other security breaches. Here's how it all works.

By Dan Griffin (May 2008)
We will introduce you to the Visual Studio Profiler by walking through a sample performance investigation, pinpointing code inefficiencies in some sample applications.

By Hari Pulapaka and Boris Vidolov (March 2008)
James Kovacs explains the dark side of tightly coupled architectures, why they're hard to test and how they limit adaptation. He then proposes a number of solutions.

By James Kovacs (March 2008)
Here we present a rundown of the various language paradigms of CLR-based languages via short language introductions and code samples.

By Joel Pobar (May 2008)
More ...
Read the Blog
The May 2008 issue of MSDN Magazine is now available online. Our May issue starts with a focus on developing Office-based business applications based on SharePoint. We also delve into the details of development language ...
Read more!
In the March 2008 installment of our Extreme ASP.NET column, Fritz Onion introduced to the ASP.NET 3.5 ListView control, which provides more control over generated markup, support for paging, and full integration with the data source-based binding model. In the April ...
Read more!
The need to test a program that accesses and manipulates a back-end SQL Server database is very common. In many such cases, the application interacts with the back-end data through the use of SQL stored procedures. In the April 2008 issue of MSDN Magazine, James ...
Read more!
The Microsoft Office platform allows you to maintain both standard and custom properties for documents. Document Information Panels, however, let you implement additional functionality such as metadata-based search and automation of information-driven business processes is Office documents and SharePoint apps. In the April 2008 issue of MSDN ...
Read more!
Going Places is a new MSDN Magazine column devoted to mobile device development. The main focus will be on Windows Mobile phones and Tablet PCs, although any topic related to mobility is fair game. In the April 2008 issue of MSDN ...
Read more!
Silverlight is a new cross-browser plug-in from Microsoft that brings the power of the .NET Framework to bear on an area that was previously reserved for Flash or Java Applets. Silverlight also supports a range of .NET-compliant languages, including Visual Basic and C#, so you don't have to learn a new language to build rich media applications. In the April 2008 issue ...
Read more!
More ...
Jeffrey Richter rss
Jeffrey Richter is a cofounder of Wintellect (www.Wintellect.com), an architecture review, consulting, and training firm. He is the author of several books, including CLR via C# (Microsoft Press, 2006). Jeffrey is also a contributing editor to MSDN Magazine and has been consulting with Microsoft since 1990.

  • Concurrent Affairs: Simplified APM with C#
    Jeffrey Richter introduces his AsyncEnumerator class and explains how it harnesses some recent additions to the C# programming language that make working with the asynchronous programming model significantly easier.
    Jeffrey Richter - November 2007
  • Concurrent Affairs: Asynchronous Device Operations
    Jeff Richter uses the AsyncResult<TResult> class to implement the CLR’s Asynchronous Programming Model to perform hardware device operations asynchronously.
    Jeffrey Richter - June 2007
  • Concurrent Affairs: Implementing the CLR Asynchronous Programming Model
    Jeffrey Richter - March 2007
  • SideShow Gadgets: Get Started Writing Gadgets For Windows SideShow Devices
    SideShow Gadgets for Windows Vista are cool. Writing your own is even better. Find out how it's done.
    Jeffrey Richter - January 2007
  • Concurrent Affairs: The ReaderWriterGate Lock
    Jeffrey Richter - November 2006
  • Concurrent Affairs: Concurrency and Coordination Runtime
    What can a robot-programming toolkit do for you? Read on and find out.
    Jeffrey Richter - September 2006
  • Concurrent Affairs: Reader/Writer Locks and the ResourceLock Library
    If multiple threads concurrently execute code that writes to or modifies a resource, then obviously the resource must be protected with a thread synchronization lock to ensure that the resource doesn't get corrupted.
    Jeffrey Richter - June 2006
  • Concurrent Affairs: Build a Richer Thread Synchronization Lock
    In my last column, I showed the various thread synchronization mechanisms employed by the Microsoft® . NET Framework (see Concurrent Affairs: Performance-Conscious Thread Synchronization). I then examined the performance characteristics of all these mechanisms and determined that the Interlocked methods performed the best because the calling thread never has to transition to kernel mode.
    Jeffrey Richter - March 2006
  • Concurrent Affairs: Performance-Conscious Thread Synchronization
    In my career, I have architected and implemented many thread synchronization techniques. This has provided me with a lot of experience that has shaped the way I now think about thread synchronization problems.
    Jeffrey Richter - October 2005
  • .NET Column: The CLR's Thread Pool
    How does the thread pool work in the CLR?
    Jeffrey Richter - June 2003
  • .NET Column: Safe Thread Synchronization
    By far, the most common use of thread synchronization is to ensure mutually exclusive access to a shared resource by multiple threads. In the Win32® API, the CRITICAL_SECTION structure and associated functions offers the fastest and most efficient way to synchronize threads for mutually exclusive access when the threads are all running in a single process.
    Jeffrey Richter - January 2003
  • .NET Column: Run-time Serialization, Part 3
    This is the third part of my three-part series on serialization. In part one, I showed how to serialize and deserialize objects. I also showed how to define types that allow instances of themselves to be serialized.
    Jeffrey Richter - September 2002
  • .NET Column: Run-time Serialization, Part 2
    Jeffrey Richter - July 2002
  • .NET Column: Run-time Serialization
    Jeffrey Richter - April 2002
  • .NET Column: Array Types in .NET
    Jeffrey Richter - February 2002
  • .NET Column: Extolling the Virtues of Enumerated Types
    Jeffrey Richter - October 2001
  • .NET Column: Implementation of Events with Delegates
    Jeffrey Richter - August 2001
  • .NET Column: Delegates, Part 2
    Jeffrey Richter - June 2001
  • .NET Column: An Introduction to Delegates
    Jeffrey Richter - April 2001
  • .NET Framework: Building, Packaging, Deploying, and Administering Applications and Types-Part 2
    Part 1 of this series discussed how types built for the common language runtime can be shared among applications in the Microsoft .NET Framework regardless of the .NET languages used to build them. This second part continues with building assemblies by first covering security, sharing assemblies, versioning, localization, and side-by-side execution. Because in .NET two DLLs with the same name can be loaded as long as another attribute-which can include the localization language-differs, versioning is much easier than it used to be, so DLL Hell may become a thing of the past.
    Jeffrey Richter - March 2001
  • .NET Framework: Building, Packaging, Deploying, and Administering Applications and Types
    Types that are built for the Common Language Runtime can be shared among applications in the Microsoft .NET Framework no matter which of the .NET languages they were built in, an obvious benefit to developers. This article describes the building, packaging, and deploying of applications and types for the .NET Framework, including the role and significance of assemblies, private and otherwise. The way metadata and assemblies help to solve some historical problems like versioning conflicts and DLL Hell, and how they improve system stability are also discussed.
    Jeffrey Richter - February 2001
  • .NET Column: Special .NET Type Members
    Jeffrey Richter - February 2001
  • Garbage Collection-Part 2: Automatic Memory Management in the Microsoft .NET Framework
    The first part of this two-part article explained how the garbage collection algorithm works, how resources can clean up properly when the garbage collector decides to free a resource's memory, and how to force an object to clean up when it is freed. The conclusion of this series explains strong and weak object references that help to manage memory for large objects, as well as object generations and how they improve performance. In addition, the use of methods and properties for controlling garbage collection, resources for monitoring collection performance, and garbage collection for multithreaded applications are covered.
    Jeffrey Richter - December 2000
  • .NET Column: Type Fundamentals
    Jeffrey Richter - December 2000
  • Garbage Collection: Automatic Memory Management in the Microsoft .NET Framework
    Garbage collection in the Microsoft .NET common language runtime environment completely absolves the developer from tracking memory usage and knowing when to free memory. However, you'll want to understand how it works. Part 1 of this two-part article on .NET garbage collection explains how resources are allocated and managed, then gives a detailed step-by-step description of how the garbage collection algorithm works. Also discussed are the way resources can clean up properly when the garbage collector decides to free a resource's memory and how to force an object to clean up when it is freed.
    Jeffrey Richter - November 2000
  • .NET Framework-Part 2: Microsoft .NET Framework Delivers the Platform for an Integrated, Service-Oriented Web
    This article completes the .NET Framework overview begun in the September issue. The common language specification and ILDasm, the MSIL disassembler, are discussed-as well as how metadata, manifests, and assemblies simplify deployment and versioning. Security, which is integral to the design of .NET, is examined extensively, followed by a walk through the development of a single assembly containing multiple files. Finally, the way managed and unmanaged code work together, and the benefits of using each, including interoperablity with unmanaged code, are described.
    Jeffrey Richter - October 2000
  • .NET Column: Programming for the New Platform
    Jeffrey Richter - October 2000
  • Microsoft .NET Framework: Delivers the Platform for an Integrated, Service-Oriented Web
    The Microsoft .NET Framework is a new platform for building integrated, service-oriented applications to meet the needs of today's Internet businesses; apps that gather information from, and interact with, a wide variety of sources, regardless of the platforms or languages in use. This article, the first of a two part series, illustrates how the .NET Framework enables you to quickly build and deploy Web services and applications in any programming language. Microsoft Intermediate Language and JIT compiler, which make this reuse possible, are described as well as managed components, assemblies, and the Common Type System (CTS).
    Jeffrey Richter - September 2000
  • Win32 Q&A: Handy Features in Windows, and Interlocked Functions
    Jeffrey Richter - July 2000
  • Win32 Q&A: New C++ Classes for Better Resource Management in Windows
    Jeffrey Richter - April 2000