Category.NET

bbv.Common.Bootstrapper Tutorial Part 4

b

Strategy
The strategy defines the order of execution for extension points and behaviors. The custom strategy must inherit from IStrategy. For convenience, use the provided abstract base class AbstractStrategy{TExtension} which simplifies defining a custom strategy. The strategy could look like the following:

bbv.Common.Bootstrapper Tutorial Part 3

b

Behaviors 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...

bbv.Common.Bootstrapper Tutorial Part 2

b

Advanced 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...

bbv.Common.Bootstrapper Tutorial Part 1

b

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

Extension interface
Strategy
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:

Why I like NDepend to untangle Dependencies in my Code

W

Some time ago, Patrick Smacchia (NDepend lead developer) offered me a NDepend Pro license to play around. NDepend is a tool providing a lot of features. The feature that impressed me from the very start is visualizing dependencies. Not just dependencies from classes to classes, or assemblies to assemblies; no from everything to everything. Like for example all assemblies that use somewhere the method Foo of class Bar. It works for assemblies, namespaces, types, methods and fields. But, what’s...

Why I like Machine.Specifications

W

Urs started with the idea and the category “why I like”… So I’ll steal his idea and go further with this category… This might be an expensive blog post because I need to pay license fees to Urs 😉 We adopted machine.specifications for our project approximately one year ago. We compared several context and specification frameworks but the overhead of the competitors was too high for our team. Also didn’t we have a product owner who was willing to write for...

bbv.Common.Bootstrapper: Introduction

b

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...

Distributed Event Broker – Custom messages, selection strategies and restrictions

D

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.

Caliburn.Micro – Core infrastructure

C

In my last post I covered basic topics about Caliburn and Caliburn.Micro. Lets look into the core infrastructure. Bootstrapper In short terms the Bootstrapper is responsible to configure the framework and provides extension points to hook in various Inversion of Control containers. The generic variant of the Bootstrapper allows defining which view acts as the main view (view-first) or which view model acts as the main model (view-model-first) of the application. The Bootstrapper can either be...

Recent Posts