Introducing TinYard - Your next .NET IoC framework
Tags: csharp, dotnet, tooling, ioc
Published: 2020-12-11 20:48:22

# TinYard

[TinYard Repository](https://github.com/TinYard/TinYard). Source Code and DLL's available here!

## Contents
 * [What is TinYard?](#What-is-TinYard?)
 * [Why use it?](#Why-use-it?)
 * [How do I use it?](#How-do-I-use-it?)
 * [Inspiration](#Inspiration)
 * [Contributing](#Contributing)


## What is TinYard?

TinYard is an IoC framework written in C# for .NET that brings more features than your bog-standard IoC-container.

TinYard aims to improve your code by providing an easy-to-use IoC container and more through its powerful but simple extensibility. The framework provides a few tools to help you create awesome things, such as:

* Dependency Injection (DI)
* Event System
* MVC Suite
* Easy Plug and Play Extensions

You can use it in your projects by adding the .dll as a dependency, or by adding the source code into your project. It's available both as binaries from the Github repository releases, or [you can find it on NuGet](https://www.nuget.org/packages/TinYard/). One of the great things about TinYard is that almost any .NET project can use it as it's compiled for .NET Standard 2.0.

## Why use it?

Use TinYard because it's a straightforward and simple IoC-container that lets you do more, when you want to. It's modular and gives you only what you want from it, when you want it.

Due to its modularity, it's a tool that allows you to add whatever you want to it to speed up and enhance your workflow. 

Aside from that.. to help build something awesome with me. Whether that's helping by informing me of bugs, requesting features, adding to it or just simply using it and advocating for it!

## How do I use it?

Have a look at the ReadMe! I've spent some time working on the ReadMe in the hope that it is useful.
There's some examples written up and linked to in the repository too!

## Inspiration

TinYard was an inspired product. I was encouraged by wanting to further understand the framework that I use at work and in personal projects at a deeper level than simply how to use it. I wanted to understand the design reasons behind it, as well as how to do the cool bits like DI.

The framework that inspired me is [Robotlegs-Sharp](https://github.com/robotlegs-sharp/robotlegs-sharp-framework). A framework built on top of an IoC container known as [SwiftSuspenders-Sharp](https://github.com/robotlegs-sharp/swiftsuspenders-sharp) that aims to provide an easy to use MVC framework. Whilst I didn't use the original [Robotlegs](https://robotlegs.tenderapp.com/), I do use the version that was ported to C# by some past colleagues and mentors regularly linked above.

## Contributing

If you would like to contribute, whether that's by letting me know of features you want or bugs you encounter or even going as far as adding directly to the codebase then please do! There's a contribution guideline on the repository, have a look at that or just open up an issue if there's features wanted or bugs encountered.

Any contribution at all would be highly appreciated! And, on the off chance that the project receives a sponsor or donation, you might find a chunk comes your way.

## Final Thoughts

Let me know what you think about TinYard. 
Code look good? Code look bad? Project seem pointless? I'll listen to it!