TechEd Day 2: Summary
Today was the first fully packed schedule. Lots of notes still to write up but here’s a quick overview of what happened.
First off I went into the Building Rich Web Applications using Silverlight 2 session. Kathy introduced a 200 level session on what kinds of things Silverlight 2 can do over Silverlight. The answer basically is a heck of a lot more. Most importantly now having been built on top of the .NET Framework, it means that you can leverage the power of the framework with the rich presentation controls offered through Silverlight.
The use of a video streaming site as a demo kept enough attention going. I’d have preferred more time to examine the code she’d used to pull in XML data and then format for display but it was an overview session. Her ‘Hola World’ application was very effective when using a VideoBrush to quickly paint media assets into simple controls.
Second session was on Team Foundation Server Work Item Use and Planning with Chris Menegay. If Chris gets paid on words per minute, he’ll be making a fair buck! He crammed a heck of a lot of useful information with his experience in the field into a standard Breakout session. Some of his best practice tips were very valuable and it made me realise that anyone using a Team Project template out of the box really needs to understand what they’re doing first. No one template will necessarily fit the business demands straight away: for example, the order in which states of tasks may progress from Active to Resolved to Closed may change between businesses. It’s made me want to go download a project template and go rooting around in the XML again to understand everything that’s going on under the bonnet. Chris’ other very useful suggestion was to make sure that any Process Template editing should go into its own Team Project in TFS to manage changeset history rather than just hacking XML.
After lunch, I went to see Roy Osherove’s ‘Sense and Testability’ talk in the auditorium and had a brief chat with Sarah Blow of Geek Girl Dinner fame (the power of Twitter) and it was great to meet her and put a face to the name. Roy’s talk was excellent and it’s already sent me off researching new methods of unit testing. I was pleased to see some of the approaches we’ve been taking recently in using public properties to allow for mocking, rather than prescribing Constructor overloads (mandatory vs optional) were mentioned.
The other interesting suggestion was to make every class a virtual class. Whilst seemingly going against the OO principle of encapsulation, it does allow for test methods to be over-ridden. For example, if you had a method which simply retrieved the current time, overloading this virtual method in a test class derived from the virtual base class would allow you to return any time you chose.
Neil had been to a Scrum session and it bears a lot of similarities to how we’re working currently, anyway.
Finally at the end of the day, we both went to ASP.NET MVC Practices which was a pretty deep dive into areas which are still pretty much up for debate as the toolset moves from Beta towards RTM. Maybe Hadi Harini had firmer information than is available from the MVC website.
A very useful tip was to write tests to test your Routing class and to remove the default catch-all route (controller/action/param) that is created to avoid patterns that you want to fail to match then serving back a page that maybe not suitable.
More to follow once I’ve decrypted and rewritten my notes.
TechEd Day 1 : Keynote speech
As we were ushered in to an imposing auditorium It seemed the three DJs and VJ were entertaining a lonely, featured HP server rack on stage.
Having a tiny special ‘Early Bird’ section down the front did seem a little pointless when I’d hazard a guess that well over 70% of delegates would’ve been signing up for the conference straight away.
The stage was very, well, orange. The black auditorium with its glossy black camouflage ceiling makes the whole place feel like we were about to get a paintball briefing rather than a Microsoft presentation. Loud percussive beats start about 10 minutes to go to fire up the spirits. It did start to work too.
TechEd : Day 1
Greetings from Barcelona. Today started in the afternoon with the keynote speech from Jason Zander which has introduced new functionality in Visual Studio 2010. A very honest bloke who was brave enough to demo us Visual Studio 2010 on Windows 7. Not just taking the safety off, but practically taking the tightrope away as well.
I’m going to write up my notes as I go, but the fact that Visual Studio 2010 has had its IDE re-written using Windows Presentation Foundation means that a lot of exciting new add-ons are coming. Also the ability to specify transforms for web.config files is a welcome addition after the frustration I’ve had with Web Deployment projects.
Well, its the Welcome Drinks party here at CCIB in Barcleona now so I’m off for more ‘networking’ (where networking = free beer, nibbles and XBox 360 stands
) It’s hard work being a developer on the cutting edge of Microsoft technology you know ?
If any of you are twittering and are here, send a message to JBJon and I’ll try and catch up with you.
Gracias!
Using MSBuild to deploy a website cross-domain
The task: to have an automated build process which would take the fresh built files and deploy them on a remote web server.
The challenge: the remote web server was not in the same domain as the machine with Team Build on it.
Initial research found plenty of helpful advice on how to do a copy using the <Copy> task. I tried various different methods of specifying the files I wanted to copy but all hit the same trouble. I tried adding on some community extensions to MSBuild to FTP Copy but didn’t get far with that as it seemed to want to transfer only one file at a time.
In the end, our Operations Team came up with the answer in the form of a Trust Relationship between the two domains in question. Now, my share was browsable without needing to enter remote domain credentials.
So the Target I wrote overwrites the behaviour of the ‘AfterDropBuild’ target and looks something like this:
<Target Name="AfterDropBuild">
<CreateItem Include="$(DropLocation)\$(BuildNumber)\Release\_PublishedWebsites\PROJECT\**\*.*">
<Output ItemName="ItemsToDeploy" TaskParameter="Include"/>
</CreateItem>
<Message Text="Found items: @(ItemsToDeploy,'%0d%0a')" Importance="high"/>
<Copy SourceFiles="@(ItemsToDeploy)" DestinationFiles="@(ItemsToDeploy->'\\REMOTESERVERIP\PROJECTDROPSHARE\%(RecursiveDir)%(Filename)%(Extension)')" /> </Target>
Esendex Last Minute Sprint
In a change to normal development activities, this afternoon saw us do a bit of last minute preparation for a triathlon that Esendex is the headline sponsor for. It will, I guess, be business as usual on Sunday too for the Esendex Last Minute Sprint at Southwell with both Adam and Julian leading the way forward in the overall times for the eight staff members who will be competing.
Today we had a visit from Richard Stannard which was very worthwhile. Chatting to a world class althete was not only inspiring but he was full of useful advice. It has made the whole prospect of swimming, cycling and running at Silly-o’Clock on Sunday morning less daunting. I say morning, I think I need to get there just after the milk does, so its more a.s. (Apres Sanity) than a.m.
There have been times at the gym these last few weeks that I did question my own sanity for attempting this but it has been a great goal to aim for.
The motley crew from Sales, Operations and Development are joining in with the semi-professionals and this will be my first triathlon. I think Julian has such a good swim time that he’s starting on Monday (I joke!). Despite gunning for the wooden spoon prize I am just looking to have fun and make it around in one piece. Oh, and I’m also trying to aim to not be overtaken by Adam or Julian
Thanks to Ewan for his kind words of support. I’ll let you all know how I got on (if I have the energy to type!)
Remote Desktop Connection Smart Sizing
If you use Microsoft’s Remote Desktop Connection (RDC) a lot then you might be interested in an option that’s not available via the GUI. ‘Smart Sizing’ allows you to scale the screen to the size of the RDC window rather than the default option where the remote desktop gets cropped.
If you open a new RDC instance and expand the ‘Options >>>’ button you see the following screen :
At the bottom of the dialog is the option to ‘Save’ the current settings. Fill out as much as you normally would to connect to a remote box and then Save the file onto your local machine somewhere.
Edit that file with the text editor of your choice and add the following line to the bottom of the .rdp file you saved:
smart sizing:i:1
This will force RDC to scale the window when you shrink it and will stretch back to full screen when you click ‘Maximise’.
I create a collection of these .rdp files for each of the servers I need to communicate with and have a directory of them as a custom toolbar on my task bar.
Just remember to start your RDC session from your saved .rdp file to take advantage of the scaling trick
C# Abstract Exceptions
We’ve just been writing some new exceptions based initially on an abstract Exception class. When the attempt to write a catch statement to catch all exceptions which inherited from this abstract base class it wasn’t behaving as expected.
The gotcha here is that C#/.NET doesn’t allow you to catch exceptions from an abstract class. If you want to catch a base class Exception, avoid that abstract.
You have been warned! This is for .NET 2 by the way ![]()
Is Microsoft’s future ‘delicious’?
So have you had chance to see Microsoft’s (supposed) answer to Apple’s excellent Get A Mac adverts yet?
Well in case not, I’ve included it after the break. So I get the fact its got people talking because its obtuse, I get the fact that its not tying them to advertising one product but seriously have they thought about what this advert is saying?
Read the rest of this entry »
Ur clrd 2 lnd
In case you’ve not yet realised the business benefits of using SMS, then maybe this story from Ireland will help convince you.
The Irish Times wrote a story last Thursday about how an air traffic controller used SMS to guide a plane down safely.
He then lost audio telephone contact but the air traffic controller switched to texting and told the pilot that he had a primary radar signal on the aircraft and that Cork would allow them to land there. He then used texts to guide the 30-year-old plane in.
So maybe rethinking the usage of phones on planes needs revisiting? SMS might be small but it can be powerful. A bit like the Twitter story of the guy whose one word triggered a whole community response to his arrest in Egypt.
Powered by Elephants
Apparently this coffee is elephant powered. Well, made with Elephant Beans anyway.
Unlike that Kopi Luha (sp) whose beans have passed through the digestive system of a wild cat, I’m hoping these haven’t been fished out of some dung. I jest of course as it refers to the size of the beans.
It does make you start to question what your beverage has been through to get to your cup!




