Herding Code 74: Javier Lozano on MVC Turbine and Composed Applications

This week on Herding Code, K Scott leads a conversation with ASP.NET Insider and MVP, Javier Lozano, about his open source project, MVC Turbine, and extensibility and composition with ASP.NET MVC.

  • Javier provides a twitter-like overview of his open source project: “MVC Turbine helps you build modular applications on top of ASP.NET MVC and that’s pretty much it.”
  • K Scott asks about the advantages of using MVC Turbine to add features to your applications. Javier talks about MVC’s extension points, controller factories, view engines, and “the blade.”
  • The guys talk about MVC Turbine’s support for multiple IoC containers and whether or not MVC Turbine is merely “IoC for IoC.”  Javier speaks of his design approach and the need to register components on the fly.
  • K Scott notes that though ASP.NET MVC has many extensibility points it may not have been built with IoC in mind. Javier talks about the pros and cons of this and how it factored into his design.
  • Scott K asks if there are any features Javier would like to implement into his project which he hasn’t been able to address because of limitations with the MVC framework.  
  • K Scott asks about Action Filters and Inferred Actions. Javier explains.  Jon comments on Inferred Actions’ awesomeness and how they really reduce your controller code.
  • Scott K asks about Inferred Actions and strongly typed views. Javier talks about how the current implementation effectively serves up static pages without a model but the ideal implementation (which is doable) would provide an inferred models and more. 
  • Scott K talks about defaulting return types.  For example, if request doesn’t include the mime type then default to Json.
  • The guys talk about general extensibility in ASP.NET MVC and how various open source applications are addressing concerns.
  • K Scott gets back on topic and asks Javier to dig deeper into filters.
  • Jon and Javier talk about MEF and how it might play a roll in MVC Turbine. Bingo!
  • K Scott notes that MVC Turbine is hosted on Codeplex and asks how it’s going?  Javier notes the source code is now hosted at GitHub, and Jon asks if recent Codeplex support for Mercurial might lure Javier back to Codeplex. The guys talk/joke about version control systems.
  • The guys talk Visual Studio 2010 versions and games of yesterday.
  • Javier turns the tables and asks the guys about their thoughts on compositions in general.  Scott K has thoughts – it’s painful. Jon states that MVC Turbine is doing it and you can use Attributes so what’s missing in the .NET framework that makes composition so painful.
  • Javier talks of folks interest in contributing to his framework, producing documentation and video, and what’s next for MVC Turbine. 
  • Jon asks if MVC 2 provides features (validation or templating, for example) which may be leveraged in MVC Turbine.
  • Lightening round! Have you used Google Buzz?  What’s the funniest comment thread you have ever read?

Show Links:

 

Show notes compiled by Ben Griswold. Thanks!

Download / Listen:

Herding Code 74: Javier Lozano on MVC Turbine and Composed Applications

[audio:http://herdingcode.com/wp-content/uploads/HerdingCode-0074-Javier-Lozano-on-MVC-Turbine-and-Composed-Applications.mp3]

Herding Code 73: Daniel Plaisted on Model-Based Testing in Action on the MEF Team

This week on Herding Code, Jon leads a discussion with Daniel Plaisted about Model-Based Testing and the progressive practices of the MEF team.

  • Daniel speaks of the primary development roles at Microsoft and how the MEF team addresses testing concerns. Guess what.  Developers write tests, too.
  • Daniel talks about Model-Based Testing and validation of transitions and states.
  • Scott K is reminded of a presentation he attended at Northwest Python Day which spoke of protocol and framework testing.
  • Daniel shares the need of trim test cases to manageable sets which will still ensure adequate coverage.
  • Jon asks about mapping out the endless states that may be found when testing MEF. 
  • Jon asks about test frequency. Are tests run on each check-in?  Are they scheduled?
  • The guys address the difference test types – unit, functional, performance and stress tests.
  • Kevin asks about coordination of developer and tester efforts.  Who produces which tests and where is each group’s focus?
  • Daniel explains Exploratory Testing
  • Scott K asks about Heisenbugs and how closely testers work with developers to resolve hard-to-reproduce defects.
  • Jon asks if the MEF testers use any debug/test tools which are built into Visual Studio.
  • Kevin asks if any special considerations must be made when QAing an open source project. 
  • Daniel explains how model-based testing works well for verifying cache states.
  • Scott K asks about test environment setups and how deep the MEF testers need to dive into the bugs in order to adequately report on them.
  • Jon asks Daniel to share tips to help developers improve their own unit tests and improve broader testing.
  • Daniel talks about MEF’s beginnings. It’s not an IoC container.  Oh wait. It is.
  • What type of tester are you?  The guys speak of a recent Google Tester Blog post on tester types.
  • Kevin ask if the progressive approach which MEF takes is gaining traction throughout Microsoft.
  • Jon asks how Daniel became a tester, a Microsoft MEF tester.
  • Kevin asks how much collaborating occurs between the various testing teams at Microsoft.
  • Daniel briefly talks about Synchronization Coverage.

Note: The audio’s a little rougher than usual this week. Sorry about that.

Show Links:

Show notes compiled by Ben Griswold. Thanks!

Download / Listen:

Herding Code 73: Daniel Plaisted on Model-Based Testing in Action on the MEF Team

[audio:http://herdingcode.com/wp-content/uploads/HerdingCode-0073-Daniel-Plaisted-on-Model-Based-Testing-in-Action-on-the-MEF-Team.mp3]

Herding Code 72: Questioning Uncle Bob, Clojure Magic, Mercurial Support at Codeplex, Thoughts About the iPad and Handerpants

This week on Herding Code, the gang discusses Uncle Bob’s self-titled blatherings about DI, IoC and Mocking, Clojure and polyglot programming, managed javascript, and recent support for Mercurial at Codeplex. The show finishes up with another K Scott Lightning Round with questions about the iPad and non-technical blog recommendations.

  • Uncle Bob recently published two articles which are a little down on DI, IoC and Mocking. Was he merely trying to get a rise out of the community or was he sending a subtle message about poor use of our tools?
  • K Scott attended Craig Andera’s Clojure Presentation at a recent DC Alt.NET meet up. This sparks a discussion about Clojure Magic – functional programming, transactional memory, concurrency and multi-threaded programming.
  • The guys talk about the polyglot programmer, Scala running on the JVM and Java interop. Scott K shares his interest in getting a Clojure, Scala and F# guy in the same room and Kevin gives his thoughts about the language explosion.
  • Scott K leads a conversation about managed javascript, node.js, and IronJS.
  • The group offers their opinions on Codeplex support for Mercurial and address questions like “Why not Git?” and “Does this make Codeplex more appealing?”
  • Lightning Round Question #1: Who’s going to buy an iPad?
  • Lightning Round Question #2: What non-technical blogs do you read?

Show Links:

Show notes compiled by Ben Griswold. Thanks!

Download / Listen:

Herding Code 72: Questioning Uncle Bob, Clojure Magic, Mercurial Support at Codeplex, Thoughts About the iPad and Handerpants

[audio:http://herdingcode.com/wp-content/uploads/HerdingCode-0072-Bob-Clojure-Mercurial-iPad-Handerpants.mp3]

Herding Code 71: James Avery and Rob Conery on NoSQL and a bunch of other stuff

This week on Herding Code, James Avery and Rob Conery join the cast in a lively discussion about NoSQL, TekPub, the new DotNetKicks and the technical debate du jour, ASP.NET Web Forms vs ASP.NET MVC.

  • Kevin asks Rob and James to share their views on NoSQL and the use of object and document databases.  James challenges the idea that all data must reside in a relational databases. Are ORMs so last year?   What’s going to be happening in 2020?
  • Rob claims he wouldn’t accept a ride to the bar in an 18-wheeler.  Whatever!
  • Jon asks what we’re saving with object databases – don’t ORMs abstract the database away?  So what’s the point?
  • James pimps TekPub
  • Rob talks it bit about domain-driven design and how we marry relational tables to object-oriented system. K Scott fails to see how the choice of a UI pattern is influenced by the type of database one is using. Rob explains.
  • Jon asks about maintainability and supportability issues and what’s your boss going to think if you suggest moving away from your current relation database solution. James gives examples on why non-relational solutions are easy to maintain and support.  Rob talks about quick ramp up time, scalability and performance like he’s given the speech 1000 times before.
  • The guys pleasantly discuss MSDN.and VB.and ASP.NET Web Forms.
  • K Scott shares his opinion on the future of MVC, Web Forms, Silverlight and Sharepoint as they will exist both inside and outside of the firewall.  Scott K, James and Rob also offer their opinions (shocking) and Jon’s chance to interject is taken away when the luminous “Page Lifecycle” crashes down upon him. 
  • James and Rob dig a little deeper into object and document databases and normalized database nightmares are exchanged.
  • Kevin asks how versioning works in an object database, the guys speak of Json and Bison, and serialization and deserialization.  James speculates that object databases will ultimately be more popular than document databases.
  • Rob addresses the idea that he’s condescending and rude.  The group talks about opinions and share their views on recent technical debates – ASP.NET MVC vs Web Forms, VB vs C#, ORMs vs Stored Procedures, and Jets vs Sharks. Can’t we all just get along?
  • Rob and James pimps TekPub again.
  • K Scott kicks off a flash lightning round – one question about VB6.
  • Rob answers Twitter question from @elijahmanor about TekPub’s technology stack and elaborates about video options.
  • James pimps DotNetKicks.

Show Links:

    Download / Listen:

    Herding Code 71: James Avery and Rob Conery on NoSQL and a bunch of other stuff

    [audio:http://herdingcode.com/wp-content/uploads/HerdingCode-0071-James-Avery-and-Rob-Conery-on-NoSQL-and-a-bunch-of-other-stuff.mp3]

    Length: 1:18:38

    Show notes compiled by Ben Griswold. Thanks!