DotNetNuke – Data Access Layer Alternative

land-0107 Now that I’ve explained the standard way of creating a Data Access Layer (DAL) for DotNetNuke, we can address the alternative method of providing this same functionality.

You see, the only reason for creating the DataProvider abstract class and the SqlDataProvider implementation class is so that alternative data providers can be created. Originally, this was so that DotNetNuke could be supported on either MS-SQL or MS-Access databases. MS-Access is no longer supported by the DotNetNuke core, but there are still providers available for MySQL, Oracle, and probably a few others.

So if you are writing a module, or a set of modules, and they are intended to run on any DotNetNuke installation, you’ll want to follow the provider pattern I’ve laid out in the last several posts.

However, if you are writing a module that only needs to run under one installation, you can forget about the provider model. Use CodeSmith to create your stored procedures. But once you have those, you can use the standard DataSet and DataAdapters that are available to us in ASP.NET 2.0 or higher.

Of course, those of you who have been following along and have created a module using the provider module for a module that doesn’t need the provider model are thinking, “Now he tells me!”

So, in my defense, I will only say that I think it makes sense to learn how to do something “right” prior to “breaking the rules.” So if you are writing your first module in DNN, I would strongly recommend that you use the provider module just so you know how it is done and can gauge the level of complexity. My personal experience has been that most of the work in creating a module is above the DAL and that the extra work required to implement a provider model, once you are familiar with it, is trivial.

You’ll have to do it at least once so that you can make your own judgment call.


Other post in DotNetNuke - Module Development

Related Post

Leave a Reply

Comment Policy:

  • You must verify your comment by responding to the automated email that is sent to your email address. Unverified comments will never show.Leave a good comment that adds to the conversation and I'll leave your link in.
  • Leave me pure spam and I'll delete it.
  • Leave a general comment and I'll remove the link but keep the comment.

Notify me of followup comments via e-mail