My love affair with DotNet continues
In my ever-continuing quest for knowledge, I have been toying with an idea in my head about rewriting GenX.NET (my flagship ADO.NET Exporter component) to make better use of the OOP techniques that .NET has to offer. This would be the third major rewrite of the component. The first time I told Brady Gaster about it, he said "Why not use an Interface?" For Brady, that kind of thing is a no brainer. He used to program Java for Wells Fargo, and now he's probably one of the greatest C# coders I've ever seen. The way he cranks the stuff out just boggles the mind.
At any rate, since my laptop is currently unavailable, for reasons I'd like to but probably shouldn't discuss, I figured I'd take the time to look up how the IDataReader interface works. The ___DataReaders are the ones that give me the most headaches, because if I want to get support for other ADO.NET Data Providers, I have to talk to the company that made it, hammer out an agreement... blah blah blah..... it gets REALLY old. Now, this is not to say that I don't like working with companies like Proposion to help push components and so forth. Nor does it by any means suggest that I will not continue to work co-packaging deals in the future, because I believe that these types of deals are, quite possibly, the best kind of marketing you can do. What it means is, I don't have to add a whole new class each time I want to support a new ADO.NET Provider.
So, I took some time and rewrote the whole thing. It was quite a lot of fun actually, cause I've learned a lot in the past few months since the last time I really worked with it. Cause I'm a nice guy, I still keep a lot of the old classes available for backwards compatibility, but I use the Obsolete attribute (thanks ScottW) to warn the developer that the method should no longer be used. Here is the proper usage:
Public Function MyFunction() As MyType
In my case, I don't want to throw an error, so I set parameter #2 equal to false.
And so, GenX.NET takes back the honor of being the best code that I've written so far, with my new Content Management System and my .NET Store coming in 2nd and 3rd respectively. You'll be seeing more about those in the near future. I still have a lot of things that I want to do to it, but I am now not ashamed to sell the heck out of it, and after I give it a spit polish and wrap everything up, I'll have it available for sale probably sometime early next month.
In other news, Rob Howard (still haven't seen a blog entry yet