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