Christchurch .Net User Group Architecture Chat

Today was the third CHCH DNUG Architecture Chat’s. Once again at the Bohemian Cafe.

We had seven attendees today, with a couple new faces.

Topics discussed:

  • Google Analytics, and general site performance feedback systems. Bryn discussed the power of monetizing the cost of down time on a production server, and using this to improve development processes.
  • Windows Workflow Foundation, I inquired weather anybody had any experience with it yet, Gary said he was starting to look at it, but had some useful articles from the web about others findings.
  • Office Ribbon and task oriented customization, we talked about the office ribbon, and about other methods of solving the task oriented activities. I was firmly in the ribbon makes sense, “let-go of your fear luke” camp.
  • SOA, followed on from the ribbon.
  • A little gadget wars.
  • And generally Bryn telling good tales from the dark places.

There was a standing in the door discussions also, where I partook in about TDD, and more WWF/WCF/DCOM architecture stuff.

SourceGear’s DiffMerge and Subversion

Eric Sink has just posted that SourceGear’s DiffMerge is free. Woot a new tool!

As a subversion user, I thought I’d check it out, compared to the default TortoiseMerge. Well it beats the pant off that, but still left a few things lacking..

The first part getting TortoiseSVN to use the external tool.

TortoiseSVN options window

Using the command line parameters %mine %merge %theirs

Hay presto it works. Well you get the Subversion failed merged result in the middle. As DiffMerge only supports three files so you can’t see the base and the result as the same time. But as the Subversion merge failures are messy, DiffMerge finds the merge failure points really easily with the Next Merge button (need to learn the keyboard short-cut).

A subversion merge failure look like this

DiffMerge in 3-way action

The nice thing is you get highlighting between the mine/theirs so here you can see I inserted a HWND cast, and the replace with this block works real nice.

So first before I note my wish list, I will be using DiffMerge over TortoiseMerge. This will help as a stop measure until I get to trial the new Beyond Compare Merge tool (hope it lives up to my expectations)

Simeon’s Free DiffMerge Tool improvement list:

  • Do four way merge: Mine, Base, Theirs, Result. This way I can see what each person changed and have a more informed edit.
  • Allow me to manually match the 2/3 documents. Like I can do in BeyondCompare 2
  • Improve the auto matching code, if in the above code picture, the left (and thus top of the merged “working” code was indented differently then the for loops would not align. This could be solved by fixing the indentation in the result file, or by deleting the working line.
  • Give me a bigger screen at home, wow, you really can’t see much code on a 17″ monitor, running 1152×864. Well this is my own problem to solve.
  • Support the subversion method of marking the result set…

That’s it for now. Thanks Eric and SourceGear, this really is better than what I had before.

Started playing with Castle Windsor Container

And all I have done so far is spill blood, trying to add Windsor to a working DCOM service.

So I’m going to try go back to square one, get the basic examples working, and progress from there…

Update: So I was trying

    Container = new WindsorContainer(new XmlInterpreter());


     Container = new WindsorContainer(new XmlInterpreter(new ConfigResource("castle")));

but always got:

    System.Configuration.ConfigurationException was unhandled
    Message=”Could not find section ‘castle’ in the configuration file associated with this domain.”
    BareMessage=”Could not find section ‘castle’ in the configuration file associated with this domain.”
    at Castle.Core.Resource.ConfigResource..ctor(String sectionName)
    at METScomms.MainProgram.Main() in C:\dev\METSsharpe\METScomms\MainProgram.cs:line 23
    at System.AppDomain.nExecuteAssembly(Assembly assembly, String[] args)
    at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
    at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
    at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
    at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
    at System.Threading.ThreadHelper.ThreadStart()

So after discovering that there is a third page to the basic intro (after page two) I now have the programmatically setup container working… At least it’s a start…