Skip to content

Composer is an extensible Compositional Architecture framework, providing a set of functionality such as Inversion of Control container (IoC), Dependency Injection (DI), Plug-in framework, Aspect Oriented Programming (AOP), Configurability and Composability for components.

License

Notifications You must be signed in to change notification settings

clay-one/composer-core

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

61 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build status Build status Build status

ComposerCore

Documentation - Quick Start - Concepts - Frequently Asked Questions

ComposerCore is an extensible Compositional Architecture framework for .NET, providing a set of functionality such as Inversion of Control container (IoC), Dependency Injection (DI), Plug-in framework, Aspect Oriented Programming (AOP), Configurability and Composability for components. See Documentation for more details.

It enables software to be developed in a Compositional manner. A complete software system can be formed by composing various smaller re-usable parts together. It simplifies the software development process, and help developers and architects meet design goals such as Configurability, Extensibility, Reusability and Customizability. More...

What problems are addressed by ComposerCore?

The items below are high-level benefits of building software in Compositional architecture, which is provided by ComposerCore.

  • Inversion of Control: ComposerCore can act as a container for Inversion of Control.
  • Dependency Injection: ComposerCore can inject dependencies of components either created by itself, or created outside and handed over to it.
  • Interception and Filtering: ComposerCore facilitates means for intercepting calls between components, filtering them, or redirecting them.
  • Dynamic Mocking: ComposerCore has tools for dynamically creating implementations of interfaces.
  • Aspect Oriented Programming: ComposerCore facilitates easy creation of Aspects between layers.
  • Extensibility: ComposerCore provides means for building extensible software components quickly and easily.
  • Plug-in framework: ComposerCore makes it easy to incorporate plug-in functionality in an application.
  • Configuration: ComposerCore allows software components declare configuration options, which can be provided from flexible sources without the knowledge of the component itself.
  • Customizability: ComposerCore makes customizing software for different customer much easier.
  • Reusability: ComposerCore enables easier re-use of software components across different products, and across customizations of the same product.
  • Substitutability: ComposerCore makes individual components easily substitutable, without affecting other parts of the system.
  • Testability: ComposerCore makes it easy to isolate a single component or a group of components for testing.
  • Instance Sharing: ComposerCore can keep track of instantiated components, and share the instance for different uses to prevent unneeded object creations.
  • Lazy Initialization ComposerCore makes it easy to defer instantiation of components until when they are actually needed.
  • XML Based composition: ComposerCore has utilities to parse XML documents that specify the composition and registration of components.
  • Extend Composition Logic: ComposerCore is extensible itself, allowing you to customize and add your own logic to the composition flow in several ways.

Documentation - Quick Start - Concepts - Frequently Asked Questions

Migrating from Composer

ComposerCore is based on, and adapted from, the Composer project. It is restructured and ported to .NET Core.

If you're already using Composer, see Migration Guide for a comprehensive list of changes.

About

Composer is an extensible Compositional Architecture framework, providing a set of functionality such as Inversion of Control container (IoC), Dependency Injection (DI), Plug-in framework, Aspect Oriented Programming (AOP), Configurability and Composability for components.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages