ThinkTank - Patcher: easy assembly patching
The following picture tells most of the idea:
The idea is about a tool that would allow easily patching code (remove, add, update).
Typical scenario: you have this DLL (assembly) you'd like to modify to add some tracing code, but you don't want to (or can't) go back to the source code.
Compared to Aspect-Oriented Programming, with such a tool you can write code directly in the assembly without having to create an aspect and specify weaving parameters or creating a new project or source files. The tool displays the decompiled code, then you can update the code. The new code gets compiled and inserted in the assembly in place of the old one.
Technically, two things are needed:
- a CLR decompiler; many IL readers exist today such as the one integrated in .NET Reflector.
- a CLR assembly instrumentation tool such as RAIL.
I think this tool should not be very difficult to create, given that everything required is available.
The tool could be an add-in to .NET Reflector. You can get more inspiration from this presentation by Lutz Roeder.
Update: this tool could also support refactoring (eg. rename a method throughout a set of assemblies).