I wrote this CMS in 2005, it was my first .Net 2.0 project. Since then it has fallen by the wayside and as I've discovered new methods this code is looking very dated, and I'm a bit embarrassed of it.
The point of this CodePlex project is to have a central repository for it (instead of copying it around the various machines I've owned), to share the code for anyone who's interested, and to gradually improve on what's here.
I learned a lot about design patterns while I was developing this CMS, so it's very poorly designed. One of the most recent additions I made was to provide for XSLT site templates instead of MasterPages. Some production websites are still using MasterPages and rather than migrate all of them I hacked the new logic into the CMS, so now it's a bit of a mess. Many features are in the same state, I got bored or didn't have enough time so things are half or only just finished.
What I want to achieve:
- Refactor the business logic into areas of use, like a Tasks namespace, DTO namespace, Gateways, Domain etc.
- Streamline the page renderer so that it's clearer, more efficient and more extensible. Remove MasterPage support and any bespoke site logic.
- Rewrite the product inventory import/export logic and push the code further down into the business logic layer (currently in app_code)
- Write a unit test and behaviour test project
- Improve the admin and standardise the pages (some are heavily AJAX, some are all postback)
- Eventually when the business logic and all wrapped in a satellite assembly, rebuild the presentation layer as an MVC website
I don't foresee this project being of any interest to anyone else or providing much help to anyone as far as best practises are concerned. Any code you find you are welcome to use (depending on whatever the license says).
I would definitely appreciate any guidance about how I can improve my code!! I still have a lot to learn...