I'm attempting to check all functions, run Protect(), and then analyze any protection failures. While analyzing the protection failures, I will modify my project, rebuild, and then come back to see if the protection failure goes away.
When I do this, I have to remove my project and re-add it to get the new changes. Then I have to re-add my strong name key. Then I have to recheck all my functions again. With the MAJOR performance bug in checking boxes, this is absolutely unacceptable.
A simple solution. When focus goes away from the tool, set a flag. On activate, check your loaded binaries for changes. If a change has occurred, ask the user if they want to reload the project. You could also just add a "Reload" button.
Save the check states and reapply them as appropriate. Color code (or bold) any changes if you feel energetic. Clearly some design decisions to make if function name has been added, removed, or changed.
As a side thought, it would be nice if you provided a protected/total count to your output.
Protected (Transformed) 180 of 243 methods with 7 excluded.
This one line is so easy to understand and tells me right away what I have to work with. I know I have 7 errors. I know that I have a bunch of methods which were not protected because of selection choices. So in this example...
"Protected 242 of 243 with 7 excluded"
This quickly tells me that I missed a method somewhere because I was expecting all methods to be checked. As it is now, I have to visually scroll through all these methods and classes trying to make sure I checked everything I wanted to. Since I have to do this process over and over because of the aforementioned problem, this is painful experience.
These posts took up 45 minutes of my time today BECAUSE I was unable to use the tool properly. These problems will continue to eat up my precious dev time for the next week as I struggle with these design flaws.
It's possible I missed something... However, a forum search for "slow", "performance", and "reload" yielded no results. There isn't any help in the tool to speak of either.