Failure is inevitable

I’ve been quietly shipping preview releases of new things for SpecsFor for the last couple of months. It’s time to finally get these things promoted to “final” status and talk about them. From better assertions to a whole new helper library, there’s a lot to talk about, so buckle up! More...

I’m currently in the midst of the longest vacation I’ve taken in over 3 years. Aside from cranking out content for my next Pluralsight course, working on improving the startup experience for SpecsFor and SpecsFor.Mvc, AND working on an entirely new member of the SpecsFor family, I also decided I wanted to ship a product! Say hello to Perfect PDF for ASP.NET MVC! More...

Another day, another Entity Framework (and ASP.NET MVC 5) async problem, and another solution for you! Actually, today I have two solutions for you! This time, I ran into a problem with HttpContext's Items collection losing my IoC container when execution resumed after an await. The fix is simple once you understand what's going on. More...

AutoMapper is one of the essential tools in my ASP.NET MVC toolbelt. I use it on every MVC project I do. It's saved me countless lines of code over the years. And yet, there's always been one thing that bugged me about it: it violates the idea of "common closure." I've built a better way to handle this, but as my friends have accused reminded me, I might have forgotten to share this approach publicly. Until now. More...

Yesterday I officially became a Pluralsight author as my first course went live. It was a lot of work to get here, and I’m very thankful to my friends and family for their support along the way (and to the fine folks at Pluralsight that gave me this opportunity!) I’ll be blogging more about the overall experience of becoming an author in the future. In the meantime, I invite you to check out my course, “Build Your Own Application Framework with ASP.NET MVC 5.” I’ll show you how to go beyond the basics of ASP.NET MVC; to bend it to better-meet your needs; to make it into a framework that’s optimized for your productivity. If you aren’t a Pluralsight subscriber, you can sign up for a free trial. If you do take the course, please do feel free to shoot me an E-mail. I’d love to know what you think of it!

The new ‘preview 2’ release of SpecsFor.Mvc is now available on NuGet. This update is built against the latest Selenium WebDriver package and ASP.NET MVC 4. It no longer depends on MvcContrib.TestHelper, either, as all the relevant functionality has now been absorbed into SpecsFor.Mvc. In addition, this preview release fixes several bugs and adds support for cleaning up the published site when using the embedded IIS Express host. Going forward, the SpecsFor.Mvc package will require a specific version of Selenium WebDriver. I generally don’t like it when packages do that, but the change from 2.25 to 2.33 broke SpecsFor.Mvc completely, and I don’t want to risk that happening again in the future. The goal of this project is painless end-to-end testing, and not working because a required package introduced breaking changes with a minor version bump doesn’t align with that goal. Whoops, I’m starting to rant… MOVING ALONG: Keep in mind that the removal of MvcContrib.TestHelper is a breaking change, hence the version bump here to 3.0. You can fix your existing tests by replacing ‘using MvcContrib.TestHelper’ with ‘using SpecsFor.Mvc.Helpers’ (if your file doesn’t already include that namespace). Please open up an issue on Github if you run into any problems.

I consider myself an ASP.NET MVC expert. I’m very comfortable with the platform, I’ve been through a large portion of the source, and I’ve built countless apps on it. While I did find “Instant Razor View Engine How-to” to be an adequate reference for the basics of the Razor view engine, I would have a hard time recommending it. More...

I’m building an ASP.NET MVC app that receives E-mail via Cloudmailin.com’s service. In this post, I’ll show you how to create a handler for Cloudmailin using MVC, and I’ll show you how to test that handler locally. More...

I’m very pleased to announce that I’ll be presenting at CodeStock again this year. I think this makes 4 years straight (though that seems impossible, I can’t be that old!) Here’s what I’ll be talking about in Knoxville this year: More...

I am a huge fan of ASP.NET MVC. It is leaps and bounds ahead of WebForms, and if you’re doing web development on the Microsoft platform, it’s arguably the best overall solution available. But it is far from perfect. One of the things that has bugged me about it since the very beginning is the default organization conventions, meaning separate folders for controllers, view models, and views. These conventions can be replaced though. Read on to see how. More...