If you are using JetBrains ReSharper for developing .NET software using Microsoft Visual Studio IDE, you can benefit from the Revulytics Usage Intelligence plugin for ReSharper. This tool will help you integrate Usage Intelligence with your application in a few simple steps in order to start tracking events and collecting runtime intelligence.
In this article we will explore the features of this new R# plugin and provide instructions on how to start using Resharper with Usage Intelligence.
To install the plugin, go to the ReSharper menu, click on Extension Manager, Online and look for Trackerbird Software Analytics and Runtime Intelligence for ReSharper. Select it and click on the Install button.
[Update - 16 Dec 2015]: To use this plugin you must have Resharper Version 8.2 and later. If you are running Resharper Version 8.* you will need Trackerbird R# plugin V1. For Resharper Version 9.* you will need Trackerbird R# plugin V2. For Resharper Version 10.* you will need Trackerbird R# plugin V3. At time of writing, the plugin is tested on the latest Jetbrains Resharper V10.0.
All functionality provided by the plugin can be found in the menu provided under the ReSharper menu in Visual Studio. After installing the plugin, a new menu called Trackerbird should be visible at the very bottom.
Another helpful tip is the Context Action (a hammer icon) that shows next to any Application.Run() call as seen below. Clicking on this action is equivalent to calling the menu Application Tracking > Add basic tracking code to my app.
There are various menu options available within the Revulytics (formerly Trackerbird) plugin. Below we will explain the functionality behind each menu option.
This menu group contains the most important parts you'll need. Here you have options for implementing basic tracking, adding more detailed event tracking and showing you how to implement check for updates functionality for your app through Usage Intelligence.
This menu allows you to enter the product details for your app (more info below in Configure Product), adds the Usage Intelligence references to your project (check Add DLL References) and modify your code by adding the TBApp.Start(); and TBApp.Stop(); calls around your Application.Run() call. We chose Application.Run() so that you can start monitoring as soon as the app starts and stop only when it terminates. You can cut and paste the code to wherever you think is more appropriate.
Before using this menu, note that Event Tracking is not enabled for all products by default, so be sure yours does before making changes, as otherwise nothing will be tracked, even though the program will still work just fine.
Event Tracking can be used to offer more intelligence on what features of your app are being used and how. The window that shows here allows you to add tracking to all your classes and methods. The 2 fields at the top allow you to filter by class and/or method name. One doesn't have to type the name exactly, but typing 'Form' in the class will filter the list of classes to those containing 'Form' in any part of their name. Some default entries are also found in the method name filter to show those method which are most likely to be used for Event Tracking.
The above settings will yield the following code when Add Tracking is clicked.
Once the Event Tracking code is added, you can click the menu again and it will load with the event categories and names set. If you edit the category or name, the cell changes to orange and the button changes to Update Tracking. If clicked, the code is updated with the new values. You can also click on the Go to Code button which takes you to the source file with the tracking code, or the method if there is no tracking code yet.
This menu is useful only when Usage Intelligence is used to check for updates for your own App. The menu takes you to the developer zone and shows you how to go about implementing this functionality. Revulytics provides you with a service to check for latest updates of your software via the SDK. The server reply will include links to the download location and the changelog (if available). This makes it easy for you to direct the user to the download page or invoke an automatic download.
This menu contains options for configuring Usage Intelligence, by allowing you to enter the details for your product, and adding the DLLs that come bundled with this Plugin. Both options are not required if you have already called Application Tracking > Add basic tracking code to my app which configures the product and adds the references automatically. However, these 2 menus can be used if any of these 2 steps were skipped or need updating.
In the below dialog one can configure all the required settings to enable your product to work with Usage Intelligence. The Product ID and Callhome URL are automatically sent to you by Email once you register a Revulytics Product Account. You can also copy this info from the Developer Zone once you login to the Usage Intelligence Portal
The details are saved in a text file called trackerbird.rsconf in the root of your project so that the information will be pre-loaded when you open this dialog another time.
This menu simply adds the DLLs (including the x64 and x86 dependencies) to the project. The main Trackerbird.Tracker.dll is added to the project's references while the x64 and x86 dependencies are simply copied to the output folder. These 2 dependencies are only added to the current configuration (ex: DEBUG) folder and not directly referenced in the project (this is by design and not an omission) so once you switch to a different configuration, you should call the Add DLL References again so that these files are copied to the new output folder as well.
This menu takes you to the documentation page which explains what the ReachOut service is, the configuration you need to do from the Usage Intelligence portal and gives some examples on how to go implement this functionality in your App.
Most of the menus here link to Revulytic's helpdesk and are pretty self-explanatory. The only 2 exceptions are API Documentation and SDK Downloads which takes the user to the developer zone and shows which versions of the Usage Intelligence SDK are available for the various supported platforms along with their documentation. The other is Check for New versions of the Trackerbird SDK which simply tells the user whether an updated SDK has been released than the one currently being referenced.
Keith is Revulytics’ VP, Software Analytics and was the co-founder and CEO of Trackerbird Software Analytics before the company was acquired by Revulytics in 2016. Following the acquisition, Keith joined the Revulytics team and is now responsible for the strategic direction and growth of the Usage Analytics business within the company. Prior to founding Trackerbird, Keith held senior product roles at GFI Software where he was responsible for the product roadmap and revenue growth for various security products in the company's portfolio. Keith also brings with him 10 years of IT consultancy experience in the SMB space. Keith has a Masters in Computer Science from the University of Malta, specializing in high performance computing.
Flexera, a demonstrated leader in software installation, open source, software scanning, and software monetization has acquired ...
No one likes to be audited. On its own, the word “audit” implies wrongdoing or, at the least, carelessness. Opening the books ...