Last post Mar 06, 2014 07:05 AM by angusbeare2
Mar 06, 2014 06:23 AM|angusbeare2|LINK
I couldn't find a better place to post this so here it is.
I've spent the past 5 years working with Dotnetnuke. We develop in house web applications that have a lot of bespoke modules and require localisation in 13 languages. We have pushed DNN to the limit and have struggled in many areas. The main issue we have
stems from a situation that must be common to many is this field but nobody seems to have addressed. We have a web application that is under continuous development. Users on the site may be adding pages from time to time. They are also adding content and configuring
settings such as adding roles to users and setting content view permissions. This means that data is going into the database as well as documents and files accumulating in the file system.
We have been using Subversion to manage the web site files and lately also to manage the database. Our modules can be developed separately in VS and then installed/upgraded on the site.
However, we always run into issues where the developer needs to add new pages to the site and make various configuration changes. Imagine this scenario. We have an articles module on the live site. The developer is tasked with overhauling this application,
adding a new section of pages and new article categories etc etc. The live site is being worked on dailing with dozens of new articles and we cannot lose any data and the site cannot be offline for more than a few minutes as we have staff in various time zones
and who work at weekends.
How do we merge the developer changes to the database with the file system changes of the site from dev to staging for testing and then from staging to prod for release? We manage ok with Subversion to merge the files but developers still get in a right
mess on a regular basis.
We are thinking of ditching this approach and trying something else. But we don't know if we'd be any better or worse off. It seems all CMS's suffer from the same issues.
One major pain in DNN is that most of the database tables rely on ID's for PKs. This means that if someone adds a page on dev then it may have the same id as another page on staging. We use Redgate to merge database changes if we can but often end up manually
replicating stuff when we release. Or more often buggering it all up and having to roll back.
What do the rest of you do with these kinds of problems? Are there any CMS's out there that help? I am told with Sharepoint we'd have the same issues as DNN. Ideally we need to stick with .NET because that is our skill set. And we need a modular approach
to development. We need a developer to be able to build something and then plug it into the site. I like MVC a lot but can't see it working for a large scale app with several developers.
Mar 06, 2014 06:38 AM|AidyF|LINK
Rather than using ints for IDs can you use uniqueidentifier? (a GUID). I'm not familiar with DNN but I use exclusively work with Sitecore and all IDs are GUIDs which makes for much easier merging of data between environments.
Mar 06, 2014 07:05 AM|angusbeare2|LINK
hi and thanks for responding
good to know that Sitecore uses GUIDs its on the radar for investigation. I can see a proprietary system could benefit us because of accountability. We've struggled with DNN in terms of bugs not being fixed between major releases and random changes to the
way things work that had not been documented in the release notes.
We can't really change the DNN database as that would stop us upgrading.
I will take a better look at SiteCore.