Nancy takes another step forward
The say time flies when you are having fun and nothing could be more true when working on Nancy. Two months have already passed since we started work on 0.8.0, a release that was suppose to roughly take around 4-5 weeks to complete and consist mostly of diagnostics related changes. Boy were we wrong.
A community release
What did happen was that the awesome community around Nancy kept providing use with feedback, requests and, most of all, code! The 0.8.0 release was not created by me and Steven, but by the community at large.
A quick look at the comparison of 0.7.1 and 0.8.0 shows that a total of 19 authors and 186 different commits contributed code to this release and made the 44 work items happen. If you add all the people that provided feedback on the user group and on twitter then the number is, a lot, greater.
So thank you to everyone that helped make this release possible!
How much awesome can you stuff in a release?
Apparently quite a lot! The list of changes are too great to list in this one single blog post, but fortunately we make good use of the GitHub milestone systems and you can view the full change log at our repository.
However, here are some of the highlights of this release
- Static content conventions – Yes! We finally have a good user story for static content so you no longer need to jump though hoops to serve static contents. These conventions are, of course, configurable and comes with a default one that looks for stuff in /content.
- Cross-site request forgery protection – Make sure you can trust the data that is sent to your application.
- Testing improvements – Added a new configurable bootstrapper in the Nancy.Testing project that helps you control the fine grain of your test environment with the help of a nice API. We also added a bunch of new extension methods and updates.
- Forms authentication improvements – You can now login/logout without having to performe a redirect, this is really useful in ajax scenarios.
- Error handling hook and error pages – A pipeline where you can handle errors in your application and also support for rendering custom error pages.
- Access to captured parameters on the context – Enables you to gain access to captured values from inside filters.
- ProtoBuf support – A new Nuget that enables you to support ProtoBuf (de)serialization in your routes and model binding.
- And sooooo much more – Go check it out!
All of this and we?re still on the super-duper-happy-path!
Sporting new swag!
With this release we also introduced the new Nancy logo and website! The awesome Nicolas Garfinkiel stepped up to the plate and awed us with his logo suggestion. He has been great to work with and managed to cope with the swarm of tweaks me and Steven threw at him! Not only that but he?s been working blazing fast and it only took us a week-ish to iron out the rough spots in the draft and get a polished version done!
We are really pleased with it and soon you will be able to get your hands on all the logo goodness, you?ve been wanting to (right?!), at our new Nancy.Portfolio repository. The repository will contain the logo in various formats and resolutions and well as a usage guideline. We just need a bit more time to put the finishing touches on it.
In case you?ve not seen it yet, this is one of the compositions of the logo
Beautiful, isn?t it?!
I plan on dedicating an entire blog post about the logo in the next day or so, so keep an eye out for more information!
Don?t worry, we?re not running out of things to do, in fact we?ve already staked out part of 0.9.0 (there?s even some planning on 0.10.0 up on GitHub). We?re going to try really hard on making the release cycle shorter this time because we really want to get the new, awesome, stuff into your hands as quickly as possible!
By the community, for the community
I would like to thank everybody that supports Nancy, no matter how you do it. People are building commercial produces, going to conferences and talk about Nancy, blog about it, contribute ideas, code and feedback. Nancy is truly a product by the community, for the community and for that we thank you all!