Purple Haze!

12 Jan, 2010

Work in 2009

Posted by: Chris In: Programming

I have completed another year of working with .NET and other technologies and below I will summarise what I have achieved. It has been a good solid year, I have some more feathers in my cap and more meaningless acronyms to add to my CV.

AIDS Images

I talked about this in detail in a previous post. I would say this is the biggest programming project I have undertaken. I had to work with 2 other teams to get this to work and I was lucky enough to fly out to Geneva to meet the client.

The website is a database of AIDS images collected by the client. It has nice web 2.0-y features like drag and drop using javascript and other AJAX magic. The back end was build using ASP MVC 1, which was building on my knowledge of writing CoDriver (our in-house issue tracking system). This was the first project that I tried to really develop using test driven development

AIR Dictionary

In my previous year I had created some pure javascript dictionaries that can be plugged into a web page with one line of Javascript. It was decided that I could take this concept and create an Adobe AIR application for more dictionaries.

The main challenge of this project was ensuring that it would be simple to deploy either web based or air dictionaries, given an XML file of dictionary data. I wrote an importer in C# which converted the XML into compressed JSON. The dictionary Javascript then performed AJAX requests to get definitions from a web service that I also built.

There was a central Javascript library which did most of the business logic and to handle the differences between AIR and normal web pages there were Javascript files to call the library functions and render.

iPhone Development

Towards the end of the year we were told that sales would require us to be able to create iPhone applications. Specifically “Video Bytes” which will be medical quizzes and medical dictionary applications. When I have had time I have tried to learn Objective C with a view to creating these applications.

It’s a nice change of pace from .NET, going back to essentially C which is what I studied at university.

Summary of skills gained

Test driven development

I really like the idea of TDD and it does save a lot of time in retesting and I have witnessed how it does give you more confidence to refactor your code. So how come I always seem to end up lacking the discipline to actually do it all the time?!

As I mentioned the AIDS website was the first time I really tried this. Unfortunately due to pressure from the client our timescales got reduced quite dramatically. At this point I decided to go with what I was familiar with just to get the site done in time. This was frustrating and perhaps I should have been braver.

I have found that after doing TDD for a significant amount of time, that I am writing my methods expecting it to be tested, even if it isn’t. What I mean by this is that it has encouraged me to write methods which are short, self descriptive and self contained - even when I am not testing. I knew this to be a good habit before doing TDD but it seems to have been hammered into me more now.

ASP MVC

I built on my skills and experience gained in the previous year which has lead to the view and controller code being a lot leaner and easier to understand.

Dependency injection

I was reading a number of blogs on how to do TDD effectively and a recurring theme was to use dependency injection to make your business classes easier to test by separating the dependency on data access.

This worked out really well for me and I can definitely see the benefit in it.

Improved Javascript

The dark days of Javascript where there were no fancy libraries and no firebug mentally scarred me and made me frightened of using Javascript for years. I have been forced into embracing Javascript, mainly as any kind of web development without some kind of fancy AJAX effects is quite archaic.

Making AIR applications is more or less 99% Javascript too so I had to pull my finger out.

I still feel slightly frightened of Javascript, I think I am so used to strongly typed C# catching all my mistakes that I will always be a little wary of using them, although I appreciate the advantages that come from it.

Objective C

I am very much a fledgling objective C coder, but it pleases me that I get to learn it on the job. It’s refreshing to be using a completely different language and this will allow me to not only make iPhone apps, but possibly normal Mac OS X apps too.

Next year

Next year promises more .NET development as usual. I plan to learn ASP MVC2 and this will probably come by rewriting my blog in .NET.

Time permitting I will be writing iPhone applications, including dictionaries (again!) and a video quiz.

Our team is always talking about how we want to rewrite elements of our content management system, migrating away from WebForms, integrating new web 2.0 features using more modern javascript frameworks, rather than Microsoft’s one and using TDD. Whether we get the time and justification to do this is another matter but it would certainly be a very exciting project to do.

Tags:

No Responses to "Work in 2009"

Comment Form

Flickr PhotoStream

  • IMG_4988
  • IMG_4987
  • IMG_4986

About

Hello, I am Chris James, I am a programmer based in London. I enjoy standards based web development, working in .NET with C#. This blog is mainly a diary for me but I occasionally will post about web development issues when the mood suits me.

My places on the internets