FubuMVC at CodeMash 2011

Just wanted to try out CodeBetter’s spiffy new WordPress infrastructure. I’ll start blogging for real someday soon, but for now, here’s a preview of my CodeMash PreCompiler workshop in January:

FubuMVC:  Bringing the Awesome to Web Development with .Net

FubuMVC is an MVC style framework for web development on the .Net platform.  FubuMVC was born out of frustrations with ASP.Net MVC’s technical limitations and takes a very different philosophy based on composition, minimizing the intrusiveness of the framework into your application code, and taking more advantage of “convention over configuration” to reduce repetition and eliminate mistakes.  In this workshop we’ll explore the FubuMVC framework, its capabilities, and take a look at how my team at Dovetail takes advantage of FubuMVC’s unique abilities.

Along the way we’ll talk about:

  • Your very first FubuMVC application.  How to bootstrap the application, some basics about how the framework works at configuration, and the run time model.
  • Conventions, conventions, conventions.  I’ll show you how to exploit FubuMVC’s configuration model and philosophy of composition to write your project’s conventions for basically everything in the framework.  We’ll also look at how to simply reuse existing conventions from other people.
  • “Dependency Injection Turtles all the way down.”  FubuMVC was built from the ground up with the idea that all of its own composition and scope handling would be done with existing IoC tools.
  • “One Model In, One Model Out.”  From the very beginning this concept has been core to the way FubuMVC has been architected and built.  I’ll explain what this concept means and show some examples that will demonstrate why this design idea is so advantageous.
  • Extensible model binding.  I’ll show you how to add new functionality and policies into FubuMVC’s model binding support to reduce repetitive code in your system.
  • Url resolution.  One of my personal criticisms of ASP.Net MVC is the very poor way that it handles Url lookup.  I’ll show you how FubuMVC’s url registration scheme reduces the routing errors and duplication as well as making navigation easier in the application architecture.
  • Html conventions.  The Html convention support in FubuMVC goes far, far beyond the capabilities of any of its .Net competitors and I’ll show several usages for it including integration with field level authorization rules and validation rules.  I’ll also show you how you can package and reuse Html conventions across multiple projects.
  • HtmlTags.  Part of FubuMVC is the HtmlTags model that can be used to quickly and effectively generate html snippets in server side code.  I’ll show you how HtmlTags enable so much of the power of FubuMVC’s html conventions and html helpers and how you can build your own html helpers at will.
  • “Partial Requests.”  Learn how to modularize complex pages and share more code across pages.
  • Authorization integration.  We’ll learn how to apply authorization policies and rules to endpoints in the system and also how to plug in your own “special” authorization rules.
  • Navigation Models.  Restricting access is more than just tossing up 403 codes, so I’ll show you how FubuMVC can reuse authorization rules for navigation.
  • Validation and Localization integration.
  • Packaging.  Work is ongoing right now on a packaging architecture for the concepts of “areas” or “slices” or even “engines” that we feel will set the new standard for extensibility in .Net web development.  I will show how you can use packaging to make your own application easier to deploy, how to divide a large solution into distinct areas, how to reuse existing packages in the FubuMVC ecosystem, and how to support customer specific extensions in your application.


About Jeremy Miller

Jeremy is the Chief Software Architect at Dovetail Software, the coolest ISV in Austin. Jeremy began his IT career writing "Shadow IT" applications to automate his engineering documentation, then wandered into software development because it looked like more fun. Jeremy is the author of the open source StructureMap tool for Dependency Injection with .Net, StoryTeller for supercharged acceptance testing in .Net, and one of the principal developers behind FubuMVC. Jeremy's thoughts on all things software can be found at The Shade Tree Developer at http://codebetter.com/jeremymiller.
This entry was posted in Blatant Self Promotion, FubuMVC. Bookmark the permalink. Follow any comments here with the RSS feed for this post.