I appreciate your feedback, thank you.
You should keep in mind that this codebase has existed (at least some of it) since 1999 or 2000. Coding styles and preferences (at least mine) change over time. I suspect most people look back at things they wrote 6-12 months ago and see things they'd have done differently. Try doing that with code you wrote 7-9 years ago!
Of course this is production code, used by thousands of people around the world. So while I value code cleanliness and consistency (a lot), there's something to be said for leaving working code alone. Changing code purely for aestheic reasons is rarely a high enough bar to make it worth the time/effort/testing/etc.
And there are backward compatibility concerns. It is true, I might choose to organize some classes or types differently in retrospect. Or not, because some choices were made in anticipation of possible future features/enhancements/changes. But in any case, moving public members around from place to place is always a breaking change and so I try to avoid doing so when possible.
Finally there's the "fun factor". The framework is free, and sales of books and videos don't really cover my time. This is a labor of love as much as anything.
So when I sit down to work on CSLA I look at the wish list, and I tend to order my work based on a few priorities:
And there are some anti-priorities:
These priorities are especially important during point releases, but they certainly factor into major releases (like 4.0) as well. Though the "fun factor" becomes a much bigger priority for major releases, and tactical things like bug fixes or specific Magenic client requirements are usually not as big an issue.
Copyright (c) Marimer LLC