-
Looking Forward and Back (Editorial)
In this editorial, Rod Paddock reflects on the pivotal technological developments of 2002, highlighting the significance of Visual Studio .NET, the rise of web services, and the expanding influence of SQL Server and Microsoft’s acquisition of Great Plains. He emphasizes the growing importance of security and notes Microsoft’s strategic retreat from My .NET Services. Additionally, Rod points to emerging technologies like Tablet PCs and the Compact .NET Framework as promising opportunities for developers, ultimately encouraging readers to embrace these innovations as they look ahead to the future.
-
Dynamically Executing Code in .NET
In this article, Rick Strahl explains how to execute dynamic code within the .NET Framework, demonstrating techniques to compile and run code on the fly using .NET’s CodeDom and Reflection capabilities. He addresses challenges such as managing assemblies in application domains and unloading code by leveraging separate AppDomains and proxy interfaces. Rick also introduces helper classes like wwScripting and wwASPScripting that simplify dynamic code execution and script parsing, enabling developers to extend applications flexibly with minimal code. The article provides practical examples and insights into the underlying .NET mechanisms for runtime code compilation and execution.
-
Threat Modeling
Michael Howard argues that threat modeling is an essential, practical design discipline for building secure systems: assemble a cross‑discipline team, decompose the application (e.g., DFDs), use STRIDE to categorize threats, build threat trees, rank risks, and choose responses (do nothing, warn, remove, or fix). Howard emphasizes that maintaining up‑to‑date threat models uncovers many design bugs and multi‑step attacks, guides appropriate mitigations, and should be required for design sign‑off.
-
Interview with Microsoft's Steve Lipner
David Stevenson interviews Steve Lipner, Microsoft's Director of Security Assurance; the article discusses how Microsoft is implementing security in their applications.
-
Stateful Network-Deployable .NET Components Use Isolated Storage
Sometimes an application needs to keep its data in its own secure "sandbox". This article demonstrates creating these isolated applications in .NET.
-
Securing Your SQL Server
SQL Server, like most complex databases, has potential security holes. This article discusses these security holes and how to close them.
-
Microsoft Exception Management Application Blocks
In this article, Paul Sheriff explains the Microsoft Exception Management Application Block (EAAB), a flexible, configurable framework that simplifies and standardizes exception handling in .NET applications. By using a single line of code, developers can publish exceptions to multiple destinations such as event logs, databases, or email without recompiling their applications. Sheriff details how to install, configure, and extend EAAB with custom publishers, emphasizing its benefits for centralized error logging and improved post-deployment diagnostics. The article highlights the ease of integrating EAAB to enhance error tracking and streamline application maintenance.
-
Threading Support in the .NET Framework
In this article, Markus Egger explains how the .NET Framework simplifies the creation and management of multi-threaded applications, enabling developers to improve responsiveness by running tasks concurrently. He discusses fundamental concepts of multi-threading, illustrates implementation in VB.NET and C#, and addresses challenges like thread synchronization, thread safety, and updating Windows Forms controls from secondary threads. Egger emphasizes careful use of threads to avoid issues such as deadlocks and race conditions, and highlights the importance of thread synchronization mechanisms like locks and delegates to ensure safe and efficient multi-threaded programming within the .NET environment.
-
PerlINET Part 2
This second article in a series explores implementing data access and web services in PerlINET.
-
Reflection Part 1: Discovery and Execution
In this first article of a two-part series, Mike Snell demystifies .NET reflection by explaining how assemblies self-describe via metadata and showing practical techniques to load assemblies, inspect types and members, filter and search with BindingFlags or custom delegates, and instantiate and invoke discovered types and methods at runtime; he demonstrates these concepts with code (including a simple type browser) and positions reflection as a powerful albeit specialized tool, with Reflection.Emit to be covered in Part 2.
-
Doc Detective - Nov/Dec 2002
In this installment, Doc Detective guides readers through the labyrinth of Visual Studio .NET and .NET documentation, answering real-time questions from developers and offering practical tips to accelerate discovery. Through a Q&A format, the column clarifies equivalents between VB6 and .NET (such as Shell vs ShellExecute), points to deployment and accessibility resources, and demonstrates how to tailor help views with custom filters. By demystifying documentation navigation and linking to targeted topics, Doc Detective helps practitioners deploy, interoperate with COM, and build accessible .NET applications more efficiently.

