Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

removing the old fubudocs work

  • Loading branch information...
commit 30ba7b332588e68e502358700fdd1fc97d51cd60 1 parent 75c49cd
@jeremydmiller jeremydmiller authored
Showing with 0 additions and 2,924 deletions.
  1. +0 −9 src/FubuMVC.Docs/.package-manifest
  2. +0 −124 src/FubuMVC.Docs/1.introduction.spark
  3. +0 −24 src/FubuMVC.Docs/10.model-binding.spark
  4. +0 −7 src/FubuMVC.Docs/11.resource-oriented-development/1.custom-404-behavior.spark
  5. +0 −7 src/FubuMVC.Docs/11.resource-oriented-development/2.hypermedia-projections-and-atompub.spark
  6. +0 −7 src/FubuMVC.Docs/11.resource-oriented-development/index.spark
  7. +0 −5 src/FubuMVC.Docs/12.view-engines.spark
  8. +0 −38 src/FubuMVC.Docs/13.caching.spark
  9. +0 −3  src/FubuMVC.Docs/14.security/1.authentication.spark
  10. +0 −41 src/FubuMVC.Docs/14.security/2.authorization/1.rules-and-rights.spark
  11. +0 −20 src/FubuMVC.Docs/14.security/2.authorization/2.executing-rules.spark
  12. +0 −7 src/FubuMVC.Docs/14.security/2.authorization/3.accessing-the-iprincipal.spark
  13. +0 −16 src/FubuMVC.Docs/14.security/2.authorization/4.authorization-failures.spark
  14. +0 −9 src/FubuMVC.Docs/14.security/2.authorization/index.spark
  15. +0 −7 src/FubuMVC.Docs/14.security/index.spark
  16. +0 −11 src/FubuMVC.Docs/15.modularity-with-bottles/1.feature-bottles.spark
  17. +0 −53 src/FubuMVC.Docs/15.modularity-with-bottles/index.spark
  18. +0 −4 src/FubuMVC.Docs/16.validation.spark
  19. +0 −4 src/FubuMVC.Docs/17.localization.spark
  20. +0 −4 src/FubuMVC.Docs/18.assets.spark
  21. +0 −4 src/FubuMVC.Docs/19.ravendb-integration.spark
  22. +0 −7 src/FubuMVC.Docs/2.faq.spark
  23. +0 −5 src/FubuMVC.Docs/20.html-helpers-and-conventions.spark
  24. +0 −4 src/FubuMVC.Docs/21.diagnostics.spark
  25. +0 −7 src/FubuMVC.Docs/22.automated-testing/1.using-endpointdriver.spark
  26. +0 −8 src/FubuMVC.Docs/22.automated-testing/2.serenity.spark
  27. +0 −7 src/FubuMVC.Docs/22.automated-testing/3.http-content-compression.spark
  28. +0 −7 src/FubuMVC.Docs/22.automated-testing/index.spark
  29. +0 −7 src/FubuMVC.Docs/23.http/1.request-body.spark
  30. +0 −7 src/FubuMVC.Docs/23.http/2.headers.spark
  31. +0 −7 src/FubuMVC.Docs/23.http/3.cookies.spark
  32. +0 −7 src/FubuMVC.Docs/23.http/4.writing-responses.spark
  33. +0 −7 src/FubuMVC.Docs/23.http/5.information-about-the-current-request.spark
  34. +0 −7 src/FubuMVC.Docs/23.http/index.spark
  35. +0 −7 src/FubuMVC.Docs/24.urls-and-routes/1.route-policies.spark
  36. +0 −7 src/FubuMVC.Docs/24.urls-and-routes/2.url-resolution.spark
  37. +0 −7 src/FubuMVC.Docs/24.urls-and-routes/index.spark
  38. +0 −114 src/FubuMVC.Docs/25.fubucontinuation.spark
  39. +0 −7 src/FubuMVC.Docs/26.partial-requests.spark
  40. +0 −7 src/FubuMVC.Docs/27.accessing-the-filesystem.spark
  41. +0 −7 src/FubuMVC.Docs/28.logging.spark
  42. +0 −7 src/FubuMVC.Docs/29.customizing-fubumvc/1.understanding-the-behavior-model.spark
  43. +0 −7 src/FubuMVC.Docs/29.customizing-fubumvc/2.custom-behaviors.spark
  44. +0 −7 src/FubuMVC.Docs/29.customizing-fubumvc/3.conditional-behaviors.spark
  45. +0 −7 src/FubuMVC.Docs/29.customizing-fubumvc/4.custom-policies-and-conventions.spark
  46. +0 −7 src/FubuMVC.Docs/29.customizing-fubumvc/5.display-conventions.spark
  47. +0 −7 src/FubuMVC.Docs/29.customizing-fubumvc/6.passing-state-between-behaviors.spark
  48. +0 −7 src/FubuMVC.Docs/29.customizing-fubumvc/7.property-rules.spark
  49. +0 −7 src/FubuMVC.Docs/29.customizing-fubumvc/index.spark
  50. +0 −47 src/FubuMVC.Docs/3.getting-started.spark
  51. +0 −68 src/FubuMVC.Docs/30.runtime-services/1.fuburequest.spark
  52. +0 −8 src/FubuMVC.Docs/30.runtime-services/2.outputwriter.spark
  53. +0 −9 src/FubuMVC.Docs/30.runtime-services/index.spark
  54. +0 −7 src/FubuMVC.Docs/31.architecture/1.one-model-in-one-model-out.spark
  55. +0 −7 src/FubuMVC.Docs/31.architecture/2.russian-doll-model.spark
  56. +0 −7 src/FubuMVC.Docs/31.architecture/3.handling-requests.spark
  57. +0 −7 src/FubuMVC.Docs/31.architecture/4.configuration-vs-runtime.spark
  58. +0 −7 src/FubuMVC.Docs/31.architecture/index.spark
  59. +0 −7 src/FubuMVC.Docs/32.adding-chrome-around-html-content.spark
  60. +0 −7 src/FubuMVC.Docs/33.asynchronous-requests.spark
  61. +0 −7 src/FubuMVC.Docs/34.session-state.spark
  62. +0 −7 src/FubuMVC.Docs/35.actions.spark
  63. +0 −7 src/FubuMVC.Docs/36.configuration.spark
  64. +0 −7 src/FubuMVC.Docs/37.default-conventions-and-policies.spark
  65. +0 −156 src/FubuMVC.Docs/4.terminology.spark
  66. +0 −7 src/FubuMVC.Docs/5.bootstrapping/1.fuburegistry.spark
  67. +0 −7 src/FubuMVC.Docs/5.bootstrapping/2.assembly-scanning.spark
  68. +0 −7 src/FubuMVC.Docs/5.bootstrapping/3.action-discovery.spark
  69. +0 −92 src/FubuMVC.Docs/5.bootstrapping/index.spark
  70. +0 −26 src/FubuMVC.Docs/6.using-ioc-containers/1.service-registration.spark
  71. +0 −7 src/FubuMVC.Docs/6.using-ioc-containers/2.objectdef.spark
  72. +0 −7 src/FubuMVC.Docs/6.using-ioc-containers/3.autofac.spark
  73. +0 −7 src/FubuMVC.Docs/6.using-ioc-containers/4.windsor.spark
  74. +0 −7 src/FubuMVC.Docs/6.using-ioc-containers/5.structuremap/1.configuration-with-settings-objects.spark
  75. +0 −7 src/FubuMVC.Docs/6.using-ioc-containers/5.structuremap/2.adding-structuremap-registrys-from-bottles.spark
  76. +0 −21 src/FubuMVC.Docs/6.using-ioc-containers/5.structuremap/index.spark
  77. +0 −19 src/FubuMVC.Docs/6.using-ioc-containers/index.spark
  78. +0 −32 src/FubuMVC.Docs/7.hosting/1.asp-net.spark
  79. +0 −7 src/FubuMVC.Docs/7.hosting/2.owin.spark
  80. +0 −95 src/FubuMVC.Docs/7.hosting/3.embedded.spark
  81. +0 −8 src/FubuMVC.Docs/7.hosting/4.fubu-server.spark
  82. +0 −15 src/FubuMVC.Docs/7.hosting/index.spark
  83. +0 −7 src/FubuMVC.Docs/8.ajax/1.using-json-net-with-fubumvc.spark
  84. +0 −7 src/FubuMVC.Docs/8.ajax/2.model-binding-against-json-messages.spark
  85. +0 −39 src/FubuMVC.Docs/8.ajax/index.spark
  86. +0 −298 src/FubuMVC.Docs/9.conneg.spark
  87. +0 −83 src/FubuMVC.Docs/FubuMVC.Docs.csproj
  88. +0 −32 src/FubuMVC.Docs/Properties/AssemblyInfo.cs
  89. +0 −3  src/FubuMVC.Docs/index.spark
  90. +0 −33 src/FubuMVC.Docs/project.xml
  91. +0 −1  src/FubuMVC.Docs/ripple.dependencies.config
  92. +0 −76 src/FubuMVC.Docs/splash.spark
  93. +0 −17 src/FubuMVC.sln
  94. +0 −9 src/fubu.Docs/.package-manifest
  95. +0 −78 src/fubu.Docs/1.hosting.spark
  96. +0 −49 src/fubu.Docs/2.templating/1.idiomatic-codebase-organization-and-tooling.spark
  97. +0 −144 src/fubu.Docs/2.templating/2.new-solutions-and-code-trees.spark
  98. +0 −8 src/fubu.Docs/2.templating/3.adding-projects-to-existing-solutions.spark
  99. +0 −16 src/fubu.Docs/2.templating/4.enhancing-existing-projects.spark
  100. +0 −37 src/fubu.Docs/2.templating/index.spark
  101. +0 −27 src/fubu.Docs/3.application-modes.spark
  102. +0 −14 src/fubu.Docs/4.restarting-web-applications.spark
  103. +0 −18 src/fubu.Docs/5.project-item-generation.spark
  104. +0 −6 src/fubu.Docs/6.establishing-a-text-editor.spark
  105. +0 −36 src/fubu.Docs/Properties/AssemblyInfo.cs
  106. +0 −57 src/fubu.Docs/fubu.Docs.csproj
  107. +0 −348 src/fubu.Docs/fubu.cli.xml
  108. +0 −6 src/fubu.Docs/index.spark
  109. +0 −36 src/fubu.Docs/project.xml
  110. 0  src/fubu.Docs/ripple.dependencies.config
View
9 src/FubuMVC.Docs/.package-manifest
@@ -1,9 +0,0 @@
-<?xml version="1.0"?>
-<package xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
- <Role>module</Role>
- <Name>FubuMVC.Docs</Name>
- <assembly>FubuMVC.Docs</assembly>
- <ContentFileSet Include="*.*" Exclude="Properties/*;bin/*;obj/*;*.csproj*;packages.config;repositories.config;pak-*.zip;*.sln">
- <DeepSearch>true</DeepSearch>
- </ContentFileSet>
-</package>
View
124 src/FubuMVC.Docs/1.introduction.spark
@@ -1,124 +0,0 @@
-<!--Title: Introduction and Hello World-->
-<!--Url: introduction-->
-
-<markdown>
-FubuMVC is an open source framework for web development in .Net written with the C# language started by a team of developers who
-were looking for a different type of development experience than what the mainstream .Net tools provided at the time (and still don't in our opinion).
-
-FubuMVC is licensed under the [permissive Apache 2.0
-license](https://github.com/DarthFubuMVC/fubumvc/raw/master/license.txt).
-Contributions are most certainly welcome, just fork the [Git
-repository](https://github.com/DarthFubuMVC/fubumvc) and start firing off pull
-requests.
-
-<Section title="Hello World with ASP.Net" id="hello-world">
-To get to the obligatory _Hello World_ screen with Visual Studio.Net and ASP.NET hosting in a new solution:
-
-1. Add a new _Empty ASP.NET Empty Web Application_ project in Visual Studio.Net
-1. Install the <code>FubuMVC.StructureMap</code> nuget to your new project
-1. Add the following code to your <code>Global.asax.cs</code> file:
-
-<Snippet name="asp-net-hello-world-application" />
-
-Now, add this class to your project to say hello:
-
-<Snippet name="hello-world-home" />
-
-At this point, you're ready to run your application and see the words "Hello, World" as text in your browser.
-
-<Info>You <i>might</i> need to manually add the ASP.Net UrlRoutingModule in your web.config file.</Info>
-
-</Section>
-
-<Section title="Hello World with OWIN and Katana" id="fubu-new">
-
-Fortunately with the advent of [OWIN](http://owin.org) and related web servers like [Katana](http://katanaproject.codeplex.com/documentation), it's now perfectly possible to use FubuMVC without IIS. Moreover, that's quickly become the FubuMVC community's favored tooling for testing and embedded services.
-
-The bootstrapping is just a little bit simpler this time. The steps are:
-
-1. Create a new class library project in Visual Studio.Net
-1. Install the <code>FubuMVC.StructureMap</code> nuget again
-1. Add the same <code>HomeEndpoint</code> class from the section above
-1. Add the following class to your project:
-
-<Snippet name="hello-world-application" />
-
-
-
-If you install the <ProjectLink name="fubu" /> tool on your local box, open a command prompt, navigate to the project folder and type:
-
-<pre>
-fubu run --open
-</pre>
-
-You **should** see your default browser pop up with the text "Hello, World."
-
-<Info>For the fastest possible bootstrapping of a brand new FubuMVC application from scratch, see the <a href="http://fubuworld.com/fubu">Fubu command line</a> tooling for project scaffolding. Do note though that this approach builds out an entire code tree with the idiomatic FubuMVC defaults and organization.</Info>
-
-</Section>
-
-<Section title="Architectural Philosophy and Goals" id="philosophy">
-
- * Allow developers to write very clean code with little or no coupling to framework infrastructure -- i.e.,
- keep the repetitive ceremony code like attributes, marker interfaces, elaborate fluent interfaces, or mandatory base classes that seem to plague
- other .Net frameworks to a bare minimum.
-
- * Exploit the idea of [convention over
- configuration](http://msdn.microsoft.com/en-us/magazine/dd419655.aspx) for
- better productivity, but allow users to teach FubuMVC about their own
- conventions if the built in conventions don't fit.
-
- * Remove friction from automated testing of your application code.
-
- * Maximize the ability to use composition throughout your application by
- focusing on SOLID principles, separation of concerns,
- [DRY](http://en.wikipedia.org/wiki/Don't_repeat_yourself).
-
- * Modular architectures. FubuMVC includes the most sophisticated and
- capable infrastructure for modularizing and extending web applications in
- the .NET ecosystem.
-
- * Provide a less painful development experience with informative
- diagnostics about your application
-
- * Use static typing in an advantageous way. Many other alternative web
- frameworks in the .NET space are faithful copies of Ruby or Python
- frameworks that have neither the strengths of Ruby/Python or C#. FubuMVC
- uses the rich metadata from static typing to drive conventions and reduce
- errors. If you prefer Ruby on Rails or Sinatra style development, we
- think you should use Ruby on Rails or Sinatra instead of attempting to
- work that way inside of C#.
-
- * Eliminate the dreaded "tag soup" problem in views by using advanced HTML
- helpers and conventions to DRY up your views
-
-</Section>
-
-<Section title="Core Architecture" id="architecture">
-
-FubuMVC takes a slightly different approach to the classic [Model 2 Model View
-Controller pattern](http://en.wikipedia.org/wiki/Model_2) that puts more focus
-on composing a pipeline of what we call "behaviors" that are completely unaware
-of each other rather than the traditional Model-View-Controller triad.
-
-A typical web request for a view will look something like:
-
- 1. An HTTP request is received by the web server. The ASP.NET routing
- module acts as a front controller to choose a "chain" of behaviors to
- execute.
-
- 1. The first behavior calls an "action" (think Controller) that interacts
- with the rest of your application and returns a view model representing
- the data to be rendered by the view.
-
- 1. A second behavior invokes a WebForms or Spark view to render the view
- model that was returned from the action in the previous step.
-
-As far as a developer is concerned, all the familiar elements of classic MVC
-are present, but there's nothing to stop you from composing a different
-pipeline of behaviors for more sophisticated request handling.
-
-</Section>
-
-</markdown>
-
View
24 src/FubuMVC.Docs/10.model-binding.spark
@@ -1,24 +0,0 @@
-<!--Title: Model Binding-->
-<!--Url: model-binding-->
-
-TODO(Link to model binding in FubuCore)
-
-<markdown>
-
-<Section title="Out of the Box Model Binding" id="ootb">
-
-</Section>
-
-<Section title="Model Binding and Conneg" id="conneg">
-
-</Section>
-
-<Section title="Request Data" id="request-data">
-
-</Section>
-
-<Section title="Extending Model Binding" id="extending">
-TODO(Show how to register stuff off of FubuRegistry.Models)
-</Section>
-</markdown>
-
View
7 src/FubuMVC.Docs/11.resource-oriented-development/1.custom-404-behavior.spark
@@ -1,7 +0,0 @@
-<!--Title: Custom 404 Behavior-->
-<!--Url: custom-404-behavior-->
-
-<markdown>
-TODO(Write some content!)
-</markdown>
-
View
7 src/FubuMVC.Docs/11.resource-oriented-development/2.hypermedia-projections-and-atompub.spark
@@ -1,7 +0,0 @@
-<!--Title: Hypermedia, Projections, and AtomPub-->
-<!--Url: hypermedia-projections-and-atompub-->
-
-<markdown>
-TODO(Write some content!)
-</markdown>
-
View
7 src/FubuMVC.Docs/11.resource-oriented-development/index.spark
@@ -1,7 +0,0 @@
-<!--Title: Resource Oriented Development-->
-<!--Url: resource-oriented-development-->
-
-<markdown>
-TODO(Link to FubuMVC.Media)
-</markdown>
-
View
5 src/FubuMVC.Docs/12.view-engines.spark
@@ -1,5 +0,0 @@
-<!--Title: View Engines-->
-<!--Url: view-engines-->
-
-<!-- Import: FubuMVC.ViewEngines -->
-
View
38 src/FubuMVC.Docs/13.caching.spark
@@ -1,38 +0,0 @@
-<!--Title: Caching-->
-<!--Url: caching-->
-
-<markdown>
-
-<Section title="Configuring Caching" id="applying">
-TODO(talk about the attribute)
-
-TODO(show doing it w/ a policy)
-</Section>
-
-<Section title="ETags" id="etags">
-
-</Section>
-
-<Section title="Resource Hash's" id="hashes">
-
-</Section>
-
-<Section title="IOutputCache" id="ioutputcache">
-
-</Section>
-
-<Section title="Built In IVaryBy Rules" id="ootb-rules">
-
-</Section>
-
-<Section title="Custom 'VaryBy' Rules" id="custom-rules">
-
-</Section>
-
-<Section title="Donut Caching" id="caching">
-
-</Section>
-
-
-</markdown>
-
View
3  src/FubuMVC.Docs/14.security/1.authentication.spark
@@ -1,3 +0,0 @@
-<!--Title: Authentication-->
-<!--Url: authentication-->
-<!--Import: FubuMVC.Authentication-->
View
41 src/FubuMVC.Docs/14.security/2.authorization/1.rules-and-rights.spark
@@ -1,41 +0,0 @@
-<!--Title: Rules and Rights-->
-<!--Url: rules-and-rights-->
-
-TODO(Write some content!)
-<markdown>
-
-<Section title="Rights" id="authorizationright">
-TODO(discuss AuthorizationRight)
-</Section>
-
-
-<Section title="Rules and Policies" id="rules">
-1. IAuthorizationRule
-1. IAuthorizationPolicy
-</Section>
-
-<Info>The signatures of <code>IAuthorizationRule</code> and <code>IAuthorizationPolicy</code> are likely to change for FubuMVC 2.0. The current plan is to make the rules and policies stateless and accept a service locator during a request so that we can simplify the configuration model and avoid having to recreate the little authorization objects.</Info>
-
-
-<Section title="Role or Permission Based Authorization" id="roles">
-
-</Section>
-
-<Section title="Custom Rules" id="custom">
-1. Rule for an input model
-1. totally custom rule
-1. Combining a rule and policy
-</Section>
-
-
-<Section title="Applying Authorization Rules with Attributes" id="attributes">
-
-</Section>
-
-<Section title="Applying Authorization Rules Conventionally" id="conventions">
-
-</Section>
-
-
-</markdown>
-
View
20 src/FubuMVC.Docs/14.security/2.authorization/2.executing-rules.spark
@@ -1,20 +0,0 @@
-<!--Title: Executing Rules-->
-<!--Url: executing-rules-->
-
-<markdown>
-
-<Section title="Authorization inside a Request" id="behavior">
-TODO(talk about how AuthorizationBehavior works)
-</Section>
-
-<Section title="Explicitly Invoking the Authorization Rules" id="invoking">
-1. IAuthorizationPreviewService
-1. IEndpointService
-1.
-</Section>
-
-
-
-TODO(Write some content!)
-</markdown>
-
View
7 src/FubuMVC.Docs/14.security/2.authorization/3.accessing-the-iprincipal.spark
@@ -1,7 +0,0 @@
-<!--Title: Accessing the IPrincipal-->
-<!--Url: accessing-the-iprincipal-->
-
-<markdown>
-TODO(Write some content!)
-</markdown>
-
View
16 src/FubuMVC.Docs/14.security/2.authorization/4.authorization-failures.spark
@@ -1,16 +0,0 @@
-<!--Title: Authorization Failures-->
-<!--Url: authorization-failures-->
-
-<markdown>
-
-<Section title="Default Behavior for Authorization Failures" id="defaults">
-
-</Section>
-
-<Section title="Custom Authorization Failure Handling" id="custom">
-
-</Section>
-
-TODO(custom failure )
-</markdown>
-
View
9 src/FubuMVC.Docs/14.security/2.authorization/index.spark
@@ -1,9 +0,0 @@
-<!--Title: Authorization-->
-<!--Url: authorization-->
-
-<markdown>
-TODO(Write an introduction)
-
-<TableOfContents />
-</markdown>
-
View
7 src/FubuMVC.Docs/14.security/index.spark
@@ -1,7 +0,0 @@
-<!--Title: Security-->
-<!--Url: security-->
-
-<markdown>
-TODO(Write some content!)
-</markdown>
-
View
11 src/FubuMVC.Docs/15.modularity-with-bottles/1.feature-bottles.spark
@@ -1,11 +0,0 @@
-<!--Title: Feature Bottles-->
-<!--Url: feature-bottles-->
-
-<markdown>
-TODO(Write some content!)
-
-1. Talk about FubuPackageRegistry
-
-
-</markdown>
-
View
53 src/FubuMVC.Docs/15.modularity-with-bottles/index.spark
@@ -1,53 +0,0 @@
-<!--Title: Modularity with Bottles-->
-<!--Url: modularity-with-bottles-->
-
-TODO(flesh this out)
-
-
-<markdown>
-<Section title="How FubuMVC uses Bottles" id="how-it-works">
-1. Package loaders
-1. Activator's
-1. FubuMvcPackageFacility.CurrentPath or whatever it is.
-
-1. dll's in fubu-content
-1. dll's in bin/fubu-content
-
-
-</Section>
-
-<Section title="Extending the Application from a Bottle" id="extending">
-1. IFubuRegistryExtension
-</Section>
-
-<Section title="Default Package Loaders" id="defaults">
-
-</Section>
-
-<Section title="Creating a new FubuMVC Bottle" id="creating-new">
-1. [FubuModule]
-</Section>
-
-
-
-<Section title="What can be in a FubuMVC Bottle?" id="what">
-Any possible thing you can register, configure, or do in a FubuMVC application can be done in a Bottle.
-
-Unlike *ahem* ASP.Net MVC Portable Areas, FubuMVC does not treat endpoints, views, services, url resolution, or anything else related to a Bottle differently than the core application at runtime.
-</Section>
-
-<Section title="Pre-Compilation Steps" id="pre-compilation">
-
-</Section>
-
-<Section title="Registering Custom Package Loaders" id="custom-package-loaders">
-
-</Section>
-
-<Section title="Assembly Scanning against Bottle Assemblies" id="scanning">
-
-<Info>This is a <i>sharp tool</i>, meaning that while you can use it to do powerful things, there's a lot of potential for unexpected results. Use with caution.</Info>
-</Section>
-
-</markdown>
-
View
4 src/FubuMVC.Docs/16.validation.spark
@@ -1,4 +0,0 @@
-<!--Title: Validation-->
-<!--Url: validation-->
-<!--Import:FubuMVC.Validation-->
-
View
4 src/FubuMVC.Docs/17.localization.spark
@@ -1,4 +0,0 @@
-<!--Title: Localization-->
-<!--Url: localization-->
-<!--Import: FubuMVC.Localization -->
-
View
4 src/FubuMVC.Docs/18.assets.spark
@@ -1,4 +0,0 @@
-<!--Title: Image, Javascript, and CSS Assets-->
-<!--Url: assets-->
-<!--Import:FubuMVC.Core.Assets-->
-
View
4 src/FubuMVC.Docs/19.ravendb-integration.spark
@@ -1,4 +0,0 @@
-<!--Title: RavenDb Integration-->
-<!--Url: ravendb-integration-->
-<!--Import:FubuMVC.RavenDb-->
-
View
7 src/FubuMVC.Docs/2.faq.spark
@@ -1,7 +0,0 @@
-<!--Title: Frequently Asked Questions-->
-<!--Url: faq-->
-
-<markdown>
-TODO(Write some content!)
-</markdown>
-
View
5 src/FubuMVC.Docs/20.html-helpers-and-conventions.spark
@@ -1,5 +0,0 @@
-<!--Title: Html Helpers and Conventions-->
-<!--Url: html-helpers-and-conventions-->
-<!--Import:FubuMVC.Core.UI-->
-
-
View
4 src/FubuMVC.Docs/21.diagnostics.spark
@@ -1,4 +0,0 @@
-<!--Title: Diagnostics-->
-<!--Url: diagnostics-->
-<!--Import: FubuMVC.Diagnostics-->
-
View
7 src/FubuMVC.Docs/22.automated-testing/1.using-endpointdriver.spark
@@ -1,7 +0,0 @@
-<!--Title: Using EndpointDriver-->
-<!--Url: using-endpointdriver-->
-
-<markdown>
-TODO(Write some content!)
-</markdown>
-
View
8 src/FubuMVC.Docs/22.automated-testing/2.serenity.spark
@@ -1,8 +0,0 @@
-<!--Title: Serenity-->
-<!--Url: serenity-->
-
-
-TODO(add some content)
-
-<ProjectLink name="Serenity" />
-
View
7 src/FubuMVC.Docs/22.automated-testing/3.http-content-compression.spark
@@ -1,7 +0,0 @@
-<!--Title: Http Content Compression-->
-<!--Url: http-content-compression-->
-
-<markdown>
-TODO(Write some content!)
-</markdown>
-
View
7 src/FubuMVC.Docs/22.automated-testing/index.spark
@@ -1,7 +0,0 @@
-<!--Title: Automated Testing-->
-<!--Url: automated-testing-->
-
-<markdown>
-TODO(Write some content!)
-</markdown>
-
View
7 src/FubuMVC.Docs/23.http/1.request-body.spark
@@ -1,7 +0,0 @@
-<!--Title: Request Body-->
-<!--Url: request-body-->
-
-<markdown>
-TODO(Write some content!)
-</markdown>
-
View
7 src/FubuMVC.Docs/23.http/2.headers.spark
@@ -1,7 +0,0 @@
-<!--Title: Headers-->
-<!--Url: headers-->
-
-<markdown>
-TODO(Write some content!)
-</markdown>
-
View
7 src/FubuMVC.Docs/23.http/3.cookies.spark
@@ -1,7 +0,0 @@
-<!--Title: Cookies-->
-<!--Url: cookies-->
-
-<markdown>
-TODO(Write some content!)
-</markdown>
-
View
7 src/FubuMVC.Docs/23.http/4.writing-responses.spark
@@ -1,7 +0,0 @@
-<!--Title: Writing Responses-->
-<!--Url: writing-responses-->
-
-<markdown>
-TODO(Write some content!)
-</markdown>
-
View
7 src/FubuMVC.Docs/23.http/5.information-about-the-current-request.spark
@@ -1,7 +0,0 @@
-<!--Title: Information about the Current Request-->
-<!--Url: information-about-the-current-request-->
-
-<markdown>
-TODO(Write some content!)
-</markdown>
-
View
7 src/FubuMVC.Docs/23.http/index.spark
@@ -1,7 +0,0 @@
-<!--Title: Working with HTTP-->
-<!--Url: http-->
-
-<markdown>
-TODO(Write some content!)
-</markdown>
-
View
7 src/FubuMVC.Docs/24.urls-and-routes/1.route-policies.spark
@@ -1,7 +0,0 @@
-<!--Title: Route Policies-->
-<!--Url: route-policies-->
-
-<markdown>
-TODO(Write some content!)
-</markdown>
-
View
7 src/FubuMVC.Docs/24.urls-and-routes/2.url-resolution.spark
@@ -1,7 +0,0 @@
-<!--Title: Url Resolution-->
-<!--Url: url-resolution-->
-
-<markdown>
-TODO(Write some content!)
-</markdown>
-
View
7 src/FubuMVC.Docs/24.urls-and-routes/index.spark
@@ -1,7 +0,0 @@
-<!--Title: Urls and Routes-->
-<!--Url: urls-and-routes-->
-
-<markdown>
-TODO(Write some content!)
-</markdown>
-
View
114 src/FubuMVC.Docs/25.fubucontinuation.spark
@@ -1,114 +0,0 @@
-<!--Title: Redirects and Filters with FubuContinuation-->
-<!--Url: fubucontinuation-->
-
-<markdown>
-
-<Section title="FubuContinuation" id="fubucontinuation">
-
-You'll inevitably need conditional execution in your FubuMVC endpoints. Whether to render a 404 message if something cannot be found, return validation
-messages on validation failures, or redirect the user to an entirely different page if certain conditions are met.
-
-To that end, we introduced the special <code>[FubuContinuation](https://github.com/DarthFubuMVC/fubumvc/blob/master/src/FubuMVC.Core/Continuations/FubuContinuation.cs)</code> class and the much more rarely used [IContinuationDirector](https://github.com/DarthFubuMVC/fubumvc/blob/master/src/FubuMVC.Core/Continuations/IContinuationDirector.cs).
-
-Jumping right to a sample shown below, if a user navigates to _/directions_, they'll be redirected to one Url if they are a special customer
-and redirected to a page for normal customers otherwise.
-
-<Snippet name="continuation-usage" />
-
-By just returning a <code>FubuContinuation</code> from our action above, we've declared *what* we want to happen next in a way that's easy to measure and detect in unit tests.
-FubuMVC will add an extra behavior into your chain right behind any Action (or ActionFilter introduced below) that will carry out the actual continuation
-logic.
-
-<code>FubuContinuation</code> provides semantics to:
-
-1. Issue an HTTP 302 redirect to a different Url using FubuMVC's url resolution to either an action method or an input model object
-1. _Jump the tracks_ (Transfer) and run a completely different chain inline *as a partial* in the current request instead of continuing to the inner behavior
-1. Continue normally to the next or inner behavior
-1. End the current request with an Http status code
-
-Any time you abort the current chain with a FubuContinuation, the execution still comes back up through the outer behaviors.
-For example, let's say that you are executing a request that has the <code>TransactionalBehavior</code> behavior shown below
-that wraps an inner action that returns a <code>FubuContinuation</code>:
-
-<Snippet name="continuation-up-the-stack" />
-
-The sequence of events is going to be something like:
-1. <code>TransactionalBehavior</code> starts a new transaction
-1. The inner behaviors process a <code>FubuContinuation.TransferTo()</code> that executes a whole other chain as a partial
-1. The execution comes back up through <code>TransactionalBehavior</code> where it commits the original transaction.
-
-
-</Section>
-
-<Section title="ActionFilter" id="action-filter">
-
-Consistent with FubuMVC's _one model in, one model out_ philosophy, we recommend using a special kind of _Action_ called an <code>ActionFilter</code>
-that optionally takes in a single parameter resolved by content negotiation and always returns a <code>FubuContinuation</code>.
-
-Let's say that we're building a FubuMVC frontend on top of some old COBOL like system that will frequently be taken completely down
-for maintenance. If the backend system is down, we'll redirect all of our FubuMVC pages to a notice that the system is offline.
-
-Our <code>ActionFilter</code> class might look like this:
-
-<Snippet name="offline-filter" />
-
-To apply an <code>ActionFilter</code> as a convention, you would write something like the following:
-
-<Snippet name="offline-filter-policy" />
-
-The [AuthenticationFilter](https://github.com/DarthFubuMVC/FubuMVC.Authentication/blob/master/src/FubuMVC.Authentication/AuthenticationFilter.cs) class from FubuMVC.Authentication
-that redirects users to login screens or continues to a screen or service depending on authentication state is an example of an <code>ActionFilter</code>.
-
-</Section>
-
-<Section title="Using the [Filter] Attribute" id="filter-attribute">
-
-To date, most <code>ActionFilter</code> usage has been applied to chains within the system conventionally,
-but if you do need to apply an <code>ActionFilter</code> behavior explicitly to just one chains you have the
-<code>[Filter]</code> attribute to use on action methods that you want to be wrapped with an <code>ActionFilter</code>:
-
-<Snippet name="filter-attribute-usage" />
-
-The only rule for the <code>[Filter]</code> attribute resolution is that the handler method should have only one public method.
-
-</Section>
-
-
-<Section title="Putting it All Together" id="big-example">
-
-For a more complex, but very contrived, example, let's say that we have an action that takes in a <code>Number</code> message
-and just tells the user what the number really was:
-
-<Snippet name="NumberEndpoint" />
-
-However, we want to treat some numbers as special cases and render different messages or pop into entirely different workflows.
-As explained in the previous section, we can place all the conditional redirection logic in an <code>ActionFilter</code> action
-method:
-
-<Snippet name="fubucontinuation-in-action" />
-
-</Section>
-
-
-<Section title="Unit Testing against FubuContinuation" id="unit-testing">
-<code>FubuContinuation</code> was specifically designed to make unit testing easier by allowing you to do state-based
-assertions against the value of a <code>FubuContinuation</code> returned from an action filter method like this:
-
-<Snippet name="filter-testing" />
-
-<Info>Note that you will have to implement an <code>Equals()</code> method on any input model types you use in the assertion methods</Info>
-
-</Section>
-
-
-<Section title="IRedirectable" id="redirectable">
-
-If you do want to combine the filtering logic into a normal action method similar to [ActionResult's](http://msdn.microsoft.com/en-us/library/system.web.mvc.actionresult(v=vs.118).aspx) in ASP.Net MVC, you can make
-your output model from an action implement the <code>IRedirectable</code> interface like this sample:
-
-<Snippet name="redirectable" />
-
-</Section>
-
-</markdown>
-
View
7 src/FubuMVC.Docs/26.partial-requests.spark
@@ -1,7 +0,0 @@
-<!--Title: Partial Requests-->
-<!--Url: partial-requests-->
-
-<markdown>
-TODO(Write some content!)
-</markdown>
-
View
7 src/FubuMVC.Docs/27.accessing-the-filesystem.spark
@@ -1,7 +0,0 @@
-<!--Title: Accessing the FileSystem-->
-<!--Url: accessing-the-filesystem-->
-
-<markdown>
-TODO(Write some content!)
-</markdown>
-
View
7 src/FubuMVC.Docs/28.logging.spark
@@ -1,7 +0,0 @@
-<!--Title: Logging-->
-<!--Url: logging-->
-
-<markdown>
-TODO(Write some content!)
-</markdown>
-
View
7 src/FubuMVC.Docs/29.customizing-fubumvc/1.understanding-the-behavior-model.spark
@@ -1,7 +0,0 @@
-<!--Title: Understanding the Behavior Model-->
-<!--Url: understanding-the-behavior-model-->
-
-<markdown>
-TODO(Write some content!)
-</markdown>
-
View
7 src/FubuMVC.Docs/29.customizing-fubumvc/2.custom-behaviors.spark
@@ -1,7 +0,0 @@
-<!--Title: Custom Behaviors-->
-<!--Url: custom-behaviors-->
-
-<markdown>
-TODO(Write some content!)
-</markdown>
-
View
7 src/FubuMVC.Docs/29.customizing-fubumvc/3.conditional-behaviors.spark
@@ -1,7 +0,0 @@
-<!--Title: Conditional Behaviors-->
-<!--Url: conditional-behaviors-->
-
-<markdown>
-TODO(Write some content!)
-</markdown>
-
View
7 src/FubuMVC.Docs/29.customizing-fubumvc/4.custom-policies-and-conventions.spark
@@ -1,7 +0,0 @@
-<!--Title: Custom Policies and Conventions-->
-<!--Url: custom-policies-and-conventions-->
-
-<markdown>
-TODO(Write some content!)
-</markdown>
-
View
7 src/FubuMVC.Docs/29.customizing-fubumvc/5.display-conventions.spark
@@ -1,7 +0,0 @@
-<!--Title: Display Conventions-->
-<!--Url: display-conventions-->
-
-<markdown>
-TODO(Write some content!)
-</markdown>
-
View
7 src/FubuMVC.Docs/29.customizing-fubumvc/6.passing-state-between-behaviors.spark
@@ -1,7 +0,0 @@
-<!--Title: Passing State Between Behaviors-->
-<!--Url: passing-state-between-behaviors-->
-
-<markdown>
-TODO(Write some content!)
-</markdown>
-
View
7 src/FubuMVC.Docs/29.customizing-fubumvc/7.property-rules.spark
@@ -1,7 +0,0 @@
-<!--Title: Property Rules-->
-<!--Url: property-rules-->
-
-<markdown>
-TODO(Write some content!)
-</markdown>
-
View
7 src/FubuMVC.Docs/29.customizing-fubumvc/index.spark
@@ -1,7 +0,0 @@
-<!--Title: Customizing FubuMVC-->
-<!--Url: customizing-fubumvc-->
-
-<markdown>
-TODO(Write some content!)
-</markdown>
-
View
47 src/FubuMVC.Docs/3.getting-started.spark
@@ -1,47 +0,0 @@
-<!--Title: Getting Started-->
-<!--Url: getting-started-->
-
-<markdown>
-
-<Section title="Using 'fubu new'" id="fubu-new">
-
-Make sure you have the [fubu][fubu] gem installed and open PowerShell in Administrator Mode.
-
-<Info>Administrator Mode is necessary for running the Katana web server</Info>
-
-<pre>
-fubu new MyProjectName --dot-net v4.5 --version VS2013 --options Spark
-</pre>
-
-<Info>
-The complete list of options is available in the
-<a href="http://fubuworld.com/fubu/templating/new-solutions-and-code-trees/#new">
- <code>fubu</code> docs
-</a>
-</Info>
-
-Text flies across the screen, cmd.exe opens, FubuMVC is bootstrapped and Visual Studio loads.
-Fantastic! Now we're ready to start the server.
-
-<pre>
-cd MyProjectName
-fubu run --directory src\MyProjectName
-</pre>
-
-The console reports the app's url (most likely `http://localhost:5500`). Load it up in a
-browser to see your new website!
-
-[fubu]: http://fubuworld.com/fubu/
-
-</Section>
-
-<Section title="Quickstart Nugets" id="quickstart">
-TODO(quickstart nugets)
-</Section>
-
-<Section title="Do it yourself" id="do-it-yourself">
-TODO(do it yourself bootstrapping, just a link)
-</Section>
-
-</markdown>
-
View
68 src/FubuMVC.Docs/30.runtime-services/1.fuburequest.spark
@@ -1,68 +0,0 @@
-<!--Title: IFubuRequest-->
-
-<markdown>
-
-<code>IFubuRequest</code> will probably be the one FubuMVC service that you interact with the most.
-Think of <code>IFubuRequest</code> as a _model bag_ you can use to transfer state within a single
-request between _Behavior's_ without creating any direct coupling between the different _Behavior_ classes.
-</markdown>
-
-<Section title="Signature" id="signature">
-The signature of <code>IFubuRequest</code> is:
-
-<Snippet name="ifuburequest" />
-</Section>
-
-<markdown>
-
-<Section title="Auto Resolving" id="auto-resolving">
-If you request a model from <code>IFubuRequest.Get()</code> that has not been previously set,
-<code>IFubuRequest</code> will attempt to resolve it for you by model binding to the current
-request and storing that new object in its internal cache.
-
-Inside of <code>[FubuRequest](FubuRequest.cs)</code> itself:
-
-</Section>
-
-
-<Snippet name="auto-resolving-within-ifuburequest" />
-
-
-<Section title="IFubuRequest and Scoping" id="scoping">
-
-Just to make this perfectly clear, **<code>IFubuRequest</code> is scoped to each request**, meaning that
-you will get one instance of a <code>IFubuRequest</code> object inside all classes built within one
-request, including any objects built lazily through <code>IServiceLocator</code>.
-
-See <TopicLink name="using-ioc-containers" /> for more information about how IoC containers and object
-scoping works within a FubuMVC application.
-</Section>
-
-
-<Section title="InMemoryFubuRequest" id="in-memory">
-For testing purposes, there is a built in <code>InMemoryFubuRequest</code> version of <code>IFubuRequest</code>.
-
-<Snippet name="using-in-memory-fubu-request" />
-</Section>
-
-<Section title="Sample Usage" id="sample-usage">
-As an example of how you might use it, let's say that you have a behavior chain with two custom behaviors:
-
-1. MyFirstBehavior
-1. MySecondBehavior
-
-In this example, <code>MyFirstBehavior</code> runs first and creates a new instance of <code>PrivateMessage</code>
-and stores it in <code>IFubuRequest</code>. When <code>MySecondBehavior</code> runs next, it is able to find
-that same instance of <code>PrivateMessage</code> from the shared <code>IFubuRequest</code> object.
-
-
-
-</Section>
-
-
-
-
-</markdown>
-
-
-<Snippet name="passing-state-with-ifuburequest" />
View
8 src/FubuMVC.Docs/30.runtime-services/2.outputwriter.spark
@@ -1,8 +0,0 @@
-<!--Title: IOutputWriter-->
-
-<markdown>
-
-TODO(write some content)
-</markdown>
-
-<Snippet name="ioutputwriter" />
View
9 src/FubuMVC.Docs/30.runtime-services/index.spark
@@ -1,9 +0,0 @@
-<!--Title: Runtime Services-->
-<!--Url: runtime-services-->
-
-<markdown>
-TODO(Write some content!)
-</markdown>
-
-<TableOfContents />
-
View
7 src/FubuMVC.Docs/31.architecture/1.one-model-in-one-model-out.spark
@@ -1,7 +0,0 @@
-<!--Title: One Model In, One Model Out-->
-<!--Url: one-model-in-one-model-out-->
-
-<markdown>
-TODO(Write some content!)
-</markdown>
-
View
7 src/FubuMVC.Docs/31.architecture/2.russian-doll-model.spark
@@ -1,7 +0,0 @@
-<!--Title: Russian Doll Model-->
-<!--Url: russian-doll-model-->
-
-<markdown>
-TODO(Write some content!)
-</markdown>
-
View
7 src/FubuMVC.Docs/31.architecture/3.handling-requests.spark
@@ -1,7 +0,0 @@
-<!--Title: Handling Requests-->
-<!--Url: handling-requests-->
-
-<markdown>
-TODO(Write some content!)
-</markdown>
-
View
7 src/FubuMVC.Docs/31.architecture/4.configuration-vs-runtime.spark
@@ -1,7 +0,0 @@
-<!--Title: Configuration vs Runtime-->
-<!--Url: configuration-vs-runtime-->
-
-<markdown>
-TODO(Write some content!)
-</markdown>
-
View
7 src/FubuMVC.Docs/31.architecture/index.spark
@@ -1,7 +0,0 @@
-<!--Title: Architecture-->
-<!--Url: architecture-->
-
-<markdown>
-TODO(Write some content!)
-</markdown>
-
View
7 src/FubuMVC.Docs/32.adding-chrome-around-html-content.spark
@@ -1,7 +0,0 @@
-<!--Title: Adding 'Chrome' around Html Content-->
-<!--Url: adding-chrome-around-html-content-->
-
-<markdown>
-TODO(Write some content!)
-</markdown>
-
View
7 src/FubuMVC.Docs/33.asynchronous-requests.spark
@@ -1,7 +0,0 @@
-<!--Title: Asynchronous Requests-->
-<!--Url: asynchronous-requests-->
-
-<markdown>
-TODO(Write some content!)
-</markdown>
-
View
7 src/FubuMVC.Docs/34.session-state.spark
@@ -1,7 +0,0 @@
-<!--Title: Session State and Flash-->
-<!--Url: session-state-->
-
-<markdown>
-TODO(Write some content!)
-</markdown>
-
View
7 src/FubuMVC.Docs/35.actions.spark
@@ -1,7 +0,0 @@
-<!--Title: Actions-->
-<!--Url: actions-->
-
-<markdown>
-TODO(Write some content!)
-</markdown>
-
View
7 src/FubuMVC.Docs/36.configuration.spark
@@ -1,7 +0,0 @@
-<!--Title: Application Configuration-->
-<!--Url: configuration-->
-
-<markdown>
-TODO(Write some content!)
-</markdown>
-
View
7 src/FubuMVC.Docs/37.default-conventions-and-policies.spark
@@ -1,7 +0,0 @@
-<!--Title: Default Conventions and Policies-->
-<!--Url: default-conventions-and-policies-->
-
-<markdown>
-TODO(Write some content!)
-</markdown>
-
View
156 src/FubuMVC.Docs/4.terminology.spark
@@ -1,156 +0,0 @@
-<!--Title: Terminology-->
-<!--Url: terminology-->
-
-<markdown>
-
-
-
-<Section title="Behaviors and Behavior Chains" id="behaviors">
-
-Internally, the key FubuMVC runtime abstraction is a small chunk of functionality called a _behavior_:
-
-<Snippet name="IActionBehavior" />
-
-Each _endpoint_ in a FubuMVC application is composed of a chain of one or more "behavior" objects nested within each other in
-what we frequently refer to as the [Russian Doll
-Model](http://codebetter.com/jeremymiller/2011/01/09/fubumvcs-internal-runtime-the-russian-doll-model-and-how-it-compares-to-asp-net-mvc-and-openrasta/).
-
-Even a simple HTTP request is likely to be handled by multiple behaviors. While
-FubuMVC comes out of the box with behaviors for common tasks like Json or Xml
-serialization/deserialization, calling actions, and rendering views, you can
-build your own custom behaviors.
-
-During day to day development most developers are going to be working strictly
-with view models, actions, and views, but it's still good to know that it's possible to customize the behavior pipeline.
-
-</Section>
-
-<Section title="Endpoints, Routes, and Partials" id="endpoints">
-Behavior chains can be invoked in FubuMVC either through an HTTP request that matches a predefined _Route_ that matches a known Url pattern or through direct invocation of the chain as a _Partial_ through the <code>IPartialInvoker</code> service.
-For the purpose of documentation and diagnostics screens, the term _Endpoints_ is used to refer to the configured behavior chains both with or without a matching Route.
-Unlike the web development frameworks like ASP.Net MVC or Web API, FubuMVC creates a unique Route object per endpoint.
-
-_Partials_ are very useful for composing large, complicated screens into manageable chunks, sharing bits of user interface across screens, or even to create configurable screens.
-<ProjectLink name="FubuTransportation" uses _Partial's_ for its message handler chains.
-
-<Info>FubuMVC still uses the <a href="http://msdn.microsoft.com/en-us/library/system.web.routing.urlroutingmodule(v=vs.110).aspx">Url Routing Module from ASP.Net</a> as our <a href="http://martinfowler.com/eaaCatalog/frontController.html">Front Controller</a> mechanism. This may be changed in later versions of FubuMVC in favor of a faster implementation of routing like <a href="https://github.com/phatboyg/Magnum/tree/master/src/Magnum.Routing">Magnum's.</a></Info>
-
-</Section>
-
-
-<Section title="View, Input, and Output Models" id="view-models">
-
-View, Input, or Output models are typically [Data Transfer
-Objects](http://en.wikipedia.org/wiki/Data_transfer_object) that are either
-inputs to or outputs from behaviors. It's probably advantageous to think of
-view models as messages passed to or between behaviors. As a baked in
-*opinion*, FubuMVC strongly prefers that the input models are unique across
-actions in your application. FubuMVC can use an input model to resolve URL's or
-authorization rules in the system. Likewise, output model signatures from
-action methods are used to "attach" view and other output behaviors to a
-behavior chain.
-
-<Snippet name="models" />
-
-</Section>
-
-<Section title="Actions" id="actions">
-
-While you *could* treat FubuMVC as a classic MVC framework and use controllers to direct what should happen within a route or input,
-idiomatic FubuMVC usage is to instead use simpler
-_actions_ that are just methods on concrete
-[POCO](http://en.wikipedia.org/wiki/Plain_Old_CLR_Object) classes in your
-application that will be called during an HTTP request like the following:
-
-<Snippet name="overview-homecontroller" />
-
-Typically, you will let FubuMVC itself figure out what else needs to happen on
-an HTTP request by applying conventions against the signature of the _actions._
-Actions are in turn called by specialized Behavior's that deal with the repetitive
-"resolve the input, call the action with that input, store the output" logic.
-
-To make this concrete for a typical HTTP request, FubuMVC will marshal the raw HTTP data into an input model,
-then FubuMVC will call your action method directly and store any output where
-nested behaviors can find it and write out any necessary HTTP response. This is what we call the _[one model in, one model out](http://rexflex.net/2011/07/fubumvc-one-model-in-one-model-out/)_ philosophy, meaning that actions should typically only be concerned with
-your application's data and services rather than exercising framework
-machinery.
-
-One of the original goals of FubuMVC was to simplify our controller actions so
-that all they had to do was process a request object and return a response with
-no coupling to giant base classes or repetitive boilerplate code just to feed
-the framework. We believe that the "one model in, one model out" opinion
-makes our code easier to read, write, and test by removing the noise code so
-prevalent in other .NET solutions. It also greatly improves our ability to
-compose the runtime pipeline and creates traceability between parts of the
-application.
-
-</Section>
-
-<Section title="Views" id="views">
-
-Now that you've got view models and actions to process them, you need something
-to render the view model into HTML. As of this writing, FubuMVC supports the
-Razor and Spark view engines. In addition, you can happily have actions
-spit out raw HTML or <ProjectLink name="HtmlTags" /> objects.
-
-<Info>We have just recently deprecated the support for WebForms. We feel that this decision will make the world a slightly better place.</Info>
-
-</Section>
-
-
-
-<Section title="Wrappers" id="wrappers">
-
-Wrappers are simply behaviors that you can use to perform additional work
-during an HTTP request like authorization checks, validation, caching, activity tracking,
-or just extra auditing. Wrappers are able to stop the processing of nested behaviors in the chain.
-
-</Section>
-
-<Section title="BehaviorGraph and FubuRegistry" id="behaviorgraph">
-
-FubuMVC contains a configuration model called BehaviorGraph that completely
-models how each possible HTTP route and headless partial will be handled. For each endpoint (chain)
-in the system, the BehaviorGraph models:
-
- 1. Routes and URL's including HTTP constraints
- 1. Behavior Chains
- 1. Actions to be called
- 1. Views or other output behaviors like Json output that will be called
- 1. Authorization and/or Authentication rules
- 1. Wrappers
-
-You generally won't work directly with these objects daily, but understanding the
-underlying BehaviorGraph model is crucial to writing your own FubuMVC
-conventionsm, policies, and shared infrastructure Bottles later.
-
-</Section>
-
-<Section title="Inversion of Control Container" id="ioc">
-
-FubuMVC is built around the idea of composition, but that composition can come
-at a cost. FubuMVC uses your application's IoC container to do the mechanical work of assembling all the
-various pieces, services, behaviors, and extensions that make up a functioning
-FubuMVC application. We like to say that FubuMVC is "Dependency Injection
-turtles all the way down," meaning that **all** FubuMVC services are resolved
-from the IoC container without hacks like "IDependencyResolver."
-
-
- <Info>
- At this writing (Nov 2013), FubuMVC supports the StructureMap, Autofac, and Castle Windsor containers, with work ongoing to support Ninject as well. A few Bottles (FubuMVC.RavenDb) do specifically require StructureMap.
- </Info>
-
-</Section>
-
-<Section title="Bottles" id="bottles">
-
-FubuMVC uses the [Bottles project](https://github.com/DarthFubuMVC/bottles)
-for modularity. Bottles can be used to break your application up into
-different "areas" or to extend your application with new content or abilities.
-
-</Section>
-
-
-
-</markdown>
-
View
7 src/FubuMVC.Docs/5.bootstrapping/1.fuburegistry.spark
@@ -1,7 +0,0 @@
-<!--Title: FubuRegistry-->
-<!--Url: fuburegistry-->
-
-<markdown>
-TODO(Write some content!)
-</markdown>
-
View
7 src/FubuMVC.Docs/5.bootstrapping/2.assembly-scanning.spark
@@ -1,7 +0,0 @@
-<!--Title: Assembly Scanning-->
-<!--Url: assembly-scanning-->
-
-<markdown>
-TODO(Write some content!)
-</markdown>
-
View
7 src/FubuMVC.Docs/5.bootstrapping/3.action-discovery.spark
@@ -1,7 +0,0 @@
-<!--Title: Action Discovery-->
-<!--Url: action-discovery-->
-
-<markdown>
-TODO(Write some content!)
-</markdown>
-
View
92 src/FubuMVC.Docs/5.bootstrapping/index.spark
@@ -1,92 +0,0 @@
-<!--Title: Bootstrapping-->
-<!--Url: bootstrapping-->
-
-<markdown>
-
-The first step to building a new FubuMVC application is creating the bootstrapping code for the new application. When you bootstrap a FubuMVC application,
-youll need to tell the <code>FubuApplication</code> class a couple pieces of information:
-
-1. Any custom conventions or policies for the application
-1. An _IoC container facility_ to handle service registration at bootstrapping time and behavior creation at runtime
-1. Optionally, you may also register additional <ProjectLink name="Bottles"/> package loaders, activators, and bootstrappers.
-
-<Section title="Under the Covers" id="under-the-covers" >
-
-At bootstrapping time, <code>FubuApplication</code> takes the container facility, any custom conventions or policies, and the bottles loaders you specified
-and uses those ingredients to build up a <code>FubuRuntime</code> by following these steps:
-
-1. Discovers and loads any <ProjectLink name="Bottles"/> packages deployed to the application
-1. Builds up the BehaviorGraph model for the application against assembly and the active conventions
-1. _Bakes_ the behaviors and service registrations into the application's IoC container
-1. Builds the routing table
-1. Runs any registered <ProjectLink name="Bottles"/> _Activators_
-
-You just need to declaratively provide the ingredients and <code>FubuApplication</code> will perform the right operations in the correct order.
-
-</Section>
-
-<Section title="Building a FubuRuntime" id="fuburuntime">
-
-The <code>FubuRuntime</code> class simply holds all the runtime elements of a running FubuMVC application. You generally won't interact with
-instances of <code>FubuRuntime</code> other than calling <code>Dispose()</code> to shutdown an application, but it is useful in testing scenarios to access the underlying IoC container, <code>BehaviorGraph</code>, and the routing table.
-
-The simplest possible way to bootstrap a FubuMVC application is to use the default policies and a new empty IoC container as in this code:
-
-<Snippet name="bootstrapping" />
-
-</Section>
-
-<Section title="IApplicationSource" id="iapplicationsource">
-
-While it isn't expressly mandatory, the FubuMVC team recommends that you embed your bootstrapping code into a class that implements the
-<code>IApplicationSource</code> interface like this class below:
-
-<Snippet name="bootstrapping-simplest-possible" />
-
-Using an <code>IApplicationSource</code> enables you to create a specification for how your application is bootstrapped that can be reused unchanged in different contexts
-such as ASP.Net hosting, embedded Katana servers, test harnesses, and the <ProjectLink name="fubu" /> development server.
-</Section>
-
-<Section title="Bootstrapping in ASP.Net" id="aspnet">
-
-To bootstrap a FubuMVC application for ASP.Net usage, you just need to build a <code>FubuRuntime</code> object at application startup and dispose it at application unloading like this:
-
-<Snippet name="bootstrapping-with-asp-net" />
-
-Do note that in the case of ASP.Net hosting that the routes are stored in the static <code>RouteTable.Routes</code> collection.
-
-</Section>
-
-
-<Section title="Bootstrapping for an Embedded Katana Server" id="embedded-katana">
-
-Bootstrapping FubuMVC for Katana uses the same <code>FubuApplication</code> / <code>FubuRuntime</code> mechanisms as we used above for ASP.Net:
-
-<Snippet name="bootstrapping-with-katana" />
-
-</Section>
-
-
-<Section title="Custom Policies and Conventions with FubuRegistry" id="custom-policies">
-
-You can register your own custom policies or conventions with FubuMVC to govern almost anything in your application using your own <code>FubuRegistry</code> class
-like the one following:
-
-<Snippet name="bootstrapping-custom-policies"/>
-
-See the topic on <code>FubuRegistry</code> for more information.
-
-</Section>
-
-<Section title="Customizing the Bottles Loading" id="bottles">
-<ProjectLink name="Bottles" /> itself is extensible. If you want to load Bottles packages to your application in a different way than the defaults,
-you can register your custom loaders, activators, and bootstrappers with the <code>Packages()</code> method on <code>FubuApplication</code>:
-
-<Snippet name="bootstrapping-custom-bottles" />
-
-</Section>
-
-
-
-</markdown>
-
View
26 src/FubuMVC.Docs/6.using-ioc-containers/1.service-registration.spark
@@ -1,26 +0,0 @@
-<!--Title: Service Registration-->
-<!--Url: service-registration-->
-
-<markdown>
-<Section title="ServiceRegistry" id="service-registry">
-TODO(ServiceRegistry)
-
-TODO(import a ServiceRegistry)
-TODO(inline ServiceRegistry)
-</Section>
-
-<Section title="Setting Default Services" id="defaults">
-TODO(Setting Default Services)
-</Section>
-
-
-<Section title="Adding Additional Services" id="additional">
-TODO(Setting additional Services)
-</Section>
-
-<Section title="Singleton vs. Transient Scoping" id="scoping">
-TODO(scoping)
-</Section>
-
-</markdown>
-
View
7 src/FubuMVC.Docs/6.using-ioc-containers/2.objectdef.spark
@@ -1,7 +0,0 @@
-<!--Title: ObjectDef-->
-<!--Url: objectdef-->
-
-<markdown>
-TODO(Write some content!)
-</markdown>
-
View
7 src/FubuMVC.Docs/6.using-ioc-containers/3.autofac.spark
@@ -1,7 +0,0 @@
-<!--Title: Autofac-->
-<!--Url: autofac-->
-
-<markdown>
-TODO(Write some content!)
-</markdown>
-
View
7 src/FubuMVC.Docs/6.using-ioc-containers/4.windsor.spark
@@ -1,7 +0,0 @@
-<!--Title: Windsor-->
-<!--Url: windsor-->
-
-<markdown>
-TODO(Write some content!)
-</markdown>
-
View
7 src/FubuMVC.Docs/6.using-ioc-containers/5.structuremap/1.configuration-with-settings-objects.spark
@@ -1,7 +0,0 @@
-<!--Title: Configuration with Settings objects-->
-<!--Url: configuration-with-settings-objects-->
-
-<markdown>
-TODO(Write some content!)
-</markdown>
-
View
7 src/FubuMVC.Docs/6.using-ioc-containers/5.structuremap/2.adding-structuremap-registrys-from-bottles.spark
@@ -1,7 +0,0 @@
-<!--Title: Adding StructureMap Registry's from Bottles-->
-<!--Url: adding-structuremap-registrys-from-bottles-->
-
-<markdown>
-TODO(Write some content!)
-</markdown>
-
View
21 src/FubuMVC.Docs/6.using-ioc-containers/5.structuremap/index.spark
@@ -1,21 +0,0 @@
-<!--Title: StructureMap-->
-<!--Url: structuremap-->
-
-<markdown>
-<Section title="Using a new Container" id="new-container">
- TODO(new SM container)
-</Section>
-
-<Section title="Bootstrapping with a Registry" id="registry">
-TODO(bootstrapping w/ an SM Registry)
-</Section>
-
-<Section title="Using ObjectFactory" id="objectfactory">
-First off, the FubuMVC/StructureMap team strongly urges caution when using <code>ObjectFactory</code>.
-
-TODO(ObjectFactory)
-
-</Section>
-
-</markdown>
-
View
19 src/FubuMVC.Docs/6.using-ioc-containers/index.spark
@@ -1,19 +0,0 @@
-<!--Title: Using IoC Containers-->
-<!--Url: using-ioc-containers-->
-
-<markdown>
-
-<Section title="How FubuMVC uses an IoC Container" id="usage">
-TODO(Write some content!)
-</Section>
-
-<Section title="Object Lifecycles in a Request" id="request-lifecycle">
-TODO(Write some content!)
-</Section>
-
-<Section title="How FubuMVC expects an IoC Container to behave" id="assumptions">
-TODO(Write some content!)
-</Section>
-
-</markdown>
-
View
32 src/FubuMVC.Docs/7.hosting/1.asp-net.spark
@@ -1,32 +0,0 @@
-<!--Title: ASP.Net Hosting-->
-<!--Url: asp-net-->
-
-<markdown>
-TODO(Write some content!)
-
-TODO(explain all the ASP.Net services?)
-
-
-<Section title="Web.config dependencies" id="web-config">
-
-I wish it wasn't so, but for now FubuMVC has some required dependencies that
-must be configured via XML in web.config:
-
- 1. The System.Web.Routing.UrlRoutingModule module must be registered
- 1. Access to the folder "Content" should be authorized for all users
- (this is where FubuMVC assumes that content like images, scripts, and
- styles are stored)
- 1. Access to the folder "\_content" should be authorized for all users
- (this is where FubuMVC assumes that content like images, scripts, and
- styles are stored for packages. This will be changed in the near
- term)
- 1. Access to the folder "fubu-content" should be denied for all users.
- This folder is related to the Bottles support in FubuMVC
-
- <Info>In the longer term, the FubuMVC team expects to move to using the new OWIN hosting directly with the recommendation that ASP.Net hosting be discontinued. When and if that day comes, the web.config dependencies will be obsolete.</Info>
-
-
-</Section>
-
-</markdown>
-
View
7 src/FubuMVC.Docs/7.hosting/2.owin.spark
@@ -1,7 +0,0 @@
-<!--Title: OWIN Hosting-->
-<!--Url: owin-->
-
-<markdown>
-TODO(Explain the OWIN services. Injecting OwinRequest/OwinResponse)
-</markdown>
-
View
95 src/FubuMVC.Docs/7.hosting/3.embedded.spark
@@ -1,95 +0,0 @@
-<!--Title: Embed FubuMVC Applications-->
-
-<markdown>
-
-<Section title="Getting Started" id="getting-started">
-
-You can use FubuMVC's support for the [Katana web server](http://katanaproject.codeplex.com) to embed FubuMVC applications into any .Net service.
-My shop uses this functionality to expose diagnostic views into backend services and other teams have used this functionality
-to expose HTTP API's into running services.
-
-The first step is to install the <code>FubuMVC.Katana</code> library to your application or service.
-
-<Nuget name="FubuMVC.Katana" />
-
-Assuming that you already have an <code>IApplicationSource</code> class to bootstrap your application or you only need a very generic
-application setup, you will use the <code>EmbeddedFubuMvcServer</code> class to startup the Katana server for your application as
-shown in the sample code below.
-
-<Snippet name="bootstrapping-with-katana" />
-
-<Info>Remember to dispose the <code>EmbeddedFubuMvcServer</code> object when you're done with it to shut down Katana gracefully and release the port binding.</Info>
-
-See <TopicLink name="bootstrapping" /> for more information about bootstrapping a FubuMVC application.
-
-</Section>
-
-<Section title="Port Bindings" id="port">
-
-The default port number for <code>EmbeddedFubuMvcServer</code> is 5500. When you want your application to run with a different port, use
-the <code>port</code> argument like this:
-
-<Snippet name="katana-with-explicit-port" />
-
-</Section>
-
-<Section title="The Application Physical Path for Content" id="path">
-
-When FubuMVC starts up an application it needs to know what the root directory where the content (views, scripts, stylesheets, etc.)
-is located. This is done for you in <TopicLink name="hosting/fubu-server" /> or the <TopicLink name="hosting/fubu-server" />, but you
-might need to provide the actual content path for the <code>EmbeddedFubuMvcServer</code> objects, especially when you're using the embedded
-server for automated testing.
-
-If no physical path is provided or can be determined as described in the next section, the <code>EmbeddedFubuMvcServer</code> class uses the <code>AppDomain.CurrentDomain.BaseDirectory</code> path as the physical path. While this is perfectly usable for
-headless services, it's generally pretty useless for an application that needs to use content files. In that case, you need to
-give <code>EmbeddedFubuMvcServer</code> the correct physical path as in this code:
-
-<Snippet name="katana-with-explicit-path" />
-
-</Section>
-
-<Section title="Using EmbeddedFubuMvcServer for Testing" id="testing">
-If no physical content path is specified, <code>EmbeddedFubuMvcServer</code> will first look for a folder with the same name as the Assembly containing
-the <code>IApplicationSource</code> in a sibling directory to the current projects directory. This was done specifically for
-integration testing scenarios where you might have a structure like this:
-
-1. /src/MyApplication/MyApplication.csproj
-1. /src/MyApplication/MyApplication.cs (IApplicationSource)
-1. /src/MyApplication.Testing/MyApplication.Testing.csproj
-1. /src/MyApplication.Testing/MyApplicationTester.cs
-
-If I build out an <code>EmbeddedFubuMvcServer</code> object for the <code>MyApplication</code> class in the <code>MyApplication.Testing</code> project,
-<code>EmbeddedFubuMvcServer</code> will use _/src/MyApplication_ as the physical path because it can derive the correct application path from
-the assembly name that contains <code>MyApplication</code>.
-
-In other words, if you follow the convention of putting the code for each assembly or executable in a folder with the same name, the pathing will just work.
-
-Now that you have a running application, the <code>EmbeddedFubuMvcServer</code> class exposes some properties that will help you
-access and drive the running application:
-
-<Snippet name="katana-and-testing" />
-
-See <TopicLink name="automated-testing/using-endpointdriver" /> and <TopicLink name="urls-and-routes/url-resolution" /> for more information
-
-</Section>
-
-<Section title="Auto Start Katana Hosting" id="auto-hosting">
-
-If you are hosting a <ProjectLink name="FubuMVC" /> or <ProjectLink name="FubuTransportation" /> application in a service and want a Katana host
-to start for your application on startup, set the <code>KatanaSettings.AutoHostingEnabled</code> property to <code>true</code> as in
-this code from our integration tests:
-
-<Snippet name="katana-auto-hosting" />
-
-You can specify the port number you want to use in your <code>FubuRegistry</code>, or set the port number
-value in the .Net _appSettings_ configuration with the key <code>KatanaSettings.AutoHostingEnabled</code>.
-
-Katana hosting is set up by an <code>IActivator</code> if auto hosting is enabled. The host is stopped and disposed by a <code>IDeactivator</code>
-when the containing application is disposed.
-
-<Info>It is possible to use the <code>fubu run</code> hosting against an application that has auto hosting enabled. In that case, <code>fubu run</code>
-will use the port configuration from the <code>KatanaSettings</code></Info>
-
-</Section>
-
-</markdown>
View
8 src/FubuMVC.Docs/7.hosting/4.fubu-server.spark
@@ -1,8 +0,0 @@
-<!--Title: The Fubu Web Server-->
-
-
-
-<markdown>
-You can also run FubuMVC applications from a console window with the embedded Katana server in the <ProjectLink name="Fubu" /> command line tool.
-
-</markdown>
View
15 src/FubuMVC.Docs/7.hosting/index.spark
@@ -1,15 +0,0 @@
-<!--Title: Hosting-->
-<!--Url: hosting-->
-
-<markdown>
-As of this writing (December 2013), FubuMVC can be hosted on top of either ASP.Net on IIS/Apache/nginx or OWIN with Katana. While there is _some_ behavior that is only available on ASP.Net (model binding integration with HttpContext server variables),
-for the most part FubuMVC's behavior is consistent across the two types of hosting. Many teams choose to use Katana for automated testing and increasingly for development
-while deploying to IIS for production.
-
-As the OWIN standard continues to mature, it is somewhat likely that a future version of FubuMVC will eliminate the ASP.Net hosting from the core in favor of making OWIN
-the lowest level HTTP abstraction internally.
-
-<TableOfContents />
-
-</markdown>
-
View
7 src/FubuMVC.Docs/8.ajax/1.using-json-net-with-fubumvc.spark
@@ -1,7 +0,0 @@
-<!--Title: Using Json.Net with FubuMVC-->
-<!--Url: using-json-net-with-fubumvc-->
-
-<markdown>
-TODO(Write some content!)
-</markdown>
-
View
7 src/FubuMVC.Docs/8.ajax/2.model-binding-against-json-messages.spark
@@ -1,7 +0,0 @@
-<!--Title: Model Binding against Json Messages-->
-<!--Url: model-binding-against-json-messages-->
-
-<markdown>
-TODO(Import the FubuMVC.Json package)
-</markdown>
-
View
39 src/FubuMVC.Docs/8.ajax/index.spark
@@ -1,39 +0,0 @@
-<!--Title: Ajax-->
-<!--Url: ajax-->
-
-<markdown>
-
-<Section title="Your First Ajax Endpoint" id="first-endpoint">
-
-</Section>
-
-
-TODO(mention Conneg)
-
-<Section title="Default Conventions" id="conventions">
-
-</Section>
-
-<Section title="Symmetric or Asymmetric Json" id="symmetric">
-1. By attributes
-1. By convention
-</Section>
-
-
-<Section title="Workflow with AjaxContinuation" id="continuation">
-TODO(Describe AjaxContinuation)
-
-TODO(Link to jquery.continuations.js)
-</Section>
-
-<Section title="Json Services" id="json">
-TODO(talk about replacing the JsonFormatter)
-</Section>
-
-<Section title="Xml Services" id="xml">
-
-</Section>
-
-TODO(Write some content!)
-</markdown>
-
View
298 src/FubuMVC.Docs/9.conneg.spark
@@ -1,298 +0,0 @@
-<!--Title: Content Negotiation-->
-<!--Url: conneg-->
-
-<markdown>
-
-FubuMVC supports the HTTP concept of [Content Negotiation](http://en.wikipedia.org/wiki/Content_negotiation) (colloquially known as _Conneg_).
-If you are building websites with views and Ajax endpoints you should very rarely need to deviate from the built in defaults for _Conneg_. The view
-engine implementations in FubuMVC are integrated into the _Conneg_ infrastructure as just another type of _Media Writer_.
-
-<Info>Improving the ease of Conneg customization is one of the major goals of a forthcoming FubuMVC 2.0 release</Info>
-
-</markdown>
-
-
-<Section title="Terminology and Concepts" id="terminology">
-<markdown>
-* **[Mimetype](http://en.wikipedia.org/wiki/Internet_media_type)** -- A _media type_ representation of a resource identified by a _mimetype_
-* **Input Model** - The model passed into the input of a FubuMVC _Action_
-* **Resource Type** - In FubuMVC terms, this is the output model returned from an _Action_ and/or the view model type consumed by a view or another media writer
-* **InputBehavior** / **InputNode** -- The behavior and matching <code>BehaviorNode</code> that reads HTTP requests to resolve _Input Model_ objects
-* **OutputBehavior** / **OutputNode** -- The behavior and matching <code>BehaviorNode></code> that writes resources out to the HTTP response
-* **Media Writer** - A object that can write a resource to one or more media types
-* **Media Reader** - An object that can read an input model object from the current HTTP request for one or more mimetype representations
-* **Condition** - A *runtime* boolean test modeled by FubuMVC's <code>ICondition</code> interface that evaluates runtime conditions
-
-_Media Reader's_ and _Media Writer's_ can be thought of as small [Strategy pattern](http://en.wikipedia.org/wiki/Strategy_pattern) classes that read and write
-strong typed models based on mimetype and runtime conditions. _InputBehavior_ and _OutputBehavior_ are [mediator](http://en.wikipedia.org/wiki/Mediator_pattern) classes that select and delegate to the
-_Media Reader's_ or _Media Writer's_ and FubuMVC's HTTP services.
-
-</markdown>
-
-
-
-
-</Section>
-
-
-<Section title="How it Works" id="how-it-works">
-<markdown>
-Consider this simple FubuMVC endpoint:
-
-<Snippet name="endpoint-with-input-and-resource" />
-
-This endpoint accepts an _Input Model_ called <code>InputMessage</code> and returns a _resource_ called <code>ResourceModel</code>.
-Notice that the <code>ConnegEndpoint.get_resource()</code> method does nothing but process an input message and return the resulting resource
-out the back. The responsiblity for turning an HTTP request into the <code>InputMessage</code> object and the responsibility for writing
-the resulting <code>ResourceModel</code> out to the HTTP response is handled by separate behaviors, one for the request (<code>InputBehavior</code>) and one
-for the response (<code>OutputBehavior</code>).
-
-To make this concrete, say the browser makes an HTTP POST to our <code>/resource</code> endpoint with jquery code like:
-
-<pre>
-$.post('/resource', query_data, callback, 'text/json');
-</pre>
-
-In the FubuMVC endpoint, the sequence of events is:
-
-1. The <code>InputBehavior</code> runs first, sees that the request says that it is Json and invokes the registered reader for Json, resolves the <code>InputModel</code> object from the Json body and finally stores the input in the <TopicLink name="runtime-services/fuburequest" /> model bag for the request.
-1. The <code>ConnegEndpoint.get_resource()</code> action runs using the <code>InputModel</code> built by <code>InputBehavior</code> and returning a new <code>ResourceModel</code> object that is stored in the <TopicLink name="runtime-services/fuburequest" /> model bag for the request.
-1. The <code>OutputBehavior</code> runs last, finds the <code>ResourceModel</code> object stored in <TopicLink name="runtime-services/fuburequest" />, sees that the response should be formatted as Json, selects the _Media Writer_ that can write Json and delegates to that writer.
-
-</markdown>
-</Section>
-
-
-<Section title="How Conneg works with HTTP Requests" id="input">
-
-<markdown>
-Rather than rehash how _Conneg_ handles HTTP inputs, here's the exact code from <code>InputBehavior</code> that implements the _Conneg_ input logic (*T* is a generic parameter for the _Input Model_ type of the current chain) with explanatory annotations:
-</markdown>
-<Snippet name="input-behavior-mechanics" />
-
-</Section>
-
-
-<markdown>
-
-<Section title="How Conneg works for Responses" id="responses">
-
-The code that implements the _Conneg_ output logic is shown below with annotations:
-
-<Snippet name="output-behavior-mechanics" />
-
-<code>OutputBehavior</code> reads the mimetypes in the HTTP _accepts_ header from left to right looking for the first matching writer by mimetype. If no specific
-match is made, but the _accepts_ header contains the _*/*_ wildcard, <code>OutputBehavior</code> will select the first writer.
-
-To make that more concrete, let's say that we have an output behavior that has three writer's:
-
-1. A Spark/Razor view that renders _text/html_
-1. A Json formatter that can write either _text/json_ or _application/json_
-1. An Xml formatter that can write either _text/xml_ or _application/xml_
-
-For this _Conneg_ configuration, the table below describes how the output selection will work:
-
-<table class="table">
- <tr>
- <th>HTTP Accept Header</th>
- <th>Will write...</th>
- </tr>
- <tr>
- <td>text/html</td>
- <td>text/html</td>
- </tr>
- <tr>
- <td>application/json</td>
- <td>application/json</td>
- </tr>
- <tr>
- <td>vnd/special;plain/text;text/json</td>
- <td>text/json</td>
- </tr>
- <tr>
- <td>*/*</td>
- <td>text/html</td>
- </tr>
- <tr>
- <td>text/xml;text/json;*.*</td>
- <td>text/xml</td>
- </tr>
- <tr>
- <td>vnd/special;plain/text;*/*</td>
- <td>text/html</td>
- </tr>
- <tr>
- <td>vnd/special;plain/text</td>
- <td>HTTP Status 406</td>
- </tr>
-</table>
-
-</Section>
-
-<Section title="Out of the Box Readers" id="ootb-readers">
-By itself, <code>FubuMVC.Core</code> comes with these reader strategies:
-
-<table class="table">
-<tr>
- <th>Name</th>
- <th>Description</th>
- <th>Mimetypes</th>
-</tr>
-<tr>
- <td>ModelBindingReader</td>
- <td>Uses <TopicLink name="model-binding" /> to resolve the input</td>
- <td>_application/x-www-form-urlencoded_ or _multipart/form-data_</td>
-</tr>
-<tr>
- <td>Json Formatter</td>
- <td>Uses the <code>IJsonReader</code> service to deserialize the input message from the request body content</td>
- <td>_application/json_ or _text/json_</td>
-</tr>
-<tr>
- <td>Xml Formatter</td>
- <td>_application/xml_ or _text/xml_</td>
- <td>Uses the .Net <a href="http://msdn.microsoft.com/en-us/library/system.xml.serialization.xmlserializer(v=vs.110).aspx">XmlSerializer</a> to deserialize the input message from the request body content</td>
-</tr>
-</table>
-</Section>
-
-<Section title="Out of the Box Writers" id="ootb-writers">
-
-<code>FubuMVC.Core</code> also comes with these writer strategies:
-
-<table class="table">
-<tr>
- <th>Name</th>
- <th>Description</th>
- <th>Mimetypes</th>
-</tr>
-<tr>
- <td>Json Formatter</td>
- <td>Writes the resource object with the <code>IJsonWriter</code> service</td>
- <td>_application/json_ or _text/json_</td>
-</tr>
-<tr>
- <td>Xml Formatter</td>
- <td>Serializes the resource object with the .Net <code>XmlSerializer</code> and writes to the output stream</td>
- <td>_application/xml_ or _text/xml_</td>
-</tr>
-<tr>
- <td>Html String Writer</td>
- <td>Calls <code>ToString()</code> on the resource model and writes that string to the output</td>
- <td>_text/html_</td>
-</tr>
-<tr>
- <td>String Writer</td>
- <td>For actions that return a .Net <code>String</code>, just write that string to the output</td>
- <td>_text/html_</td>
-</tr>
-<tr>
- <td>AjaxContinuationWriter</td>
- <td>Writes an <code>AjaxContinuation</code> output object as Json</td>
- <td>_application/json_ or _text/json_</td>
-</tr>
-</table>
-</Section>
-
-<Section title="Spoofing the Mimetypes" id="spoofing">
-Sometimes you just cannot count on the web client to play nicely with how they format HTTP requests to your FubuMVC endpoints (looking at you Internet Explorer).
-
-Let's say that your FubuMVC system receives malformed HTTP requests from a web browser using [XmlHttpRequest](http://www.w3schools.com/xml/xml_http.asp) where the _accept_ header is completely missing.
-_Conneg_ uses the <code>CurrentMimeType</code> class to represent the HTTP _accept_ and _content-type_ headers.
-We can write a new behavior like the class below to alter the <code>CurrentMimeType</code> object for the request before the _Conneg_ output behavior runs to
-just fill in the missing _accept_ header.
-
-<Snippet name="spoofing-current-mimetype" />
-
-The next step is to somehow get the spoofing behavior into our Ajax endpoint chains.
-As an example, let's say that our convention is that we look for any chain that has
-an _Action_ from a class that has the text "Ajax" in its name (i.e. MyAjaxEndpoint):
-
-<Snippet name="spoofing-mimetype-policy" />
-
-
-
-
-<Info>Spoofing the <i>accept</i> and <i>content-type</i> headers for <i>Conneg</i> has been identified as an opportunity for improvement in FubuMVC 2.0</Info>
-
-</Section>
-
-<Section title="Writing a Custom IMediaReader" id="readers">
-
-You can create completely custom <code>IMediaReader</code> implementations like this sample:
-
-<Snippet name="custom-reader" />
-
-TODO(link to ICurrentHttpRequest)
-TODO(link to IStreamingData)
-
-
-</Section>
-
-<Section title="Writing a Custom IMediaWriter" id="writers">
-
-You can create completely custom <code>IMediaWriter</code> implementations like this sample:
-
-<Snippet name="custom-writer" />
-
-TODO(link to IOutputWriter)
-
-</Section>
-
-
-<Section title="Explicitly Configuring Conneg" id="explicit-config">
-
-The <code>BehaviorChain.Input</code> and <code>BehaviorChain.Output</code> properties can be used to add, remove, query, and reorder readers and writers.
-
-<Snippet name="conneg-manipulation" />
-
-TODO(link to working with behavior graph and chains)
-
-</Section>
-
-<Section title="Conneg Policies and Conventions" id="conventions">
-
-Content negotiation readers and writers can be applied through conventions/policies like so:
-
-<Snippet name="conneg-policies" />
-
-TODO(link to creating custom policies)
-
-</Section>
-
-
-<Section title="Conditional Writers" id="conditional-writers">
-
-You may want to use multiple writer's for the same resource and mimetype on the same endpoint,
-but choose the writer based on some sort of runtime test for things like customer or user profiles,
-authorization rules, or customization. The original usage for this functionality was for allowing
-FubuMVC's view engines to attach different views for different devices (a smartphone view versus a view
-for a full screen desktop for example).
-
-The following code is a simplistic example of conditional writers:
-
-<Snippet name="add-conditions-to-writer" />
-
-In the case of having multiple writers for the same mimetype, _Conneg_ will select the first writer where
-the condition is true, so do pay attention to ordering within the output node.
-
-</Section>
-
-
-<Section title="Views and Conneg" id="views">
-As of FubuMVC 1.0+, view engine rendering is just a _Conneg_ <code>IMediaWriter</code> that responds to the mimetype 'text/html'.
-That being said, it's perfectly possible to make the same endpoint render a view when the client requests 'text/html' and still
-respond to other mimetypes without changing your _Action_.
-
-Below is a sample policy to add Json reading and writing to selected endpoints:
-
-<Snippet name="conneg-add-json-to-views" />
-
-TODO(move this sample and the entire content over to the view engine docs)
-
-</Section>
-
-
-</markdown>
-
-
View
83 src/FubuMVC.Docs/FubuMVC.Docs.csproj
@@ -1,83 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <PropertyGroup>
- <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
- <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
- <ProductVersion>8.0.30703</ProductVersion>
- <SchemaVersion>2.0</SchemaVersion>
- <ProjectGuid>{B9505A07-A44B-4857-830F-9CAB21DF5FCC}</ProjectGuid>
- <OutputType>Library</OutputType>
- <AppDesignerFolder>Properties</AppDesignerFolder>
- <RootNamespace>FubuMVC.Docs</RootNamespace>
- <AssemblyName>FubuMVC.Docs</AssemblyName>
- <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
- <FileAlignment>512</FileAlignment>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
- <DebugSymbols>true</DebugSymbols>
- <DebugType>full</DebugType>
- <Optimize>false</Optimize>
- <OutputPath>bin\Debug\</OutputPath>
- <DefineConstants>DEBUG;TRACE</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- </PropertyGroup>
- <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
- <DebugType>pdbonly</DebugType>
- <Optimize>true</Optimize>
- <OutputPath>bin\Release\</OutputPath>
- <DefineConstants>TRACE</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- </PropertyGroup>
- <ItemGroup>
- <Reference Include="FubuDocs">
- <HintPath>..\packages\FubuDocs\lib\net40\FubuDocs.dll</HintPath>
- </Reference>
- <Reference Include="FubuMVC.ViewEngines.Docs">
- <HintPath>..\packages\FubuMVC.ViewEngines.Docs\lib\net40\FubuMVC.ViewEngines.Docs.dll</HintPath>
- </Reference>
- <Reference Include="Microsoft.CSharp" />
- <Reference Include="System" />
- <Reference Include="System.Core" />
- <Reference Include="System.Data" />
- <Reference Include="System.Data.DataSetExtensions" />
- <Reference Include="System.Xml" />
- <Reference Include="System.Xml.Linq" />
- </ItemGroup>
- <ItemGroup>
- <Compile Include="Properties\AssemblyInfo.cs" />
- </ItemGroup>
- <ItemGroup>
- <ProjectReference Include="..\FubuMVC.Core\FubuMVC.Core.csproj">
- <Project>{E18FD922-0E7A-49CD-B89F-473826077B9D}</Project>
- <Name>FubuMVC.Core</Name>
- </ProjectReference>
- </ItemGroup>
- <ItemGroup>
- <WCFMetadata Include="Service References\" />
- </ItemGroup>
- <ItemGroup>
- <None Include="30.runtime-services\1.fuburequest.spark" />
- <None Include="30.runtime-services\2.outputwriter.spark" />
- <None Include="30.runtime-services\index.spark" />
- <None Include="7.hosting\1.asp-net.spark" />
- <None Include="7.hosting\2.owin.spark" />
- <None Include="7.hosting\3.embedded.spark" />
- <None Include="7.hosting\4.fubu-server.spark" />
- <None Include="7.hosting\index.spark" />
- <None Include="ripple.dependencies.config" />
- <None Include="splash.spark" />
- </ItemGroup>
- <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
- <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
- Other similar extension points exist, see Microsoft.Common.targets.
- <Target Name="BeforeBuild">
- </Target>
- <Target Name="AfterBuild">
- </Target>
- -->
- <ItemGroup>
- <EmbeddedResource Include="pak-WebContent.zip" />
- </ItemGroup>
-</Project>
View
32 src/FubuMVC.Docs/Properties/AssemblyInfo.cs
@@ -1,32 +0,0 @@
-using System.Reflection;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-// General Information about an assembly is controlled through the following
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("FubuMVC.Docs")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("Extend Health Inc")]
-[assembly: AssemblyProduct("FubuMVC.Docs")]
-[assembly: AssemblyCopyright("Copyright © Extend Health Inc 2013")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-// Setting ComVisible to false makes the types in this assembly not visible
-// to COM components. If you need to access a type in this assembly from
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("560585db-6e48-45ce-b005-6ff1964b289f")]
-// Version information for an assembly consists of the following four values:
-//
-// Major Version
-// Minor Version
-// Build Number
-// Revision
-//
-// You can specify all the values or you can default the Build and Revision Numbers
-// by using the '*' as shown below:
-// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]
View
3  src/FubuMVC.Docs/index.spark
@@ -1,3 +0,0 @@
-<!--Title: FubuMVC-->
-<ProjectSummary />
-<TableOfContents />
View
33 src/FubuMVC.Docs/project.xml
@@ -1,33 +0,0 @@
-<?xml version="1.0"?>
-<ProjectRoot xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
- <TagLine>The .Net web development framework that gets out of your way</TagLine>
- <Name>FubuMVC</Name>
- <GitHubPage>http://github.com/DarthFubuMVC/FubuMVC</GitHubPage>
- <UserGroupUrl>https://groups.google.com/forum/?fromgroups#!forum/fubumvc-devel</UserGroupUrl>
- <BuildServerUrl>http://build.fubu-project.org/project.html?projectId=project3&amp;tab=projectOverview</BuildServerUrl>
- <TeamCityBuildType>bt3</TeamCityBuildType>
- <BottleName>FubuMVC.Docs</BottleName>
- <Nugets>
- <PublishedNuget>
- <Name>FubuMVC.Core</Name>
- <Description>FubuMVC.Core Library</Description>
- </PublishedNuget>
- <PublishedNuget>
- <Name>FubuMVC.Katana</Name>
- <Description>Run FubuMVC applications using Katana and OWIN</Description>
- </PublishedNuget>
- <PublishedNuget>
- <Name>FubuMVC.Razor</Name>
- <Description>Support for using the Razor view engine within a FubuMVC application.</Description>
- </PublishedNuget>
- <PublishedNuget>
- <Name>FubuMVC.Spark</Name>
- <Description>Support for using the Spark view engine within a FubuMVC application.</Description>
- </PublishedNuget>
- <PublishedNuget>
- <Name>FubuMVC.StructureMap</Name>
- <Description>StructureMap bootstrapping for FubuMVC applications</Description>
- </PublishedNuget>
- </Nugets>
- <Url>fubumvc</Url>
-</ProjectRoot>
View
1  src/FubuMVC.Docs/ripple.dependencies.config
@@ -1 +0,0 @@
-FubuMVC.ViewEngines.Docs
View
76 src/FubuMVC.Docs/splash.spark
@@ -1,76 +0,0 @@
-<!--Title: FubuMVC-->
-
-<div class="wide-bg" style="padding-bottom:0px;">
- <div class="container">
- <div class="row">
- <div class="span8">
-
- <h1 class="no-margin">FubuMVC</h1>
- <p class="lead">The web development framework for .Net that gets out of your way</p>
-
- </div>
- <div class="span4">
- <h1 class="no-margin">What is it?</h1>
- <p class="lead no-margin">Can I use it too?</p>
- <br/>
- <!-- SAMPLE: learn-more-->
- <a href="!{this.ProjectIndexUrl("fubumvc")}" class="btn btn-large btn-primary margin">Learn more</a>
- <!-- ENDSAMPLE -->
- </div>
- <div class="clearfix"></div>
- </div>
- </div>
-</div>
-
-<div class="container">
- <div class="row">
- <div class="span12">
- <h2>Feature List</h2>
- <p class="lead">Some highlights</p>
-
- <!-- Services List -->
- <ul class="thumbnails">
- <li class="span3" style="opacity: 1;">
- <div class="text-center">
- <Image src="ico-pil-big.png">
- <br>
- <a href="#" class="btn half-margin">Clean Code</a>
- <p class="caption">
- FubuMVC allows you to build your application code instead of coding to the framework.
- </p>
- </div>
- </li>
- <li class="span3" style="opacity: 1;">
- <div class="text-center">
- <Image src="ico-cog-big.png">
- <br>
- <a href="#" class="btn half-margin">Modularity</a>
- <p class="caption">
- Use Bottles to create and consume reusable infrastructure as well as deliver vertical features in self contained projects.
- </p>
- </div>
- </li>
- <li class="span3" style="opacity: 1;">
- <div class="text-center">
- <Image src="ico-vig-big.png">
- <br>
- <a href="#" class="btn half-margin">Testability</a>
- <p class="caption">
- Easy unit testing by being able to directly execute your own code. Plenty of tooling goodies to write end to end tests in a maintainable way against FubuMVC applications.
- </p>
- </div>
- </li>
- <li class="span3" style="opacity: 1;">
- <div class="text-center">
- <Image src="ico-monitor-big.png">
- <br>
- <a href="#" class="btn half-margin">Convention over Configuration</a>
- <p class="caption">
- Do more with less code
- </p>
- </div>
- </li>
- </ul>
- </div>
- </div>
-</div>
View
17 src/FubuMVC.sln
@@ -50,8 +50,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "fubu.Testing", "fubu.Testin
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FubuApp", "FubuApp\FubuApp.csproj", "{8A284565-46C1-47ED-A44D-C4BF8384B9E2}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "fubu.Docs", "fubu.Docs\fubu.Docs.csproj", "{31845855-A4E7-411C-BA50-007BCD1816E0}"
-EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "BottleProjects", "BottleProjects", "{DE130877-DDCB-425C-9C20-BF1B73D4191D}"
EndProject
Global
@@ -337,21 +335,6 @@ Global
{8A284565-46C1-47ED-A44D-C4BF8384B9E2}.Retail|Mixed Platforms.ActiveCfg = Release|Any CPU
{8A284565-46C1-47ED-A44D-C4BF8384B9E2}.Retail|Mixed Platforms.Build.0 = Release|Any CPU
{8A284565-46C1-47ED-A44D-C4BF8384B9E2}.Retail|x86.ActiveCfg = Release|Any CPU
- {31845855-A4E7-411C-BA50-007BCD1816E0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {31845855-A4E7-411C-BA50-007BCD1816E0}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {31845855-A4E7-411C-BA50-007BCD1816E0}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
- {31845855-A4E7-411C-BA50-007BCD1816E0}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
- {31845855-A4E7-411C-BA50-007BCD1816E0}.Debug|x86.ActiveCfg = Debug|Any CPU
- {31845855-A4E7-411C-BA50-007BCD1816E0}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {31845855-A4E7-411C-BA50-007BCD1816E0}.Release|Any CPU.Build.0 = Release|Any CPU
- {31845855-A4E7-411C-BA50-007BCD1816E0}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
- {31845855-A4E7-411C-BA50-007BCD1816E0}.Release|Mixed Platforms.Build.0 = Release|Any CPU
- {31845855-A4E7-411C-BA50-007BCD1816E0}.Release|x86.ActiveCfg = Release|Any CPU
- {31845855-A4E7-411C-BA50-007BCD1816E0}.Retail|Any CPU.ActiveCfg = Release|Any CPU
- {31845855-A4E7-411C-BA50-007BCD1816E0}.Retail|Any CPU.Build.0 = Release|Any CPU
- {31845855-A4E7-411C-BA50-007BCD1816E0}.Retail|Mixed Platforms.ActiveCfg = Release|Any CPU
- {31845855-A4E7-411C-BA50-007BCD1816E0}.Retail|Mixed Platforms.Build.0 = Release|Any CPU
- {31845855-A4E7-411C-BA50-007BCD1816E0}.Retail|x86.ActiveCfg = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
View
9 src/fubu.Docs/.package-manifest
@@ -1,9 +0,0 @@
-<?xml version="1.0"?>
-<package xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
- <Role>module</Role>
- <Name>fubu.Docs</Name>
- <assembly>fubu.Docs</assembly>
- <ContentFileSet Include="*.*" Exclude="Properties/*;bin/*;obj/*;*.csproj*;packages.config;repositories.config;pak-*.zip;*.sln">
- <DeepSearch>true</DeepSearch>
- </ContentFileSet>
-</package>
View
78 src/fubu.Docs/1.hosting.spark
@@ -1,78 +0,0 @@
-<!--Title: Using as a Development Server-->
-<!--Url: hosting-->
-
-
-<markdown>
-
-The <code>fubu run</code> command allows you to run <ProjectLink name="FubuMVC" /> or <ProjectLink name="FubuTransportation" /> applications hosted with <a href="http://katanaproject.codeplex.com">Katana</a>.
-Even though you're most likely hosting your FubuMVC web applications on IIS, nginx, or Apache, the Katana based development server described here can provide a more efficient development experience.
-
-<Section title="How do I set it up?" id="setup">
-The <code>fubu run</code> hosting needs just two things:
-
-1. The root directory of your <ProjectLink name="FubuMVC" /> or <ProjectLink name="FubuTransportation" /> application project
-1. An <code>IApplicationSource</code> class to use to bootstrap your application (as described in the <ExternalTopicLink title="FubuMVC Bootstrapping" name="fubumvc/bootstrapping" /> docs)
-
-By default, <code>fubu run</code> assumes that you're running an application in the current directory, but you can specify the directory name with this usage:
-
-<pre>
-fubu run --directory src/MyApp
-</pre>
-
-The <code>--directory</code> flag can be either an absolute path or a relative path from the current directory.
-
-<code>fubu run</code> has some ability to automatically determine the <code>IApplicationSource</code> class following these rules:
-
-1. If there is only a single concrete <code>IApplicationSource</code> class in all of the assemblies in the application, use that one
-1. If there are multiple candidates, look for a single candidate in an assembly whose name matches the containing folder. I.e., if you're running an application in a folder named "c:\code\application\src\MyApp", look for the "MyApp.dll" assembly.
-1. If there are still multiple candidates, the command line will list out all of the possible candidate classes and return without starting the application.
-
-You can specify the type name of the specific <code>IApplicationSource</code> class you want to use with the <code>--application</code> flag like this:
-
-<pre>
-fubu run --application TestingApplication
-</pre>
-
-Also check out the <ExternalTopicLink name="fuburake/fubu" title="FubuRake helpers" /> for running applications with rake and <code>fubu run</code>.
-
-</Section>
-
-<Section title="Recycling the Application and 'Watched' Mode" id="recycling">
-<code>fubu run</code> hosts the running application in a separate [AppDomain](http://msdn.microsoft.com/en-us/library/system.appdomain(v=vs.110).aspx) using [shadow copying](http://msdn.microsoft.com/en-us/library/ms404279(v=vs.110).aspx).
-The big advantage to this approach is that you're able to recompile your application even while the fubu hosting is running the application.
-Out of the box, the <code>fubu run</code> hosting will tear down the existing <code>AppDomain</code> and create a new one whenever it detects changes
-to any binary file or the <code>web.config</code> file.
-
-Beyond that, if you use the _watched_ mode with the <code>--watched</code> flag, <code>fubu run</code> will launch a browser with [WebDriver](http://www.seleniumhq.org/projects/webdriver/) so that the hosting
-can refresh the current web page whenever content changes are detected in the running application. In fullblown _watched_ mode, the fubu hosting is looking for these kinds of changes:
-
-1. _Content_ changes in views or assets that would cause a browser refresh
-1. _Application_ changes in *.config files that would necessitate restarting the application, but not the running <code>AppDomain</code>
-1. _AppDomain_ changes in binary files that would cause a completely new <code>AppDomain</code>
-
-The file matching logic for watching files (as of Dec. 2013) is:
-
-<pre>
-*.spark=Content
-*.dll=AppDomain
-*.exe=AppDomain
-*.script.config=Application
-*.asset.config=Application
-*.assets.config=Application
-*.cshtml=Content
-*.css=Content
-*.js=Content
-*.coffee=Content
-web.config=AppDomain
-*.config=Application
-</pre>
-
-<Info>A future version of the fubu gem may make these rules configurable.</Info>
-
-</Section>
-
-</markdown>
-
-<Command app="fubu" command="run">
-
-</Command>
View
49 src/fubu.Docs/2.templating/1.idiomatic-codebase-organization-and-tooling.spark
@@ -1,49 +0,0 @@
-<!--Title: Idiomatic Codebase Organization and Tooling-->
-<!--Url: idiomatic-codebase-organization-and-tooling-->
-
-
-
-<markdown>
-
-All of the templating generation is built around making fubu-related tools easier to use, especially for newer users.
-The way that we're attempting to do this is by establishing [sensible defaults](http://msdn.microsoft.com/en-us/magazine/dd419655.aspx) for codebase
-layout and organization. We have also created a new gem named <ProjectLink name="FubuRake" /> that utilizes
-these defaults to make build scripts as declarative as possible.
-
-<Section title="Technology Defaults" id="technologies">
-
-We also assume some default technology choices with the templating:
-
-* <a href="http://rake.rubyforge.org">Rake</a> and Ruby for build automation
-* Git for source control -- but only so far as we assume Git usage when we write out source control ignore policies
-* <ProjectLink name="Ripple" /> for Nuget package management at build time
-
-</Section>
-
-<Section title="Codebase Layout" id="layout">
-
-Let's say you open a command prompt and type <code>fubu new MyNewApp</code>.