StrangeIoC

Hey Unity! It's time to get Strange...

StrangeIoC is a super-lightweight and highly extensible Inversion-of-Control framework, written specifically for C# and Unity.

KEY BENEFITS

  • Decoupled, modular code.
  • Rapid development.
  • Good for individuals, great for teams!
  • Works great with Unity/MonoDevelop/Visual Studio. Also works great without them.

KEY FEATURES

  • Dependency Injection
  • Shared pub/sub system
  • View mediation
  • Battle-tested architecture
  • Core binding framework
  • Multiple, modular contexts

Details

Dependency Injection

Decouple all your class dependencies and write cleaner, modular code with a highly optimized Reflection/Injection system.

Two Pub/sub systems

Each context features an EventDispatcher reachable by any point in code. Additionally, a Signals-and-Slots style Signals dispatcher permits type-safe communication. Apply the method that suits you best!

View mediation

Insulate your app from the chaos often present in views. Mediation allows clean separation of Views from Controllers and Models with no loss of capability.

Battle-tested architecture

Strange's architecture is based on the popular Robotlegs micro-framework. This architecture is well founded, highly proven, and lightly urges responsible development that works great for individuals or teams.

Core binding framework

The core of Strange is a simple, highly extensible Binder class. Extend the Binder to create decoupling models that suit your situation. Every component in Strange is an extension of Binder, so there are already many examples to follow.

Multiple, modular contexts

Modular contexts allow you to spin off portions of your project to different teams, then agree on an API and plug-and-play. This simplifies development and decouples whole components of the app for later re-use.

Documentation

We've written lots of documentation to help you get started. It's all in the sidebar at the left, under 'Help'.

There's also this handy chart, which explains Strange's MVCS architecture in a single picture:

MVCSContext Architecture