Introduction
DoIt is a framework for rapidly building WoW addons. It's approach is completely object oriented.
Classy
The Classy is used to create common data types and class instances in Lua. Classy is the guts of this framework. For examples of how to use these data types, check out Classy/UnitTests.lua. Classy is also available on GitHub for other Lua environments besides World of Warcraft.
Core Library
These are the WoW specific classes. It has an efficient event handling system. It also contains a large number of classes for working with the WoW API in an OOP way.
Secure Hooks
SecureHooks class. You can use this class to better manage your secure hooks (calls to hooksecurefunc). Blizzard never provided an unhook ability, SecureHooks will give you complete control to hook and unhook whenever and as much as you need to.
MagnetButtons Module
DoIt's first module is called MagnetButtons. This was it's own addon at one point, and is not fully integrated into this framework. Conversion to a DoIt module is a work in-progress.
Blizzard Interface Display Manger Module
Conditionally manage the display of Blizzard's UI elements, altering properties like location, visibility, and transparency. Click here.
Debugging
When reporting bugs, debugging information will help me track down the problem, also state if bug is specific to retail, classic, or both. Note that whenever files are added to the project, you'll need to exit wow completely to refresh files.
-- To Enable Debugging
/script DoIt_Saved.Debug = true
/script SetCVar("ScriptErrors", "1")
/reload
-- To Disable Debugging
/script DoIt_Saved.Debug = false
/script SetCVar("ScriptErrors", "0")
/reload
Also it you are debugging I suggest BugGrabber and BugSack.
Credits
Genius Wizard Meorawr from WoW Addons discord for many of the performace suggestions I've implement in versions 0.28-0.40.