Thursday, September 27, 2007

Scott's Tools list

I am a tool whore, but clearly not as bad as Mr Hanselman... jeez.

http://www.hanselman.com/blog/ScottHanselmans2007UltimateDeveloperAndPowerUsersToolListForWindows.aspx


Luckily most of dev ones are familiar and i have kicked their tyres, most of the Smart people are on my regular read too... sweet.
At least my fingers are vaguely on the pulse *somewhat reassured*

Tuesday, September 25, 2007

Sweet Silverlight

Some cool stuff is being done with WPF and Silverlight of late. The offical SL release is now out as well as Alpha 1.1 for developers (get them here).
Moonlight is on its way, which with help from Novell will mean Linux users will be able to experinces SL too.

A guy named Jose Fajard from Sydney, Australia (AKA LiquidBoy AKA AdvertBoy) has been doing some cool stuff with a pretty quick turn-around.

Check out this dudes site:
http://advertboy.wordpress.com/


He has a sweet little blog explaining how he is buildiong an online version of iTunes and has a nice bunch on Silverlight controls... ready for download.
Tres cool.

Demo of the controls on his "Beautiful Website"

Source code here on Codeplex for the iTunes app (and for the controls I believe)

Sunday, September 23, 2007

xUnit.Net

James Newkirk and Brad Wilson have put out a new testing framework to paralell some basic standards (ie no SetUp/TearDown methods, better expected Exception handling and use of generics)

download here:
http://www.codeplex.com/xunit

read Jims blog here:
http://jamesnewkirk.typepad.com/posts/2007/09/announcing-xuni.html

Looking forward to using it. :-)

Friday, September 21, 2007

How to get a .Net contract in London

1st: Call GCS and talk to Doug Viney. I'm not kidding, he's that good.
2nd: Put your CV on Monster.co.uk
3rd: Look on JobServe.com for jobs you want.

CV has to be short, 2 pages, with no fluff.
Tell them what technologies you worked with, what you managed to achieve at that job/on that project, and how long you were there for.

Have your phone charged with money and batteries, the more calls you make and recieve, the faster you pick up job.

Easy.

Back into cutting code

Well I have landed on my feet pretty well here in London, weather has been good, met lots of friends and family and have found work easily.
My first contract was found in 2 days, was only a short contract to help out a media company for 3 weeks. It was basically fixing some issues in a custom built CMS implementation.
ASP.net gone wrong.
1/2 tier design, SQL in the aspx's, no testing of any description, no documentation, no arguments checks on public methods, no reliable source control... it was not too good.
Fortunately the people there are absolutely wonderful and the application was pretty small so pretty easy to hit the ground running. Hopefully I helped them out and gave them what they needed and was good value for money!

Well 3 weeks didn't eventuate as I got offered a job by another media company for better pay, longer contract and seemingly better code base/practices/procedure's.
My recruiter for this particular job has not really impressed me. I was confirmed for the interview 90 minutes before it occurred. I was casually dressed and ill prepared. I was given the wrong address and sat waiting in the wrong reception of the wrong building of the right company for 35 minutes as we couldn't get hold of the HR person. Luckily the IT guys i was doing the interview with figured something was up, notified reception and sent me along. I then proceeded to meet the Lead Dev and Architect, while i got grilled about things like Nhibernate, WCF, SCSF and heaps & stacks....

Having
A: Not written more than 10 lines of code in any given day while i was in the states,
B: not really being pushed at my existing contract,
C: an awful experience leading up to the interview
..I was pretty horrific in my interview and answering of most questions (well at least i wasn't happy with some of my answers.. yes there was an exam)

I left, having met some nice guys who seemed to know what they were talking about, and was a little disappointed that i hadn't been better prepared.

Any-who I get a phone call about an hour later; I somehow managed to get the job.
Sweet.
I told the current agency I was working with that I was cutting my contract short, which they were fine with, and accepted the offer.

So I am back to
Win form apps (CAB influenced)
WCF
NHibernate
N tier dev (where N is greater than 2 ;) )
TDD (TFS and Nmock)
Agile Dev (team is stilling learning... but who isn't!)

soon to be introducing for IoC either
Castle/Windsor or
Spring.net

And new for me is
Video on demand
&
Oracle (which I have already learned that triggers can NOT modify data in its owner table.. apparently...)

The pay is OK, was aiming for a bit more, but what really pissed me off is my agent gipped me on putting me on day rate not hourly (bastard) and then didn't tell them I have a holiday booked for mid October (Rugby world cup match in France!!)
Oh well worse things can happen.

So all is good in the city of London, just need to find a nice studio to fill with new computer, new guitar amp and a huge new bed... then I will be very happy.

PS
I did have an excellent experience with one recruitment agency called GCS, specifically a guy called Doug Viney. If you are a good, experienced .Net contractor looking for work in London talk to this man. He is very professional, personable and very efficient. He came recommended to me and I highly recommend him too.

Code snippets... yay!

I am starting on a new project without resharper... so i have to write alot more code than I am used to... enter VS intellisense code snippets!

Here is a very basic one I have for NMock;

<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
<Header>
<Title>Create a NMock Test</Title>
<Description>Create a NMock Test using mocks to improve testability.</Description>
<Author>Rhys Campbell</Author>
<Shortcut>testmock</Shortcut>
</Header>
<Snippet>
<Declarations>
<Literal>
<ID>IMockClass</ID>
<ToolTip>Replace with the type of interface of the mocked object.</ToolTip>
<Default>Interface</Default>
</Literal>
<Literal>
<ID>mockObject</ID>
<ToolTip>Replace with the name of the mock object .</ToolTip>
<Default>mockObject</Default>
</Literal>
<Literal>
<ID>TestObject</ID>
<ToolTip>Replace with the type of the test object .</ToolTip>
<Default>TestObject</Default>
</Literal>
<Literal>
<ID>testObject</ID>
<ToolTip>Replace with the name of the test object .</ToolTip>
<Default>testObject</Default>
</Literal>
<Literal>
<ID>MethodToBeTested</ID>
<ToolTip>Replace with the name of the test method to be called .</ToolTip>
<Default>MethodToBeTested</Default>
</Literal>
</Declarations>
<Code Language="CSharp">
<![CDATA[
[Test]
public void TestExpect()
{
// mock the dependency by way of interface
IMock $mockObject$ = new DynamicMock(typeof($IMockClass$));

// setting up values
$mockObject$.ExpectAndReturn("Mock object expected method call", "Mock object expected method return value"); //remove and replace with appropiate expectation. NB: NMock uses strings not strong naming for it method calls.

$TestObject$ $testObject$ = new $TestObject$(($IMockClass$) $mockObject$.MockInstance);
AssertEquals("Some sort of valid repsonse", $testObject$.$MethodToBeTested$()); //replace with approriate test

// Verify that mock expectations are met
$mockObject$.Verify();
}
]]>
</Code>
</Snippet>
</CodeSnippet>
</CodeSnippets>

(you may want to format that) ;)

As per the M$ site:

Before you can begin writing your code snippet, you must create an XML file with a .snippet file name extension.
To create a .snippet file

  1. On the File menu, click New and then click File.

  2. Click XML File and then click Open.

  3. On the File menu, click Save .

  4. In the Save as type box, select All Files (*.*).

  5. In the File name box, enter a file name with the .snippet file name extension.

  6. Click Save.


What they dont say that you should save it somewhere that VS will know where to find it. the easiest is My documents\Visual Studio 2005\Code Snippets\Visual C#\My Code Snippets\
this is where VS looks by deafult, this means you dont have to import it it is just ready to go.
so to get the code to work just type in:
testmock
in any C# file and *Bam* there is you intellisense code block ready to fill out.

this propbaly wont change you life but its certainly a nice to have, espeically without my blessed ReSharper...

For more info: Go to the MSDN site

-oh the imports staements dont work in C# so i cant import my testing namspaces which sucks...

Wednesday, September 5, 2007

WPF

In my pursuit of jobs in London I have noticed a disitinct lack of .Net 3.0 and Ajax orientated ad's.. which for some reason reminded me of a conversation i had when silver light and WPF where hitting the seen... Why? Flash is not really used heavily in enterprise solutions.. why is MS going down that path?
Well for starters, why not? It provides another option for the MS sector to compete with the those "other" types and if MS has the resources.. then give us the options!
Secondly it helps create more usable UI's and therfore, possibly, a better user experience.
WPF is been used in several financial institutions that I am aware of. It make sense to make the experience as easy as possible.
I one instnace training is a very costly execise, especially for markets where there is a high turn over of staff that still require a certain amount of relevant businesses knowledge.
In another situation, large amounts of data that needs to be represented in a user friendly manner (different graphs shown changing in real time) can now more easily be created so user can make more educated descisions in a more timely manner. these are more easily configured and manipulated again in real time for optimal UX...

It seems that these companies that are throwing massive amounts of cash into prelim studies, R&D and then on the not-so cheap teams of contractors to learn and implement these new trendy technologies must be of the opinion that the cost of dev is worth it.
Good for us I say!