Shaul wrote
Thank you Erik for this prompt reply.
I understand the dificulty. However, this seems to reduce the attractiveness of DNN as it:
- Ties me to this specific hosting provider
- It slows up development (In comparison to working locally)
Isn't there a half-way solution? Something like developing site locally while leaving the DB on the remote site?
Thanks, Shaul
You need to divide the idea of "development" into two distinct types: (1) code / functionality and (2) layout / content. Which type of development are you referring to (I'm assuming it's probably layout / content)?
For code / functionality, DNN is perfectly fine as the standard model is to develop items offline as components which are then easily deployable using the DNN UI.
For content, however, DNN has many of the same shortcoming as most other so-called "Content Management Systems" in that DNN does not inherently provide content revisioning (and, thus, fails the litmus test of a true "CMS" as far as I'm concerned). Because of this, it's difficult to modify existing content on a live server so you naturally want to go the route of "offline-develop-and-deploy" instead of "online-develop-and-expose". With content revisioning, though, the pure-online model becomes more attractive as you can pick-and-chose which pieces of content to update instead of updating all at once. You can make major updates to current versions of content without the changes being apparent to end users until you actually "expose" the new versions. Thus, teams of people can work on a site's "live" content at the same time and deploy individual items as the new versions are ready instead of being forced to coordinate across-the-board website releases. If any new content is ever deemed to be in error it is equally easy to revert only that content to its previous version.
DNN is prefectly adequate for online-development of brand new content (simply hide it until it is ready) but DNN is not so good when dealing with modification of existing content. Fortunately more and more modules are incorporating content workflow and approval features with some even supporting the ability to retain multiple revisions of content. Such modules make DNN a true content management system and bridge the gap between the old "develop-and-deploy" model to the newer "develop-and-expose" model.
if you are concerned with developing content for your site I'm strongly recommend looking into modules that support workflow / approval / revisoning. You develop online and only worry with backing up your site rather than with attempting to partially transfer content from offline to online (a much riskier proposition).
On the other hand, if you are concerned with writing modules then you definitely want to stick with "offline-develop-and-deploy".
Final note (because someone is bound to mention it...)
Many modules support manual export / import of data. This allows you to develop content on one site (local) and deploy to another (online). While technically feasible, I find in practice that this manual process is simply too clunky to be viable as part of a regular process. This would probably be very workable with some sort of "dashboard control" application to help automate per-module content export / import across sites/portals and to keep track of multiple revisions of exported content. Short of that, I think the most painless route is to go with true CMS modules and do your development online.
-mamlin