Skip to content
This repository has been archived by the owner on Jan 24, 2021. It is now read-only.

Initial RC ToDo

thecodejunkie edited this page Oct 6, 2011 · 29 revisions

Please do not edit this list directly. Features should be discussed at the Nancy User Group before they are selected for the release candidate target. This does not mean that contributions for features that are not on the list will be rejected - they are, as always, welcome at all times!

View Engines

  • Caching support for caching intermediary representations, rather than rebuilding the view from the template each time. (TheCodeJunkie, RobertTheGrey, Grumpydev)
  • Partial view support - potentially need to inject an "IViewHelper" object that allows access to render a partial view and utility functions like html encode. (TheCodeJunkie, RobertTheGrey, Grumpydev)
  • Check to see which view engines play nicely in client profile. (TheCodeJunkie, Grumpydev)
  • Support conventions for looking up views, layouts and so on (TheCodeJunkie)

Bootstrappers

  • Add a default ASP.Net bootstrapper using the HttpContext for per-request lifetime. (Grumpydev)
  • Check to see which containers play nicely in client profile. (TheCodeJunkie, Grumpydev)

Hosting

  • Make sure the context is disposed correctly in WCF and standalone hosts.
  • Stop the ASP.Net hosting spinning up multiple bootstrappers in some scenarios (otherwise known "doing a @lucisferre" ;-))
  • Introduce RequestStream in the Nancy hosts and engine (TheCodeJunkie)

OOTB Pipeline Helpers

  • Conventions based authentication/claims based module hooks (similar to the security demo) (Grumpydev)
  • Forms based authentication (Grumpydev)
  • Static file app level pre request hook (should support embedded resources!) (TheCodeJunkie)
  • Automatic conditional GET support app level post request hook (ETag and Modified) (Grumpydev)
  • Custom error pages post request hook (Grumpydev)
  • CSRF token insertion / validation (Grumpydev)

Diagnostics

  • List discovered modules (TheCodeJunkie)
  • List routes in a module (TheCodeJunkie)
  • Query a route and see which routes that are matched using the configured IRoutePatternMatcher (TheCodeJunkie)
  • View default registrations (TheCodeJunkie)
  • .. add lots more stuff (TheCodeJunkie)

Mono

  • Work on official support for Nancy on Mono 2.10 (TheCodeJunkie, Grumpydev)
  • Make sure xunit, fakeiteasy and mspec runs on Mono 2.10 (TheCodeJunkie, Grumpydev)
  • Setup CI environment for mono builds

Documentation

  • Make sure all public types and members are documented
  • Write documentation for all existing features
  • Write documentation on how to extend Nancy
  • Bring wiki up to date (TheCodeJunkie, Grumpydev)

Testing

  • Move ShouldExtensions from Nancy.Tests to Nancy.Testing
  • Look into simplifying unit testing of Nancy modules (TheCodeJunkie)
  • Possibly create a test harness for Nancy applications that you can use in your tests (TheCodeJunkie)

Repositories

  • Create origanisation
  • Split out bootstrappers for third party containers

Misc

  • Cleanup the cookies so request and response have the same structure.
  • Migrate session to DynamicDictionary (while maintaining current "is dirty" features).
  • Make NuGet packages for the core, hosting options etc.
  • Make sure performance and memory profiles are ok
  • Add support for multipart/form-data (TheCodeJunkie)
  • Add support for header continuations in multipart/form-data encoded data (TheCodeJunkie)
  • Add support for encoded filenames in multipart/form-data encoded data (TheCodeJunkie)
  • Support large file uploads by storing stream on disk and swap out Request.Body (TheCodeJunkie)
  • Set content-length on responses (?)
  • Add Nancy version response header (Nancy-Version?)
  • Create "Empty Nancy Web Application" project template (no binaries included, default view engine template conventions and so on)
  • Automate NuGet generation and publishing (TheCodeJunkie)
  • Add request.body helpers, for formats such as json and xml (Request.Body.Json())
  • Add model-binding (Grumpydev)
Clone this wiki locally