Dotfuscator User's Guide
Understanding Instrumentation with Dotfuscator

In addition to obfuscation, Dotfuscator also provides features that inject code into an application. Some of that code is used to enhance the protection provided by obfuscation, but Dotfuscator can also inject code that sends messages back to you about how the application is used in production.  This powerful capability lets you deeply understand your application usage, which can help you make better decisions about your software priorities.

This injected code is called Instrumentation, and is most-often used with one of the PreEmptive Analytics products.

Configuring with Attributes

Instrumentation (and Checks) are configured using .NET attributes. The developer decorates their code using PreEmptive-defined attributes, and Dotfuscator uses these attributes to know where to inject code.

These attributes are defined in PreEmptive.Attributes.dll, which is located in the Dotfuscator installation folder. To add these custom attributes to an application, the developer must add a reference to this DLL and the DLL must be available at compile time. While injecting code, Dotfuscator by default removes references to this DLL; therefore, the DLL is not required at application runtime and does not need to be distributed with the application.

For example, the following code snippet shows use of the SetupAttribute, to indicate to Dotfuscator that PreEmptive Analytics setup logic should be injected into the method:

Use of SetupAttribute
Copy Code
    OmitPII = true
public void ApplicationStartup()
    // your normal application code here...

In addition to specifying attributes in-code, you can also specify them in Dotfuscator's configuration as extended attributes, typically by using the The Instrumentation Editor. These attributes are saved in the Dotfuscator project configuration file, and applied as if they were present in-code.

PreEmptive Analytics Products

PreEmptive Analytics Workbench

PreEmptive Analytics Workbench accepts, processes, transforms, and aggregates analytics messages for display in a web browser. It is highly configurable and customizable so that it can provide role-based, real-time visibility into application usage, adoption, user behavior and software quality - saving you time and money.

To learn more, please read about PreEmptive Analytics Workbench on our website.

PreEmptive Analytics for Team Foundation Server (TFS)

PreEmptive Analytics for Team Foundation Server aggregates and analyzes exceptions and automatically creates Visual Studio / TFS work items based entirely upon rules and operational thresholds that you define.  PreEmptive Analytics for TFS is designed specifically to help streamline feedback driven development, improve software quality and user experience, and increase development efficiency.

PreEmptive Analytics for TFS uses exception instrumentation.  It does not require feature, platform, performance, etc. instrumentation.

To learn more, please read about PreEmptive Analytics for TFS on our website.

Supported .NET Application Types

Dotfuscator can inject Instrumentation code for all .NET assemblies except for the following:

See Also


GUI Guide

Attribute Reference



© 2017 PreEmptive Solutions, LLC. All Rights Reserved.