Connecting to Tibco EMS from a C# Client

Introduction This is a slightly esoteric post, but hopefully it will be of use somewhere.  Below is some reasonably simple code that shows the basic use cases for connecting to a Tibco EMS Server topic from a C# client using Tibco's TIBCO.EMS.dll. It actually points at a locally installed instance of EMS.  That is, the … Continue reading Connecting to Tibco EMS from a C# Client

Asynchronous Programming in .Net: Async and Await for Beginners

Introduction There are several ways of doing asynchronous programming in .Net.  Visual Studio 2012 introduces a new approach using the 'await' and 'async' keywords.  These tell the compiler to construct task continuations in quite an unusual way. I found them quite difficult to understand using the Microsoft documentation, which annoyingly keeps saying how easy they … Continue reading Asynchronous Programming in .Net: Async and Await for Beginners

Why Starting a New Task in the Task Parallel Library (TPL) Doesn’t Always Start a New Thread

The Task Parallel Library in .Net is a wonderful resource.  However, one thing that is a little confusing is that it is actually possible to start a task that runs on the same thread as the current code.  That is, we can do Task.StartNew and it still runs on the same thread.  This isn't the … Continue reading Why Starting a New Task in the Task Parallel Library (TPL) Doesn’t Always Start a New Thread

Delegate Syntax in C# for Beginners

Introduction I have been programming with C# since it came out but I still find the delegate syntax confusing.  This is at least partially because Microsoft have changed the recommended syntax regularly over the years.  This article is a quick recap of the various syntaxes.  It also looks at some of the issues with using … Continue reading Delegate Syntax in C# for Beginners

Extending Classes: Extension Methods or Inheritance?

Introduction Extension methods were introduced in C# 3.0 as a way of extending a class without necessarily having access to the original source code of the class. As discussed in the C# Programming Guide on MSDN, extension methods were primarily introduced to the language to allow LINQ to add standard query operators such as GroupBy … Continue reading Extending Classes: Extension Methods or Inheritance?

Model-View-Presenter using the Smart Client Software Factory (Introduction To CAB/SCSF Part 25)

Introduction Part 23 and part 24 of this series of articles described the Model-View-Presenter pattern. This article explains how the Smart Client Software Factory supports this pattern by generating appropriate classes. Guidance Automation Packages in the Smart Client Software Factory We saw how we could use the Smart Client Application Guidance Automation Package to set … Continue reading Model-View-Presenter using the Smart Client Software Factory (Introduction To CAB/SCSF Part 25)

Table of Contents: Introduction to using Financial Products Markup Language (FpML) with Microsoft .NET Tools

Part 1 Introduction An overview of how we can use Visual Studio to examine the FpML XSDs. Shows how to create a Visual Studio project containing the FpML schemas, and how to use that to navigate through them. Also shows how to validate the XML examples that are provided in the FpML download, both using … Continue reading Table of Contents: Introduction to using Financial Products Markup Language (FpML) with Microsoft .NET Tools

Problems with Using xsd.exe to Generate .NET Classes from the FpML XSD Schema (Introduction to using FpML with .NET Tools Part 4)

Introduction Part 3 of this series of articles showed how we can generate .NET classes from the FpML XSD schema using xsd.exe. It showed how we can then use standard .NET serialization syntax to populate the classes from FpML documents, and vice versa. However, as mentioned in part 3, xsd.exe generates buggy code when used … Continue reading Problems with Using xsd.exe to Generate .NET Classes from the FpML XSD Schema (Introduction to using FpML with .NET Tools Part 4)

Workspace Types (Introduction to the CAB/SCSF Part 17)

Introduction Part 16 of this series of articles explained in general terms why Workspaces are useful. It also examined the methods that are available on a Workspace via the IWorkspace interface. There are five Workspace types provided with the Composite Application Block framework: DeckWorkspace, ZoneWorkspace, TabWorkspace, MdiWorkspace and WindowWorkspace. This article looks in a little … Continue reading Workspace Types (Introduction to the CAB/SCSF Part 17)