I am once again attempting to build GITI as an application, this time with more seriousness than my previous attempts. The problem I am running into is that I am discouraged from developing it in C# because there is already a fully build PHP version that works pretty well. The PHP version is HUGE compared to things I can easily do in C#. This makes the desire to move to an application base less than the desire to continue development in PHP, even though I know that I need something on the desktop side to compliment the web based version.
In web land it is incredibly simple to make everything very specific because the user is always on a different page, but on a desktop application the same user interface is used for most things (otherwise, it becomes a mess), so things have to be general. So far I am working with this by having a basic class for “GITIObject” and then I extend it with things like “ClassObject” and “AssignmentObject”, but I am still having a hard time, because things are so different. What I have learned so far today is that GITI has two distinct classes of items it handles. The first class is in the way of education assignments, schedule items and todo items, collectively they could be called “Activity Items”. Next there are the things like keys for software, address book contacts, recipes and such, those are “Data Items”, things that don’t change state and do not need to be brought to the user’s attention unless they are asked for.
At the moment I am attempting to work with all of those items using a GITI application, and just with the Activity Items by using a smaller application I am working on, called “GITI Notify”, which is basically a glorified listbox that updates with information from GITI about current assignments and schedule items.
One day, GITI will work on desktops and the web.