A lot of time, a lot of podcasts – Part 3: The fast moving world of software development

January 7th 2010

image_thumb3[7]

Just in case you didn’t know; I am a software developer who specialises in web development utilising the latest Microsoft .NET technologies. Every day something new comes out from the open source community or Microsoft themselves and in order to keep up with everything I listen to a fair few podcasts that hopefully will keep me up to date with everything I need to know (and even some things I don’t):


.NET Rocks!

http://www.dotnetrocks.com/

With shows normally lasting an hour, Carl Franklin and Richard Campbell interview people from the .NET world about all kinds of topics. This is my number one choice for .NET developers and at over 500 shows it has a great history behind it.

 

RunAs Radio

http://www.runasradio.com/

RunAs Radio is a new one to my list but I place it second due to its relationship with .NET Rocks. It is considered to be the sister show and Richard Campbell also hosts this one. What makes it different though is it is aimed at the IT professionals out there and covers more hardcore topics like patch management and security. It is not aimed at developers but I find it does nothing but help me to understand some topics outside the scope of my actual job role.

 

Hanselminutes

http://hanselminutes.com/

Hansel minutes is hosted by Scott Hanselman who is a greater speaker on all ASP.NET related topics. He is also another regular listen of mine and it is rare that he speaks on a topic I am not interested in.

 

Polymorphic Podcast

http://polymorphicpodcast.com/

Similar to Hanselminutes this podcast focuses on ASP.NET and related topics. The frequency of the podcast can vary but when it comes it is usually worth it.

 

Herding Code

http://herdingcode.com/

Herding Code has four hosts: K. Scott Allen, Kevin Dente, Scott Koon, and Jon Galloway. This makes the chats more varied as everyone chips in with there opinions. They don’t focus on a specific topic and have covered everything from iPhone development to development patterns. This can make it quite hit and miss as to whether an episode is worth listening to but the variety and quality of the show makes up for it.

 

SitePoint

http://www.sitepoint.com/blogs/category/podcast/

The SitePoint podcast focuses on web and as such covers every kind of web topic known to man. This limits the appeal to me down to the odd podcast but I keep an eye on it just in case.

 

Software Engineering Radio

http://www.se-radio.net/

This is my least listened to podcast as it covers software engineering as a whole and therefore can be a little too high-level or left-field for my liking. They sometimes come out with one worth listening though.

 

UK MSDN Flash

http://channel9.msdn.com/tags/UKMSDNPodcast/

And finally we have the relatively new UK MSDN Flash podcast. Eric Nelson has only been doing these for a while but they are generally only short so are perfect for filling in those tiny gaps.

 

View the entire series

Posted by Adam under Personal & Techy Stuff | No Comments »

A lot of time, a lot of podcasts – Part 1: What is a podcast anyway?

December 20th 2009

image I love walking to work. It is a great way to get some fresh air before the day starts and is so much better than sitting in traffic to clear my mind on the way home. Also, I have found some nice walks in the area around where my office is to get out a lunch on a nice day.

That can give me up to 1.5 hours per day where I am out with nothing to do. I choose to fill this time with podcasts.

Before I get into the actual podcasts I listen to I should start by explaining what a podcast is: The best comparison I can make is it is like a downloadable radio program that you can put on your mp3 player and listen to on your travels.

Getting podcasts is really simple. You find the website it is on and you download it. Then it is just a matter of transferring it to your mp3 player in the normal way. The trickier thing is to keep up to date with the latest podcasts, especially if you listen to as many as I do. This is where RSS feeds come in to it. Most podcasts will have an RSS feed available which you can subscribe to in something like Google Reader (http://reader.google.com) which will update itself automatically whenever a new episode is available and all you have to so is remember to check this one place.

As the tagline of this website suggests, I can easily break down my podcasts into three separate categories:

  1. Faith based talks from a number of churches around the world
  2. Software development podcasts focussed on .NET and the web
  3. A couple of film podcasts to keep me up to date with what’s out there

I’ll be focussing in on the talks I regularly listen to in each of these categories in later posts.

 

View the entire series

Posted by Adam under Faith & Films & Personal & Techy Stuff | No Comments »

Inversion of Control and Dependency Injection

February 14th 2009

It is coming up to a year since I started this blog and I’ve never talked about development. So here is my first attempt:

In the development world there are always new methodologies appearing and better ways of coding. However, there are some basics of object-orientated .NET development that I thought were pretty fundamental and I didn’t need to consider alternatives of. One of these was instantiating an instance of a dependency within a class by just declaring MyClass Foo = new Foo() when I needed it.

Apparently I was wrong! This week I came across a “new” way of calling your dependencies from within a class: Inversion of Control (IoC) and Dependency Injection (DI).

Let’s start at the beginning. The applications I am developing at the moment are split into layers: The presentation layer that will be written in ASP.NET (or maybe MVC if it gets released in time!), a business layer to manage all the business rules and a data layer to interact with a variety of data objects. I will also have business entities being passed around the various layers. The reason for splitting everything out into layers is so that you can reuse the code in a variety of different applications if needed and to make it easier to make changes without having to recode everything.

In the old world that I have used since I began coding, each layer knows what it needs in order to function (e.g. the business layer knows it needs a data layer object, the data layer knows it needs a database connection object and a configuration object). These dependencies are created by the layer when they are needed.

However, this week I have found out that there is a glaring issue with this approach: There is a hard-coded dependency on other components that cannot be disconnected without altering the code. When it comes to unit testing a layer this can be a real problem if you want to mock up any of these dependent objects.

There is an answer though, one that the community has known about for a while but I had been blissfully unaware!

Dependency Injection is very simply about passing in dependencies to objects rather than making the object create them themselves. So in the constructor for a class you declare the dependencies it will need and pass the fully formed objects in. So if your business layer needs a data layer object in order to function you create it and pass it into the business layer when you instantiate it. Simple, mind-blowing and brilliant!

This approach means you can create your classes in total isolation and use mock objects to simulate the dependant objects and just replace these mock-ups when you are ready without having to change any of your code, all you will need to change is what is calling your class.

It is still very early days in my understanding of this principle and I still have a lot of questions (noteably what is an IoC container and how does it manage the calling of objects). once I have had a chance to put this principle into practise I will try and blog again with my findings. It’s going to be a crazy mids-shift for me but it should be fun

Posted by Adam under Techy Stuff | 5 Comments »