I’m going to drill our entire architecture into your head. I’ll explain this magic BehaviorGraph and Behavior idea that we always talk. By the end of this, you should understand what makes FubuMVC different.
2. About the Author Joshua Arnold Chief Software Architect, Perioperative Logistics Josh leads the development efforts for the Logistics team and is a principal developer on the Fubu-family of frameworks. He is a husband, expectant father, passionate software craftsman, coach, closet musician, and perpetual learner. http://www.linkedin.com/in/joshuaarnold http://josharnold.lostechies.com http://twitter.com/jmarnold
11. Action Calls Analogous to “Controller Actions” Can come from anywhere – it’s just a glorified delegate descriptor Key Term:ActionCall
12. Request/Response Given some {route}: 1. Locate the Method for that route 2. Invoke that Method 3. Render the respective view
13. Request/Response Routing Given some {route}: Web Framework 1. Locate the Method for that route Method Invocation 2. Invoke that Method 3. Render the respective view View Rendering
18. The Pipeline “Invoke this method” “Render the output” ActionCall Output “Get the data from here and…” “…and put the return value in here” IFubuRequest
20. Behavior Chains Essentially a linked list of Behavior Nodes Describes the order in which behavior nodes will execute for a given request Can be identified by: Guid Input Model Type Key Term:BehaviorChain
21. Request/Response Routing Given some {route}: Web Framework 1. Locate the Method for that route Method Invocation 2. Invoke that Method 3. Render the respective view View Rendering
22. Request/Response Routing Given some {route}: * FubuMVC 1. Find the BehaviorChain for that route Resolve Chain 2. Invoke that BehaviorChain Execute Chain * Not exactly how we do it, but we’ll clarify later
25. Runtime: Russian Dolls Full control over execution of next behavior Transactions Using statements Etc. You can decide not to execute the next You can even decide to do something else instead
29. Intermission Grab some coffee Ask some questions Make sure we’re all on the same page here
30. Behavior Chain Construction ActionCalls are registered through either of the following: Conventional discovery (as stated in your FubuRegistry) IActionSource implementations registered in your FubuRegistry
34. Request/Response Routing Given some {route}: * FubuMVC 1. Find the BehaviorChain for that route Resolve Chain 2. Invoke that BehaviorChain Execute Chain * Not exactly how we do it, but we’ll clarify later
35. Request/Response Routing Given some {route}: FubuMVC 1. Find the BehaviorChainfor the route, via the BehaviorGraph, using the configured Guid Resolve Chain Execute Chain 2. Invoke that BehaviorChain