Skip to content
djMax edited this page Sep 14, 2010 · 5 revisions

Welcome to the AlienForce wiki! AlienForce is an open source platform for building high scale networked applications (not solely web sites, also TCP services, etc.) It is based upon a closed source commercial system called BenTen that was developed in 2004 by Arts Alliance Labs and powered several large sites such as large portions of JohnKerry.com, Povo and many others. The web has clearly evolved since then, and AlienForce is an attempt to keep the best portions of that effort while adopting existing technology wherever possible.

We are in the process of adding relevant components from BenTen to AlienForce. BenTen provided a very useful set of “database mapping” tools (NOT an ORM) that allowed simple stored procedure usage, database scripting and upgrade, and continuous integration. These days, there are a wide variety of ORM tools available with reasonable performance. For AlienForce, we’ve settled on BLToolkit because of its excellent performance and because unlike Microsoft’s Entity Framework, it allows you to treat the database as an abstraction rather than forcing you to write most of your SQL in complied code. However, we had to customize BLToolkit to allow for things like stored procedure default arguments and proper output parameter usage. The modified binary is included in the source tree, and we are attempting to provide the changes to the BLToolkit team if they want them. (If you want the source, we can post it, but probably better to get it into BLToolkit itself).

These days, relational databases have a new role in a high scale system – we believe the days of terabytes of relational storage are over for almost everyone. NoSql data stores such as Cassandra provide much more compelling price/performance, reliability, and distributed system capabilities than a monolithic SQL Server. AlienForce strives to enable this tradeoff to be made by developers – all SQL Server, mixed SQL/Cassandra, or all Cassandra.

Generating .Net Classes from a Database using BLToolkit
Cassandra Object Mapper

Clone this wiki locally