How are you a content driven CM app?

We have a web application containing a bunch of content that the system operator can change (for example, news and events). Sometimes we publish new versions of software. Software is tagged and stored in subversion. However, I'm a little torn on how to best control content that can be changed independently. What are some of the mechanisms that people use to make sure content is stored and versioned so that a site can be recreated or at least version controlled?

+3
version-control web-applications content-management-system
source share
3 answers

When you identify two sets of files that have their own life cycle (software files on the one hand, “news and events” on the other hand, you know that:

  • you cannot copy them together at the same time
  • you must not put the same label

You must save the news and events files separately (either in VCS, or in the database, as Jan Jacobs suggests, or in the CMS content management system) and find a way to link the tugboat together (id, timestamp, meta-tag, ...)

Do not forget that you are talking not only about two different sets of files during the life cycle, but also about different sets of files in terms of their very nature:

Consider the terminology introduced in this SO question: “ Is asset management a superset of a control source ?” S. Lott

  • program files: infrastructure information , that is, "representing the processing of an enterprise’s information resource". Your code is part of this asset and is managed by VCS (version control system) as part of the configuration management discipline.
  • "news and events": Information about the enterprise , that is, data (not processed); this is often shared between content managers and relational databases.

Thus, not everything should end in Subversion.

+1
source share

Store everything in the database and give each database transaction a timestamp. in this way, you can store standard database backups and upload site content anytime you want, if the worst happens.

0
source share

I believe that part of the answer depends on which CMS you use and how your web application is configured, but in general I would consider data such as news or events, like “content”. In other words, this is not part of your application - it is the data that your application processes.

Of course, there will be version issues between your CMS code and your application code. You can control this by defining the interface between them. Personally, I would publish the data in a web application as XML, which gives you the ability to use an XML schema to determine what the CMS needs to create and what the web application should expect to process.

This should mean that most of the changes in the web application can be made without a corresponding change in the rendering of the data. When changes to the functionality require this, you can create a new version of the circuit and continue the promotion. In this case, I would check the circuit in the web application code, but YMMV.

This is not easy, and it becomes more complicated again if you need additional data fields in your CMS. Expect to plan a rather complicated release process (also depending on how complex your Dev-Test-Acceptance-Production script is.)

If you are not using CMS, you should think about it. (Of course, if the operation is very small, it can still fall into the category where it can be done manually). Simply placing raw data in a version control system does not solve the problem - you should be able to control the format in which your data is published in a web application. It is almost certain that this format should be something intended for consumption by the software and, therefore, is usually not suitable for manual editing by people who write news or events.

0
source share

All Articles