28 Oct 2008

Two bits of sexy news from PDC :)

WF 3.0/3.5 has effectively been taken out back and shot, and replaced with alot sexier version. First look makes it look far easier to use and extend, and can be skinned with WPF :)

VS2010 is being converted to a WPF based app (like the Expression tools), and will be taking advantage of a new extensibility model being included in .Net 4.0.

I can't wait to get hold of the CTPs! :D

22 Oct 2008

Developer Day 7

The registration for DDD 7 has gone live, and promptly filled up. Best get on that waiting list!

http://www.developerday.co.uk

17 Oct 2008

PDC Sessions

The timetable for the sessions has been announced for PDC!

You can have a look at it here.

I'll definatley be at the WF ones, and probably the OSLO onces so came and say hi if you see me :)

16 Oct 2008

SSRS to Web Service

I've recenlty been doing some work with Sql Server Reporting Services talking to a WCF Service. This isn't quite as easy as it sounds. The first thing you need to do is specify a new data source as an XML based source.

And the request to the Service replaces the text in the Dataset.



You then specify a nice request and response as with any message based WCF service:

namespace MyReports
{
[MessageContract(IsWrapped = true)]
public class DataRequest
{
[MessageBodyMember="A"]
private string _fieldA = string.Empty;

[MessageBodyMember="B"]
private string _fieldB = string.Empty;

[MessageBodyMember="C"]
private string _fieldC = string.Empty;
}
}

The response looks something like this:

namespace MyReports
{
[MessageContract]
public class DataReponse
{
[MessageBodyMember="Data"]
private data[] _data;
}
}


And the data object looks like this:

namespace MyReports
{
[DataContract]
public class Data
{
[DataMember(Name="First"]
private string _field1;

[DataMember(Name="Second"]
private string _field2;

[DataMember(Name="Third"]
private string _field3;
}

// Ctor, Getters and setters excluded
}


Voila you're done... Or are you?!?

I found quite a nasty gotcha in doing this. My request class was only being partially populated everytime I did a request. I checked the attributes on the service and classes, I used TCP Trace to make sure the values were actually crossing the wire (which they were), but still the request wasn't being populated properly.

I even asked my pal [insert favourite search engine here] but couldn't fnd anything on it. So I started playing around with the fields in the report and low 2 of the 6 request params were now being populated! What had changed? The ordering. After a few more trial and errors I found the problem. The parameters from the report have to be sent in alphabetic order, otherwise for some reason the request doesn't deserialise properly.

Looking for a new contract

After having given my 3 month notice into ITV, I've started looking for a new contract. So if you'd be interested in getting me into your organisation check out my Linkin profile and drop me an email :)

I'll be free from the 1st December.

8 Oct 2008

Presentation and Code for "Going with the Workflow"

I've popped the Slides and Code onto my Skydrive, you can get at it here:



Enjoy :)

Cambridge and Workflow

Last night saw Rich and I travel up to Cambridge to hijack the evening with our Watin and Workflow talks.

Chris and Allister certinaley have managed to bag themselves with an excellent crowd and venue! We were given a very warm welcome by the group and were asked some very complex questions on our talks.

I did get one question which I could not answer which was this:

"Doesn't creating more than one Workflow Runtime in an AppDomain raise an exception?"

This was interesting as I thought you could, but the attendee thought you couldn't. So I've done a bit of searching and found we were both right! Before the final release WF did indeed use to throw an exception if you tried creating more than one instance of it in an AppDomain, but after the final release you can create as many instance in an AppDomain as you like. Here's a link with a bit more info on the matter, including when you'd want to have multiple instances running.

Overall I thought the session went well, the feedback from Southampton run really helped improve the session, and apart from a couple of hiccups in the second half it went really well. So I'd just like to thanks the guys in Cambridge for hosting us, and the members for making us feel really welcome.

I'll be posting code and slides up soon, so check back later :)

Oh, and don't forget to harrass Chris and Allister to host the Silverlight Assault Course up there :)

2 Oct 2008

Oren Eini at the DotNetDevNet

Top speaker Guy Smith-Ferrier has Oren Eini appearing at his User Group on Monday 13th October, here's the details:

When: Monday 13th October 2008, doors open 6:00pm, meeting starts 6:30pm

Where: UWE (University of the West of England), Frenchay, Bristol (see FAQ for directions and a map) - Room 2q50 (in Q block)

What: "Producing Production Quality Software" and "Interaction based testing with Rhino Mocks"

Who: Oren Eini is the author of Rhino Mocks and a major contributor to Castle and NHibernate.

Why: Because Oren is in the UK for a couple of weeks and we've managed to nab him whilst he's here. This is a rare opportunity to listen to someone who can make a real difference to the success of your project.

How do I sign up for this meeting: Send an email to meetings at dotnetdevnet.com and quote your user name and the October Extra meeting.

"Producing Production Quality Software" Abstract:

Working software is no longer the only thing that we need to produce. We need to create a software system that has a chance of surviving in the cruel world of production system, outside the clean room and sterile environment of development and QA. Understanding bottlenecks in the system, preventing cascading failures and recovery strategies have ceased being the problems of the very high end players. With the cost of system downtime being measures in $$$/second, this is an area we have to consider all the way. In this talk we will cover how we can map common weaknesses in the system design, preemptively protect ourselves from them, and produce software systems that can withstand the real world hostile environment.


"Interaction based testing with Rhino Mocks" Abstract:

Beyond the simplest scenarios, all objects had collaborators that they work with. This flies in the face of testing objects in isolation. This is the problem that mock objects were created to solve. In this talk you will learn what mock objects are, how to utilize them and best practices on when / how to utilize them. Rhino Mocks is a mock objects framework for .Net whose core goals are to let the developer rely on the compiler work well with refactoring tools.

Bio:

Oren Eini is an independent consultant based in Israel, focusing on architecture and best practices that lead to quality software and zero friction development processes. He is the author of Rhino Mocks, the most popular mocking framework on the .Net platform as well as a member of other well known open source projects, chief among them are the Castle project and NHibernate.
Oren is an internationally known speaker, and the author of the soon to be published book: Building Domain Specific Languages with Boo.

Our Birthday Bash

So this months session will see NxtGenUG Southampton hit the grand old age of 1! We've had a cracking series of evening sessions from some absolutley top names, plus a very successful Saturday event in the form of the Silverlight Assasult Course.

So whats happening for our first birthday? We thought we'd try something a tad more interactive than a normal talk, something people could particpate in. Our very own Rich A (Mr Ready Steady Speak Remix 08!) and member Plamen Balkanski are going to do a session on Agile development, including the agile Planning Game!

Sign up and get more details on the following NxtGenUG page.

We're of course have Birthday Cake! :)