Herding Code 60: Spark View Engine with Louis DeJardin

In this episode of the Herding Code Podcast, the guys talk to Louis DeJardin about the Spark View Engine.

  • Louis talks about how the Spark View Engine was inspired by NVelocity and hatched from a comment thread on Phil Haack’s blog.
  • Kevin asks about the HTML-like syntax syntax in a Spark view – how it was designed, how it looks, and some of the benefits of a view engine that looks like HTML.
  • Scott K asks about some of the similarities to Cold Fusion markup. After making Louis squirm a bit, Scott points out the big difference in his eyes is that Spark works as part of an MVC pattern, while Cold Fusion embedded too much logic in the markup.
  • Jon sets Kevin up to look really good by asking about a feature Kevin requested – safe by default HTML encoding.
  • Kevin asks about how Spark’s strongly typed ViewData and strongly typed models work.
  • Jon quizzes Louis about how Master Layouts differ from ASP.NET Webforms MasterPages, Kevin tries to stump him with questions about partial page caching.
  • Scott K and Louis talk about how Spark was developed, and how TDD made writing a view engine easy.
  • Kevin and Louis discuss how Spark is being used to generate more than HTML.
  • Jon asks about how he got all the smarts to write a parser / templating engine.
  • Scott K speculates about the potential for a custom view engine enabling vendors to offer controls for MVC. Louis tells him that he’s crazy, and the two discuss options for visual designers in the MVC world.
  • Jon asks some questions about how an HTML-based syntax like Spark could allow for a better designer surface, but Louis convinces him that an HTML-based syntax is probably the best design interface, both for developers and designers.
  • Kevin asks Louis about the Visual Studio integration for Spark.
  • Louis takes a listener question from Jeremy Miller about caching compiled views.
  • K Scott asks about using Spark’s JavascriptViewResult to do JSON powered updates with the same template for both initial and update rendering. Louis points out that it’s possible to write code that’s both c# and Javascript compatible, so it can be used both client-side and server-side. We all agree that’s crazy, but the right kind of crazy.
  • K Scott asks about his selection of different tracking, source hosting, etc. services for the Spark project.
  • Vladislav II asks about Dynamic Language support.
  • Lt. Col. George Armstrong Custer asks about runtime vs. development time compilation, and how Spark runs under medium trust.
  • Louis explains how Macros allow you to simulate creating reusable helpers inside your templates.
  • Faustus of Byzantium asked about partials are integrated into views.
  • Edward I asks about how performance compares to the Web Forms view engine, and if there are any important tips/tricks to get the best performance out of Spark.
  • Ned Ryerson remembers talking to Louis at PDC, when Louis was pitching Spark to Jeff Atwood The Terrible. Jeff went with the Web Forms view engine which led to his eventual demise in 2012.
  • Duke Konrad I of Masovia asks Louis about the use of multiple view engines in a website to ease transition.
  • Kevin closes with some questions about Spark, such as how it plays with ASP.NET MVC 2 and where the name Spark came from.
  • Postscript – Jon catches up with Louis to ask about his new position at Microsoft.

Show Links:

Download / Listen:

Herding Code 60: Spark View Engine with Louis DeJardin