Alt.NET Sydney User Group Meeting #1
Date: 2008-10-01 22:09:53

http://jamescrisp.org/[James Crisp] and http://richardsbraindump.blogspot.com/[Richard Banks] arranged the first http://sydneyaltdotnet.blogspot.com/[Alt.NET Sydney User Group] meeting held on Tuesday night at the ThoughtWorks office.

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.

Richard and James have already http://sydneyaltdotnet.blogspot.com/2008/09/and-we-away.html[written summaries] http://richardsbraindump.blogspot.com/2008/10/rhino-mocks-35-presentation-at-altnet.html[of] http://jamescrisp.org/2008/09/30/sydney-altnet-launched-ruby-slides/[what went on] but I thought I'd give some of my thoughts as well.

The meeting was split into three parts with a retrospective on proceedings at the end:

== .NET News

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 http://www.markhneedham.com/blog/2008/09/14/altnet-uk-conference-20/[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 http://www.hanselman.com/blog/jQueryToShipWithASPNETMVCAndVisualStudio.aspx[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 http://silverlight.net/[Silverlight] - Microsoft's plugin for developing rich applications for the web. Apparently http://jquery.com/blog/2008/09/28/jquery-microsoft-nokia/[Nokia are also intending to get involved].

Another thing which I hadn't heard about was the http://devsta.microsoft.com.au/[DevSta coding competition] which was mentioned at http://www.microsoft.com.au/teched/[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 http://devsta.microsoft.com.au/about.aspx[here] for those that are interested.

Richard also pointed out some open source projects which I hadn't come across, notably http://www.codeplex.com/CloneDetectiveVS[CloneDetectiveVS] - a duplicate code finder plugin for Visual Studio - and http://www.codeplex.com/SnippetDesigner[SnippetDesigner] - another plugin to create code snippets. Not sure how different this would be to http://www.jetbrains.com/resharper/features/code_templates.html[Resharper's code templates] but it's another option.

A new language which runs on the CLR called http://cobra-language.com/[Cobra] was mentioned. It has support for http://cobra-language.com/how-to/DeclareContracts/[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.

http://gocosmos.org/index.en.aspx[gocosmos] was also discussed - an operating system project implemented completely in CIL compliant languages.

The http://www.webdirections.org/[WebDirections] conference was also mentioned - the http://www.microsoft.com/surface/index.html[Microsoft Surface] seemed to be the most interesting thing to come out of this.

== Ruby and Rails From a .NET Perspective

James opened the second half of the evening with http://jamescrisp.org/2008/09/30/sydney-altnet-launched-ruby-slides[a talk about using Ruby in the world of .NET].

He opened with http://www.artima.com/intv/ruby.html[a brief history of the Ruby language] going through some of the ideas that Ruby brings to the table - http://en.wikipedia.org/wiki/Principle_of_least_astonishment[principle of least surprise] being the most intriguing one to me - before covering some of the Ruby compilers currently available - http://en.wikipedia.org/wiki/Ruby_MRI[MRI], http://www.atdot.net/yarv/[YARV] http://jruby.codehaus.org/[JRuby] and http://www.ironruby.net/[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 http://www.rubyonrails.org/[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.

http://rspec.info/[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 http://www.capify.org/[Capistrano] and http://rake.rubyforge.org/[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.

== Rhino Mocks

Richard closed the evening with a http://richardsbraindump.blogspot.com/2008/10/rhino-mocks-35-presentation-at-altnet.html[presentation on Rhino Mocks].

I went into this presentation with the belief that http://code.google.com/p/moq/[Moq] was the way to go when it comes to .NET mocking frameworks.

The Arrange Act Assert or http://code.google.com/p/mockito/[Mockito] approach to mocking is one which makes it much easier to do and leads to far less clutter in tests.

I thought this was only possible in Moq and that http://ayende.com/projects/rhino-mocks.aspx[Rhino Mocks] encourage the Record/Replay approach. As Richard pointed out, http://ayende.com/Blog/archive/2008/05/16/Rhino-Mocks--Arrange-Act-Assert-Syntax.aspx[this is no longer the case].

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

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, http://maps.google.com.au/maps?f=q&hl=en&geocode=&q=pitt+street&sll=-25.335448,135.745076&sspn=39.413301,93.164063&ie=UTF8&ll=-33.863467,151.209812&spn=0.00898,0.022745&z=16[51 Pitt Street] again.