Even though v6 hasn't been out for all that long, I think there are enough breaking changes that have been discussed (#478, #500 for example) and side conversations about code cleanup that it might be worth considering a v7 to roll all of these up.
In addition to the two issues above, I think it would be good to:
- Reorganize folders/namespaces a little.
- Move convenience functions out of classes and into extension methods. For example, there are three overloads of
Database.Query(), but only one of them does work; the other two delegate to the third. Similarly, all of the Fetch() methods just delegate to other methods to do their work. Having all of these in the base class clutters the class and clutters the interface, making it harder for anyone to write their own implementation of IDatabase (which, I know, is kind of unlikely, but still). By moving them all out to extension methods on IDatabase, we keep the functionality but reduce the clutter, and any IDatabase gets them for free.
I'm interested in discussion on this, and I'd be happy to take a first pass at the work.
Even though v6 hasn't been out for all that long, I think there are enough breaking changes that have been discussed (#478, #500 for example) and side conversations about code cleanup that it might be worth considering a v7 to roll all of these up.
In addition to the two issues above, I think it would be good to:
Database.Query(), but only one of them does work; the other two delegate to the third. Similarly, all of theFetch()methods just delegate to other methods to do their work. Having all of these in the base class clutters the class and clutters the interface, making it harder for anyone to write their own implementation ofIDatabase(which, I know, is kind of unlikely, but still). By moving them all out to extension methods onIDatabase, we keep the functionality but reduce the clutter, and anyIDatabasegets them for free.I'm interested in discussion on this, and I'd be happy to take a first pass at the work.