message framework for c#