A few days ago I was surfing through the forums on DotNetNuke.com and came across a post asking if you could run DotNetNuke on an Oracle database.
In short, yes you can. But why would you? This blog post will talk about that, and some of the reasons why I would never recommend that you use DotNetNuke on Oracle. (No offense intended to anyone who provides Oracle support for DNN, this is simply my personal opinion)
DotNetNuke is built with a provider model, what does that mean? It basically means that you can swap out functionality fairly easily. One of those providers is the database layer of the platform. DotNetNuke is built to run out of the box on Microsoft’s SQL Server, but there are other providers out there such as one for Oracle databases from a company called Acuiti Solutions.
Plugging in a data provider for Oracle will basically allow you to configure DotNetNuke to run on Oracle, bypassing the requirement for Microsoft’s SQL Server. Sometimes this is a business requirement, based on licensing concerns within an organization, sometimes it’s just a preference for people to stick with a database that they already know and love.
While I haven’t setup DNN to run on Oracle, it should be a fairly straightforward process, setup the database, setup the connection information, change the provider settings in the web.config, boom you’re done (maybe, like I said, I’ve never done it).
What now? Well, I imagine you go about installing DNN as you normally would, the difference being that it’s all setup on Oracle, instead of SQL Server. So you install, login, and start creating some pages. But you realize you need some custom functionality, so you look for a DotNetNuke Module to provide that functionality, perhaps it is one of the Core modules from the DNN project, then you are likely in luck as it looks like Acuiti provides you the required dataproviders for a lot of the core modules to interact with Oracle.
But what if you want to use a module from another vendor? Chances are that every one module out there written for DNN will NOT work with Oracle out of the box, not at least until you get an Oracle dataprovider for that module, and there in lies the catch to this whole idea. For each new module you want to use on your DotNetNuke install you will need to get an Oracle data provider, you are not likely to find that existing already so you will have to develop it yourself, or pay someone else to develop it. That will potentially increase your costs dramatically!
So, in short, you can use DotNetNuke on an Oracle database, but i wouldn’t encourage any of my customers to go down that route.
On a somewhat related note, just because you install DNN on a Microsoft SQL Server database doesn’t mean that all your modules must interact with MS SQL, you could easily write your own module that uses it’s own connection string and connects to an existing Oracle database somewhere to provide content and functionality from other business solutions. The provider model for DNN can be used to do this, or you could bypass the provider model and simply develop your custom module to talk to Oracle without the use of a provider.