Eloquera 2.0 Object Database
The release of the second version of the Eloquera object database is scheduled for next month. Nothing special, it seems - you never know how many releases happen weekly.
But the group of crazy Russian programmers from Eloquera decided to do a little experiment. After somedebate and abuse of consultations with the management of the company, it was decided to give access to certain base builds to a group of professional programmers not affiliated with Eloquera. What for? On the subject of "scold" / "praise", as well as to prove that the "free birds" will be more effective in using the base and finding individual shortcomings than the regular team of testers. Well, and to show that crazy Russians are inventive to the impossibility - which is just wonderful. :-)
Let me remind you that Eloquera is a client-server object database for .NET 2.0 and higher, with its own data storage and indexing engine that supports queries.
First -
There are a lot of things, for example, what kind of object base does JOIN support? And arrays? Therefore, we decided to make a series of publications about the capabilities of Eloquera 2.0, talking about different aspects of programming for our object base. We will be glad if you express your thoughts on what articles you would like to see first. Themes are listed above.
In order to quickly understand how to apply all this, I give an example code for working with a database:
The first is to download and install Eloquera 2.0 codename Woomera (by the way, do you know what woomera is ?). There are options for 32-bit and 64-bit systems. The only thing we ask for is to register . In principle, no field except e-mail is required, so you can simply enter your email address. But if it is more pleasant for anyone to receive letters addressed personally to him or her, then add your name - and later one of our programmers will personally write to you regarding new releases and, generally, to communicate. And you need an e-mail, because in response you will receive an email with links to download the database and other useful things.
The second is to give yourself the right to connect to the database. If you are an administrator on a local machine, then you don’t need to do anything. If you do everything according to science (which we warmly welcome!), Then add your group or your user to the list of allowed on the server. How to do this can be found in the documentation , more specifically on this page . The easiest way is to add the Users group to the allowed list (by the way, this setting will work even if you have an OS in Russian installed, in which such a group is called "Users"). After that - restart the server. From the command line, it looks like
Of course, this publication does not claim to be the full review of the new version of the Eloquera database, but, I hope, it will nevertheless serve as a good reason to download and try our development in action.
But the group of crazy Russian programmers from Eloquera decided to do a little experiment. After some
Let me remind you that Eloquera is a client-server object database for .NET 2.0 and higher, with its own data storage and indexing engine that supports queries.
First -
Short list of features of Eloquera 2.0
- Storing C # objects (and generally any .NET languages) without any transformation or implementation of interfaces.
- SQL queries. No SQL database is needed.
- The return of objects in their original form (in the form of transfers or one by one).
- Support for arrays and list parameters in SQL. Arrays can be multidimensional and “jagged” - the syntax is one.
- JOINs in requests - yes, for any fields, including arrays!
- Functions and expressions in queries - you can make JOINs and sort them.
- Standard and not very standard sorting
- Regular expressions in queries - Reg Ex forever!
- Indexes are common indexes for speeding up queries.
- Support for bulk insert / update objects (tens of thousands of objects in less than a second)
- Support for generic objects.
- Inheritance in queries (SELECT ParentClass will return both ParentClass and ChildClass)
- Requests for a specific type (SELECT ONLY ParentClass will return only ParentClass, but not ChildClass)
- The ability to partially restore objects (if you need a ForumTopic object, then you can not pull all the TopicMessage associated with it)
- Indication of the "depth" of the request - return only A? Or A and all ABC? Or all related objects?
- Client Server Operation
- Simultaneous work of many users (requests are executed in parallel and independently).
- Authentication through Windows accounts (or without a user at all - then the active user account will be used)
- Server and client implementation in 32- and 64-bit versions.
- The unique identifier of each object is for working in a stateless environment (of course, for ASP.NET)
- Support for various cultures (for example, where dates BETWEEN ['en-US'] @ d1 and @ d2 - the formats will be accepted American, even if you work on Russian Windows)
- Sample search on ALMOST
There are a lot of things, for example, what kind of object base does JOIN support? And arrays? Therefore, we decided to make a series of publications about the capabilities of Eloquera 2.0, talking about different aspects of programming for our object base. We will be glad if you express your thoughts on what articles you would like to see first. Themes are listed above.
In order to quickly understand how to apply all this, I give an example code for working with a database:
- // Открываем соединение к серверу - используем данные текущего пользователя для подключения.
- using (DB db = new DB("server=localhost;options=none;"))
- {
- // Открываем существующую базу данных.
- db.OpenDatabase("Cinemas");
- // Создаем объект в ходе работы.
- Cinema cinema = new Cinema() {
- Location = "Sydney",
- OpenDates = new DateTime[] { new DateTime(2003, 12, 10), new DateTime(2003, 10, 3) }
- };
- // А тут мы решили его сохранить.
- db.Store(cinema);
- // Можно искать по полям вложенным объектов - глубина ограничена только вашей фантазией.
- var kino = db.ExecuteQuery("SELECT Cinema WHERE ALL Movies.Studios.Titles CONTAINS '20th Century Fox'");
- // Создаем параметры
- Parameters param = db.CreateParameters();
- param["dt1"] = new DateTime(2006, 10, 1);
- param["dt2"] = new DateTime(2009, 09, 17);
- // Ищем объекты, у которых хотя бы одно значение из массива OpenDates соответствует условию.
- var result = db.ExecuteQuery("SELECT Cinema WHERE OpenDates BETWEEN @dt1 AND @dt2", param);
- // Делаем что-то хорошее с результатами.
- foreach (var cinema in result)
- {
- Console.WriteLine(cinema.ToString());
- }
- }
How to get started with Eloquera 2.0?
The first is to download and install Eloquera 2.0 codename Woomera (by the way, do you know what woomera is ?). There are options for 32-bit and 64-bit systems. The only thing we ask for is to register . In principle, no field except e-mail is required, so you can simply enter your email address. But if it is more pleasant for anyone to receive letters addressed personally to him or her, then add your name - and later one of our programmers will personally write to you regarding new releases and, generally, to communicate. And you need an e-mail, because in response you will receive an email with links to download the database and other useful things.
The second is to give yourself the right to connect to the database. If you are an administrator on a local machine, then you don’t need to do anything. If you do everything according to science (which we warmly welcome!), Then add your group or your user to the list of allowed on the server. How to do this can be found in the documentation , more specifically on this page . The easiest way is to add the Users group to the allowed list (by the way, this setting will work even if you have an OS in Russian installed, in which such a group is called "Users"). After that - restart the server. From the command line, it looks like
net stop "Eloquera Server 2.0"
net start "Eloquera Server 2.0"
Of course, this publication does not claim to be the full review of the new version of the Eloquera database, but, I hope, it will nevertheless serve as a good reason to download and try our development in action.