Here it is, the third preview release. It's starting to smell like a real application now. New since the last release:
- Text parsing of HTML and "forum code"
- Dropped in TinyMCE text editor (still needs some customization and option for plain text)
- Security logging
- User profile editing, for the users and admins, including avatar and photo uploads
- Mini profile and links on posts
- Admin pages for most of the forum settings, including category and forum management
- E-mail confirmation for new accounts, with verification mechanism
- View counting
- Runs on ASP.NET MVC3 (see notes below)
- Lots o' refactoring and more unit tests (now over 400)
Keep in mind that this is still a preview, it's way rough around the edges, and it's in dire need of additional refactoring.
This release requires ASP.NET MVC3
, which is itself in preview mode. The views have not yet been converted to use the Razor view engine (because it's slightly hard without the tooling), but the dependency injection features are used here, and that's some delicious goodness that allowed for the destruction of much code. Look for the Ninject implementation of the service locator interface to see how it works. The unfortunate piece of this is that it throws exceptions on every request (and eats them) because the interface requires the throw when it doesn't find an implementation of the controller factory. That's how it knows to use the default factory. It sounds like this will likely change in the next release, so it's a bit of a moving target right now.
Also new to MVC3 is the use of global action filters, and they too are all kinds of awesome. In this app, they're used to new up the user information, in lieu of doing it via an HttpModule or something. Another great feature that allowed me to abandon a Controller base class.
The road map from here out hopefully means a feature rich beta next, but probably not until some time after the next MVC release. The hope after that is to do another beta with evolving UI. The speed all depends on Seattle weather, family time and other real life factors. Stay tuned!