Marius Gheorghe

Building software : make it work, make it good, make it fast

DataBlock v1.2 released. Only for .NET 2.0


I’m very happy to announce the release of DataBlock v1.2 . Here is the press release :

voidsoft is pleased to announce the release of DataBlock v1.2 forMicrosoft .NET 2.0. DataBlock is an advanced O/RM and persistenceframework for .NET 2.0 which helps you  build advanced databaseapplications fast and easily by generating a complete business facadefor your database entities.  DataBlock comes with DataBlock Modeler (aGUI tool) which allows you to generate your entities in a few seconds(it supports both C# and VB.NET).

Features list :

Forum :

Download :

Please note that the evaluation version is not limited in any way so give it a shot.
If you have questions you can leave messages on this blog, post on the forum (see link above)
or mail me directly at gmarius at gmail dot com. Also note that this new release is .NET 2.0 only
so if you're looking for a .NET 2.0 O/RM.....We scrapped the 1.x version and went straight for .NET
2.0 and this is the result of many months of work. We also included a small ASP.NET 2.0 demo
application. Check how you can have ther business facade ready in 15 seconds and how an
application can run on 3 different RDBMS (Access, MySql and SqlServer) only by changing 2
lines in a config file.
A demo video should be up on the site in the following week.



DataBlock news

Work on Datablock ( continues at a franctic pace. The upcoming release (1.2) will be available at the end of august.
Along with the enhancements (i will talk another time about this) and bug fixes a big noteworthy change :
-.NET 2.0 only.  Mostly for generics (like i already said i'm not entirely happy with the constraints in .NET 2.0 generics) but getting rid of the custom collections along with StringCollections and the like worth it. It's speedier too when compared with 1.1. As long as i'm on this topic....we decided that arrays will still the primary method of returning multiple data ( we can also returned List<TableMetadata> as a conventional sided API for the languages that will support generics......although the generics are CLR compliant i don't expect that most languages will have support for them in the foreseeable future).

  Other new related to DataBlock....well DataBlock will be "the main pillar" of the upcoming codenamed Sunrise business application framework which we will launch along with the .NET 2.0 release. More news about this in the upcoming months.
   We're planning to write some medium size application (with GUI both Windows Forms and ASP.NET) as demonstration for DataBlock.
 (the current one is too small). I will also record a demonstration video for DataBlock  (not everyone has time to read docs ).
 So much things to little time. Got to get back to work.

Karmencita object query language for .NET released


I have finally released the latest version.  Karmencita is a high level object query language for .NET . It's purpose is to allow easy querying from in memory structured data.

Features :

- easy, SQL like language.

- common, slim API used for querying data.

- supports any IEnumerable data source, DataTables and XmlDataDocuments.

- extensible implementation

- common API but still get results depending on the data source. (for instance when querying XmlDataDocuments we get back XmlElement[]. But if we query a DataTable we get back a DataRow[]).

- supports IComparable for custom type implementation.

Samples :

-query a generic list of Customers :

//get a list of customers
List<Customer> list = ………

ObjectQuery<Customer> oq = new ObjectQuery<Customer>();

string query = “Name=[Marius Gheorghe] and IsMale=true and Age > 10”;

Customer[] custom = (Customer[]) oq.Select(list, query);


 - query a DataTable (the Northwind database products table)

//load the DataTable from the database
DataTable dt = ………

ObjectQuery<DataTable> oq = new ObjectQuery<DataTable>();

string query = “Name=[Salted Pork Meat] and Discontinued = false and UnitPrice > 12”;

DataRow[] rows = (DataRow[]) oq.Select(dt, query);

- query a XmlDataDocument

//load the XmlDataDocument
XmlDataDocument dt = ………

ObjectQuery<XmlDataDocument> oq = new ObjectQuery<XmlDataDocument>();

string query = “Name=[Salted Pork Meat] and Discontinued = false and UnitPrice > 12”;

XmlElement[] rows = (XmlElement[]) oq.Select(dt, query);


The web site is located at

This is free software (LGPL).


Now playing: Amorphis - House Of Sleep