What?


The Teesside basketball league (TBL) site stores all the information vital to the smooth running of the Teesside basketball league. It records team information (including match day, tip off time, venue and contact details), league standings, news, fixtures, match results, team statistics, player statistics and generally makes the world a better place.

Why?

I originally created the TBL site in 2009 because I wanted to learn some new skills and apply those skills to a real life project. Primarily I was interested in getting more experience of .NET MVC and unit testing, neither of which I was using at work.

How?

The first version of the site was created in 2009. I was unfortunately forced to use ASP.NET MVC 1, which wasn't the best framework around, but it was considerably better than .NET forms. At some point I stumbled across a something called Sharp Architecture. It is described as a "solid architectural foundation for rapidly building maintainable web applications leveraging the ASP.NET MVC framework with NHibernate". In short it provided me with functionality that, if I had to write myself, would have increased the length of the project by about ten times. Some of the functionality provided included ORM setup, visual studio project templates, easy controller based transaction support and an automatically created in memory database for unit testing queries. In additions it detailed a test driven way of working which was extremely helpful.  

The first version of the site was a lot of hard work, but a very rewarding experience. I got want I wanted, I learned a considerable amount about ASP.NET MVC, SQL Server, jQuery, NUnit and RhinoMocks. Even better I still had a girlfriend (now the wife) at the end of it, which considering the number of evenings I spent with my head buried in my laptop, was a very good thing.

For some reason in 2011 I decided that I was no longer satisfied with MVC 1. I wanted all the new and whizzy features offered by MVC 3. It turned out that Sharp Architecture was a pain in the ass to upgrade to MVC 3 so I'd decided I'd had enough of it. Fortunately I wanted to have a go at implementing some of the features provided by Sharp Architecture so it wasn't a big problem.

The technologies I used in the rewrite included ASP.NET MVC 3, Razor, jQuery, Entity Framework, NUnit, NSubstitute, Ninject, T4 and Chirpy.

In hindsight I would have dropped the Entity Framework and NSubstitute. I now believe the Entity Framework was overkill for this project and something simpler would have sufficed. Unfortunately NSubstitute is missing quite a few features offered by other mocking frameworks so something like Moq or RhinoMocks would have better.


Update - April 2015

Sadly the Teesside basketball league is no more so I've shut down the website. Here are a few pictures of the desktop site, mobile site and app.