- Serving without Sinking – John Hindley
- Documenting Software Architectures: Views and Beyond (2nd Edition) – too many authors to name
- Simply Jesus: A New Vision of Who He Was, What He Did, and Why He Matters – N T Wright
64 Things You Need to Know Now for Then – Ben Hammersly
Internal project – Architecture
I’m rather fond of Military history and one of the quotes that I like is:
Plans are nothing. Planning is everything. Dwight D Eisenhower
I realised I missed a step in my original plan for the project: planning. The reason I like this quote is that it is clear that the plan might not be followed, however the process of planning forces you to think about what you want to do.
So I’ve done some initial planning around this. Since I’m reading a book on documenting software architecture, I’ve dug into that for the most appropriate view to use.
![]() |
| Layered Architecture |
Some notes on this:
- I want to clearly separate the UI layer from the business layer in order to facilitate adding an API
- The data access layer might be swapped out with a completely different data backend in the future, so that needs to be separated out. I’m currently thinking that I’ll implement these Entity Framework for the first version. I’ll avoid generic repositories to create a clean interface that doesn’t require implementing a LINQ interface over a NoSql database that might not cleanly support it.
- I want the Authentication to be clearly separate from the business layer in order to keep this as dependancy free as possible. This tends to be a rather complex area that is well worth ensuring it doesn’t have any dependencies.
- Cross cutting concerns like logging aren’t covered in this diagram
Currently reading – 2013-12-29
Internal Project – Step 1 – Document the UI
I’ve started putting together the UI for my home project.
You can see this in all it’s glory at https://github.com/dcamdupe/status.
Here is a sneak peek:
![]() |
| Home page version 1 |
![]() |
| Home page version 2 |
- I don’t have access to appropriate tools at home. Rather than buying them, I’m using the highly technical approach of pen + paper + iPhone camera to capture my wireframes
- My hand writing is frighteningly messy
- In version 2 I’ve avoided the traditional wooden table for a far more attractive red table cloth with stars
2014-01-05 Updated to link to earlier article.
Internal Project
I’ve decided to start a home project to test a few different technologies. The aim is to pick a a relatively simple project and implement this in a few different ways.
The simple project is a website where someone can post a status.
The rough outline is a website where:
- Authenticated Users can:
- post a status
- Anonymous & Authenticated users can:
- View current Status
- View past statuses and search through them
- ‘Like’ a Status
I guess you could call this twitter without most of the useful features.
I’m aiming to try a number of different technologies, in decreasing level of comfort.
I’ll also be swapping pieces in and out with new implementations in different technologies.
The current plan
- Document the UI – I’ve found this tends to make the implementation clearer
- Implement in bootstrap, MVC4 with SQL Server backend
- Swap the SQL Server backend for a No SQL database
- Design JSON API to access app
- Implement JSON api using WebApi backend
- Replace MVC app with javascript client side framework (currently planning to try angular)
- Replace the WebApi backend with an F# implementation
- Replace the WebApi backend with node.js
I’ll post all parts of the implementation and any documentation on Github.


