Sponsored By Aspose - File Format APIs for .NET

Aspose are the market leader of .NET APIs for file business formats – natively work with DOCX, XLSX, PPT, PDF, MSG, MPP, images formats and many more!

A Train of Thought — MVP Summit 2008 Edition

Just jotting down my notes from the MVP Summit (so I can get on with ALT.NET commentary).  I haven’t seen anything revolutionary, but the conversations are always the best thing anyway. 

I’ll sum up the entire summit in one word:  positive.  I thought that the interaction I saw with Microsoft was simply positive across the board.  Not perfect mind you, but I’m content.

Here’s what I saw (no names and some specifics omitted for NDA compliance):

  • I’m still not thrilled with the Entity Framework and the direction they locked themselves into, but the EF team came prepared to talk about some compromises that might start pushing EF into the usable category for me.  I honestly wouldn’t care about the EF, but I’ll probably be back in consulting at some point in the next 5 years at a shop that will only use Microsoft tooling.
  • Daniel Simmons gets the “Thickest Skin of the Year” award.  Not the Hyperion/Endymion Dan Simmons though.
  • I enjoyed the IronRuby and IronPython talks
  • The Parallels extensions to .Net are intriguing, but I wish they’d shown more code and fewer slides
  • A version of the Open Spaces format was used for some of the MVP Summit.  It wasn’t the real deal, but I’d say that it was an improvement.  I really appreciate the more interactive formats as opposed to passive watching the slides go by talks.
  • Getting asked for some real feedback.  Ayende & I got to see behind the curtains on some internal work in the .Net framework that I was pretty happy about.
  • I did hear about one thing in the works that has the potential for some community backlash, but they seemed to be interested in reaching out to defuse that backlash.
  • The language teams are very serious about ramping up the coding centric features in the Visual Studio IDE.  I know a lot of .Net developers think that Visual Studio is the greatest thing since sliced bread, but it’s coding features badly lag Eclipse or IntelliJ from the Java world.  It’s nice to see Microsoft starting to work on that gap.  I don’t know if they’ll do anything that isn’t already in ReSharper, but I’m looking forward to seeing where they’ll go.
  • Listening to no less than Brad Abrams say that they’re taking testability into consideration on all .Net framework design now.  Cool.



What I want for Christmas from Redmond

  • IronRuby!  Even without Rails, I’d love to use RSpec for testing .Net code and writing specs.  DSL construction on the CLR, here we come!
  • I don’t know if it’ll ever catch on, but F# looks seriously cool
  • Transparent lazy loading in the Entity Framework.  If they want the Entity Framework to be usable in constructing rich Domain Models, they’re going to have to do this. 
  • A hook in the Basic Class Library to make the choice of IoC container pluggable.  I think it makes a lot of sense for the .Net framework to have some sort of IoC container capability built into the framework, and you know they’re going to do it at some point.  Acropolis needs it.  Prism needs it.  MVC needs it.  Heck, even plain jane WPF could use it.  Just please make it pluggable when you do that at some point in time.

About Jeremy Miller

Jeremy is the Chief Software Architect at Dovetail Software, the coolest ISV in Austin. Jeremy began his IT career writing "Shadow IT" applications to automate his engineering documentation, then wandered into software development because it looked like more fun. Jeremy is the author of the open source StructureMap tool for Dependency Injection with .Net, StoryTeller for supercharged acceptance testing in .Net, and one of the principal developers behind FubuMVC. Jeremy's thoughts on all things software can be found at The Shade Tree Developer at http://codebetter.com/jeremymiller.
This entry was posted in Uncategorized. Bookmark the permalink. Follow any comments here with the RSS feed for this post.
  • http://blogs.msdn.com/diego/archive/2008/05/12/lazy-loading-in-entity-framework.aspx Diego

    Hopefully, you will find the experimental project on transparent lazing loading for EF interesting.

  • http://weblogs.asp.net/fbouma FransBouma

    Jeremy: ah! That indeed figures.

    It’s a double edged sword though. There are a lot of teams who don’t want certain groups to do implicit data loading (e.g. GUI developers) and always should call repositories, or bl classes. transparent lazy loading is then something you definitely don’t want.

  • http://www.ryanlanciaux.com Ryan Lanciaux

    F# is seriously amazing — I really hope it does catch on a bit more. I love how it’s got a little bit of a dynamic feel to it but it’s still statically compiled. Being built in to the next version of Visual Studio can’t hurt it’s popularity.

  • http://codebetter.com/blogs/jeremy.miller Jeremy D. Miller


    You could hack up the compiler like Greg Young does to get the object initializer 😉

  • http://codebetter.com/blogs/jeremy.miller Jeremy D. Miller


    The EF solution is:

    Invoice myInvoice = get from EF here;
    foreach (InvoiceDetail detail in myInvoice.Details)
    // do stuff

    I’m objecting to the explicit call to myInvoice.Details.Load().

    In EF, the consumer of Invoice, and Invoice itself, would have to be aware that the Details child collection is lazy loaded and know to call Load() before iterating over the collection.

  • http://weblogs.asp.net/fbouma FransBouma

    @Nate: so a class loader facility ala Java? That is indeed something that’s needed.

    @Jeremy: Isn’t lazy loading always ‘transparent’ ? (i.e.: it’s loaded on the fly for you, without you doing anything else than accessing a property/navigating an association?)

  • http://codebetter.com/blogs/jeremy.miller Jeremy D. Miller


    As long as we can plug in NInject or StructureMap, I’ll call that a success. They’re apparently planning some dynamic invocation support in .Net 4.0 for C#. I heard the magic words “Missing Method” kicked around.

    The object activation hook would be nice, but IronRuby solves that problem for me.

  • http://kohari.org/ Nate Kohari

    +1 for the integration of IoC fundamentals into the BCL. They gave Service Locator love, but no dependency injection. Just a hook into object activation so we could manipulate objects created with new would be great. Oh, and runtime-supported dynamic proxy support that doesn’t use the remoting infrastructure!