Skip to content
James Craig edited this page Apr 1, 2014 · 1 revision

The Ironman Framework's main purpose is to simplify MVC development. It's currently a work in progress but sets up a number of items for you automatically:

Asset Management

The framework automatically combines/minifies CSS and JavaScript files for you. It searches the Content and Scripts folder and sets up items based on the directory structure. For instance a directory structure like this:

  • Content
    • Theme
    • Theme2

This would create bundles for Theme, Theme2, and one combining the two for Content. In order to use the Theme directory you would use the following:

@Styles.Render("~/Content/Theme/Bundle/CSS")

In order to embed any JavaScript files in that directory, you would use:

@Scripts.Render("~/Content/Theme/Bundle/JS")

There is also a plugin system that allows you to add support for other file types. At present I have only created a LESS plugin but will hopefully be able to add other file types. You can also add support for various optimizations. For instance it currently automatically embeds images and web fonts specified by the css files within the css file itself. This in turn reduces the number of calls that need to be made to the server.

Task Manager

This system piggybacks on top of WebActivator and just makes creating tasks that should run before startup, after startup, and when shutting down a bit easier. It wraps things up with a bit of logging and generally is a little faster to set up than the WebActivator approach but only slightly. Out of the box it only contains two tasks: one to set up any value providers that you create and one to set up the assets system.

Serialization

The framework adds a number of serialization types to your application. It lets you accept SOAP, XML, JSON, CSV, etc. and will automatically deserialize them for you using its internal value provider. It also lets you easily create your own serializers and it will automatically hook those up for you. With functions that it adds to the controller base class, it will even handle content negotiation for you.

IoC Container

The system will use any IoC container that you feed it using a bootstrapper. Once set up it will tie it into MVC as well as use it internally. By default it comes with an IoC container that is very similar to TinyIoC. It doesn't have that many features but is really just designed for simplicity's sake.

Addons

The system is designed from the bottom up to really just be a framework for plugging in other libraries. Say you want to use NLog, Json.Net, and MiniProfiler in your project. With Ironman, you just write a wrapper (or use one that someone else has written) and the framework will automatically start using it. Want to switch out NLog for log4net? Not a problem, just swap out your wrappers and you're good to go.

API System

This portion is really a work in progress but it is an attempt to simplify setting up a simple REST API for your application. I would not really recommend using it at this point in time as it will probably change quite a bit as time goes on.

Extras

Ironman doesn't have too many extras at the moment but it does have a rather simple Glimpse plugin at the moment. I plan on expanding on this and will attempt to plug the system into other libraries where I find it useful.

Clone this wiki locally