Jens Peters, One Fox B.V.
At the moment (June 2005) we are finishing our first project where we made use of DataObjects.Net. Our conclusion is in fact very short: If you have to deal with persisting data and business logic, use it! DataObjects.Net really makes your life easier and helps you to concentrate to your primary business: building solutions for your costumer. Yet you have the freedom to extend DataObjects.Net in any way.
Our project supports the Dutch railways to organize projects which need changes in the railway schedule. It took us half a year to finish it. Without DataObjects.Net it would have taken much more time and we would have to face much more work like implementing a complete transaction handling module, implementing a security system etc. We made use of a 3-tier design with an asp.net application as the front-end. The data and business layer contains ca. 50 models and ca. 20 services.
DataObjects.Net is written by excellent programmers for programmers. They respond in no time to questions and requests in a very professional way and care for the solution. You never feel alone if you have to deal with programmatically- or design issues.
We are very pleased with our choice and we will definitively continue using this excellent framework in our future development.
One Fox B. V., The Netherlands
Greg Fodor, Parature, Inc.
We here at Parature are using DataObjects.Net as the persistence backend for our upcoming customer service web application, Parature 6. After building a rudimentary persistence layer ourselves, many difficult problems came to light. We soon realized that some of the big ones, such as transaction management and rollback, object level security, isolation of instances, and automatic object to relational mapping were well beyond the scope of our project and would take months to get working correctly.
So, we began looking into O/R mapping frameworks that were currently available for our platform of choice, .NET. The standard one on J2EE, Hibernate, has a .NET equivalent named NHibernate, but it retains a lot of the legacy problems such as having to manage an XML mapping file. We wondered why there were not many O/R mapping frameworks for .NET, especially ones which leveraged the .NET platforms unique features.
Fortunately after evaluating several alternatives, we found DataObjects.Net. The product clearly stood out as ?one which had an order of magnitude more features and development time behind it than its competitors, and also had an architecture that was clean and made sense in light of advanced .NET features such as dynamic code generation and attributes. Reading the manual for DO.NET, after looking at competitors such as /two names of competing products were used here, but we removed them from the public version/, was a breath of fresh air of something that was mature, did everything we wanted, and worked in a clean and understandable way. Porting the basics of our current code base to a point where we were up and running with DO.NET took less than two weeks due to our ability to think in terms of objects and avoid mucking around in our database. In the process we were even able to refactor things and add features that we never even thought of simply because of our previous relational mindset of doing things.
One of the other major factors in choosing DataObjects.Net was the team at X-tensive behind it. Though initially we were concerned that the company is a small startup outside of the U.S., reading through the support posts by their team made it clear that the X-tensive team knows what they are doing and have been working on this for a long time. The support team does an excellent job of responding to requests through the forum, and when replies are made they are in-depth, technically correct, and put us at ease. In addition, the team is open to suggestions and constructive criticism, and has already implemented several of our suggestions in their last couple point releases. Product aside, the support turnaround time with X-tensive is the best Ive experienced with any software product and, as a software developer, their speed to patch bugs and implement feature suggestions is admirable.
As weve become more comfortable with the product, weve leveraged more and more of its advanced functionality. We use the advanced features of the OSQL query language extensively, and also are leveraging their security system, which has proven to be just as feature filled and thorough as the persistence components of the product. We also have built a migration tool which uses the DO.NET backend to compare database schemas and ensure our migration scripts do not break database schema integrity between revisions. Soon we will be taking advantage of the recent Lucene search engine integration and also the internationalization capabilities.
We still have many bridges to cross with our solution, since it is still in the development phase. However, with a nearly complete system, we have no regrets choosing DataObjects.Net as our persistence backend. Throughout our testing and development cycle its proven itself to be a very powerful, easy to use, and well engineered framework.
Jean-Francois Lessard & Sébastien Boissonneault, Alogia Communications Inc.
During last summer, we have evaluated different object-relational mapper (ORM) tools. When we found DataObjects.Net, we got really interested in it. We were looking for an ORM which could provide better maintainability, reduce code complexity and support rapid application development (RAD). Thats what DataObjects.Net has brought to us, and many more features.
After we had spent some time evaluating ORM tools, we choose DataObjects.Net for those reasons:
- Fully object-oriented framework, no datapump nor passive data containers
- High potential for reducing classes to maintain, only business entities
- Easy and fast business entities modification
- Excellent performances (caching, lazy loading
), which improves user experience!
- Completely transparent data access layer
- Full database maintenance, no tables nor stored procedures to create or modify
- Query language with an efficient learning curve
- Exceptional customer support, answers within 24 hours!
- Support to encapsulate business logic through native DataSrvice, facilitating service oriented architecture (SOA)
- .NET Remoting is fully supported
- Automated transaction support
- Integrated complete access control management (rights and permissions)
- Multi-Lingual Support
- Multi database manufacturer support (Sql Server, Oracle, SAP DB)
- Highly reusable in many kinds of projects
- Product of really high quality, well designed
In fact, we were looking to that kind of ORM because we were developing and maintaining an in-house software. This software was built with another well known ORM framework. We had way too much class to maintain, and worse, the data access layer was not transparent at all!
So, we started rewriting the software using DataObjects.Net. We have done radical RAD! In two weeks we have been able to rewrite the whole software, while eliminating many bugs and providing better user experience with greater performances and quicker turnaround time. Also, we have reduced the number of business entities to 29 DataObjects classes, which represent 43 tables and 42 views that we dont have to maintain.
To represent the real impact and benefits of using DataObjects.Net over the previously used ORM framework, here are some statistics for a particular entity:
||Before (other ORM)
|Generated lines of code
|Lines of code
||Generation Schema, Decorator Schema
|Number of elements involved (classes, XSD Schema, etc.)
|Steps to modify a field
Also, we would like to give you an outline of the architecture simplification:
Before (other ORM tool)
Such improvements fortified our trust in the DataObject.NET technology and we have used in other projects whenever we could. Binding together the agile philosophy, RAD tools and DataObjects.Net provided us a powerful combination of flexibility and creativity.
Thanks for this great framework,
Alogia Communications Inc.
Boris Bosnjak, DreamQuest Canada
DataObjects.Net is the architects and developers dream come true. DataObjects.Net allows me to focus on a pure object model that isnt tied down to a database, or any database server for that matter, since it intelligently sets up the database based on the needs of the object model (I like that fact that I can tweak the database schema using hint attributes, though). This allows me to create an object model naturally, one that suits the needs of my code, including things like relationships, containership, and – something rarely seen in such frameworks – inheritance – all in terms of true OOP rather than SQL.
Furthermore, DataObjects.Net gives you an excellent object query language (but also allows you back-door native SQL queries), data binding, automatic caching, automatic and manual transactions, and – another rarity among frameworks – an attribute- and role-based security system that is as much part of the object model as everything else.
Bottom line, DataObjects.Net works so well that I can focus completely on writing my presentation and business layer code as if all the data was stored in objects in memory, with all the datalayer and database heavy lifting done smoothly and competently by DataObjects.Net.
If you havent tried DataObjects.Net – try it! Its unlike any other framework out there (and Ive tried a lot of them!).
Allan Gobin, Nex Software, LLC
We have been using DataObjects.Net on a current project for a few months now and I am very pleased with the results. We have found the product in general to be very stable and bug free. The support from x-tensive is superb. These guys really believe in their product and it shows. Bug fixes in record time, product updates almost on a weekly basis. They are living and breathing this product and it shows.
To a great extent we selected DataObjects not only because of its feature set and design characteristics but also because of the people behind the product. Before selecting DataObjects we evaluated almost all of the ORM solutions available for the .NET platform. DataObjects was selected for its greater easy of use, inherent stability, and pure O-O design.
Using DataObjects allows us to focus on our O-O design
allowing us to think in terms of pure objects instead of having to switch back and forth between the object and relational worlds. In addition to the tremendous time saved from not having to develop a data tier, DataObjects also increases performance by utilizing such features as intelligent data caching and fast fetches.
We have not used many of the advance features of the product, like the extensive security subsystem, .NET remoting, etc. So I am unable to comment on them. My comments are therefore restricted to the basic product functionality. And in this regard we view DataObjects to be a superbly implemented ORM API. We would not hesitate to recommend the product to anyone seeking to complement the pure object design of the .NET framework with a complimentary data access product.
Allan Gobin, CSA
Quality of our support service poll
User opinions from DataObjects.Net Support Forum
Here you can find a set of references to topics from our support forum expressing user opinions about our product (found by searching for great keyword):
Great work on the new version!
I am running Dataobjects in several project with great success.
Good luck and great job!
And despite the (very) small problems I still think you are doing an amazing job!!
Great support sofar!
As I always say – your support has been great.
Im evaluating your product and for now it looks great.