Sunday, November 05, 2006

This is the question that was posed on the DNN forums yesterday.

Is it just me or are data providers done wrong?

Hey all - I'm trying to understand the basic architecture of DNN and am wondering if I am off base with how I understand the data provider model to work.  From what I can tell EACH module has a specific data provider implementation in addition to the abstract dataprovider class.  Unless I'm missing something this seems really messed up - For instance I would LOVE it if DNN ran on MySql but it doesn't - so if someone wants to run a DNN site on MySQL, they would have to add MySql data providers in all modules?   If this is the case, this just seems horribly wrong - it would be MUCH better if we had the data providers centralized and then all modules would point to a generic common abstract class - so one could add/change data providers on the entire system without having to modify or add code to existing modules.  The way it stands right now, it seems like it'll take a hell of a lot of effort to get another provider simply because one would have to touch all the core modules.  Am I missing something?

Bob


Yes Bob, you're missing EntitySpaces. Well, I (Mike speaking here) wrote up a very nice and informative post letting Bob know that what he was describing was in fact EntitySpaces. It was a pretty involved post expanding on what Scott said and correcting a misconception on a subsequent post by another poster . Bob is obviously a very bright guy and asked the very question that all DNN developers should be asking. I went on to explain how our massive NUnit test suite executes against Microsoft SQL, Oracle, MySql, Microsoft Access and now VistaDB (not yet released but working). We use the same exact binary in this test suite against all of our supported databases. Imagine one code base with your modules running on all database systems. I also stated that it's too bad DNN itself doesn't run on EntitySpaces because its reach would be far wider and "would be DNN module developers" would have a very simple programming model instead of the rather clunky DNN DAL. Also, they would have at their fingertips Transactions, LINQ Support, serialization and far more customers to reach out too to make their ventures more profitable.

The above isn't my exact statement, I didn't call the DNN DAL clunky in the post and it was at least 4 times as long as the text above explaining that EntitySpaces was exactly what Bob was in fact wanting in an architecture. My post was rejected with no explanation and without even a notification, this is their right of course. But that doesn't mean I have to let this go unnoticed. We are DNN fans and we won't be silenced. It makes me wonder if any of the younger new .NET portals are paying attention here.

[UPDATE - Nov 6, 11:00 EST]
Well, a day and half after my original post and after this blog post had gotten around the horn my original post on that thread somehow appeared, and for that I say thankyou to the DNN folks. Nonetheless, this post remains. However, We extend an open invitation to the DNN core team members and founder to speak with us about blowing the doors wide open for the DotNetNuke community, we believe it is within our power to help DotNetNuke do just that.

Monday, November 06, 2006 1:48:31 AM (Eastern Standard Time, UTC-05:00)
Mike pointed this blog post out to me and I am just as aggrevated as Bob. I am aggrevated over the post being deleted. Being a core team member and on the inside, it has never been a policy of ours to avoid a post like this unless it was posted to the Announce It Forum. Even if someone doesn't agree w/ the core team, censorship is not the answer. I can tell you, although I am sure its not going to make this any better, that the notifications for a response on a forum post delete are broken and as the primary developer of the forum module I will take the blame on that part.

As Mike knows, I use EntitySpaces for every new module I develop that is not of the core distribution and I am actually working on upgrading all my previous modules to use EntitySpaces as well. I have found EntitySpaces to be great inside DNN even if only for the reason it is much faster than the core's CBO in terms of performance(Custom Business Object). Please don't take this as me slamming DNN, but I also agree that unless the DAL is changed in it there is no way we will see other dataproviders for DotNetNuke really take off due to the amount of effort required to write multiple dataproviders for each module.
Monday, November 06, 2006 1:50:01 AM (Eastern Standard Time, UTC-05:00)
DNN is run by the few for the few... I mean stakeholders.
brian
Monday, November 06, 2006 10:09:32 AM (Eastern Standard Time, UTC-05:00)
What I would really like to know is who censored the post, and why. I think that would be very telling.
Monday, November 06, 2006 2:34:00 PM (Eastern Standard Time, UTC-05:00)
Well, there are members of the core team that have, shall we say, a conflicted interest in allowing an outside data access layer to gain mindshare with DNN developers. But it looks like common sense has won out.
Thursday, November 09, 2006 9:41:25 AM (Eastern Standard Time, UTC-05:00)
The post was never censored. The post was in moderation queue and waiting for approval. There is a bug in the module which doesn't always display a single post awaiting moderation until another post in that same forum is ready for approval. That said, there was no censorship. I am curious to hear the reason why people in the core team have an interest against allowing outside data access layers? I don't know anything about this and don't see a logical reason why anyone would gain from this. While I agree the core doesn't always move quickly, I am pretty sure there is no hidden conspiracy here, its not like the US electoral process.
Sunday, December 24, 2006 6:50:23 AM (Eastern Standard Time, UTC-05:00)
Does anyone has plans to create DNN Data Provider for DNN, based on EntitySpaces? It should not be too hard to implement DNN core interfaces as calls to EntitySpaces generated classes.
Comments are closed.