The Beginning of Carnotaurus CMS
Many a time I have heard people expounding, "Do not re-invent the wheel!". Actually, best practice programming often requires just that.
In recent months I have made some headway into developing my own Content Management System (CMS). The necessity came about through an examination of existing CMSs (free or otherwise).
Despite my investigation, I eventually realized that there appears to be nothing out there for free that suited my purposes. Is there anything out there that is scalable and handles says 50,000 individual pages?
The nearest I got to an answer was Orchard CMS. However, migrating a web directory such as myPUBGUIDE to Orchard CMS based became rather time consuming. In the end, I aborted the attempt.
The Orchard CMS import tool is simply too slow. It would only accept small batches at a time. Initially, it took eight minutes to import 1000 records. So, working on that principle I expected that it could take seven hours to import all the records. Unfortunately, I started to receive performance issues as more records were inserted into the database. I even started to reduce the batch size, which helped only temporarily in the early stages.
Another approach that I took was to investigate how I could transform the data from a simple database to an Orchard style one through SQL (hence bypassing any overhead that the Orchard importer would have otherwise introduced). This proved to be much work as the Orchard CMS table hierarchy is pretty complex. So, I put the idea on ice.
I figured that it may not even be worth the time because even if I completed the task:
There would be no certainty that the pages would scale and there would be no performance issues.
Orchard CMS defines every property as a string. So, I became increasingly convinced that this would be insufficient for my purposes, especially as it goes against strongly typed classes.
Learning someone else's CMS sounds more daunting than writing one's own
I asked around on Stack Exchange, thinking that it had the best forums to post such questions over comparative CMSs because it boasts the reach of programmers who are familiar with the technologies that I use. Instead, I just received non-constructive responses.
So what can a man do? I set out to write my own CMS, Carnotaurus CMS.