NEO Framework – Strength and Weakness

As you maybe know, TargetProcess built with NEO framework. During last several months I had a good chance to dig into NEO. NEO is good indeed, but it has some weak areas. See details below.


  1. Allows to test without database (mock objects are already there, so it is very easy and cool). Initially I wrote tests with database, but then try to use in-memory data. It worked great and tests results were the same. So NEO really resolve UnitTests-Database problem.
  2. Provides code-generation for SQL and Entity classes. In fact, I need more flexibility and going to modify code-generation templates and main xml dtd (which is the source for code-generation). But modifications seems to be easy.
  3. Works very stable. I did not found any bug yet.
  4. It really speeds-up development. I can’t say exactly, but I feel that my performance increased by at least 20-30%.


  1. There is no entity inheritance in NEO. In my case additonal effort was required to workaround this issue and still that workaround was not very good.
  2. A little of documentation, so learning curve is pretty high (however, tutorial is on the way, so the situation will change in the near future).
  3. Query mechanism is poor. No joins, no group by, no sum. I appreciate domain model, but in some cases SQL provides much more power and I want to have such an option at least.
  4. Queries like TitleList matchingTitles = factory.Find(“PublicationDate < {0}", new DateTime(2003, 1, 1)); have hardcoded field – PublicationDate. If I change the name of the field, this will not throw an exception. So I should replace them by hand (well, IDEs do have good find tools). But, anyway, this should be resolved during compile-time. NEO has templates for entities, but templates are slightly cumbersome and I don’t like them as well. Maybe there is not good solution for this problem.

One thought on “NEO Framework – Strength and Weakness”

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s