The Self-Taught Programmer

Recipes from real-world experience with

Posts Tagged ‘ORM

Should You Use 3rd-Party Controls and Frameworks? – Final Word?

with 2 comments

I’ve done some more thinking about whether or not to use 3rd-party controls (see my original post, and this follow up) and I believe I have some “rules of thumb” that make sense now.

My re-evaluation of my position on this has come because the EntitySpaces team announced that they would no longer continue the framework and would make it open source by the end of 2012. EntitySpaces is an ORM framework that I have used in several projects.

Criteria 1 — Is the control/framework/software integral to the functioning of the application?

If we are talking about a user interface control such as an enhanced 3-state checkbox or a text editor, the answer is “probably not”. In most cases, if absolutely necessary, you can drop-in a replacement with minimal fuss. Go ahead and use it.

If you are considering something like an ORM or javascript framework, you may be weaving it into the application and replacing it may be very painful or even impossible without re-writing big pieces of your software. You must consider Criteria 2.

Criteria 2 — How big/mission critical is your project?

If you are creating an in-house or personal project, just about anything goes. You can and probably will refactor it over and over as it is developed and being used.

If this is an enterprise or other mission-critical system, then you must be much more careful. You must consider Criteria 3.

Criteria 3 — Is this a new product?

If it is, you should probably wait until it has been vetted by the developer community and the kinks worked out. The first version of Entity Framework is a good example, even though it isn’t “3rd-party”.

If it has been around a while and has gone through several versions, that’s a good sign. But you must consider Criteria 4.

Criteria 4 — What kind of commercial or community support is available?

Look for blog posts, knowledge bases, wikis, and especially user forums that answer questions about the use of the control/framework. The sheer volume of posts will tell you something about how accepted and used controls/frameworks are. If you find that forums only have a few dozen posts, or only a few posts each week, then that tells you the user base is not very large, which is a red flag.

You should also note how quickly questions are answered, especially by employees/developers of the controls/frameworks. This can be critical to successful integration with your project.

Look for official documentation. Generally, the better-written and more complete the documentation, the more professional it’s development was.

With things like frameworks and open-source software, it is a good idea to look for any books written about it. If a publisher is willing to put out a book, then they believe the software is going to stick around for a while so they can sell more.

Criteria 5 — Get a second (and third) opinion

If you can evaluate the first 4 criteria and feel good about the control/framework/software, then you still have some work to do. If you are working on an enterprise system, you will need to make a recommendation to your team and ask them to research the product independently. You should look for reviews of the product and ask your own “does anyone have experience with…” questions on relevant forums.

The reason for this extra step is to avoid getting swept up in the hype surrounding the control or framework — and there is plenty of this.


So where did my analysis of EntitySpaces fail?

Well, truthfully, ES is a great piece of software. It has very few bugs and functions just as advertised. New versions were released 2-3 times/year. The commercial support was top-notch as the ES team was ever-present in their support forums. The cost/developer was very low.

In the end, what it lacked was widespread adoption by other developers (although there was no official announcement that this is what defeated the company). While I noticed that user questions in the support forums were answered completely and promptly, I didn’t pay attention to the low volume of posts. That should have disqualified it for my enterprise application — although not for smaller projects. And I will continue to use the open-source version for those because it is such a time-saver.


Written by Jim McMullen

October 26, 2012 at 2:51 pm

Should You Use 3rd-Party Controls and Frameworks? – Follow-Up

with one comment

The very next day after I wrote my original post on using 3rd-party controls, the EntitySpaces team announced that they would no longer continue the framework and would make it open source by the end of 2012.

Yikes! Now what?

I have 2 choices – do nothing with my existing code and continue to use ES after it goes open source, or replace it with something else – maybe Microsoft’s Entity Framework or NHibernate.

The downside of continuing with ES is that I believe it will lose support and wither away as an open source framework. When the next iteration of the .NET framework comes along, ES may no longer function correctly, and there may not be anyone working to fix it.

For an ongoing, commercial project like the one I am working on now, I’m not sure this is the best option.

The downside of going with NHibernate is that it doesn’t save that much time over the built-in provider model. And I could be wrong, but the MS Entity Framework doesn’t seem to have gained very much traction with developers, so I’m not confident that it will continue to be developed and supported, either.

So I’ve got some thinking to do, and some research, too.

Does this change my thinking about 3rd-party tools? Not really. I’ve saved myself and my clients/employers thousands of hours of development using EntitySpaces, and the applications are still very functional.

Truthfully this really only affects my most recent, in-development projects. And yes, it will cause some pain for me on those.

Written by Jim McMullen

September 21, 2012 at 5:53 pm

How to Troubleshoot Problems Upgrading an Existing App from EntitySpaces 2009

leave a comment »

I am a big fan of EntitySpaces, a .NET ORM framework that I find very easy to use. When the developers upgraded the framework in 2010, they “broke” some things I used in my code. Specifically, they changed the way instantiate a new ORM entity. Entities used to have a method that looked like this…


According to the release notes:
This method has been removed. It was optional in 2009 and has finally been removed. If you have overloaded or overridden this virtual method in a Custom class, you should move that logic to the constructor in your Custom classes (see above) and remove the custom AddNew method.

In fact, there were a bunch of “breaking” changes in ES2010. Keep a copy of the release notes when you upgrade past 2010 so that you will have a way to troubleshoot old apps when you upgrade them. (This is a good idea for all developer tools and languages, in fact.)

Written by Jim McMullen

October 17, 2011 at 2:37 pm

Posted in How-To

Tagged with ,