Home / Posts tagged "bbv.Common"

Accelerate your application development

It has been a bit quiet on our blog for a longer time. Urs and I were pretty busy raising a new child. We long dreamed about a general overhaul of our pet project bbv.Common. We have long been searching for a cool name which reflects the ideas behind the library. Now it is time to announce the final release version of the renamed bbv.Common. Drum roll…

Appccelerate is a library which helps you accelerate your .NET application development. The libraries are based upon real world experience and guaranteed to be used in at least one commercial project. Our goal is to simplify tedious tasks. All components provided by Appccelerate were designed in a way so that your code will be loosely coupled, easy to test and easy to extend and maintain.

Continue reading

Client / Server Localization – Introduction

This is the introduction posts about dynamic client / server localization which describes the problem domain. In one of my current projects, we are building a client / server application that uses windows communication foundation requests and responses and event driven data, which is fired over the distributed event broker. Some of the data is dynamically rendered on the client but needs to be translated into several languages. For information which is already known at compile time localization is really straight forward with WPF. But what about data which is not known at compile time of the client?

Continue reading

bbv.Common.Bootstrapper Tutorial Part 6

The reporting mechanism allows creating a full report of the bootstrapping process. To be able to report the bootstrapping process the process must actually run and a reporter must be present. By default the bootstrapper uses a null reporter which does nothing with the report. But it is also possible to hook in a report generator which creates Visio, Enterprise Architect or … (you name it!) diagrams.

A custom reporter must implement the reporter interface IReporter. The reporter receives an IReportingContext which contains all necessary information about the bootstrapping process. The custom reporter must be passed upon the construction of the DefaultBootstrapper<TExtension>. Continue reading

bbv.Common.Bootstrapper Tutorial Part 5

Configuration sections

The bootstrapper supports loading of configuration sections through behaviors. The behaviors responsible for loading configuration sections must be applied in the begin section of the run syntax.


To be able to load configuration sections the ConfigurationSectionBehavior must be added in the strategy. Continue reading

bbv.Common.Bootstrapper Tutorial Part 3


Behaviors allow extending the bootstrapping process in an aspect oriented style. Behaviors gain access to extensions which are participating in the bootstrapper process and can therefore influence them for example by injecting additional runtime information into an extension. Behaviors must implement IBehavior<TExtension>. They automatically gain access to all extensions participating the bootstrapping process. Behaviors are executed before the corresponding extension point is called. Continue reading

bbv.Common.Bootstrapper Tutorial Part 2


The bootstrapper can do more! Let us look into a more complex scenario. Often it is required to collect context information during the bootstrapping process and pass this information to the extension points.

Imagine you are using an inversion of control container which intakes IModule implementations to register dependencies during the bootstrapping process. All IModule implementations need to be passed into the IContainer implementation upon construction. For backward compatibility the bootstrapper must automatically check whether an extension implements IModuleProvider and register the provided modules on the IContainer implementation. Continue reading

bbv.Common.Bootstrapper Tutorial Part 1


To get started with the bootstrapper you need the following three things:

  1. Extension interface
  2. Strategy
  3. Bootstrapper setup

Extension interface

The extension interface defines the extension points which are called by the bootstrapper. The custom extension interface must inherit from IExtension and can only declare methods which return void as extension points. A very basic extension interface could look like the following:

    public interface ICustomExtension : IExtension
        void Start();
        void Stop();

Continue reading

bbv.Common.Bootstrapper: Introduction

There’s a new kid around the block! The bbv.Common library contains now a generic bootstrapper implementation. The bootstrapper provides a simple and flexible way to make your application’s startup and shutdown behavior pluggable and extendable. As usual the bootstrapper package comes along with high unit test coverage (it has been developed with TDD), executable specifications (MSPECified 😉 ) and a sample application. The bootstrapper is focused around the following core features… Continue reading

Distributed Event Broker – Custom messages, selection strategies and restrictions

In my last post I gave an overview about some of the customization possibilities of the distributed event broker. In this post we are going even deeper into some of the customization possibilities the distributed event broker offers. I want to cover the following topics: Custom messages and selection strategies. Furthermore I want to give some details about the current restrictions of the distributed event broker.

Continue reading