Notes on MVCConf 2

MvcConf is one of the new breed of “virtual” conferences where lazy geeks, of which I am one of their proud number, get to take in a number of presentations from the comfort of their office chair.  The conference is primarily aimed at dotNet web developers working with the ASP.Net MVC framework, however, some topics would be of interest to web developers working on other platforms.

The second MvcConf was broadcast on Feb 8th, and I tuned in to see the great and good present on a number of interesting topics.  Here follows my initial notes.  Hopefully I’ll do a follow up post on some of the other presentations.

You can watch the videos of the presentations here

Scott Guthrie – Keynote

The MVC team will continue to work to annual release cycle, so expect MVC4 circa March 2012

  • The aim for the platform is to be evolutionary, and to not break any work from earlier versions of the framework.
  • The MVC team are concentrating on HTML5, Javascript, Mobile, Async and Cloud technologies, among others.
  • There will be more focus on clientside Javascript work
    • More JQuery integration
    • JQuery Datagrid, sponsored by Microsoft
  • There will be more training resources at http://asp.net/mvc
  • Entity Framework – Code First will become Microsoft’s default approach to ORM
  • More work on Resource Mangement, built in minification, jquery grid, jquery template
  • Visual Studio SP1 will have HTML5 intellisense improvements and JS tooling improvements

Phil Haack – The NuGet-y Goodness of Delivering Packages

  • Excellent intro into NuGet package management, very similar to the Ruby Gems concept
  • I thought the interesting point was not just about pulling packages into your own solution, but that it is reasonably trivial to turn your own solution into a NuGet package.
  • It would also be possible to deliver you solution to customer as  a NuGet package that they could install, and possibly integrate into their existing solution.
  • If it was an Open Source solution you could add it NuGet.org so every other Nuget user would have access to it.
  • One downside is that the current version doesn’t allow you to specify where in the solution the packages will be installed to – not an issue for new projects, but annoying for existing projects.  This will be addressed in a future release.

Eric Sowell – Evolving Practices in Using jQuery and Ajax in ASP.NET MVC Applications

  • Very good and entertaining speaker
  • Eric gave a good introduction to using Jquery and Ajax in a modular and reusable fashion
  • Was interesting to see him refactor and debug Javascript on the fly
  • His advice was to create a separate API area for Ajax/Json work, which funnily enough we came to that conclusion about 2 weeks ago, for the same reasons he outlines.
  • He also covers the “Returning Partial Views as Json” conundrum that we’ve been  struggling with.  Instinctively I prefer his solution of returning raw Json objects, but as Eric himself says there can be good reasons for returning partial views to JS.
  • Finally he demonstrates how to make JS functions more re-usable across your app, which seemed very useful to me (as an admittedl JS dabbler)

Vaidy Gopalakrishnan – IIS Express

  • Introduction to IISExpress which is going to ship with Visual Studio 2010 SP1.
  • Basically once we have IISExpress I’d say every developer in the land is going to switch to using it over the inbuilt Cassini.  It allows for a more accurate test, and is infinitely more flexible and powerful than Cassini
  • Vaidy showed how to configure IISExpress to enable external traffic and SSL certificates to be tested on your local machine (firewall allowing)

Steven Smith – Improving ASP.NET MVC Application Performance

  • Nice presentation on generalities of performance testing and then how deep dive into specifics of using Visual Studio Load Testing and tips and techniques for improving your apps performance.
  • Number one impressive thing was the sheer power of the Visual Studio Load Testing tooling, very comprehensive.
  • You should define your performance metrics in terms of
    • Required page execution time
    • Requests per second
    • Time to last byte (TTLB)
  • With these defined you know when performance is good enough and you’re not needlessly tweaking when you could be adding features
  • Isis tool on Codeplex as mentioned, as a tool that can help diagnose some perf problems http://isis.codeplex.com/
  • Output Caching offers the biggest bang for buck on terms of performance, up to 300% or more, but it can be difficult to integrate with pages that are doing writes or have user specific content on them, such as shopping carts etc
  • He then outlined how you can do Data Caching for these situations, it’s more complex but can offer good perf increases.  His blog at http://stevesmithblog.com/ shows some examples.
  • Finished with a bunch of tips specific to MVC3 about increasing performance.

John Sheehan – Intro to Building Twilio Apps with ASP.NET MVC

  • Really just dipped into this, but was an extremely cool demo showing Twilio and ASP.NET MVC3 application to build a text to speech app, send SMS’s or do order tracking over the phone.
  • Having watched this I would definitely use Twilio to do any work with SMS or telecoms

Troels Thomsen – Deploy ASP.NET MVC with No Effort

  • Again just dipped into this, Troels demonstrated hosting applications on AppHarbor
  • AppHarbor works with Git, so you can push your app onto AppHarbor and it can build and run your tests and if everything passes can deploy your site.
  • Demo was a bit wobbly so it’s definitely not production ready, but is a cool idea and might be worth investigating for dev and test platforms.