Three Ways to Implement Dependency Injection in .NET Applications
The dependency injection pattern, also knows as Inversion of Control, is one of the most popular design paradigms today. It facilitates the design and implementation of loosely coupled, reusable, and testable objects in your software designs by removing dependencies that often inhibit reuse. Dependency injection can help you design your applications so that the architecture links the components rather than the components linking themselves.
This article presents an overview of the dependency injection pattern, the advantages of using dependency injection in your designs, the different types of dependency injection, and the pros and cons of each of these types, with code examples where appropriate.
AJAX Test Automation
The popularity of Web applications that use AJAX (Asynchronous JavaScript And XML) technology has increased steadily over the past year. When written correctly, AJAX can yield significant improvements in performance and user experience compared with non-AJAX Web applications. However, because AJAX Web applications work asynchronously, traditional synchronous test automation techniques generally don't work. In this month's column, I present a technique that allows you to write lightweight test automation to verify the functionality of AJAX Web applications.
Bugslayer: GUI Control to Major Tom
The goal for this column is to show you how to get started with GUI automation using the UI Automation tools and APIs. As with most Bugslayer columns, there's a large set of code that I provide to make your GUI testing far easier than using the API directly.
WatiN - Web Application Testing In .Net
This article exposes how to use WatiN and how to create UI tests for Web Applications
AJAX Test Automation
The popularity of Web applications that use AJAX (Asynchronous JavaScript And XML) technology has increased steadily over the past year. When written correctly, AJAX can yield significant improvements in performance and user experience compared with non-AJAX Web applications. However, because AJAX Web applications work asynchronously, traditional synchronous test automation techniques generally don't work. In this month's column, I present a technique that allows you to write lightweight test automation to verify the functionality of AJAX Web applications.
Inside Diagnostic Tools for .NET
Many diagnostic tools use the CLR Profiling API-even those that aren't strictly profilers. So if you've ever wondered how these tools work, a look at the Profiling API is a good start. In this column, you'll see how they work and look at some useful tips and tricks. You'll also find some essential resources in the "Other Profiling Resources" sidebar.
To use the CLR Profiling API, you create a DLL using an unmanaged language-typically C++, then you set some environment variables that instruct the common language runtime (CLR) to load the DLL and allow it to use the Profiling API. When loaded, this DLL effectively becomes an extension of the CLR itself, receiving callbacks, requesting information, and making changes deep within the implementation of the CLR. The Profiling API can provide notification of many activities within the CLR and managed code, including the creation and destruction of appdomains, loading and unloading assemblies, JIT compiling functions, executing functions, throwing and catching exceptions, and doing garbage collections. Using the Profiling API, you can get information about parts of the application, such as names and locations of assemblies, descriptions of types and functions, and locations and layout of objects in memory. Finally, you can use the Profiling API to modify settings, instructions, and the like, including disabling optimizations in the JIT compiler, changing the intermediate language (IL) for a function, or even creating new types and functions..
Unit testing enumerations which map to a database table
How to ensure an enumeration is up-to-date with a table in the database.
Creating a Custom .Net Profiler
Describes how to create your own custom profiler for any managed application
LogString: A Simple C#2 Application Event Logging Class
This article presents a simple .NET 2.0 event logging class. It is designed to allow multiple threads to add events to one or more log strings and provides event driven updates for viewers.
An NUnit Test Suite Implementation
This article describes a scalable NUnit unit test suite for use on a tiered, database-driven .NET application.