This repository was archived by the owner on Sep 2, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathbootstrapper.html
113 lines (112 loc) · 5.21 KB
/
bootstrapper.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
---
layout: documentation
title: Bootstrapper
teaser: Appccelerates your application bootstrapping mechanism
navigation:
- name: Tutorial
link: bootstrappertutorial.html
- name: Configuration Sections
link: bootstrapperconfigurationsections.html
- name: Syntax
link: bootstrappersyntax.html
- name: Customization
link: bootstrappercustomizations.html
- name: Reports
link: bootstrapperreports.html
- name: Tips and Tricks
link: bootstrappertipsandtricks.html
- name: Specifications
link: bootstrapperspecifications.html
---
<h1>Bootstrapper</h1>
<a href="https://www.nuget.org/packages/Appccelerate.Bootstrapper/">
<img src="http://img.shields.io/nuget/v/Appccelerate.Bootstrapper.svg" title="latest version" />
<img src="http://img.shields.io/nuget/dt/Appccelerate.Bootstrapper.svg" title="number of downloads" />
</a>
<a href="https://www.myget.org/gallery/appccelerate">
<img src="https://img.shields.io/myget/appccelerate/v/Appccelerate.Bootstrapper.svg" title="latest alpha version" />
</a>
<a href="https://github.com/appccelerate/bootstrapper/issues">
<img src="https://img.shields.io/github/issues/appccelerate/Bootstrapper.svg" title="open issues" />
</a>
<h2>Motivation</h2>
<p>
Every application goes through start up and shutdown phases. Everything starts really simple. Unfortunately self-made solutions quickly hit the wall due to ever changing business requirements. As a consequence, more services and components need to be introduced into the startup and shutdown mechanism during the software life cycle. The bootstrapper provides you an approved and extendable mechanism for bootstrapping. Put your application and acceptance tests on appcceleration!
</p>
<h2>Features</h2>
<ul class="check dotted">
<li>The bootstrapper provides a single entry point to startup and shutdown the application.</li>
<li>Fluent definition syntax allowing to expressively define the startup and shutdown behavior of the application. </li>
<li>Pluggable behaviors which allow to extend the bootstrapping mechanism in AOP like style. </li>
<li>ConfigurationSection support with behavior. </li>
<li>Unobtrusive Key/Value pair configuration section support with behavior. </li>
<li>Thorough reporting of application startup and shutdown behavior. </li>
<li>Heavily extendable and customizable core infrastructure </li>
</ul>
<p>
<i>For a quick introduction see the <a href="bootstrappertutorial.html ">
Tutorial</a>.</i>
</p>
<p>
<i>For the specification see the <a href="bootstrapperspecifications.html">
Specification</a></i>
</p>
<h3>Bootstrapper</h3>
<p>
When building a new application the bootstrapper is essentially the only root object
which needs to be instantiated in your application main method. The bootstrapper
is the central point of your application's startup and shutdown behavior.
</p>
<h3>Extensions</h3>
<p>
Extensions contain methods which are called upon startup and shutdown of the bootstrapper.
The methods of the extensions are extension points which can consume information
gathered during the bootstrapping process for example configuration. Extensions
are added directly on the bootstrapper.
</p>
<h3>Extension Resolver</h3>
<p>
An extension resolver allows to plug in extensions into the bootstrapper. All extensions
which are resolved by the extension resolver are added after manually added extensions.
</p>
<h3>Behaviors</h3>
<p>
Behaviors allow to extend 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.
</p>
<h3>Strategy</h3>
<p>
The strategy defines the order of execution for extension points and behaviors.
The strategy is also the context provider for context information which needs to
be passed to the extension points. The strategy allows to hooking in custom executors,
extension resolver and reporting context.
</p>
<h3>Executors</h3>
<p>
Executors are responsible for executing extension points on extensions and the behaviors
attached to it. Different executors can be used for the startup and shutdown phase
of the application.
</p>
<h3>Core behaviors</h3>
<p>
The bootstrapper package ships with some core behaviors which can be plugged into
your bootstrapping mechanism. Core behaviors include
<ul>
<li>Support to automatically load configuration sections </li>
<li>Support for bootstrapper configuration sections which are basically key/value pairs
and their values get automatically propagated to properties of extensions </li>
<li>Support to automatically dispose extensions which implement IDisposable </li>
</ul>
</p>
<h3>Reporting</h3>
<p>
The bootstrapper records the bootstrapping process and allows reporting the whole
process to a reporter. This can be used to automatically generate architecture and
design documents which describe the bootstrapping mechanism.
</p>
<h2>Further Information</h2>
<p>
Code samples: See sample project and unit tests in code for more samples.
</p>