Jan 19, 2005 / NEO Framework - Strength and Weakness

1 comments

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.

Strength:

  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%.

Weakness:

  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.

1 Comments:

At 12:24 PM, Anonymous Anonymous said...

Hi Michael,

I was wondering what you guys did with the ObjectContext... session based, shared accross all sessions.

Paul Gielens

 

Post a Comment

<< Home

Subscribe to the RSS feed
Stay tuned by having the latest updates via RSS
Follow TargetProcess on Twitter
Get in touch with our team

TargetProcess is an agile project management tool. It is designed to solve distributed teams problems and support agile development processes.



Key Features

  • Full Agile Project Management Support (Scrum, XP, Custom)
  • Productivity Tools (Tp.Tray, ToDo list, dashboards, Inline editing)
  • Customizable Development Process
  • Subversion Integration
  • Integrated Bug Tracking, Help Desk, Time Tracking

Get TargetProcess for Free (5 users pack)

Previous Posts



    follow me on Twitter