Extensions made easy: I stand corrected on debugging…

It takes a brave man to try, and an even braver man to fall and learn from his mistakes.  Or something like that…

The ExtensionsMadeEasy has become increasingly popular.  Perhaps because it’s small, sexy and functional, or perhaps because I have been shoving it down your throats in every post I can.  Either way, people have started using it, and with users comes feedback.

I must thank Philippe and Dennis Tennis for running into serious issues and calmly reporting / discussing them without going in an all caps rage or down voting the extension.


Dennis, I created a working sample where both a theme and a shell are dynamically loaded.  During the making / debugging / verifying, I ran into a couple of problems.

This lead me to review my previous guides on debugging your theme or shell extension.  I previously stated that you can go ahead and install the theme or shell extension to a test project, then work from there.  However, thanks to you pushing me to test the ExtensionsMadeEasy more thoroughly, I found that the best results are ALWAYS obtained by not installing your extension, but simply adding the Extensions client projects to your solution (Add Extisting), and adding a project reference from your LightSwitch test application client project to the newly added Extensions client project.  The previous posts have been updated.
That solved the first of the problems where breakpoints were sometimes not being hit, and while struggling to finally get that fixed, I found a reproducable way of running into the bug that Philippe found (the ServiceProxy not being found…).  I’m happy to report that this issue has been quickfixed in a structural way in ExtensionsMadeEasy 1.5.  So go ahead and update it.


Feedback like yours, and all others in the comment sections, eventually makes our products better, so keep them coming. The good, the bad, the ugly, the constructive feedback, I’ll learn to love them all!



15 thoughts on “Extensions made easy: I stand corrected on debugging…

  1. Hallo Jan,

    Kijk! Dat bedoel ik met een goed voorbeeld. Ik heb hem net gedownload en ik had ook zo’n testproject gemaakt. Precies zoals jij had gedaan. Ik ga nu bestuderen wat ik heb gemist. Maar ik lees dat je tegen wat problemen aan liep, dus misschien had ik daar wel ‘last’ van.
    Maar goed, zo te zien werkt het nu en kan ik mijn tabbladen stylen en ook een mooie shell maken met icoontjes enzz…

    Wederom bedankt voor de snelle reactie en deze opzet kan ik mooi als basis gebruiken voor mijn prototype. Ook je post van commands is erg nice!

  2. This is someone who also scratching ur head….., like I did!! I took the trouble to ‘google translate’!!!


    Dennis Tennis says:
    Look! I mean with an example. I just downloaded it and I had made ​​a test project. Just like you did. Now I’m studying what I missed. But I read that you went to some problems, so maybe I have an ‘experience’ of.
    Anyway, looks like it works now and I can style my tabs and a beautiful shell with icons enzz …

    Thanks again for the quick response and I can pretty it up as a base for my prototype. Even your post commands is very nice!


    janvanderhaegen says:
    Yes yes yes, glad you’re happy!

    Let us know if you have a nice shell / theme builds eh! And how your presentation to colleagues was!



    Not being rude, but just curious what u guys talking!! Thats all 🙂

  3. Hallo Jan,

    Heb het een en ander aan de praat. Krijg 1 ding niet voor elkaar. Dat zijn de icoontjes op de tabbladen. Zoals in je voorbeeld.

    Heb dus een iconConverter en een class met

    Zoals in je voorbeeld. Dat zou toch moeten werken leek mij?
    De code
    wordt goed uitgevoerd, dus de aansturing is wel goed.
    Any ideas?

  4. Hi Jan, thanx! I know why the icons are not showing now 🙂 I was too tired.. lol..
    I made a shell of my own with an accordion and your tabs was made for the standard tabitems 🙂
    So i will have to custom the tabs myself.

    Thanx for responding, and i will keep you posted. If i have something nice or a question i will put it online for you to download.

    Goodnight! 🙂

    • It’s usually the most obvious thing, but when you work too much, those are the first things you usually miss… 🙂 Had that so many times myself.
      Anyways, hope you’re doing well on your project and presentation! Let us know!


  5. He jal,

    Sorrry but I just report a bug you about your library to run and debug a Shell.

    I implemented a IShellViewModel for specific data, and the binding does not work with the ShellHelper, it work fine with the debug extension VSIX but not with ExtensionMadeEasy.

    One sample
    [Export(typeof(IShellViewModel)), ShellViewModel(“Default.LinkViewModel”)]
    public class LinkViewModel : ILinkViewModel, IShellViewModel
    public string Name
    get { return “MonModel”; }

    // the Content not binding into ExtensionMadeEasy


  6. The problem is dependency injection MVVM with MEF.
    May be need to be an exporter for IShellViewModel

    In the library Microsoft.LightSwitch.Client.dll
    namespace Microsoft.LightSwitch.Runtime.Shell.Helpers
    public static class ComponentViewModelService

    private static void OnViewModelNameChanged(DependencyObject obj, DependencyPropertyChangedEventArgs args)
    if (exportsList == null)

    /// il ne peut pas retrouver les ViewModels dans EasyMadeLight
    VsExportProviderService.TryGetExports(Scopes.Local, VsExportSharingPolicy.IncludeExportsFromOthers, out exportsList);




    • Hey Dauphinus,
      it’s been an extremely busy year, so it took me quite some time to get around to this bug. I finally managed to fix it though, the latest version of EME (1.9) should now work for you. Let us know if there’s anything still wrong with it!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s