Project DescriptionThe Runtime Intelligence Endpoint Starter kit provides a starting point for developing you own endpoint and reporting system for use with PreEmptive Solutions Runtime Intelligence instrumentation of .NET and Java applications.
PreEmptive Solutions’ Runtime Intelligence™ technology provides visibility into application usage, end-user behavior, application tamper alerts and expiration notifications. Applications are “runtime-enabled” through post-compile injection by Dotfuscator® for .NET and DashO™ for Java. This project is a reference implementation of a WCF listener to receive and store Runtime Intelligence data from applications as well as a set of samples for reporting on the accumulated data.
Runtime Intelligence™ creates a conversation between your application and a server providing you with insight into application usage patterns and stability via defined entry and exit points.
Applications are instrumented by defining code injection points by decorating methods in the source code with custom attributes, using the Dotfuscator user interface, or a combination of the two. After the application is compiled it needs to be run through Dotfuscator where the decorated methods have additional code injected into them to implement the usage tracking which sends data back to a central server via web service calls. The implementation is similar to the IL Weaving technique used by Aspect Oriented Programming frameworks where the cross cutting concern is a more distributed application friendly logging technique. The majority of the value of Runtime Intelligence is not in the instrumentation of the application rather it is the reporting and analysis of a set of real world application usage measurements.
Runtime Intelligence™ instrumented applications use SOAP messages to transmit their usage details to an HTTP endpoint. PreEmptive Solutions offers both a free basic data gathering and reporting portal as well as a more full featured commercial version. With any version of Dotfuscator (including the free version in Visual Studio 2010) usage data can be sent to an arbitrary URI, this project makes use of this feature to implement a basic data repository in either SQL Server Express or MySQL. A set of sample queries, reports and a SharePoint web part are included in the sample code to provide a starting point for developing a custom application usage reporting and analysis solution.

