Your SlideShare is downloading. ×
Practical Inversion Of Control Matt Hinze
Agenda <ul><li>What is this talk about </li></ul><ul><li>The what and why of IOC </li></ul><ul><li>How to do it </li></ul>...
<ul><li>? </li></ul>
EmailSender
WorkflowStepper
 
 
new
Relationship is  set at compile time.
new  isn’t always viable.
 
<ul><li>Inversion of Control </li></ul><ul><ul><li>A concept </li></ul></ul><ul><ul><li>Relinquishing the responsibility o...
 
 
 
 
 
 
 
There is no  new
Some Benefits Enumerated <ul><li>Testing </li></ul><ul><li>Reuse </li></ul><ul><li>Simplicity </li></ul><ul><li>Constructi...
<ul><li>Don’t use the tool where you don’t need it, in most tests for example. </li></ul><ul><li>Think of the tool as a “c...
Useful Resources <ul><li>StructureMap documentation </li></ul><ul><li>Autofac documentation </li></ul><ul><li>Martin Fowle...
 
For More <ul><li>I teach a course in which we do this stuff for three days.  </li></ul><ul><li>We build features in a real...
Upcoming SlideShare
Loading in...5
×

Practical Inversion Of Control

1,069

Published on

Slides from a talk by Matt Hinze at the Austin .NET User Group

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,069
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide
  • SLOW DOWN BIG GUY About me mhinze.com Why I am giving this talk
  • Transcript of "Practical Inversion Of Control"

    1. 1. Practical Inversion Of Control Matt Hinze
    2. 2. Agenda <ul><li>What is this talk about </li></ul><ul><li>The what and why of IOC </li></ul><ul><li>How to do it </li></ul><ul><li>Usage scenarios </li></ul>
    3. 3. <ul><li>? </li></ul>
    4. 4. EmailSender
    5. 5. WorkflowStepper
    6. 8. new
    7. 9. Relationship is set at compile time.
    8. 10. new isn’t always viable.
    9. 12. <ul><li>Inversion of Control </li></ul><ul><ul><li>A concept </li></ul></ul><ul><ul><li>Relinquishing the responsibility of managing dependencies. </li></ul></ul><ul><li>Dependency Injection </li></ul><ul><ul><li>A pattern </li></ul></ul><ul><ul><li>Constructor injection </li></ul></ul><ul><ul><li>Property injection </li></ul></ul>
    10. 20. There is no new
    11. 21. Some Benefits Enumerated <ul><li>Testing </li></ul><ul><li>Reuse </li></ul><ul><li>Simplicity </li></ul><ul><li>Construction velocity </li></ul><ul><li>Fun </li></ul>
    12. 22. <ul><li>Don’t use the tool where you don’t need it, in most tests for example. </li></ul><ul><li>Think of the tool as a “composer” instead of a “container”; minimize entry points. </li></ul><ul><li>Prefer constructor injection. </li></ul><ul><li>Try to avoid “contextual binding”; avoid magic strings; favor convention over configuration. </li></ul>
    13. 23. Useful Resources <ul><li>StructureMap documentation </li></ul><ul><li>Autofac documentation </li></ul><ul><li>Martin Fowler </li></ul><ul><li>Jeremy Miller </li></ul><ul><li>Tool-specific mailing lists </li></ul>
    14. 25. For More <ul><li>I teach a course in which we do this stuff for three days. </li></ul><ul><li>We build features in a real system using agile principles and the tools that enable them. </li></ul><ul><li>For more information: http://www.headspringsystems.com/training/ </li></ul>

    ×