Archive for the ‘Uncategorized’ Category

Track Application Usage Statistics for CodePlex Projects

Tuesday, May 11th, 2010 by Joe Kuemerle

Open source software thrives on feedback and participation. Without a good idea of what users want, projects easily become irrelevant. Knowing how many people are actively using your application, as well as which features they’re using (and which ones they’re not) provides significant feedback that helps to focus development, resulting in an improved application that meets the user’s needs.  With CodePlex’s integration of Runtime Intelligence features, project coordinators now have the ability to inject application analytics features into their releases.

Projects hosted on CodePlex can use either the free version of Dotfuscator (included in Visual Studio 2010) or the commercial edition to inject application analytics features into their binary distributions.  The application analytics automatically tracks how many times is run in the wild and the duration of those runs. This provides a measurement of application popularity beyond counting the number of downloads.  Basic system profile information, such as which operating systems and framework versions the application are run under, is gathered and reported on as well.  Additionally, feature usage within the application can be measured including the number of executions as well as their duration.  Total application runs per day statistics are available on the projects statistics page on CodePlex and detailed usage data is available from a link on the statistics page.

With the understanding that there can be privacy concerns, Runtime Intelligence instrumentation transmits no personally identifiable information.  It is also very easy to surface the built in Opt-In/Opt-Out functionality in the library and give individual application users the choice to participate in the program.

The individual usage data is aggregated and daily application usage is viewable on the projects statistics page as well as links to detailed reports of application and feature usage.

Instrumentation of applications compiled against .NET 2.0 and higher (including Silverlight 2, 3, and 4) is supported by Dotfuscator Community Edition.

Projects that use custom attributes to decorate their injection points are permitted to redistribute the PreEmptive.Attributes.dll library as part of their source code.  The library is only necessary for compilation of the application and references to it are stripped out during the instrumentation process, so it does not need to be included in binary distributions.  A signed downlevel version of the attributes library is available on the CodePlex Runtime Intelligence Integration project page (http://runtimeintelligence.codeplex.com/releases ) that can be used in any project targeting .NET 2.0 or higher.  This library is also allowed to be generally distributed with project source code.

Any project hosted on CodePlex can now take advantage of the deep knowledge into user activity that Runtime Intelligence Services provides by reviewing a sample walkthrough here and implementing this new feature into a future release.

Dotfuscator 4.6.5000 ships, includes VS 2010 RTM support and offline Runtime Intelligence

Monday, April 5th, 2010 by Joe Kuemerle

Today we shipped Dotfuscator, version 4.6.5000.  This release fully supports Visual Studio 2010 and .NET 4.0 RTM versions as well as beta support for the Silverlight 4 RC release.

In addition to supporting the latest and greatest frameworks for both obfuscation and instrumentation, this release also includes a new feature that has a top spot in our customer request list.  Up until now applications instrumented with Runtime Intelligence were unable to react to scenarios where your customers have only occasional network access so some of the application analytics data was not gathered.  By default, any applications instrumented with Dotfuscator 4.6.5000 or higher will store usage data in Isolated Storage when the application cannot send data to the configured Runtime Intelligence endpoint.  When connectivity to the endpoint is restored all the saved usage data is sent to the endpoint for storage and reporting.  In the event that the Runtime Intelligence endpoint is not accessible for an extended period of time, or that the application is used so heavily that the allocated space is filled, the injected code will remove older unsent usage data to make room for newer data.  You also have the option to revert to the previous behavior of dropping usage data when the network is inaccessible by simply changing the setting for the offline behavior as well as writing your own custom network detection code.  Additionally, you can set up your application to react to changes in connectivity either with a default implementation of shutting down the application when connectivity is lost or by having the injected code set the value of a field or property, or invoke a method of your choosing.

We also improved our support of ClickOnce application processing and fixed some bugs.  As always, changes are detailed on our change log .

There are many more changes coming to Dotfuscator, DashO and Runtime Intelligence in the near future.  Keep tuned for more exciting news as it unfurls.

Dotfuscator 4.6.1200 Released

Thursday, February 4th, 2010 by Joe Kuemerle

We just shipped the latest update to Dotfuscator, the 4.6.1200 version.  This is mostly a bugfix release but includes a small enhancement that supports using project properties in the ClickOnce package signing certificate path, allowing for better portability of project files between build environments.

There are a number of updates to fix small issues in packaging support, improve handling of mixed mode assemblies and address some issues with Visual Studio integration.

For a summary of the changes in Dotfuscator 4.6.1200 check out the change log here or subscribe to the change log in your RSS reader here .

This update is available to all customers who are current with their maintenance.  Download it here , give it a try, and let us know what you think.

Go Live with VS 2010 Dotfuscator Functionality with Dotfuscator MDE Today

Thursday, May 28th, 2009 by Michael Moores

As you may have seen in various press releases and blogs, Dotfuscator Software Services – Community Edition is shipping within Visual Studio 2010 and it’s far more than an obfuscation tool. With our post-build, code injection platform, developers can track application and feature usage, defend against tampering, and force application expirations.

If you are checking out the new functionality within Visual Studio 2010 and Dotfuscator CE today and would like to ‘go live’ with it, you can.   Dotfuscator Micro Developer Edition (MDE), announced at TechEd 2009 , is in production today and is functionally equivalent to the version of Dotfuscator CE inside Visual Studio 2010 – but with three important additions:

·         Ease of Use : MDE is fully integrated into Visual Studio 2005 and above.

·         Automation : MDE can be called from the command line and MSBuild

·         Support : MDE is supported directly by PreEmptive Solutions customer support

Dotfuscator MDE is available immediately at an annual subscription cost of $399 USD.

For more information on what is available in Visual Studio 2010 CE, check out What’s New with Doftuscator in Visual Studio 2010 Beta 1 and What is Runtime Intelligence? .

On Helping Software Succeed

Wednesday, April 15th, 2009 by Gabriel Torok

I will be writing an ongoing series in this blog entitled “On helping software succeed,” in which I will examine pertinent and timely topics relating to the success of software. After all, software is unique, unlike other businesses. It is much more malleable than most physical businesses – there are only so many things you can do with machinery, real estate or other hard assets. But software, like putty, can become whatever it is designed to do. And to complicate matters, most software is dependent on other software:

There are tools for creating, compiling, testing, debugging, and managing software applications.

There are operating systems, external applications and functions required my many software applications to run.

In short, software is a world of multiple unexpected and unanticipated moving parts unto its own. At PreEmptive (link), we produce software for both Java and .NET that helps organizations protect, manage and monitor their software applications. Our unique honor, as the only 3rd party application shipping inside of Microsoft’s Visual Studio development environment, gives us a unique perspective: a true insider’s view into the software development process.

As just one example, we surveyed (link) 300 software application developers at Fortune 1000 and other leading companies and found that just 42% of companies calculate return-on-investment of the applications they develop. In addition, just 7% of respondents say they measure the return against a well-defined set of metrics and success criteria.

Software is unlike other businesses, but it does not mean, that with a little effort, its business impact can’t be measured. For example, before companies commit to spending billions on machinery, real estate or other hard assets, they calculate the expected return on investment. Few companies do this with software. It adds up to a huge expenditure that is rarely measured as a genuine asset or balance sheet line item. As the economy tightens, companies will want to know how to measure the business impact and the return on their investments in applications.

Here are some starting suggestions for creating an effective system for measuring application ROI:

  • Invest in developing meaningful and consistent usage and impact metrics.
  • Tie these metrics to development, support and maintenance investment strategies. Usage and impact metrics must translate into smarter application portfolio management decision-making and development resource utilization.
  • Incorporate application ROI management into broader business performance management practices. Success can only be assured when application asset management is fully integrated into operational and business performance management.

Your thoughts? Comments?