Release Notes

If you don't already have a reference to FlitBit Wireup add one using the NuGet command line:

PM> Install-Package FlitBit.Wireup

Summary

FlitBit Wireup formalizes bootstrap processes by providing the ability to declare dependencies among assemblies and coordinate the tasks that bring an assembly to a ready-state.

It deals with the dependency among libraries, not dependency injection or inversion of control... for those see FlitBit IoC, which scaffolds on top of this library.

Visit the Core library's page to learn more about the FlitBit Frameworks.

Background

It may appear that we use the term wireup and bootstrap interchangeably, but it is not so. Bootstrap refers to the period between when the program is launched and when it becomes ready. We use the term wireup to refer to the more abstract phase that repeats throughout the life of a modern application as different modules are loaded just-in-time and must be made ready.

Too often, applications either devise custom bootstrap processes and end up with hard-coded dependency or rely on a mix of custom logic parts and inversion of control to achieve a ready-state. In the latter case, the IoC is a good move, but this library's purpose is to decentralize the other part; logic and tasks required of a bootstrapping/wireup process.

As an illustration, most ASP.net applications centralized too much logic in the HttpApplication's Application_Start method, essentially creating a know-it-all bootstrapper. We have learned through much tribulation to prefer a modular, decentralized approach when wiring up our application.

The approach we take is entirely modular.

1. Each assembly should declare its own dependencies.

In this way, a coordinator can ensure that all dependencies are met before an assembly is "wired-up" to an application.

2. If an assembly has logic that must be performed in order to bring itself to a ready-state, it must declare one or more tasks that perform the required logic.

In this way, when the coordinator wires-up an assembly, it can ensure that the tasks are performed in the proper, declared order, and thereby reach certainty that the assembly has reached a ready-state without ever having to know an assembly's purpose.

In contrast to the know-it-all model, assemblies can be easily wired in to a running application upon demand, reducing the start-up time for most applications, and eliminating the wireup logic for areas of the application that are not actually utilized.

Build Requirements


Some of the command lines rely on Powershell. Ensure your execution policy is permissive enough if you run the batch files or powershells.

~P

Last edited Apr 12, 2013 at 1:05 PM by cerebralkungfu, version 25