My goal is to create a personal website application that implements the features needed, and wanted for someone who wants to create a personal site that extends beyond just a blogging engine. I've been wanting to work with ASP.Net MVC and some other technologies, so I'll be focusing on using them in MySite.
I'll be wanting to implement the following features:
- Minimal CMS interface.
- The ability to run in a single publisher site configuration, as well as a family and friends mode.
- A public gallery, with user-customizable areas, and images available in multiple areas.
- A public comment system that allows for OpenID posting, as well as post validation.
- A resume builder.
- A blog engine, with the features available in BlogEngine.Net
- Downloadable Themes
I intend to use the following technologies:
- ASP.Net MVC
I realize there is a Personal Site Starter Kit for ASP.Net, though it does have several flaws. Firstly, it's designed in such a way that it expects most users to have an account in the system. I feel that a personal website first, and formost should concentrate on what it will offer the public. Second, it doesn't contain any kind of blog tie in, which is a pretty serious shortcoming. My goal will be to create something similar to the Personal Website Starter Kit, but add the missing blogging functionality, as well as make the internal login process more for accounts that will be publishing content. Content publishers will use internal accounts for logging in. For posting comments and other visitor functions, I'll be incorporating OpenID. I'll be making a control for logging in that should make it more transparent for users of existing OpenID providers, which now includes Yahoo, AOL, and Microsoft's Live. Pretty much everyone online has an OpenID, even if they don't know it.
I've decided to use SQLite.Net as the database, since it is light, portable, and cross-platform. This will probably not scale to epic proportions, but should do well enough for most blogs. In terms of behavior and configuration, I'll be referencing several other blog posts. Here are a few worth looking at.
The above are just some considerations in terms of creating this application. If you aren't familiar with ASP.Net MVC, you can check out some of the videos on the ASP.Net MVC website.
To get started, the following items need to be downloaded and installed.
There may well be more tools needed, but this is where I am starting from. I first create my ASP.Net MVC Web Application in Visual Studio. After creating the MVC app, I select to create an associated unit testing project. After this, I add a MySite.Data project to the solution as well.
My next post will contain my plans for organizing data, and starting the creation of the data access later. I won't be using the Entity framework, or LINQ simply because I intend to have separate databases for sitewide configuration and authentication, with each content user having their own separate database. This may be a somewhat premature optimization, but should allow for slightly better scaling with the SQLite database(s).