Using the GUI
Dotfuscator's Analytics feature adds pre-built application usage, feature usage, and exception tracking to your application, without requiring any you to write any additional code. This process is known as code injection. The application that undergoes this process is known as an injected application. At runtime, the code injected into the application will transmit usage data to a PreEmptive Analytics endpoint.
Dotfuscator Community Edition (Dotfuscator CE) can perform analytics processing for all .NET assemblies except for the following:
When a sufficient number of messages have been generated, and the injected application is not under high load, the messages will be packaged into an HTTP POST body, called an envelope, and transmitted to the configured endpoint. Envelopes, and the messages within them, are identified by the business, application, and binary information configured for the application.
Injected applications can provide the end user an option to enable or disable transmission of Analytics. The injected Analytics code will honor this option, if it is provided by the application code, during Analytics setup.
The preference is communicated via a source defined with the
SetupAttribute called OptInSource.
The source defines a
bool value which is
true if the user opts-in and
false if the user opts-out.
If no source is provided for a
SetupAttribute, the injected code will act as if the user opted-in.
For instance, consider the following attribute and its properties:
At runtime, when
HelloWorld.Hello.Main is called, the injected code will first call the static method
If the result of the call is
true, Analytics messages will be generated and transmitted during the application's run.
If the result of the call is
false, most regular Analytics messages will not be generated.
There are a couple of cases where messages will still be generated and transmitted, regardless of the opt-in setting:
Sign-of-life messages ignore the Analytics opt-in setting.
Check Telemetry ignores the Analytics opt-in setting.
In Dotfuscator Community Edition, personally-identifiable information (PII) is omitted from Analytics tracking. Including PII in collected Analytics data is a feature exclusive to Dotfuscator Professional Edition.
If an injected application cannot connect to the specified endpoint at runtime, messages generated will be lost. Dotfuscator Professional Edition can inject additional code to handle network outages by saving the generated messages to disk until the endpoint is available.
PreEmptive Solutions offers a number of endpoints to which your application can send Analytics messages.
Note: Transmissions from an application injected by Dotfuscator Community Edition will not be encrypted. Encrypted transmission via SSL is a feature exclusive to Dotfuscator Professional Edition.
PreEmptive Solutions hosts a publicly-accessible Analytics Workbench, called the Community Workbench. This allows you to monitor how many times your application is run, which features are being used, and how stable it is, for free.
Note: The Community Workbench comes with no guarantees or service level agreements. All data received is visible to all users, without authentication. Certain features of the Community Workbench are restricted, compared to the commercial product.
To configure your application to send to the Community Workbench:
To view your data:
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 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.
To learn more, please read about PreEmptive Analytics for TFS on our website.