João P. BragançaAll too often, security is treated as an afterthought in our models. I’m as guilty of this as anyone. :) Now that HTTP is becoming the most popular protocol inside the enterprise, sending bad data across the wire becomes much easier. A hidden input field is not all that hidden.
Let’s take everyone’s second favorite fake business problem: Enrolling Students in Classes. Let’s take it further and say we want to develop this as a SaaS product.
João P. BragançaWe’ve all built applications that look like this:
There’s a bit of a problem here. What does Exception Reporting have to do with Validation? Or the Home Page? Mostly nothing, other than these classes perform the same kind of function.
Wouldn’t it be easier to organize everything by feature instead? Views, View Models, scripts, stylesheets, everything?
This is a cinch in Nancy. First thing you need to do is specify your own view location conventions:
João P. BragançaThis is my second attempt. :)
About a year ago I made an attempt to wire Nancy together with RavenDB and failed miserably. Needed a break from businessy coding last night so I decided to work on something fun instead.
The ability to see what’s going on in your application is so important when it comes to performance tuning. Yes, there’s that old adage about premature optimization. IMO this phrase is taken out of context.
João P. BragançaIn Part 1 of this series we looked at putting NancyFX as a simple http wrapper in front of YouTrack. Now we’re going to make it more RESTful - i.e. we will display the error page to the user agent and include the exception report form on that page.
We will do this by leveraging Nancy’s status code handling features. This will allow us to intercept any status code we want and modify the response.
João P. BragançaGetting the business users to try and recreate a bug is difficult to say the least. They may not remember what it is they did to reproduce. But you can bet that if you don’t fix it by yesterday you’re gonna get an earful. In fact we just did. This is me doing something about it :)
Turns out this is annoyingly easy with Nancy and the YouTrackSharp library, so easy that I’m not going to bother test driving this.
João P. BragançaI just installed the Nancy Templates for Visual Studio for Visual Studio. Before this, creating a project for Nancy has always been a bit of a pain - adding a mvc project and then removing a whole bunch of crap you don’t need. Way too much fiddlery required.
What really got me was the minimalistic set of dependencies:
Compare that to an emptyMVC4 project:Seventeen is very inauspicious.A Nancy.Hosting.SelfHost project would have even less dependencies.