Earlier this month, Bill Leach and Sebastian Holst, respectively CTO and CMO of PreEmptive Solutions, gave me a guided tour of the new functionality in the Dotfuscator Community Edition build that shipped with Visual Studio 2010 Beta 1.
The short story is that Dotfuscator has expanded its repertoire of post-build modifications of .Net assemblies from simple code obfuscation to runtime intelligence, product expiration, and tamper detection. They demonstrated adding extended attributes to the assembly of a Twitter client called Witty and showed me the SOAP message stream sent to a logging Web site by the instrumented executable. They also demonstrated how an extended attribute can cause an assembly to stop running after its expiration date.
[ See also the InfoWorld Test Center article, "First look: Visual Studio 2010 Beta 1 shows some leg" | Keep up with app dev issues and trends. Check out InfoWorld's Developer World channel and Fatal Exception and Strategic Developer blogs. ]
For your amusement, I present five screen shots illustrating these capabilities. Click each image to see it full-size in another tab.
Above: Adding an InsertShelfLife attribute
Above: Shelf life key and expiration date
Above: RIS attribute
Above: Microsoft's VSTS Architect Explorer 2010 showing a mash-up of testing code coverage data from TFS and usage data from Dotfuscator Runtime Intelligence (RI). The important RI data is large (high usage) and in red (low test coverage).
Above: RIS portal