Trying to get back in the groove of thinking about this project.
There are lots of options for hosting a webcomic or blog. Only an idiot would try to write something from scratch.
Luckily, I AM an idiot.
To cut myself a BIT of slack for pulling a Don Quixote, I DO want to learn MVC. That is as close to a valid reason for doing this as you are going to get.
To compete with the existing software (which in some cases has a head start of several YEARS and multiple developers) I will have to replicate lots of features and add new ones.
I doubt anyone but me will ever use the software, but I still want to make it as full featured and competitive as possible.
The first requirement is that it absolutely, positively has to be designed from the ground up to handle an unlimited number of comics or blogs.
The next requirement is that it has to be as close to fully self-service as possible. I want my hypothetical customers to be able to fully manage their own comic or blog from look and feel to backups.
Next it has to hit all the expected standards and de-facto standards such as RSS/Atom syndication and working with various blogging tools such as Microsoft's Live Writer. Part of my plan is to write an extension for Live Writer to better handle comics.
Towards these goals I've started thinking about architecture. I've spent a ton of time working with big deal databases such as Oracle and SQL Server over the years and really love the power they bring to the techno-party, but they do come at a cost for a project that plans to live on the web in a hosted environment.
My current line of thinking is that it would make more sense in this project to persist the data in XML files. The ratio of reads to writes and quantity of data should be such that this is a workable solution. Basically each comic or blog gets its own XML file. That makes it a non-issue to have the creators do their own backups. They hit backup, and I hand them back a copy of their XML files(s) plus their media files.
I've worked a good bit with Linq To SQL, but this is my first foray into Linq to XML. One of the really beautiful things about Linq is that it standardizes the query language so that you can work with many different collection types with one SQL like language. This includes SQL Server, XML and plain old objects. Very cool.
I'm planning to do some experimentation with Linq To SQL as soon as I get Visual Studio re-installed. I've been using the beta version of Windows 7 for a few months and the day of reckoning has come. The beta times out at the end of the month, so I decided this weekend to install the release candidate. That means re-installing every app.
My thinking is that the data access layer will consist of objects that read/write XML via Linq. I'll have to learn more about MVC to see whether or not I'll need to implement my own caching, but it isn't that big of a deal either way. Since the model is tons 'o readers and one updater per comic or blog, it should be easy to keep one object in memory that is shared among all readers. I'll share more of my thinking on this subject as I learn more.