Herding Code 135: Remco Mulder and Jeff Schumacher on Continuous Testing

In this episode, the guys talk with Remco Mulder (author of NCrunch) and Jeff Schumacher (author of Giles) about continuous testing in .NET.

Download / Listen:

Herding Code 135: Remco Mulder and Jeff Schumacher on Continuous Testing [audio://herdingcode.com/wp-content/uploads/HerdingCode-0135-Continuous-Testing.mp3]

Show Notes:

  • Scott K kicks things off with a horrible old school BASIC joke.
  • Remco explains how NCrunch got started because he was living under a rock.
  • Jeff explains how Giles got started by finding AutoTest and seeing it not maintained (in reality it was).
  • Remco talks about the number of test frameworks.
  • Jon asks Remco about adding MSTest support – Remco groans about how difficult MSTest was to integrate with NCrunch.
  • Jeff mentions that xUnit’s test runner is complete for backward compatibility.
  • Jeff talks about Machine Specs and avoiding versioning hell with Impromptu Interface.
  • Jon asks about each library’s approach to Continuous Testing and to explain it to a laymen.
  • Rem explains what Continuous Testing is in relation to NCrunch.
  • Scott comments on a "strange situation" of testing compiled code creates slow tests and asks about any shortcuts Rem or Jeff have taken.
  • Jon comments how NCruch & Giles gives immediate feedback as he’s coding.
  • Jeff mentions that Giles has the ability to filter tests so that you only see what you want to see.
  • Remco explains how NCrunch attempts to determine impact to order how tests are run so the most pertinent tests run first.
  • Jon gives his quick history of the testing feedback cycle: separate project phase, then repository check-in step with continuous integration, local test runers, and now tests running as we write the code. Are we done? Where can we go from here?
  • Jeff comments about how Continuous Testing is like the red squiggly for code problems.
  • Scott asks about alternative language support for NCrunch and Giles.
  • Remco mentions that Salesforce.com has a Selenium "cluster" to continuously run UI tests.
  • Remco talks about Visual Studio integration for NCrunch.
  • Jeff talks about a branch that supports Mono.
  • Jon talks about Roslyn, and Scott K reminds us that Mono was doing compiler as a service long ago – 2008?
  • Remco jokes about clippy.
  • Jeff talks about Continuous testing and Pair Programming.
  • Jeff wanted to get to the point where he didn’t think about the tooling but only the tests and the code.
  • Jeff talks about Visual Studio magazine and an article about Continuous Testing.
  • Jon comments how easy NCrunch is able to setup and get going.
  • Remco wants to make Continuous testing really really easy to get people to start using it.
  • Jeff recommends looking at all the different continuous testing options, mentioning Greg Young’s Mighty Moose.

Show Links:

Show notes by Ben Dornis. Thanks!

Herding Code 134: Brad Wilson on ASP.NET 4 Beta and ASP.NET Web API

In this episode, Jon talks to Brad Wilson about the ASP.NET MVC 4 Beta release.

Download / Listen:

Herding Code 134: Brad Wilson on ASP.NET 4 Beta and ASP.NET Web API [audio://herdingcode.com/wp-content/uploads/HerdingCode-0134-Brad-Wilson-on-ASP.NET-MVC-4-Beta.mp3]

Show Notes:

  • Brad starts with a rundown of what was in ASP.NET MVC 4 Developer Preview, including HTML5 Default Template features, Adaptive Rendering, Mobile Template, Display Modes, NuGet package based installation, and Task<T> based Async Controllers.
  • Jon asks about the ASP.NET Web API integration. Brad talks about the effort involved and why it’s useful.
  • Jon asks for clarification as to what ASP.NET Web API offers over hand writing services using ASP.NET MVC.
  • Brad talks about Content Negotiation and why it’s useful.
  • Jon asks about things that Web API has in common with MVC like filters and model binding.
  • Jon asks about the testability of Web API. Brad explains that it’s much more lightweight and has a lot less use of statics, making it a lot more testable.
  • Brad talks about the hosting models for Web API, including both web and selfhost. He explains that it’s pluggable, so you can write your own host, and explains the use of HTTP Message Handlers.
  • Jon asks about the relation of ASP.NET MVC 4 to .NET 4.5. Brad explains how parts were backported to allow for using .NET 4.5 features on .NET 4.
  • Jon asks about the query composition support, which gives support for OData query syntax. Brad explains how it’s used, and distinguishes the query syntax from the rest of OData format.
  • Brad explains how ASP.NET Web API is the future of WCF Web API, and that the ASP.NET team and WCF teams have merged.
  • Brad talks about how Web API can be used outside of ASP.NET. Jon asks how to get Web API into another project type, and Brad talks about installing Web API via NuGet.
  • Jon asks for more information about how NuGet is used in the MVC installation system. Brad talks about how NuGet and VSIX can be integrated.
  • Jon asks about why NuGet Package Restore is useful.
  • Jon notes that creating new projects is slower due to NuGet installation. Brad says this may be improved, but even if it isn’t he thinks that the tradeoff is more than worthwhile, since in the real world people aren’t creating new projects every day.
  • Jon asks for a bit more information about the Display Mode Provider.
  • Brad talks about the installation options for ASP.NET MVC 4 Beta and how it relates to the .NET 4.5 developer previews.
  • Jon asks about Go Live license, Brad says it’s there.
  • Jon asks about new features in xUnit.net. Brad talks about the last release and what’s in the roadmap for the next release.
  • Brad mentions that he’ll be speaking at NDC this summer and talks about the Wrox MVC 4 book.

Show Links:

Herding Code 133: Derick Bailey on Backbone.js

In this episode, the guys talk with Derick Bailey (consultant and founder of watchmecode.net, where he sells JavaScript themed screen casts) about Backbone.js, which is a popular JavaScript framework.

Download / Listen:

Herding Code 133: Derick Bailey on Backbone.js

[audio://herdingcode.com/wp-content/uploads/HerdingCode-0133-Derick-Bailey-on-Backbone.mp3] Show Notes:

  • Derick starts off by explaining what Backbone is not: a JavaScript MVC framework.
  • Backbone provides a way to structure and organize your code, separating responsibilities in to easily recognizable pieces.
  • Derick points out that Jeremy Ashkenas, the creator of Backbone, said that Backbone is a library. The distinction Derick references is: "a framework calls your code, you call a library’s code."
  • Kevin asks what are the main parts of Backbone. Derick mentions models and collections, views, routers, and some helpers: backbone.sync, backbone.events, and history.
  • Kevin asks for a clarification on what a single-page application is. Derick cites Gmail as the canonical example.
  • Kevin asks if Backbone is mainly used for single-page applications. Derick explains that it is very flexible and can be used as much or as little as necessary for any kind of application.
  • Jon asks if using Backbone is an all or nothing proposition or if bits and pieces can be brought in over time.
  • Kevin asks for a comparison to other similar JavaScript libraries/frameworks.
  • Jon asks if there are any template or boiler plate projects for getting started with Backbone.
  • K. Scott asks about Derick’s Memento plugin, which allows you to store and restore your model’s state.
  • Kevin asks Derick why he thinks Backbone has become so popular.
  • Jon asks about the process and requirements for creating Backbone plugins.
  • Jon asks about the debugging story when using Backbone.
  • Kevin asks about tools and approaches for testing Backbone.
  • Kevin asks if there are any sources for best practices for Backbone.
  • Twitter questions from @elijahmanor: "In what type of applications would you not recommend using Backbone?", "Do you plan to consolidate your blog posts into a Backbone book?", "Have you done any mobile development with Backbone?, "Do you use Require.js alongside Backbone?"
  • Kevin and Derick discuss server-side rendering of JavaScript with Backbone for the purpose of being easily findable by search engines.
  • Derick talks about the on-site training and training videos that he offers.

Show Links: