Wiki · Bugs · Lists · Source

The .NET Entity Objects Framework

Neo is a framework for .NET developers who want to write enterprise applications with an object-based domain model. It is well suited for domain-driven design and agile development.

Neo includes tools that create an extensible object-based domain model as well as the database schema from a an abstract description of the model. At runtime, rich schema information is used to dynamically generate all SQL required for object persistence management. Being based on ADO.NET data sets, a Neo domain model is independent of the actual backing store and works equally well with databases and objects in an XML representation.


Major news regarding the Neo project. For a detailed list of changes see the ChangeLog.


Neo is under active development again, with new committers. We're also moving back to SourceForge. Distributions are now available via the SourceForge release system.


Version 1.4.2 of Neo is available from the distributions directory. This is mainly a maintenance release. Please see the ChangeLog for details.


Following the catastrophic hardware failure at the Codehaus, the CVS repository has moved. The download page contains the new details. Sorry for the inconvenience.


While going through a large pile of paper on my desk the other day I redisovered the original design sketches for Neo. And given that it is Neo's third birthday this month I though I'd post them to the site. Here.


Version 1.4.0 of Neo is available from the distributions directory. This release introduces support for spans (a.k.a. eager loading), declarative transactions and connection factories. It also contains several smaller improvements which are detailed in the ChangeLog. Some of these features required small API changes, which means that existing applications may need slight modifications to work with this version.


Version 1.3.2 of Neo is available from the distributions directory. This release introduces support for MySQL and a NAnt task, and we have upgraded to the latest versions of log4net and NVelocity. It also contains a few new features such as a change notification mechanism and support for default values in the schema file.


Version 1.3.1 provides an initial version of an XsdReader which allows model files to be written as XSD rather than the original Norque format. (Not available from the VisualStudio plug-in yet.) This release also contains several internal improvements, including checks for assignments of objects between different contexts. Finally, this is the first release that comes with an MSI installer for a binary version; source is still included, of course.


Version 1.3.0 of the Neo framework is available from the distributions directory. It introduces several smaller changes and performance improvements as well as support for the Firebird database. Some of the changes may affect backwards compatibility as Neo now caches more database query results, for details refer to the ChangeLog.


Maintenance release. Version 1.2.3 provides some important bugfixes.


A tool to create the XML model file from an existing database has been released. Thanks to Lars Behrmann and Engine Software Solutions. Check out the project page on SourceForge.


Maintenance release. Version 1.2.2 provides bugfixes and some refactorings to improve extensibility and performance. Also includes basic IBindingList support for Neo collections and serialisation support on ObjectContext.


Neo now supports Oracle databases. And thanks to an extensive restructuring of the O/R mapper classes it is now much easier to add further databases. Version 1.2.1 is available from the distributions directory as usual.


First candidate 1.2 release is available in the distributions directory. This release features improved qualifiers and several important bugfixes. Note that due to a restructuring at The Codehaus the CVS repository has changed. See the download page for details.


Some testing in the field revealed two problems with the 1.1 release that have now been fixed. Download version 1.1.1 from the distributions directory. This version is a few hundred kb bigger than 1.1.0 because it now includes the documentation.


A tentative 1.1 release hits the distributions directory at The Codehaus. If nobody complains this will be the first public release of Neo. Simultaneously, we have designated the CVS repository on this site as the master repository for Neo.


The project will be moving to The Codehaus. SourceForge has been a good home to Neo but I feel that there are a several compelling reasons to move to The Codehaus. It has a real focus on commercially useful projects and has much more of a community spirit. The Codehaus also offers superior services, Jira as a bug-tracker and a wiki for example.


The future of Neo. So far we've been relatively quite about Neo but, nonetheless, an increasing number of people find and use it. Looking at the emails we receive there are two key questions regarding the future of Neo: (1) Why are there so few commits? and (2) what does Microsoft's ObjectSpaces technology mean for the future of Neo? Check out the new FAQ Section for the answers.


CodeGeneration is now done within VisualStudio, saving roundtrips to the command line and clutter in the projects. On the runtime side of things, Qualifiers were added, allowing for much more comfortable finding of objects. (However, there are known issues with Qualifiers and SQL generation.)


Tools are now also checked in to the CVS repository on SourceForge. There will be a small restructuring soon but functionality is quite stable.


After a period of development behind the scenes, the first version of Neo has made it into the CVS repository on SourceForge. From now on all improvements will be checked in regularly.

This version is by no means feature complete but apart from some minor tweaks it is the basis for the 1.0 release. Unfortunately, the only documentation available so far is a 32 page overview presentation.


Neo is another fine project that originated at ThoughtWorks. It now moves to SourceForge as the previous NEO project on SourceForge had merged and moved a long time ago, freeing this space for recycling.