Back in 2005, I listed some of my ‘technical misses’ for my mental health and measurement of personal development. One of the benefits of a Web-based log is that my personal habit of journaling can be done in public: people who don’t really know me do not have to come up to me and ask me, “So, whatcha been doin’?” Back in 2005, I made a point to emphasize the word known just in case I did not know everything I did not know that was worth knowing. This Blog post shares with “the whole world” what I did not know then: data access procedures should be available to standalone, Console applications.
This sounds so simple but I am confident that most Microsoft-Windows-based developers—especially Visual Basic folks—really don’t understand this. I’m mostly a C# programmer now but my coding heritage is firmly planted in Visual Basic/VBA. I used to joke about C++ programmers charged with the task of writing a business solution: whatever that solution was going to be it was going to include the first C++ thought about the management of memory. So C++ dudes have to deal with the business solution and the management of memory. Now the joke is turned on me: whatever development I have to deal with, I was going to deal with the business solution and the creation of a Window. I was always building the user interface and the “back end” code at the same time because of my inability to pay proper respect to the command line. I must mention in my defense that much of this distortion of reality took place while I was building ASP web pages in the late 1990s.
Now that I’ve set up a few Ubuntu distributions, I have renewed respect for the command line. It is a strange, primal, liberating experience. I can feel new cognitive pathways developing: I’ve set up the
Songhay.Data.Activity namespace, featuring a command-line tool called a Data Activity Runner (
dar.exe) that loads Data Activity Assemblies, implementing the
DataActivityAssembly interface. Data Activity Assemblies are simply out-of-process stored procedures that can be easily slapped into SQL Server 2005 or (hopefully) ported over to Mono without much pain. Moreover, it goes without saying that these assemblies can be loaded by a .NET Web service, Windows Form or any ASP.NET web application. The only weak spot in my little design is lack of “robust” dependency resolution (but that’s what Spring.NET—or maybe Windows Workflow Foundation—is for…).