Developer Blog Banter #1: What is your preferred technology stack

Here is the first edition of the Developer Blog Banter. The DBB is a regular article where passionate developers in the community blog on a common topic.
More details and a list of all editions of the DBB is available on the main page https://davidburela.wordpress.com/developer-blog-banter/

This weeks topic is was inspired by a recent blog post by Paul Stovell.
When starting a new software project, what is your default choices for your technology stack. What common libraries and toolkits do you find yourself reusing again and again.
You can answer the question either from the perspective of “your perfect personal project”, or what your standard choice is for what your day job requires.

Some suggestions to help you get started

  • What UI technologies are you using, web? ASP.Net vanilla, ASP.Net MVC, WPF, Silverlight, Ruby, etc.
  • What would you use to persist / retrieve data. nHibernate, Entity Framework, perhaps you’re using MongoDB as your store.
  • What testing tools / frameworks do you use.
  • Are there any other supporting frameworks you would use in your stack, like Log4Net.

If you need some inspiration or ideas on how to format your response, look at the current list of participants.

Participants

  1. David Burela What does your current tech stack look like
  2. Paul Stovell The ultimate Lib folder
  3. Liam McLennan My technology stack
  4. Duncan Bayne What is your preferred technology stack?
  5. Michael Minutillo My (magic unicorns) technology stack
  6. Simone Chiaretta My ASP.NET MVC stack and why I chose it
  7. Damian Maclennan What’s your current stack?
  8. Eric Ridgeway My technology stack
  9. Ko Chang What is your preferred technology stack
  10. Paul Batum My technology stack
  11. Composite code My software stack

By David Burela

Advertisements

Community Report: Melbourne Alt.Net

Last night I went to the Melbourne Alt.Net meeting. This month we had a coding dojo, it was the first coding dojo that I (and most of the attendees) and been to before, and it was an interesting experience.

We all paired up, so I joined forces with Nick Josevski. After we were all paired up we were given our coding Kata. To write an application that would take a number and output the correct Roman Numerals for it. E.g. 2 = II, 4 = IV, 15 = XV, etc.

I found the whole thing quite interesting, it was great working with Nick as I just picked up little coding techniques here and there and small environment settings (like the Visual studio power tools). Nick and I tackled the problem in ping pong TDD fashion. Sharing one laptop, I would write a test that would break. Then we’d swap and Nick would write the minimum amount of code needed to make that test pass, then he would write the next test that would fail, then he’d pass the keyboard back to me and it was up to me to make the code work again. We wrote around 40 tests in the end.

The entire event was 2 x 40minute coding sessions (with a pizza break in the middle). We were keeping it disciplined up until 15mins before the time was up. We found that how we had written our code worked fine for 90% of cases, but not 1990, because the format of large numbers is different… So we had to throw all the logic out and start again, I quickly worked out on paper a new algorithm. We quickly coded it, re-ran all our tests and they now all passed except for the number 4 (IV). Unfortunately time was up so we couldn’t handle that edge case.

I enjoyed doing this, pairing up with someone that I hadn’t before and talking and figuring out the problem was a great exercise. I am really looking forward @abienert organising the next event, I hope it is run again!

Next month Melbourne Alt.Net is doing lightning talks and I volunteered. Now to find a topic to present on…

By David Burela

Community report: Code Camp South Australia

Last weekend (Saturday 24th July), I flew to Adelaide for the South Australian Code camp. The numbers were a bit low this year, around 30 by my count, but the mix of people there was great.

Catering

First of all, I must mention the catering. From what I understand, Peter Griffith had organised the local scouts group to handle the catering. So at the coffee breaks there was coffee available, but also a nice selection of pre-cut fruit, slices of cake and biscuits. It was great to see fresh fruit available at a geek gathering! Lunch on the Saturday & Sunday was also well done. It was a BBQ with a onion, sausages and thin steak slices available. The scouts had gone all out with a selection of different salads available to accompany the meat. Top work for a free event!

Saturday sessions

Rob Farley – data visualisations

Rob gave a demonstration of using some of the SQL visualisation tools to do things like mapping post codes onto a map. But he went further and demonstrated power pivot being used to plot Adelaide school census data over the post codes on the map. So he was able to twist the data and show things like which postcode had the most bachelor degrees, etc.

James Chapman-Smith @enigmativity – Lambdas, Monads, LINQ & the Reactive Extensions

This was my top pick of Code Camp SA. He talked about Lambdas, Monads, LINQ & Reactive extensions, and he blew my mind. To me this is exactly what Code Camp is meant to be like, going off the beaten path and exploring some crazy concepts instead of another “intro to TFS/Sharepoint/Azure” talk.

James did a good job of building from the basics up and explaining how all of the different pieces are related to each other. I always knew that LINQ had “deferred execution” in it, but now I have a much clearer idea of how Funcs, Actions, etc. work, but also now how Functional programming languages must hang together. Great work James!

slides are available http://www.codecampsa.com/speakers/james-chapman-smith

Paul Stovell @paulstovell – Real world MVMM in WPF

My vote for “best flowing presentation” goes to Paul. Paul did a very good job of setting the scene for his talk. He started with the basics, explained exactly what he was doing, then would move on slightly and explain a bit more. He never jumped straight over to a piece of code and pressed F5.

Miguel Madero @mamadero – Blend 4

I’m embaressed to say that I fell asleep in it. The first few minutes I was awake it was great, and I wanted to continue to watch it. But I had been up since 4am and just could not will myself to stay awake. Apologies Miguel!

Liam McLennan @LiamMcLennan – Behaviour driven development using StoryQ

This was interesting. Liam talked a bit how no testing is bad, unit testing is ok, but BDD tests are better. The example was given that you can continue to develop, but after a while you lose context for the old tests, and you can’t be sure that v5 of your code still does everything that was in v1 of your requirements specifications, meaning that you need to do full regression testing with each release. He showed how StoryQ can be used to link each of your tests back to business requirements, meaning that when you go to release, you can show that all of the old and new requirements are still being tested and are passing.

slides http://www.codecampsa.com/speakers/liam-mclennan

Sunday Sessions

Omar Besiso @OmarBesiso – I’m not a web developer, and you shouldn’t test

Omar discussed how you don’t need to create a full enterprise ready application for every project that you are doing. If you are doing a small $2,000 website for someone as a side project, sometimes it is fine to take shortcuts. Omar showed that just by using some standard control toolkits and some LinqToSql data sources, you can quickly pump out a bunch of features quickly ready to hand a basic feature website back to the client. He argued that “sure, you might have to rip it all out later and rewrite it, but seeing as it only took me 10mins to write just then, you are only throwing away 10 minutes worth of coding.

Justin Taylor @JTango18 – Get started with MEF

Justin demonstrated a prebuilt Silverlight application that was using MEF to extend the functionality of the front end. He showed how new MEF modules could be written to change the grouping options of the data he was showing

Wrap up

I needed to leave after lunch to catch my plane back to Melbourne, but I am glad that I took the time to attend the conference. The conversations during lunch times & dinner was great.

And also a big thanks to my current employer Hazaa who paid for my hotel & flights, that was really nice and an added bonus.

By David Burela

Community Report: Hobart.Net usergroup (Windows Azure & Windows Phone 7 Series)

On Friday 16th July, I headed down to Hobart to present at the Hobart.Net usergroup.

It was a good turn out for a Friday afternoon and Christopher Baker as usual had organised a great venue for the event to be held at. It was hosted at the Hobart casino in a members only bar that was booked just for us. The catering provided by the casino was great, there was a nice selection of hot finger food available.

For my talk I spent the first 1.5 hours doing a lap around Windows Azure.

  • I explained the fundamentals of cloud computing
  • What the vision of Window Azure is
  • the basic building blocks available with Windows Azure
  • some code demos
  • How to deploy to Azure
  • how to change the number of instance and deploy new versions

After that initial talk, I then did an hour talk on Windows Phone 7 series

  • What Windows phone 7 series is
  • The programming models available
  • Some code demos
  • I showed Beachy and explained how I had built it
  • Showed some design time data tricks with Expression Blend

By David Burela

What does your current technology stack look like?

In response to the first Developer Blog Banter

Most of my projects look like this

Technology stack

image

  • Silverlight 4
  • Ninject (IoC)
  • Prism (on occasion)
  • RIA services
  • Entity framework
  • Sql server 2008 R2
  • nSubstitute (for mocking. Made in Australia!)
  • MSTest

Looking at feedback Paul received, I think that I will need to look into using nBuilder soon to create test data for my unit tests. I am using MSTest, because I like how it is easy for developers to just have VS2010 (+apis) installed and run the tests immediately.

Source control

For projects on client sites, I am using TFS 2010 setup with continuous integration.

At home, I don’t have a source control solution. I just zip up the source code folder at intervals and name it ProjectName YYMMDDHHmmSS e.g. DavidProject 201007251100.zip

I know that the way I do source control isn’t optimal. So after talking to Paul Stovell and Miguel Madero at Code Camp South Australia last weekend, I have decided that I am going to start using Mercurial to help me to check in locally.

So how about you? What are your standard tools right now for new projects?

By David Burela