I have to prepare a case to convince managers to promote development using an ORM. I don't want to go into technical details in this case, the benefits have to be visible to business people.
I'm not quite happy with the arguments I've written down until now Are there any points I'm forgetting, both PRO and CONTRA?
The case I'm going to make will be in two points:
- Convince managers to use an ORM
- Convince managers to use NHibernate
The PRO's for ORM:
- Solves the impedence mismatch between a rich ecosystem of connected objects with behaviour and tablular lists of scalar values
- Higher productivity => reduced time writing tedious data access code lets you focus more on solving 'real' business issues
- Higher maintainability => reduced number of LOC == system is easier to understand (hmm... maybe...)
- Almost no performance hit when used right
The CONTRA's for ORM:
- O/R mapping tools do not perform well with bulk processing of data. Stored procedures may have better performance, but are not portable
- Heavy reliance on ORM software has been pointed to as a major factor in producing poorly designed databases
The PRO's for NH:
- Very mature produce
- Supports a lot of DB's => developers don't have to learn a new SQL dialect on every other project
- High mind-share amongst .net community leaders
- Many examples, articles, blog posts
- It's open source
The CONTRA's for NH:
- Not suited at all for batch processing
- No code generation or code designer => some people think this makes developers more productive
- Bad reputation due to lazy coding (== abuse of lazy loading)
- It's not from Microsoft
- It's open source => some companies just don't like that