Thanks to SourceForge Logo for hosting this site. Back to main page

3. Before we start

What we need

A few things are needed to develop and use Niles based apps. Currently, they are:

Any computer system which satisfies software requirements detailed below. Actually, a Linux 2.x system with X-Windows is a sure bet, but Win32 and many others flavours of Unix should work as well.

Pike interpreter package. This fine C-like interpreter can be downloaded from http://www.roxen.com. Current version is 7.2.x.

GTK+ library version 1.2.

A Database system supported by Pike. This includes MSql, MySQL, PostreSQL, Oracle, Sybase, or any ODBC enabled database.

A few of theory

Database based applications stores its data in structures called tables, put together into a Database. A table is similar to a worksheet, where you put related values along a row, and all the values in the same column have the same sense, so the names for an addressbook are stored all in the same column, and the address in another, column, etc.

The way complex real world data its splitted to fit into tables is a formal procedure named normalization. The so splited pieces of data related to others pieces that falls in a different table are kept associated with relationships, these are rules that says what rows in a table are related with rows in another table.

If you don't know what I'm talking about, or feels unsure about, or learn all you know about using primitive tools like xBase, please go and read some book from Yourdon, Martin, or another modern System Analysis book.

Those all data stored in tables aren't usually managed directly by the final user, but shown in a reordered way that makes sense for him, and is coherent with the real world data it represents. This is called a user view, as opposite to developer perception about data stored in tables.

Thus, the way you create your Niles app is, starting from a definition of your data model (all the details about tables, its fields and its relationships you care about), you define each user view declaring which fields of which tables are involved in. Of course, as a user view is a bit theorethical, you usually add some extra data, as display options or code triggers.