[[Dashboard | << Back to Dashboard ]] {|align="right" | __TOC__ |} = WireBox: The Enterprise Dependency Injection Framework = {{{Messagebox message="Covers up to version 1.3.1" type="info"}}} == Introduction == WireBox is an enterprise ColdFusion dependency injection and [[WireBox-AOP|AOP framework]]. This project has been part of ColdBox since its early version 2.0 releases but it is also a standalone library that can be used in '''ANY''' ColdFusion application or framework. WireBox's inspiration has been based on the idea of rapid workflows when building object oriented ColdFusion applications, programmatic configurations and simplicity. With that motivation we introduced dependency injection by annotations and conventions, which has been the core foundation of WireBox. We have definitely been influenced by great DI projects like [http://code.google.com/p/google-guice/ Google Guice], [http://www.grails.org/ Grails Framework], [http://www.springsource.com/developer/spring Spring] and [http://www.coldspringframework.org ColdSpring] so we thank them for their contributions and inspiration. == Overview ==
Dependency injection is the art of making work come home to you.
- Dhanji R. Prasanna
wirebox
WireBox alleviates the need for custom object factories or manual object creation in your ColdFusion applications. It provides a standardized approach to object construction and assembling that will make your code easier to adapt to changes, easier to test, [[MockBox|mock]] and extend. As software developers we are always challenged with maintenance and one ever occurring annoyance,''change''. Therefore, the more sustainable and maintainable our software, the more we can concentrate on real problems and make our lives more productive. WireBox leverages an array of metadata annotations to make your object assembling, storage and creation easy as pie! We have leveraged the power of event driven architecture via object listeners or interceptors so you can extend not only WireBox but the way objects are analyzed, created, wired and much more. To the extent that our[[WireBox-AOP| AOP]] capabilities are all driven by our AOP listener which decouples itself from WireBox code and makes it extremely flexible. We have also seen the value of a central location for object configuration and behavior so we created our very own WireBox Programmatic Mapping DSL ([http://en.wikipedia.org/wiki/Domain-specific_language Domain Specific Language]) that you can use to define object construction, relationships, AOP, etc in pure ColdFusion (No XML!). We welcome you to stick around and read our documentation so you can see the true value of WireBox in your web applications.
'''Fact''' : WireBox has been running and powering mission critical ColdFusion applications since 2009 and now you can too.
=== Useful Resources === * http://code.google.com/p/google-guice * http://www.manning.com/prasanna/ * http://en.wikipedia.org/wiki/Aspect-oriented_programming * http://en.wikipedia.org/wiki/Dependency_injection * http://en.wikipedia.org/wiki/Inversion_of_control * http://martinfowler.com/articles/injection.html * http://www.theserverside.com/news/1321158/A-beginners-guide-to-Dependency-Injection * http://www.developer.com/net/net/article.php/3636501 * http://code.google.com/p/google-guice/ === Training, Presentations, More === * [http://experts.adobeconnect.com/p52099674/ ColdBox Connection: Introducing WireBox]