Skip to content
Michael Powell edited this page Feb 4, 2017 · 8 revisions

Welcome to the MeasureIt wiki!

Implementing MeasureIt accomplished at least a couple of goals that I wanted.

  1. To enable Windows diagnostic performance measurements from within your application,
  2. To perform diagnostics under several application architectures, and
  3. For at least two different dependency injection containers.

Basic requirements

MeasureIt does require that you have at least access to extend a library of code, if not the code itself. This is because it utilizes an invasive Attribute mechanism in order to append interception capability on your library(ies).

Dependency injection

Let me first start by explaining the motivation for dependency injection. For the simplest of applications, you likely will never need or want performance monitoring. However, as the complexity increases, so do the requirements for dependency injection, as well as diagnostic tooling. This is where MeasureIt enters the picture.

At present two containers are supported:

  1. [Castle Windsor] (http://www.castleproject.org/projects/windsor/)
  2. [Autofac] (http://autofac.org/)

Composition of your measurement scenarios always hinges on having configured your container.

Architectural performance monitoring

Support for several common architectural patterns is provided.

  1. Ad-hoc instrumentation
  2. "Service" oriented
  3. OWIN enabled [ASP.NET Web API] (http://www.asp.net/web-api)
  4. [ASP.NET MVC] (http://www.asp.net/mvc)

Future efforts may include adopting the re-factored so-called vNext web frameworks. I believe this has been dubbed [ASP.NET Core] (http://www.asp.net/core), but I could be wrong about that. As far as this author can determine, the back story of this re-factor has been troubled, at best, to say the least, but this is neither here nor there as far as diagnostic measurement is concerned, except as a forward thinking trajectory.

As far as versioning goes, I believe that puts dependencies in the ASP.NET, Web API, and MVC realms at 5.x, with forward compatibility likely in the 6.0 range. However, for now, I am letting the dust settle a bit from the re-factor effort before I adopt it.

Unit and integration testing

Testing is provided demonstrating successfully accomplishing all three objectives.

Thanks and welcome contributors

Contributions are always welcome into the library, but are unsupported and provided as-is without liability in the opposite direction.