Ramblings from the Creator of WilsonDotNet.com
Do ORMappers have a place in a closed shop's ASP.NET application running strictly MS SQL server?
Do you want to cut your development and maintenance time by a significant amount? Do your users expect a lot of flexibility? See my posts at: http://weblogs.asp.net/pwilson/archive/2004/09/05/225827.aspx http://weblogs.asp.net/pwilson/archive/2004/09/18/231188.aspx http://weblogs.asp.net/pwilson/archive/2004/09/29/235834.aspx
Travis: of course! Unless you want to write all that code yourself ;) " By the way, this is also the one of the few things that I think still makes my mapper stand out as unique against the likes of NHibernate, LLBLGen Pro, and EntityBroker. The others may have more features, and NHibernate is open source, but just try to use any of these others for the first time in 30 minutes, or just try to extend any of those to have a new feature you desire. " If you think your mapper is easier to use than mine you're clearly mistaken. For example, LLBLGen Pro doesn't require you to write mapping files, the generated code is ready to use and sports all the functionality you want, so you don't need to jump through hoops. Furthermore, I add new features every 2 months, you do too? LLBLGen Pro has a template system in place with multiple template languages and a task-based code generator which is more flexible than anyone of the competition. You can extend the code generator to extend the code you're going to work with with easy classes or templates. You want a unique filter element to work with the predicates used to filter on objects? Inherit from a base class and add 20 lines of code and you can use your own filter element in your code. For example full text search on MySql. "Of course the other main thing mine has to offer is provider support -- I don't think any other can claim to support so many databases. And that's not just a claim -- its also a reality that many have proven -- a reality that is possible primarily due to simplicity and not targetting every possible feature." How many databases do you really support, Paul? I mean SQL-92 inserts with no real functionality besides simple inserts... that's not that hard. Do you support sequences on oracle, sequences + identity on DB2, sequences on firebird? Do you support delete from from / update table from table on oracle/db2/mysql/firebird/access ? Can you do multiple joins of the same table with aliasses and filters targeting those alaisses (SQL 101) on oracle 8i AND for example sqlserver/db2 ? (so you have to implement ansi and non-ansi joins? ) Do you support aggregates, group by, having clauses on 'all these databases' ? You support just the very very simple stuff, of course you can then support a lot of databases. The non-ansi joins on oracle 8i alone break any generic db driver code. Support a lot of databases with REAL functionality requires some more code than a set of simple rules in a provider definition, Paul and you know that. The fact alone that you don't support 1:1 relations proves the fact that the code base is very simple. You don't deny that, but at the same time you praise yourself with phrases like that you support the largest amount of databases. I think it then depends on what your definition of 'support' really is. Btw, we too use a provider model, both for the schema driver and for the DQE engine, and so does NHibernate.
Frans: please see my response here: http://weblogs.asp.net/pwilson/archive/2005/01/08/349145.aspx