Working on a design pattern sample solution RequestServerVariables.com that's simple enough for testing some ideas and an in memory repository pattern.
I've been working on a website for info on ServerVariables. There are a few pages out there but nothing extensive really and it's something that you use often and spend time on every time you need to pull something from there.. ie "Was it this property that I should use for this.. or maybe this one..". The idea is to provide easy lookup for each variable and "Do this" examples. It's along the way of the ConnectionStrings.com thinking.
The other reason I decided to do this is because I'm studying architecture design a lot and Im aware of the concepts as models and in theory but in practice I do not have a lot experience really. I prefer the thinking of DDD and a Domain Model first approach and I think that some kind of "MVC - Service - Repository" pattern would be the best although I'm not a fan off TDD (oops can you say that these days...). Creating an in memory repository from the Domain Model (which I believe is a model for the participants to gather around and lean back discussions on ie not code) as a start is a lean way of getting started and make stuff visible early.
I wanted to try out the ideas and make a solution structure that works out and feels right and I wanted to use the features of IoC and try use an in memory repository. The requestServerVariables project is a small project where I can play around easily with those ideas. Ofcourse the Architecture is "a bit" overkill but I think it might give a first proof of my ideas of design in practise althoug it's to small to really prove it's right. And it is feeling so nice putting those hours of studying patterns into practise and really use it. My earlier used concepts where quite similar but did not abstract Service from Repository and had no IoC. Although you do not program using TDD approach or create unit tests for everything I think a MemoryRepository is benefitial initially when designing the model as well along the project when manually running new versions of the system without the need of an updated data schema nor database data.