Free Software by Sam Clippinger -- LAFCMS

Author: Sam Clippinger <samc (at) lookandfeel (dot) com>
Copyright: ©2002-2003 lookandfeel new media
License: GNU LGPL
Current version: source binaries
Archived versions: Source packages
Binary packages
Documentation: Change Log
Microsoft Visual Studio 6.0 Runtime
Download from this site
MSDN article
Microsoft Data Access Components
Download from Microsoft
Build target: In-process Win32 ATL COM Server (DLL)

Source language: Microsoft Visual C++ (ATL COM)
Build environment: Microsoft Visual Studio 6.0 SP5 on Microsoft Windows 2000 Professional SP2
Target platform: Microsoft NT Server 4.0 SP6a or Microsoft Windows 2000
Description: LAFCMS is, in a word, a data abstraction midlayer. It presents a very simple API that allows the caller to define "Items" and save them using "Connections". If you are familiar with database programming, think of an "Item" as a row in a table. Database tables have fields; so do "Items". Most RDBMS APIs allow the caller to set a row's fields one-at-a-time before saving the row; so do "Items". The big advantage that LAFCMS provides is that the caller no longer has to worry about data typing. LAFCMS will accept a laundry list of different data types and will save them without requiring the caller to modify database schema. Adding a new field to an existing "Item" or changing a field's datatype is easy -- just set the field's value and save the "Item".

LAFCMS allows the caller to establish relationships between "Items", such as creating two "Items" and setting the first "Item" as the container of the second "Item". This allows complex hierarchical data models to be arbitrarily constructed atop otherwise flat database backends. LAFCMS also aggressively caches the stored information, making data accesses much faster, especially in read-frequently-update-rarely cases, as is common for website development.

LAFCMS is intended to be used as a data backend for larger projects. It is reusable as a COM object on its own, from Java through its JNI interface or by incorporating its source files into another project and abstracting new C++ classes from it. LAFCMS completely abstracts the data storage target, so accessing different types of data storage will not change the API behavior.

LAFCMS has some big milestones ahead of it, too many to list here. See the top of the ChangeLog for a list of what's coming in future releases.

This project is mirrored from