The first thing to say is thanks to James and Richard for getting this setup so quickly – it was less than a month ago that Richard suggested the idea of creating a group on the Alt.NET mailing list.
The meeting was split into three parts with a retrospective on proceedings at the end:
Richard opened the meeting by talking about some of the latest news in the .NET community in the last month or so.
I thought this worked very well and helped to get some discussion going very early on. One of my comments from the London Alt.NET Conference was that very few people seemed to get involved – that certainly wasn’t the case last night and there was a very collaborative feel about the whole event.
The first news was that the much talked about jQuery is going to ship with ASP.NET MVC and Visual Studio and that Microsoft intend to provide Product Support Services for it and contribute any changes they make to it back into the community. It was suggested that this is a bit strange as jQuery is effectively a competitor to Silverlight – Microsoft’s plugin for developing rich applications for the web. Apparently Nokia are also intending to get involved.
Another thing which I hadn’t heard about was the DevSta coding competition which was mentioned at Tech Ed earlier in the year. I haven’t read exactly what the competition is all about but you get 200 hours and 8 minutes to prove your skills with Visual Studio 2008. The challenge is here for those that are interested.
Richard also pointed out some open source projects which I hadn’t come across, notably CloneDetectiveVS – a duplicate code finder plugin for Visual Studio – and SnippetDesigner – another plugin to create code snippets. Not sure how different this would be to Resharper’s code templates but it’s another option.
A new language which runs on the CLR called Cobra was mentioned. It has support for contracts and testing so it could be a contender – probably needs someone high profile to run with it for that to happen I would imagine.
gocosmos was also discussed – an operating system project implemented completely in CIL compliant languages.
Ruby and Rails From a .NET Perspective
James opened the second half of the evening with a talk about using Ruby in the world of .NET.
He opened with a brief history of the Ruby language going through some of the ideas that Ruby brings to the table – principle of least surprise being the most intriguing one to me – before covering some of the Ruby compilers currently available – MRI, YARV JRuby and IronRuby. The last one was the focus for the talk – being a .NET implementation of the Ruby language.
James went through some demos using the Interactive IronRuby Console to start with but later showing how to create a simple application using Rails.
There was an interesting discussion around testing – James pointed out that the Ruby/Rails world is much more test focused than the .NET one and unit testing is available right out the box.
I haven’t worked with Ruby enough to know if everyone in the Ruby world unit tests but as a general feeling I would say this is probably accurate.
RSpec was covered briefly as an alternative to the Test::Unit framework that comes baked in with Rails. I haven’t played around with it before but as I’m working a bit in the world of Ruby at the moment it is something that I hope to use in the near future.
Finally build and deployment tools from the Ruby world such as Capistrano and Rake were mentioned. I can see the latter having some influence but as the former is meant for Unix I can’t see it being heavily used in the .NET world.
Richard closed the evening with a presentation on Rhino Mocks.
I went into this presentation with the belief that Moq was the way to go when it comes to .NET mocking frameworks.
The Arrange Act Assert or Mockito approach to mocking is one which makes it much easier to do and leads to far less clutter in tests.
Richard gave a demonstration on several of the ways that you can use Rhino Mocks in your testing efforts – covering simple interaction testing, event testing and several other clever techniques that Rhino Mocks allows.
An interesting statement was made that ‘Mocking = Genuine Unit Testing’, a statement that I tend to agree with. Several people mentioned that they now realised their unit tests were actually functional tests – this is a problem which mocking can help to reduce.
Overall it was again interesting to meet up with the .NET crowd and hear the different ways that people are doing – I was impressed with the turn out given the short notice – there were over 30 people in attendance.
The next meeting is on 28th October 2008, ThoughtWorks Sydney Office, 51 Pitt Street again.