Loading...
image
As I work towards the 2.0 release of MicroCyte I wonder whether I should scrap XML/static files in favor of a database? Or should I do both?

Ongoing Projects

Microcyte Content Management System
Snatch (Mac OS X)
Snatch is a website scraping tool which can be used to retrieve links, images and email addresses from a given webpage and linked pages.
image
Distribution (Mac OS X)
Distributions is a mailing list management tool for Mac OS X. It features support for Multiple Classifications and some CRM functions.
image
??? (Mac OS X)
This is a new project I am working on for OS X (leopard). more soon!
image

Opinions & Views

image Previous | Next image

You may already have heard of Cloud Computing, Cloud Hosting is an exciting extension of this relatively new area.
I'm now back online after an outage in America caused my Hosting Provider some downtime.
Recently I had to convert a shed load on WMA's to work with iTunes on a Mac, heres how I did it at no cost.
As I work towards the 2.0 release of MicroCyte I wonder whether I should scrap XML/static files in favor of a database?
I've recently had the opportunity make extensive use of a 24" iMac 2.8Ghz, here's what I thought!
Recently I went to see Nizlopi perform at the Norwich arts centre, here's what I thought
MicroCyte has been released! head on over to microcyte.co.uk to checkout the demo and download your copy!
Very soon Firefox 3 will be released. This update will mean support for Microcyte CMS.
Regulars may have noticed that the site has been quiet for the last few days, click through to find out why!
In the last couple of days I've implemented a comments plugin for my Microcyte CMS
In Part 3 of building a DAL in Classic ASP I look at how I implemented my Dynamic SQL module to fulfull my DAL requirements
In part 2 of building a DAL in Classic ASP I look at how to create a functional Dynamic SQL module.
Classic ASP is not known for its rich data access tools, so I look at how you can build a strong Data Access Layer.
Are there compelling reasons for an old school scripting house to move to a new fangled framework?
After 9 months of work, the W3C has published the first working draft of HTML 5.
E-shots can help drive targeted traffic to your website, but how do you avoid making them look like SPAM?
A/B testing can be used to dramically increase conversions on your e-commerce site. Here is basic overview.
In the final part of 'how websites get hacked' I'm going to look at Social Engineering, the non technical hack.
In part 2 of 'how sites get hacked' we look at XSS and SQL Injection
In this brief primer we look at how websites get hacked and what to do to protect yourself (part 1)
After the hype has cooled down, what are the pro's and con's of the new Apple MacBook Air
Opinion: why is the Macbook Air a full 300 pounds (600 dollars) more expensive than in the US?

MicroCyte - The Database Question

One of the things that makes MicroCyte somewhat unique in the medium complexity CMS stakes is that it directly modifies the contents of the site files and does not hold state (such as navigation structure or user accounts) in a database. MicroCyte has no dependancy at all on a database and as such is very portable and easy to setup. Where MicroCyte need to hold structured data it relies on the use of XML files using PHP's built in XML handling functions.
 
To date, this has been more of an advantage than a disadvantage. It allows me to keep the install size small, with the minimum of setup. It also means no knowledge of database setup is required by the developer. Because the templates are directly modified by the CMS i can use naming conventions on the markup to detect what needs to be updated so there's no pesky schema to keep track of for each template. Also, when I'm showing content to the browser, I don't have to work out what content to pull out of the database and work out a way of integrating that content from the database into the page template.
 
However, there have been occasions in using MicroCyte for client work where using a backend database would have been handy and saved me a lot of time. Ordering by date, for example, has been a big problem actually sending me back to my algorithm books for efficient sorting algorithms. A simple 'ORDER BY date ASC/DESC' in SQL would have done the same thing and taken 30 seconds to implement.
 
There are also occasions where I need to add things into pages which make them non-valid XML. This is a problem because as soon as I do that, the pages loose the ability to be saved in MicroCyte (MicroCyte need to be able to parse the page as XML in order to interpret and modify it). The client is used to having the ability to manage pretty much every aspect of their site and when they suddenly come across a page they can't edit, this is difficult to explain! It occurs to me that using a backend database would solve this issue because then the template/page would not need to be valid XML (since we're pushing the data to a database and not back into the template).
 
One last example is that of dynamic snippets and managing content inside includes. I can think of examples where using a backend database to supply content would make implementing these features easier, allowing the user to change content across the site as seamlessly as they can the page specific content.
 
I guess my quandary is this: Do I sacrifice the existing code base and advantages of using a database-less design in order to embrace the advantages of a database driven design, or do I carry on as I am hoping that the advantages I've identified in the database-less model are enough? Alternatively I could come up with some sort of hybrid approach, and I do have proofs of concept which show where this might lead so its not out of the question.
 
What do you guys think? Feel free to leave a comment below and let me know!
Title
Alias
Comment
XML and Database

Difficult choice. Since you've spent a lot of time and resources into developing the codebase, would it be wasted if you moved to a database? Microcyte does an excellent job at offering out of the box editing and content management, and for most users, it meets all of their requirements. Perhaps a database version should be made available for developers or professional users?

Both

I'd think the option to use either XML or a database would be the best option. BTW, any chance of adding an RSS feed (or two) to your website? ;-)

Crikey!

You're up late scoot! :) I think I've come to the same conclusion about simply offering a choice initially, seeing which is more popular and then deprecating the other if the maintenance gets too much of a nightmare. As Mac said, I can then offer a 'pro' version at a cost which supports both XML and a database, and an XML only 'lite' version for free.

RSS feed

Scoot, as per your request, I have added an RSS feed to the site, enjoy! :)

Mr

Hi James I run a small design studio in the North West. I create web sites for small businesses, some of whom would like a CMS plugging into their existing sites but they have very limited budgets. The Microcyte CMS is a perfect vehicle for their needs. In my view you should continue with the Microcyte system as it is and conntinue with updates and improvements etc., but also create a database driven CMS in tandem with it. I think there is great potential in providing dvelopers such as myself with a simple, adaptable, easy to install, database driven CMS. By the way, please can you contact me as I have a problem with logging into the Microcyte admin that I have just uploaded. Steve