ASP.NET has a concept called ‘code behind’. That’s not what I want to talk about. I want to use it as an analogy for something else. First let my describe what ‘code behind’ is. Code behind is a system in which web user interface controls can be organized into web page files without including the functionality associated with those control in one file. and then putting the functionality associated with those controls in another file. This file is called the ‘code behind’ file. The advantage of this is that it helps separate presentation from business logic. So the business logic can be found and changed without affecting the organization of the screens it affects.
An analogy to code behind that I have just discovered would be something I call ‘information behind’. With information behind you would have the code that runs a screen in that second code behind file and you would have each variable, function, database field, member, and global variable contained in some sort of structure that identified them by some sort of string. For example your members could all be items in a Dictionary in which the keys were the variable names and the values were the variable values. DataTables and DataSets already do this more or less. You would have a similar structure with functions, in which you would have functions or delegates or something in a big Dictionary structure and you would run them by reference to their string names out of that structure. This approach would be analogous to the web page file. Lets call this a ‘code front’ file.
Then you would have the information program that manages the meanings and organizations and flows and so on of the application in ‘information behind’ files. These files would manage and use and work with the string labeled members and methods in the ‘code front’ files. You could characterize the data and the member contexts from the ‘information behind’ files and essentially run your program from an information oriented perspective. This would separate the information and data concerns.
User Interface | Code Behind | Info Behind
Data semantics can do this for you. Then level 4 stuff can use the data semantics to do all sorts of things. You might even have a level behind ‘information behind’ etc.