Monday, January 26, 2009

From 2008 to 2009: results and plans

I'm reader of Joel Spolsky blog. One of the latest posts there exposes the goals of his company for the next year. I instantly understood we should return back to writing such an article once per year - as you might know, we did this before. And it's a good idea to provide a brief overview of what was done in previous year - our activities, results and so on. So let's start.


Done in 2008


We showed DataObjects.Net 4.0 - frankly speaking, alpha.
Although its currently available version isn't practically usable (no schema evolution & LINQ), it shows how it will finally look like. Unfortunately we didn't reach a good progress in sales yet - all the income generated by DO now is mainly based on upgrade subscriptions, and frankly speaking, it isn't comparable well to our outsourcing business. So the cost of ~ 2 year pause in its development (i.e. a cost of its complete redesign) is really high. Returning these investments is one of Y2009 goals.

Both MEScontrol.net and custom software solutions departments grew up - most part of our income is generated by these teams now. We're developing projects with MESware, Urals State Techincal University (USTU),
Data-Center (for SeverStal) and Izenda.

We launched new X-tensive.com and MEScontrol.ru web sites - so we've got a completely new look. Old x-tensive.com was serving us well for a long time, but its time had come.

We started to promote MEScontrol.net in Russia. This must help to built a new business for us in the next year.

Financially this year was also successful - we've got ~ 120% growth in income.

We've got much better local exposure - I admit rare .NET developer here knows nothing about us now. Partially - because of sessions on .NET User Group we run. I became the leader of Urals .NET User Group as well.

Unfortunately we discarded the idea to bring LiveObjects.Net live, at least for now. LiveObjects.Net is MVC framework and control library for ASP.NET utilizing ExtJS (AJAX). We've been using it internally to build all the projects for USTU. I'll provide more details further.


Goals for 2009

Really polished
DataObjects.Net v4.0 will be delivered by the middle of this year. This includes at least:
- LINQ support - that's what we're working on right now
- Schema evolution - the next critical feature we'll deliver
- Synchronization - obviously, it is also one of the most critical ones
- Full-text indexing and search - also an important one
- Transactional file system storage - in fact, our own implementation of RDBMS
- Early preview of distributed storage provider. Its complete implementation must be ready till the end of Y2009. Why so late? We decided to implement all the other features first, and show distributed storage only in some simple form - as a preview. This must be enough to convince most of developers (you) it will really be delivered further, so you can rely on its features. But for now (i.e. in development) you can start using new DO with some other provider instead of it.

First real projects based on v4.0:
- The first one will be developed by our Software Solutions team, but for (or with) some other company - right now we're beginning to explore the opportunities here. A part of this team finishes its current contract with USTU in March; moreover, in March DO 4 will get its final shape, so it's a good moment to seek for the next project. The next post in our blog will describe this more precisely.
- We also hope to show our own service using DO 4, but it's difficult to say if we'll be able to get its showable version till the end of 2009, taking into account that our R&D team will be mainly busy with DO during nearest 6-8 months.

MEScontrol.net implementations on Russian plants \ factories: as it was mentioned, we're going to apply a lot of efforts related to local MEScontrol.net promotion this year based on a background created for this in 2008.

Tuesday, January 20, 2009

DataObjects.Net v3.X is updated

It is a minor update - there is nothing else except bugfixes. But one of issues it resolves is important: full-text rank ("{FullTextRank}") in order by clause was ignored at all because of bug in one of recent v3.9 updates, so full-text search results were unordered.