Keith Rome's Blog

  • What did he just say? – a cheat-sheet for the Build2014 Day-1 Keynote

    dt { margin-top: 1em; } dd { margin-top: 0.5em; margin-bottom: 1em; } p.quote { font-size: 150%; margin-left: auto; margin-right: auto; margin-top: 1em; margin-bottom: 2.5em; width: 24em; font-style: italic; } p.quote span.attribution { font-size: 50%; display: inline-block; clear: left; margin-left: 12em; font-style: normal; } There were lots of buzzwords flying around during today’s keynote presentations. Some of which may seem new to many “traditional” …

    Read More...
  • Breaking Radio Silence

    My coworkers at Wintellect have reminded me that it’s been a really long time since I’ve posted an entry to my weblog. About two and a half years actually. That’s a long time, and if you happened to be one of my readers you might have wondered what happened to me? Did Keith take another job? Am I somehow blocked from viewing his posts? Did he win the lottery, retire, and now spends his days sipping frozen drinks on a remote beach (don’t I wish)? Truth in this case is much more simple. I’ve more …

    Read More...
  • Sharing code between Silverlight and WPF using Build Targets

    It’s no secret that Silverlight and WPF share a lot in common, primarily a result of their shared CLR Framework heritage. I have noticed a considerable increase in the number of organizations that are building applications that target both platforms. And in particular I have seen a rise in the number of organizations that are building a single application for both platforms while sharing as much code between them as possible. The results vary, some are more successful than others. Far and away …

    Read More...
  • Wildcard inclusions in C# project files

    One of the projects I am working on as of late involves hosting a DLR language (IronPython) in a managed application. Our application has dual build targets - one for WPF and one for Silverlight, with nearly identical feature sets. When embedding IronPython in an application there are multiple things to consider from a packaging perspective. The DLR itself lives in a pair of open-source assemblies (Microsoft.Dynamic.dll and Microsoft.Scripting.dll). The IronPython runtime is also in a pair of …

    Read More...
  • Dynamic objects and Call Sites

    In my previous article, I spoke about DynamicMethod. Today I would like to talk briefly about dynamic objects. Despite the similarity in name, these are completely different topics. It is a simple keyword really - “dynamic”. So innocent. So effortless to type. But this new keyword hides some powerful mojo. If you happen to be working with code that integrates with the DLR (Dynamic Language Runtime), then you have likely already encountered this keyword in C#. And even if you aren’t working …

    Read More...
  • Getting to know DynamicMethod

    Many developers are unfamiliar with this very useful piece of machinery. The DynamicMethod class was introduced with framework version 2.0 and Silverlight version 3 as a way to offer a limited amount of IL generation at runtime without requiring the additional overhead that is needed when generating complete types or assemblies. The primary use case is for performance optimization of generated or generic code (“generic” as in “general purpose”, not to be confused with the .NET feature of the …

    Read More...