![]() |
Tuesday, April 22, 2003 |
Source: Objective; 4/22/2003; 9:37:02 AM I try to be a particularly expressive programmer. I like to think that my code mirrors my though proccesses as closely as possible; I enjoy programming languages and practices that let my express my conceptual framework of an application as closely as possible. Giving away code is hard, because giving away code is really giving away a big part of my though process; exposing it for critique, duplication, theft, or misuse. Harvester started as an experiment. I hadn't done much winforms programming yet. My professional programming career started with client-server applications written in VB 4.0; it had been a long time since I wrote a distributable EXE. I wondered how easily I could produce an attractive, fast, full featured application that would obtain a reasonable level of public attention. The answer was, about 2 weeks. Not bad. Within days of releasing harvester, the .NET based aggregator "market" was pretty much turned on its ear; I doubt that harvester was directly related to that, but it was certainly influenced by it. I have alot of interesting ideas for harvester. My vision for harvester is to create, essentially, an aggregation platform. I really like the extensibility concepts that have been bouncing around, but I had something a bit different in mind, and I don't know quite how to describe it yet. I want a single place where blogs, email, instant messaging, people, news, and other services co-exist, in deep, rich ways. I don't want to write it all. I like the idea of large scale, collaborative development, but I don't think that large scale, collaborative source code sharing is the best mechanism for achieving it. I think that the best way to build the platform I have in mind is by developing loosely coupled, coarse grained interfaces, and encouraging a dynamic plug-in architecture that works either locally (as in, deployed DLL's) or remotely (web services). I'm releasing the source code for harvester. People are more than welcome to do with it as they wish; use it as a learning platform, develop your own applications based on it, extend it. I don't see myself adding much to that code base; I don't see myself supporting it much... but I will answer questions about it, and participate in general discussions about it. Like most code I write, its mostly pattern centric. It was written with some degree of agility; There wasn't really much upfront design, and I let whatever design there was evolve naturally. The basic solution leans pretty heavily on MVC (model, view, controller); the controller is essentially a mediator, and the views communicate using the eventing infrastructure (basically, the observer pattern). Factories weigh in pretty heavily. My entity model is based on strong typed datasets. I'm going to watch the extensibility discussions very closely, support whatever comes out of them, and contribute whatever I can. By the time summer rolls around, I hope to be rambling on about Harvester 2.0. By chrisca208@msn.com. [Objective]10:34:40 AM ![]() |