Thursday, October 11, 2007

GeneralData PlugIn put on ice

Right now i find myself unable to spend enough time on development, testing and conceptualization for the General Data PlugIn, this would result in a PlugIn delivering less than what i was expecting.

I decided to put the development of this PlugIn on ice for now and continue with a more straightforward PlugIn. I started work on the interface for the Movie PlugIn which will allow to store your personal movie collection. I'll will post more details ASAP.

Monday, October 1, 2007

SQLite issues solved

Finally the new version of the SQLite wrapper was released and, as promised, it solved some small issues that nonetheless could have caused some major troubles. I already updated the XDB project and it works pretty fine.

This brings XDB one step further to readiness.
While i'm still working on a good solution for the General Data PlugIn i'm also playing around with the main interface and fixing bugs in the code.

Wednesday, September 12, 2007

Friday, September 7, 2007

Name change...

Today i found this, i guess i didn't care enough about the name i gave my project.
Since it seems that the name is already taken, it wasn't very specific anyway, i decided to change the meaning of XDB a little bit.

Incomplex [Extendible] Database

will be the meaning of XDB from now on.
Since i wanted XDB to be adaptable, but most of all, easy to use i believe this to be a more descriptive name for the XDB project.

Moreover i will reset the version number to 1.0 (from 2.0), it seems more logical since the whole code was rewritten.

Supported database types

Since the actual version of SQLite (actually it is the .NET wrapper) has some value conversions issues and i'm waiting for the next release, which should come soon, i'm thinking about a feature that i had already half implemented but then put on ice.

The initial idea was to let XDB2 be able to use different database types. The first that came to my mind where SQLite (obviously), MS JET (Access database) and MS SQL Server.

Since i had some major issues with JET and SQL Server i had to skip them.
Now that i'm forced to look elsewhere i don't find them attractive anymore.
Access databases are not very .NET friendly and SQL Server is quite different from the main concept of XDB2 (single file, direct access to the file).
While it would be still very interesting to implement SQL Server support, i think i will drop JET support and rather will look elsewhere for an alternative to SQLite.

Recently i red about a rather new MS SQL Server type, SQL Server
Compact. It seems that it is a single-file, zero-configuration database type like SQLite, so it would be a perfect candidate.

In the end i think i will implement (try) support for the three following databases:
- SQLite
- SQL Server Compact
- SQL Server (Will see if this is possible)

Other formats may be supported later when i'll work on export/import functions.

Tuesday, September 4, 2007

The General Data PlugIn

While XDB2 is still in alpha stage, the main part is almost complete and so i'm starting to focus on the PlugIns. The idea behind this project is to provide an easy but still very specialized way to manage data. Today there are way to many bloated applications that have hundreds of unused features that just confuse you and suck your computer's resources away like a blackhole, or you have a lot of different applications that do one job with the same unpleasant result.

This is where PlugIns are meant to make the difference.
If i want to simply manage a list of TV Series and Music Albums i don't need an application that does more, or i could want to handle many more and PlugIns give the possibility to do so. PlugIns can manage data in a specialized way through a unique and intuitive interface.

Unfortunaly there is one major issue.
If PlugIns manage data in a very specialized way, then hundreds would NOT be enough to manage all kinds of data that could possibly be thought of.

The solution to this issue is the first PlugIn that i will work on, the General Data PlugIn.
It will allow the user to select what kind of data his table should contain and how each entry in the table should be visualized. It will be able to create and read any table containing any kind of data. These are two "work in progress" screenshots:

(1. Creating a new Table using the G.D. PlugIn) (2. Setting up the data to be stored in the Table)

Currently i'm working to streamline the process of customizing the table layout (screenshot #2).
I'm also looking for a good concept for a user customized interface for each table. I'm experimenting with some ideas that include a Drag & Drop editor that could allow the user to create the interface for the table with a few clicks. On the right is a concept screenshot that shows how such a Drag & Drop editor could look like. The General Data PlugIn will give the user an easy yet powerful way to store any kind of custom data that no PlugIn can handle.

Monday, September 3, 2007

XDB Introduction (Extensible Database System)

This blog will trace the development process of my latest software project known as XDB2.
XDB2, also know as: Extensible Database System 2, wants to provide a very easy and intuitive but still powerful way to store a list of "objects" and does so by using PlugIns which will be able to handle all sorts of imaginable data. Ever wanted to have a main index for your movie or audio collection, your SMS backups, clients, address book, recipes, monthly expenses or whatever you can think of?


XDB started in late 2004 as an idea in my head after a discussion with a friend of mine.
We love media (Movies, TV series, Songs, ...) and we have quite some stuff lying around
on our hard drives and on our shelfs, it can be pretty cumbersome to navigate through large
amounts of folders, network drives or CD/DVDs on some shelf in search of some old TV show episode, movie or song.

My friend wanted to code a small and simple application to serve as an index of his media, allowing him to perform a quick search for a name and find out where he could find the specified item.
A similar, more complex idea floated in my head, i wanted an easy and intuitive to use application that keeps an index of my media, but powerful enough to store all sorts of information, including a rapid way to find the actual location, regarding the listed media.

I already knew that
most modern media players had some kind of build in "Media Library" and that there where several ways to find or keep trace of media on PC. On the other hand there where professional standard database application with all sorts of powerful features. But all these systems have some major flaws. Media Players or windows built-in search need the media to be present somewhere to be able to handle it. Professional database applications are developed with very different needs in mind and provide way to many irrelevant features, time consuming procedures, need of certain skills in database languages and of course most are pretty expensive.

So i thought that it would be useful and interesting to code this by myself.
I named
my first simple attempt MediaDB which was able to handle three different "media" types, Movies, Audio and Games. I soon realized that such an application wouldn't be very flexible so i based the whole idea on PlugIns and for some reason i found XDB to not only sound good but also to be a good name for what i wanted to do.

XDB made it to version 0.8 and had a very simple PlugIn interface and database engine.
This is the main reason for discarding version 1.0 and rewriting XDB2 from scratch.
XDB2 now uses SQLite to store its data and has a completely new PlugIn interface.

Some features:
- Create and handle as many databases as you want.
- Each database can contain as many tables as you wish.
-
Databases and tables can be handled simultaneously in one application.
- Each table can be handled by a different plugin, you only need one database file.
- Password protect your database.
- Each database is encrypted by default.
- Each table can be individually locked or entirely hidden,
several users can share the same database without exposing their personal data.

- The General Data plugin can handle all tables in a generic way and allow you to create
your own totally personalized tables.
- Specialized plugins are able to interact completely with the data they handle
and will provide their own interface and many additional functions.


Some screenshots: