An Object Oriented Database Framework

The TechNewLogic ObjectLounge framework is an open source framework that helps you developing business applications. It is a host for object oriented domain models that manages concurrency, transactions, validation and persistence.

Doubt the Status Quo!

Today, people automatically use a relational database if they want to build a business application. But:

Databases come from a long time ago in a galaxy far, far away...

In this time,

  • RAM was very small and very expensive,
  • Computers were pretty slow,
  • Programming was something very technnical and abstractions like OO had not been invented yet.

Thus, the database vendors optimized their products on scaling, memory sufficiency, etc. But is that really needed in a middle sized "as usual" business application? We think: No, Sir. Reasons:

  • 8 GB of RAM cost only some bucks.
  • Even desktop computers run at several GHz and have multiple cores.
  • Software is everywhere and has to change very fast and be very flexible.
  • The amount of data in a middle sized business application is usually less then the amount of memory on a well equipped machine.

Object Orientation is awesome and cool and smooth. But as soon as you hit the database, it becomes not so cool and smooth anymore. We define relational tables, but we want to have hierarchical classes. We write stored procedures, functions and triggers, but we want to encapsulate our logic in objects with methods, properties and events. The point is: Even with modern ORMs we have to go through a lot of hassle to connect our application to a database. What we get for that is a lot of features we don't need. So the question is:

Why should we use a data base at all?

The only thing we need is a store where we can persist our entities and a framework that makes this aspect as transparent as possible. But what about the "useful" features of a database which are defined by the ACID criteria, which are basically focused on concurrency? In a database, we can run transactions, we can roll them back and we have isolation between transactions. If we want to get rid of our database, we need a framework that handles transactions with rollback and isolation on our domain model - fine! With ObjectLounge, you can do all these things, too - without a database!

Features

ObjectLounge is based on the Microsoft .Net Framework 3.5. It can be used in stand-alone clients as in-memory database or in service based applications as backend.

Persistence

No database schema generation needed.

Storage "Out of the Box".

By Default, the framework uses a simple filesystem based store for your entities.

Implement your own data store.

If needed, the framework can be extended with custom data access logic, so you can work together with any type of data store you can imagine.

Domain Model Hosting

Express your business logic only in objects.

Nearly no technical aspects needed.

In-Memory Domain Model.

This needs some RAM on one hand, but on the other hand it very fast due to no need for mapping and transfering data from the store into your process for each request. This also leads to fast and comfortable querying by using Linq-To-Objects.

Modeling

High Level Abstractions

Make use of composition and aggregation to model the entity relationships.

Automatic Unit of Work Generation.

All changes to business objects and their relationships are automatically tracked and executed as a whole on commit or rolled back.

Transactions and Concurrency

Access your domain model from different threads.

Concurrent access of your domain model with the "Read-Committed" / "Serialized Write" strategy.

Commit or rollback the whole changeset - not just in the store, but in your living domain model!

ObjectLounge kicks ass if...

  • You deal with complex or über-complex domain models with a lot of business logic.
  • Many constraints have to be validated in the code (far more than just PK/FK or NOT-NULL).
  • You develop small to middle sized applications (Standalone as well as Client/Server).
  • You have volatile requirements and need flexibility.

When does ObjectLounge FAIL?

Think twice using ObjectLounge if your application is merely a bulk-data processor or the amount of data you want to manage is beyond the size of the physical memory you can supply.

Community

On the ObjectLounge CodePlex Site, you can

Additionally, you can search our Blog for resources and help.

Documentation

Pay attention to the Quick Reference.

Contact

You can also contact us directly via the Contact form. We are glad to hear from interested people.

Plant Explorer MES

Plant Explorer ist ein System, dass auf innovative Weise die ganze Bandbreite der Automatisierungssoftware abdeckt: Von der SPS-Anbindung, über SCADA und MES, bis zur ERP-Integration. Die Besonderheit von Plant Explorer ist dabei die innovative Visualisierung: Die Grundlage für alle Systemfunktionen ist die virtuelle Anlage...

mehr...

Team

"Es ist faszinierend wie es Software ermöglicht Dinge aus dem Nichts zu erschaffen. Damit Ihre Vorstellungen Realität werden, beschäftige ich mich mit Requirements Management und Unit Test. Diese ermöglichen es Kundenwünsche effektiv zu erfassen und ihre Einhaltung im Endprodukt permanent zu überwachen."

mehr...Andre Krämer
M.Sc. Informatik

Prevent Memory Leaks in stateful C# applications

A reason for a lot of memory leaks in .Net applications is when event handlers are not deregistered. Basically, there are two kinds of components in an application. The first kind are components tha...

mehr...

IT Consulting

Sie haben im Tagesgeschäft nicht die Möglichkeit, am Puls der Zeit zu bleiben was neue Technologien und Methodiken in der Softwareentwicklung betrifft? Wir helfen Ihnen Know-How aufzubauen!

mehr...
written and designed by TechNewLogic 2012