Coolthing Of Theday

  • Subscribe to our RSS feed.
  • Twitter
  • StumbleUpon
  • Reddit
  • Facebook
  • Digg

Monday, 25 February 2013

Sacha say IOC you! Sacha Barber presents his BarbarianIOC...

Posted on 17:12 by Unknown

CodeProject - BarbarianIOC : A simple IOC Container

  • Introduction
  • What Does It Do
    • How Do You Configure The Container
    • Allow For Non IOC Constructor Parameters
    • Constructor Injection
    • Property Injection
    • Resolving Instances
  • How Does It Work
    • Registering Instances
      • Registering Concrete Instances
      • Registering Service Instances
      • Specifying The Instance Mode
    • Providing Extra NON IOC Constructor Parameters
    • How The Instance Mode Works
      • Transient Instance Mode
      • Singleton Instance Mode
      • Putting This To The Test
    • Wiring It All Together
    • How Resolving Instance Works
  • That's It

Introduction

...

Thing is I have always wanted to try and make one of these  myself, just to see what is involved. I did not want to go too nuts on this, and  just wanted the following really:

  1. Instance configuration : singleton / transient
  2. Simple registration process, maybe some sort of fluent interface
  3. Use the Expression API to compile into delegates for quick creation of  objects
  4. Constructor / property injection
  5. Provide the ability to accept non IOC held constructor parameters

So those couple of points are ALL I wanted to get working. As I say there are  a whole slew of full fledged IOC containers out there (where I have named a few  above), this articles container is more of a learning exercise, that I thought  I would share, in case anyone else is interested in this sort of thing.

I am calling my container BarbarianIOC as the existing  containers all seems to have these short snappy names, and it's kind of play on  my name, and if you saw me without a shave I do kinda look a bit like a  barbarian.

So there we go. That's essentially what this article is about, but just  before we get into the guts of it, please read this important note below.

IMPORTANT NOTE

I should point out that you should stick to using one of the major IOC containers out there,  as this was an exercise  to see what you needed to do to create your own. That is not to say I am not  happy with it, I totally am, and I think with more tinkering, I could make it  act near enough like one of the "proper" IOC containers out there, but I just know that,  that tinkering will never happen, as I am always  eager to move on to something new. So yeah just stick to using one of the big  "proper" IOC containers out there.

What Does It Do

In this section I will should you how to use BarbarianIOC, and  what that looks like in a typical application

..."

Mare than anything I just like this Project's name... I've been meaning to jump into some real world IOC ("What? Greg, you're not IOC'ing every day in every app? ZOMG!" Yeah, yeah, I know... but my brain is only so big and I'm still trying was out the VB6'ness... sigh.. GC.Collect... GC.Collect.... ;)

Anyway, I like Sacha's past work and have learned a good bit from reading his articles, so this one looks like it's going to my "Must grok soon" list.

Email ThisBlogThis!Share to XShare to FacebookShare to Pinterest
Posted in .Net, Development, InversionOfControl | No comments
Newer Post Older Post Home

0 comments:

Post a Comment

Subscribe to: Post Comments (Atom)

Popular Posts

  • Mr. 7,000! This is my 7,000th post...
    Before this post; After; 20 visits between taking these snaps? Oh wait, that's probably me searching for past related posts....
  • "Windows Server Essentials Media Pack" (DNLA Stream, HTML5 and Dashboard Media stuff)
    Microsoft Downloads - Windows Server Essentials Media Pack This pack enables the media streaming functionality for Windows Server 2012...
  • Rad Gate Post... Get your Red Gate Post here...
    simple talk - Melanie Townsend - Get a copy of the Red Gate Post We recently put together a newspaper of some of the best articles fr...
  • Windows Management Framework 4.0 (PowerShell 4, PowerShell ISE, Management OData, WMI, etc.) now available
    Keith Hill's Blog - PowerShell 4.0 Now Available You can get PowerShell 4.0 for down level operating systems now via the WMF 4.0 d...
  • Viasfora - Your new favorite Visual Studio Text/*ML Editing Extension?
    Winterdom - Introducing Viasfora A couple of days ago, I unveiled Viasfora , my latest attempt at building a decently packaged extensi...
  • "Windows Server [2012 R2]: The Best Infrastructure to Run Linux Workloads"
    In the Cloud - What’s New in 2012 R2: Enabling Open Source Software Part 4 of a 9-part series . ... There are a lot of great s...
  • [Hardware Review] Life with Haswell... Haswell/Harris Beach Intel SDS Ultrabook Review - Part 2
    "So Greg, how's life with Haswell been?" "Pretty Sweet! (Mostly)" I've been given an opportunity to review t...
  • Fuzzy Lookup Add-In for Excel (Insert lame "Fuzzy, wuzzy was an Excel..." snip here)
    Microsoft Downloads - Fuzzy Lookup Add-In for Excel The Fuzzy Lookup Add-In for Excel performs fuzzy matching of textual data in Exce...
  • Caliburn.Micro v1.5.0 released (CM gets Tasks, Async/Await and Share/Setting for RT... and bug fixes of course)
    Caliburn.Micro - Caliburn.Micro v1.5.0 "Release Notes This release fixes many bugs. It also adds support for Task and async/a...
  • Just about everything you ever wanted to know about SQL Server Date and Time Data Types...
    CodeProject - Date and Time Data Types and Functions - SQL Server (2000, 2005, 2008, 2008 R2, 2012) Introduction It would be bette...

Categories

  • .Net
  • 3DPrinting
  • AFeedYouShouldRead
  • Agile
  • ALM
  • Amazon
  • Amiga
  • Analytics
  • Android
  • ASP.NET
  • Azure
  • BigData
  • bing
  • Blogging
  • Book
  • BookReview
  • BUILD
  • C
  • C#
  • C++
  • Career
  • Cat
  • cheatsheet
  • ClickOnce
  • Cloud
  • ComputerHardware
  • css
  • Data
  • DBA
  • DependencyInjection
  • Deployment
  • Design
  • Development
  • devops
  • DVCS
  • ebook
  • EDD
  • Education
  • EnterpriseLibrary
  • EntityFramework
  • Exchange
  • Expression
  • gadget
  • Game
  • GIT
  • Google
  • Government
  • Hadoop
  • hardware
  • HardwareReview
  • HaswellReview
  • HTML5
  • Humor
  • IE
  • IEExtension
  • IfAllElseFails
  • IIS
  • ILMerge
  • Image
  • Infographic
  • interview
  • InversionOfControl
  • Java
  • Javascript
  • Kinect
  • LightSwitch
  • LINQ
  • Linux
  • LosAngeles
  • Lucene
  • Lync
  • MEF
  • Metro
  • MicrosoftOffice
  • MicrosoftOutlook
  • Mono
  • MVC
  • MVVM
  • NetMon
  • NLP
  • NoSQL
  • NuGet
  • OData
  • OneNote
  • OpenXML
  • Paint.Net
  • Personal
  • Photosynth
  • Physics
  • portable
  • Poster
  • PowerShell
  • Preparedness
  • Presentation
  • Prism
  • PrivateCloud
  • RegEx
  • RemoteDesktop
  • Reporting
  • RIAServices
  • Science
  • ScienceFiction
  • Scratch
  • Scrum
  • ServiceBus
  • SharePoint
  • Silverlight
  • SimiValley
  • SPA
  • Space
  • SQLServer
  • Storyboard
  • Surface
  • SVG
  • SystemAdministration
  • T4
  • TeamBuild
  • TeamFoundationServer
  • TechEd
  • Training
  • TypeScript
  • UnitTesting
  • UnityApplicationBlock
  • Utility
  • Veteran
  • VirtualMachine
  • Visio
  • VisualBasic
  • VisualStudio
  • WCF
  • Web X.X
  • Webcast
  • WebFeed
  • WebMatrix
  • Windows
  • Windows7
  • Windows8
  • Windows8.1
  • WindowsHomeServer
  • WindowsLiveWriter
  • WindowsPhone
  • WindowsServer
  • WinRT
  • WiX
  • WMI
  • WOPI
  • WPF
  • XAML
  • XBox360
  • XboxOne
  • zombie

Blog Archive

  • ▼  2013 (500)
    • ►  December (12)
    • ►  November (61)
    • ►  October (65)
    • ►  September (38)
    • ►  August (47)
    • ►  July (75)
    • ►  June (39)
    • ►  May (40)
    • ►  April (42)
    • ►  March (39)
    • ▼  February (42)
      • How Microsoft and others, empowers you with PowerS...
      • Awake Await, Async Asink... Think before you async...
      • Shaping up Office 2013 with these 300 Visio icon s...
      • Today's LINQPad fun, SelectExcept! (a tip on selec...
      • Helping a sick system get better... Five Windows A...
      • Helping you Hadoop with "Hadoop illuminated" the f...
      • Robert continues to guide us in the right directio...
      • IE10 RTW now available for Windows 7 and Windows S...
      • LINQToWiki (yes, even Wikipedia)
      • Sacha say IOC you! Sacha Barber presents his Barba...
      • Robert's "One Stop VS Update Shop" guide to all th...
      • Windows 8 + Kona + Steve = Itinerary Hunter
      • ClickOnce, Windows 8 and SmartScreen (If you're us...
      • Wak-A-PST with Microsoft Exchange PST Capture 2.0
      • Excel with Excel without Excel... Seven Excel/XLS ...
      • The All-In-One Framework goes Metro... errr... umm...
      • Modernize your WPF app's with the Modern UI for WP...
      • The Expression death march continues... Expression...
      • Kevin's Tips To Technology Presentation Perfection...
      • The HTML5 Quick Start For Greg's (err... Dummies.....
      • Find your inner App Hero with these two new Window...
      • It's a Rap! The Surface Pro Rap, that is...
      • Microsoft Message Analyzer better in Beta 2 (Gantt...
      • Note to Los Angeles Metro (aka subway) riders: Don...
      • Adobe Photoshop Source Now Available! (For the 199...
      • Microsoft SQL Server Licensing Question? There's a...
      • Wiki-wiki, here's some popular PowerShell add-ons...
      • Table Per Type(TPH) Inheritance in Entity Framewor...
      • Gaming up a story with the PowerPoint Game Design ...
      • Glima!... Gilma v3 is a .Net 4.0 update...
      • "Official" Surface Getting Started Guide (free 68 ...
      • You've heard of ASCII Art? How about DNS Art!?
      • Adding a 4th row of Windows 8 Start Screen tiles t...
      • O'la! As in Ola Hallengren's SQL Server Backup, In...
      • One download of wonderful [Samples] for Windows 8....
      • Composing Maintainable XAML Apps, the nearly two h...
      • Unit Test Stored Procedures? Here's one example...
      • Intro to MVVM in four easy episodes....
      • Learn how to learn, creatively with the free MIT L...
      • Microsoft TechEd North America 2013, New Orleans, ...
      • How portable is your assembly? Check it with the P...
      • Removing the SkyDrive Pro Explorer Context Menu it...
Powered by Blogger.

About Me

Unknown
View my complete profile