Since Umbraco 5 is going to be rebuild using the ASP.NET MVC framework how about also using SubSonic 3? It is created by Rob Conery who also worked on the ASP.NET MVC framework and the newest version of subsonic is specially designed for it. More information can be found at http://www.subsonicproject.com/.
Ok NHibernate is also a good choice. Perhaps some tests can also be made using SubSonic 3.0. This way they can see which one is better for Umbraco 5 and the ASP.NET MVC framework.
SubSonic has definitely improved over the past few years! I've been using it since SubSonic 1 and alot has changed since then. Multiple implementations sounds nice, but isn't it alot of extra work?
@Petr, why using interfaces to connect to different ORM?
@SaphuA: There are many many problems in the deep of Entity framework. MS isn't finished with that. It's a good idea, but the implementation is weak with many many pitfalls => no choise atm.
@Jeroen: Subsonic 3 is a compete new technique build, so it is to handle like a Version 1 (IMHO)
@ Thomas: Yes I know. It is not backwards compatible with previous versions, but the purpose is still the same. It's probably better then SubSonic 2.2. The official blog can be found at http://blog.wekeroad.com/.
Hey all, we're currently discussing what we will be using as the entity mapper for v5 and it's looking like nHibernate will be what wins out. We've discussed whether we should use nHibernate, SubSonic or a custom ORM.
True that Rob works on both SubSonic and ASP.NET but nHibernate also has some really big players in it such as Ayende Rahien.
Ultimately it looks like one of the biggest factors is that nHibernate is better known by us so it's easier to stick with the devil you know ;).
@Jeroen: thx, I know I used v3 allready, but I am not a big big fan of it...
@Slace: Good to hear, I think nHibernate has the longer history, so it is a mature project where the teething problems are gone. Vote +1 for nHibernate
That's what I though. The new version (that indeed comes with .Net 4.0) has a lot of improvements compared to the current version (which indeed has its drawbacks).
Im not an expert on these matters but subsonic is nice quick lightweight but for heavy duty lifting nHibernate is the way, IMHO Umbraco+nHibernate = win win win!
Allright looks like the topic title should be changed to Umbraco 5 and nHibernate ;). I haven't really worked with nHibernate yet. Are there some good sample projects?
Here is my bunch of delicous links on nhibernate its not everything but plenty of goodies to get started with. I too have not used it but have looked at it and if you are want to do some really heavy stuff then this bad boy is the one for you. You want quick and easy with scaffolding for all your CRUD stuff then use subsonic, I have used and love.
Love SubSonic for small things, but it doesn't scale very well. I've used it several times and it's great until you need to have more than an ActiveRecord implementation.
EF as of now has pitfalls and I hate it, but the current beta is way better. I would consider this as option 1.
nHibernate is great also, but EF will be the standard ORM in .NET. Option 2.
+1 on nHibernate too. Scaling isn't an issue here. Web CMS is simple - almost no data to manage (ie. often less than 1 mio. records, more often far less).
An interface for a ORM - that should take the award for over engineering ;-)
Maybe this isn't the thread for it, but I would also love to see increased separation between the backend and the database.
To explain -
For css/xslt/document types/packages, the more flat files we use, the better - being able to keep the "design/development" aspect of the site under source control e.g. svn/git being able to have a production and staging branch with simple merges to deploy seems ideal. And while its possible at the moment it is not easy. So rather than "just" introducing an ORM as a like for like replacement of the inline SQL I would urge the consideration of introducing much greater separation at the backend level, which would in turn, greatly reduce the complexity of any ORM implementation.
My other thought is the use of a document database such as MongoDB would seem a very good fit for content, and while I haven't entirely thought it through, the idea of "cheap" sharding and failover, and efficient inline binary storage appeals, and a "document database" for "documents" without the SQL Server constraining the schema makes sense to me.
Umbraco 5 and SubSonic 3
Hello,
Since Umbraco 5 is going to be rebuild using the ASP.NET MVC framework how about also using SubSonic 3? It is created by Rob Conery who also worked on the ASP.NET MVC framework and the newest version of subsonic is specially designed for it. More information can be found at http://www.subsonicproject.com/.
I thinkt the thoughts are going to use NHibernate for v5. The first Tests are made by Asbjourn as I remember.
Thomas
Ok NHibernate is also a good choice. Perhaps some tests can also be made using SubSonic 3.0. This way they can see which one is better for Umbraco 5 and the ASP.NET MVC framework.
Or what about the Entity Framework 4? It supports POCO!
Subsonic looks like a lot of effort has been put into it though, I will definatly check it out some time.
What about creating interface and multiple implementations? :-)
SubSonic has definitely improved over the past few years! I've been using it since SubSonic 1 and alot has changed since then. Multiple implementations sounds nice, but isn't it alot of extra work?
@Petr, why using interfaces to connect to different ORM?
@SaphuA: There are many many problems in the deep of Entity framework. MS isn't finished with that. It's a good idea, but the implementation is weak with many many pitfalls => no choise atm.
@Jeroen: Subsonic 3 is a compete new technique build, so it is to handle like a Version 1 (IMHO)
Thomas
@ Thomas: Yes I know. It is not backwards compatible with previous versions, but the purpose is still the same. It's probably better then SubSonic 2.2. The official blog can be found at http://blog.wekeroad.com/.
Hey all, we're currently discussing what we will be using as the entity mapper for v5 and it's looking like nHibernate will be what wins out. We've discussed whether we should use nHibernate, SubSonic or a custom ORM.
True that Rob works on both SubSonic and ASP.NET but nHibernate also has some really big players in it such as Ayende Rahien.
Ultimately it looks like one of the biggest factors is that nHibernate is better known by us so it's easier to stick with the devil you know ;).
@Thomas, do you feel the same way with EF4?
@Jeroen: thx, I know I used v3 allready, but I am not a big big fan of it...
@Slace: Good to hear, I think nHibernate has the longer history, so it is a mature project where the teething problems are gone. Vote +1 for nHibernate
@SaphuA: You're talking about EF included in .NET 4? No I haven't tested VS2010 with .NET 4 yet
That's what I though. The new version (that indeed comes with .Net 4.0) has a lot of improvements compared to the current version (which indeed has its drawbacks).
Yap, but I don't believe that this is a absolute proper and clean version. MS needs at least 3 revisions for one product. *veg*
Im not an expert on these matters but subsonic is nice quick lightweight but for heavy duty lifting nHibernate is the way, IMHO Umbraco+nHibernate = win win win!
Regards
Ismail
Allright looks like the topic title should be changed to Umbraco 5 and nHibernate ;). I haven't really worked with nHibernate yet. Are there some good sample projects?
jeroen,
Here is my bunch of delicous links on nhibernate its not everything but plenty of goodies to get started with. I too have not used it but have looked at it and if you are want to do some really heavy stuff then this bad boy is the one for you. You want quick and easy with scaffolding for all your CRUD stuff then use subsonic, I have used and love.
Regards
Ismail
If NHibernate, will FluentNhibernate be an option?
http://fluentnhibernate.org/
+1 vote for nhibernate!
Cheers,
/Dirk
btw: from perfomance purposes NHibernate seems to be worse, but technically it is the best way to have a real ORM.
Thomas
IMHO,
Love SubSonic for small things, but it doesn't scale very well. I've used it several times and it's great until you need to have more than an ActiveRecord implementation.
EF as of now has pitfalls and I hate it, but the current beta is way better. I would consider this as option 1.
nHibernate is great also, but EF will be the standard ORM in .NET. Option 2.
Cheers.
+1 on nHibernate too. Scaling isn't an issue here. Web CMS is simple - almost no data to manage (ie. often less than 1 mio. records, more often far less).
An interface for a ORM - that should take the award for over engineering ;-)
/n
+1 for nHibernate too....
+1 for fluent-nHibernate
Maybe this isn't the thread for it, but I would also love to see increased separation between the backend and the database.
To explain -
For css/xslt/document types/packages, the more flat files we use, the better - being able to keep the "design/development" aspect of the site under source control e.g. svn/git being able to have a production and staging branch with simple merges to deploy seems ideal. And while its possible at the moment it is not easy. So rather than "just" introducing an ORM as a like for like replacement of the inline SQL I would urge the consideration of introducing much greater separation at the backend level, which would in turn, greatly reduce the complexity of any ORM implementation.
My other thought is the use of a document database such as MongoDB would seem a very good fit for content, and while I haven't entirely thought it through, the idea of "cheap" sharding and failover, and efficient inline binary storage appeals, and a "document database" for "documents" without the SQL Server constraining the schema makes sense to me.
chris
Hi Chris,
There is another topic which also discusses this separtion: http://our.umbraco.org/forum/ourumb-dev-forum/features/6148-Umbraco-5-document-and-data-types
is working on a reply...