Hey Brian,
Thanks for the reply. No it's not a homework assignment (I dropped my comp sci degree cause it was moving to slow for my tastes). The end project will be a portal, somewhat like dotnetnuke, or rainbow portal, but I'm wanting to build it from the ground up on linux / mono. The reasons for this is that I don't like either one of the above mentioned projects, and I also want to learn the more advanced skills such a project will require. Of course, the project will be open source, and I think it can take off. To get away from my sales pitch now... :)
I've got an object model that is monolithic right now, but I want to make it more flexible. I guess what I'm trying to figure out is how I would implement a totally dynamic program, where everything from the gui to the datalayer is decided at runtime. The lines I'm thinking of now is creating some high level interface, perhaps something along the lines of a IMenuItem, which would contain methods for access the information needed to create a menu dynamically. I could then search through the plugin dll's and load all the objects that implement that interface. Of course, I realize that this is a big performance hit, but I think the flexibility of the software will overshadow that. The clients I'm working with now are always changeing the requirements of the software, even after deployment, and it seems that my framework would make those changes easier to implement (especially since even the most minor change wouldn't require a re-compile (or re-translation, if you want).
Portability is not something I've even begin to study yet on my own, so I'm going to have to look into it. I know some of the basics (don't depend on a particular character encoding for example), but I think this will be minimalized by running on top of mono, which itself is portable. Since the framework will interact with endusers through web services and web pages, i don't have to worry about messing with gui toolkits, but even if I did, mono's implementation of a native toolkit is coming along really well.
Josh
------------------------------------------------------------------------ ---- From: Jack [mailto:quiet_celt@yahoo.com] Sent: Thu 3/10/05 10:33 PM To: Charles, Joshua Micah (UMKC-Student); kclug@kclug.org Subject: Re: Semi-OT: Programming Question
This sounds kind of like a homework assignment. But, why not use an object model. If you are looking to make the data and the functions dynamic objects are the way to go, by encapsulating the functions and variables in the objects and thus allow them to be overridden. Even though I consider them over used. You could also use templating and the data formats are defined at run-time. Of course this costs you in processing. While you're making this modle don't forget the Linux world, you ought to give some thought to OS portability. Lastly, C# is an interpreted language. C is a compiled language. If C# was a compiled language then there would be no need for Mono on Linux, one could just build a C# compiler to be part of the gnu compiler family. Some might argue that C# is a compiled language because it cinverts the code to byte code, just like Java. But really you still need that byte code interpreter to run it. It may be a bit more optimized or compressed by this means making it more efficient than run-of-the-mill interpreted languages, but it's still interpreted. Ok, so maybe I'm a purist, but I don't see doctors calling aspirin a cure or a vaccine for headaches.
Brian Densmore
--- "Charles, Joshua Micah (UMKC-Student)" wrote: