C#: a way to get around the lack of multiple implementation inheritance

I run across this question from time to time: why is there no multiple inheritance in C# like there was in C++.  Personally, I’ve never needed it, but I do see a value to it, and there are some times when it would appear to be handy. There is a workaround to this problem that…


How is workflow different from a Finite State Automata?

After showing a workflow diagram to a co-worker, he asked me if I could tell him how this is any different from basic Finite State Automata (FSA).  To be honest, I had to think about it for a few minutes to get my thoughts around this, but there is a fairly big difference. For those…


On XML Models of Process

XML is an interesting language, but is it a useful one for describing a process? We have multiple competing standards for workflow and collaboration.  We have BPEL, XPDL, SWFL, XRL, XScufl, and custom XML workflow models developed for the XFlow, AntFlow, Agile, YAWL, and OpenWFE tools.  (If anyone is looking for a good idea for…


steps to transition a client server VB6 app to .Net

Every now and again, I get a question that I’ve seen many times before.  I saw this one recently and thought I’d record the answer, so I can refer to this in the future. Question: Our company develops and markets a client/server application which is written in VB6 as a rich Win32 Client/Server application. For…


On being offered MVP status

Back when the MVP program first started, I was a developer at American Express.  I was writing code in VB1 and VB2, and the forum was on Compuserve. I answered questions regularly, and earned an MVP award.  I kept it up, and remained a VB MVP for three years.  Then, when the dot-com explosion came,…


How to learn Object Oriented Programming

Do you understand what encapsulation means, but don’t know why in the world you would want to use it? Do you see examples of inheritance in the frameworks and libraries, but have only just dabbled with inheritance in your own code? If you answered yes to these questions, you want to begin to learn the patterns literature….


Storing configuration settings for your DLL to use

One common complaint about the .NET framework is that there is only one config file for the application, even if there are many assemblies (exes and dlls).  This post contains advice for how the author of a DLL can keep the configuration settings for that DLL seperate. The config file gets its name from the…


Three levels of abstraction in BPM – Part 1: Business Unit Level

I identified, in an earlier post, that I believe that there are three levels of abstraction in business process modelling.  The highest level (what is often called the 30,000 foot view), is the Business Unit Level. This blog entry will discuss some of the attributes of models at the Business Unit level and some of…


SOA and BLOBs — using SOA principles for block-oriented data transfer (Updated)

Abstract: What happens when a business transaction, in Service Oriented Architecture, is too big to fit into a simply SOAP transaction?  This (updated) article describes a problem of this nature and the solution that allows block-oriented data transfer to work in an SOA-based application. Introduction Some things should simply not be done.  If I have…


Stateless is to service as commandless is to data

Abstract: This article provides a counterpoint to Pat Helland’s most recent article by describing the concept of “commandless data documents,” and how they are logically used in Service Oriented Architecture. Introduction I was re-reading Pat Helland’s latest SOA article “Data on the Outside, Data on the Inside” recently.  It is a good step forward in…