Herding Code 47: Joe Brinkman on Webforms vs ASP.NET MVC

This week on Herding Code, the guys speak with Joe Brinkman, Co-founder and Technical Fellow at DotNetNuke Corporation, about the ASP.NET MVC vs. Webforms debate, open source development, recent advancements in DotNetNuke and how to improve our industry and the community as a whole.

  • Joe explains that the Webforms vs. MVC debate boils down to a component based vs. object-oriented based approach to web development. Joe also shares that one shouldn’t only think about Webforms when doing the comparison. After all, let’s not forget web services, HTTPHandlers and HTTPModules are also part of the ASP.NET stack.
  • Joe speaks about the lack of a reusability model in ASP.NET MVC and Scott K offers solutions that go beyond mere copy and paste operations. Joe and Kevin explore how the absence of the component model in ASP.NET MVC is rescued by rich functionality packaged within the Javascript frameworks.
  • K Scott and Joe talk about core issues with Webform development. That is, ClientId management, .ASPX in URLs and maintainability concerns around Webform’s event model in the code behind and forcing statefulness in a stateless web environment. K Scott notes that .NET 4.0 will offer URL routing and greater control over ClientId generation so key areas of concern may soon be addressed, but it will take further framework improvement to provide greater control over the Webform abstraction layer.
  • Everyone agrees that Microsoft, vendors and community will provide components to pave the way to richer, easier to implement, ASP.NET MVC applications. Additionally, advancements will continue in the Webforms space.  Most notably, the guys assume there is bound to be a push towards a better Webforms testability story.
  • Kevin gives historical context to Webforms and why the abstraction model was revolutionary and arguably necessary. Knowing full well that hate mail is to come, Jon talks about using the “right” tool for the job and how he plans to continue to use Webforms where appropriate.
  • Jon and Joe summarize four big reasons why EVERY developer should learn MVC and Scott K asks what can be done with senior web developers who just don’t want to learn the new framework?  This leads into a conversation about honing one’s craft, mentorship, leading by example, and following through with supervision and code reviews.  
  • Now that ASP.NET MVC is in the picture, the group wrestles with what to call ASP.NET Webforms.  Classic ASP.NET is kind of catchy (and a little confusing.)
  • Jon and Joe talk about changes in Open Source – inside and outside of the Microsoft community – over the past six years. 
  • Scott K talks about the “promise” of being able to contribute to an open source project and asks about the managing patches – specifically on large open source projects.
  • The guys also dive into open source definition, licenses, legal considerations, protections around intellectual properties and implicit copyright on code.
  • The episode wraps up with a Joe providing a nice overview of DotNetNuke’s past, present and future.

Show Links:

Download / Listen:

Herding Code 47: Joe Brinkman on Webforms vs ASP.NET MVC 

[audio://herdingcode.com/wp-content/uploads/HerdingCode-0047-Joe-Brinkman-on-Webforms-vs-ASPNET-MVC.mp3]

Show notes compiled by Ben Griswold. Thanks!

Herding Code 46: Mistakes and News Recap

Everybody makes mistakes. The trick is to learn from your own or, better yet, the mistakes of others!  This week, the guys amuse and educate by graciously sharing some of their past developer mistakes. 

  • Hear tales of recursive website spidering, rogue mass emailers, and hardware snafus which end in puffs of smoke
  • Learn from Jon that simulating nuclear fission on a Cray supercomputer can get wildly out of control
  • Find out why you should think twice before optimizing a relative’s computer on New Years’ Day
  • What’s the quickest way to realize the benefits of a Transaction Server?  Why listening to K Scott’s ATM story, of course.
  • Discover why you might want to rethink flying Kevin out to your company to perform any hardware magic (but if you need to reconstruct a FAT table, he’s your guy.)
  • And get the most sage advice ever offered by K Scott on Herding Code.

As a bonus, the Extended Lightning Round!

Show Links:

Download / Listen:

Herding Code 46: Mistakes and News Recap 

[audio://herdingcode.com/wp-content/uploads/HerdingCode-0046-Mistakes-and-News-Recap.mp3]

Show notes compiled by Ben Griswold. Thanks!

Herding Code 45: Larry O’Brien on Domain Specific Languages

There’s a lot of community chatter around Domain Specific Languages (DSLs.)  If you’re interested in hearing more, you won’t want to miss this episode as this week on Herding Code the guys interview Larry O’Brien, professional writer and software developer, on Domain Specific Languages, DSL DevCon, Lang.NET Symposium and a number of related talks. 

  • Larry and K Scott summarize their thoughts on the recent DSL DevCon
  • Scott K shares that the hardest part about DSLs is defining what they are and what they aren’t. For example are SQL, CSS or XSLT Domain Specific Languages? Lucky for us, Larry provides a reasonably simple breakdown of Internal and External DSLs and touches upon Functional, Dynamic, Compositional, and Computational DSLs.
  • K Scott questions why one might create a DSL and proposes that communication and productivity are primary drivers. Larry concurs and talks about the miscommunication and inefficiencies associated with programmers translating domain expert’s preferred notation or diagrams into code.  This sparks a conversation about Microsoft’s claims regarding OSLO’s order of magnitude productivity increases and the premises required for this claim to be achieved. 
  • Kevin asks if DSLs and the new tools are targeted to replace developers. Don’t worry, you’re safe for now especially since the idea of letting the business people write programs has been failing since COBOL.  As Larry explains, it isn’t about putting programmers out of work, it’s all about communication, readability and offering domain experts a way to validate our code.
  • Larry explains why writing a language – specifically an external DSL – is hard. 
  • Jon and Kevin recognize similarities between Domain Specific Languages and Domain Driven Development and Larry speaks to their shared concepts – primarily expressing a domain in code.
  • Larry answers listener questions from Shawn Wildermuth and Ben Griswold regarding the difference between an internal and external DSLs and the role of the fluent interfaces and the relationship between functional programming and DSLs, respectively.
  • The guys also talk a bit about growing and roasting your own coffee, Hawaii, magazines and how a Mai Tai can disrupt one’s plan to take over the world.

Show Links:

Download / Listen:

Herding Code 45: Larry O’Brien on Domain Specific Languages 

[audio://herdingcode.com/wp-content/uploads/HerdingCode-0045-Larry-OBrien-on-Domain-Specific-Languages.mp3]

Show notes compiled by Ben Griswold. Thanks!

Herding Code 44: Microbusiness

Whether you just want to write cool software for yourself or you are looking to kick off a side business, you can get started with little upfront investment. This week on Herding Code, the guys talk about the ease of becoming a one-man independent software vendor (ISV.)

  • Scott K starts off the show with a list of free online invoicing and financial tools along with a number of services which provide free disk space.
  • Jon notes that advertising and micropayments are cheap and easy to setup in minutes.
  • Kevin talks about his recent endeavor, review2Q, an ASP.NET MVC application, hosted in the Azure cloud, which helps automate the management of his Netflix’s queue. It was an itch that he just needed to scratch and, with little overhead on his part, it’s now available for you, too.
  • The guys discuss super cheap hosting and the numerous APIs and Services which provide tons of data available to re-mix.  They also discuss using Azure or Google App Engine to scale up as one grows. 
  • Jon comments on how free site templates and store/blog theme systems can make design a snap. 
  • Jon also calls out the fact that for most web developers the barrier to entry is so low.  Thus, one is somewhat susceptible to having their idea quickly copied.  This raises the question; will your investment pay off long-term? 
  • Kevin jokes that there’s an alternative approach to implementing your own, self-serving solution – just wait long enough and someone else will implement your idea.
  • Kevin and Jon discuss why the web is such an appealing platform to start a venture. It is all about the low barrier to entry, the instant gratification and immediacy of making your product available and easy accessibility.  Not to mention many sites are self-sustaining.
  • The guys brainstorm a few one-man startup website and mobile development ideas, wonder if they would ever again hear from Jon if he came upon 4 million dollars and question whether or not K Scott has fallen asleep.

Show Links:

Download / Listen:

Herding Code 44: Microbusiness

[audio://herdingcode.com/wp-content/uploads/HerdingCode-0044-Microbusiness.mp3]

Show notes compiled by Ben Griswold. Thanks!

Herding Code 43: Javier Lozano on the "M" in MVC

This week on Herding Code, Kevin leads a conversation with Javier Lozano on ASP.NET MVC and the Model View Controller (MVC), Model View Presenter (MVP), Model View ViewModel (MVVM) and Model Model View Controller (MMVC) patterns.

  • The guys discuss the various patterns as they relate to ASP.NET MVC, Silverlight and WPF and dig into the differences between ViewModels and Models.
  • Scott K brings up the question: “What’s the difference between MVC and MVP?” and then quotes Jeremy Miller in stating, “MVP denotes a stateful conversation between presenter and view whereas MVC is just linear.”
  • K Scott discusses the differences between building applications “the Rails way” and how you can build any type of application any way you want with ASP.NET MVC.
  • The group fields a question via Twitter from Steve Bohlen: "ask about the (relative) importance of persistence ignorance in the M in MVC."
  • The guys talk at length about action filters, custom model binders and object-object mapping.
  • And the show closes with Scott K reintroducing THE LIGHTNING ROUND!

Show Links:

Download / Listen:

Herding Code 43: Javier Lozano on the M in MVC

[audio://herdingcode.com/wp-content/uploads/HerdingCode-0043-Javier-Lozano-on-the-M-in-MVC.mp3]

Show notes compiled by Ben Griswold. Thanks!