Exclusive scoop: the LightSwitch team officially released a new theme: Microsoft LightSwitch Black Theme

That’s right, it’s not a joke and you read it here first: the LightSwitch team has officially released a brand new theme called “Black Theme”.

The joke however, is that they already published it a month and a half ago, when LightSwitch went live.  Don’t believe me?  Missed the announcement? Go ahead and open the Microsoft.LightSwitch.client.internal.dll in the object browser…

There you go, one BlueGlossyTheme (the default one), and one hidden, unannounced, mysterious theme called BlackTheme.

Now I don’t know about you guys, but I don’t recall ever to have seen this theme, so after spotting it in the object browser, I immediately opened the first LightSwitch application I could find, and tried to apply it…

The suspense rises and the crowd holds his breath…

There is an uncovered gem in the LightSwitch framework, locked away from public eyes, and no key to unlock it…

Well, no key, but since the class is public, we can just use our master-key to all themes…

activated the EasyTheme, and exported the secret BlackTheme to it by adding just one class in my LightSwitchApplication.Client project:

    public class LightSwitchBlackThemeExporter : ExtensionsMadeEasy.ClientAPI.Theme.EasyThemeExporter<
            Microsoft.LightSwitch.Presentation.Implementation.BlackTheme
        > { }

In an unexpected sense of relief that there are no compilation errors, I carefully pressed the F5 button, as if pressing it too hard would somehow curse the building process.  An image pops into my head, where I see Beth, wearing a bunny outfit, smiling at the audience on a smokey stage with Steve, dressed in his best magician costume, gliding across mysteriously and waving his hands until the suspense is high enough, to yell:

Infidels, BEHOLD! Lay your eyes upon… The LightSwitch Blaaaaack Theeeeeeeeeeme.

I frowned in disbelief when seeing Mojos snout being the only collection of black pixels on my screen worth mentioning, and after triple checking this was the LightSwitch BlackTheme I was seeing, I started to look for the differences between the default Blue theme and this Black theme.  I don’t know about you guys, but I did expect the Black Theme to be a bit more… Well: black!

For those of you that never were any good at “Where is Waldo?“, one of the few, subtle differences between the Blue Theme and the Black theme is the highlighting color.

That’s right folks, the highlighting of the Black theme is blue, and the one in the Blue theme, is orange.

Insert nomenclature joke? Nah, too easy…

Actually, after playing around a bit, I found out that the colors used in the Black theme change when altering my system colors, whereas the Blue theme seems to have hardcoded values…

One can only guess the reason for the Black Theme being included in the released Microsoft.LightSwitch.client.internal assembly, we’ll probably never know for sure…

An amusing show all together, but not quite the one you were expecting?  Sorry, this blog has a strict no-refund-policy!

Advertisements

14 thoughts on “Exclusive scoop: the LightSwitch team officially released a new theme: Microsoft LightSwitch Black Theme

  1. I get an error when I want to test my shell, you have an example with the launch of a shell?

    My error is: “The selected EasyShell could not find an IShellExporter and does not have a default implementation”

    thank you

    • Hey Philippe,
      thanks for pointing this out. There was indeed a small bug in the ExtensionsMadeEasy (the EasyShellExporter that you used was being exported as a theme instead of a shell… :()
      I pushed an update, version 1.2 no longer had this bug. I also created a guide (http://wp.me/p1J0PO-4r) to show you that I have thouroughly tested it this time 😀
      Once again sorry for the inconvenience!

      Kind regards

      Jan

  2. I really would like to see an example with a shell too. I tried to implement a shell, Think that i need an extra class in my client? Just like the theme class.

    public class ThemeProvider : ExtensionsMadeEasy.ClientAPI.Theme.EasyThemeWithExtensionsExporter
    {

    }

    For shell?????

    public class ShellProvider : ExtensionsMadeEasy.ClientAPI.Shell.EasyShellExporter
    {

    }

    ShellSample implements IShell and the project builds, but it gets an error.
    A sample from you would be very welcome! I am trying to confince my collegues to use lightswitch.
    I need the shell to be customized.

    Thanx!! Dennis

    • Hey Dennis,
      er zat een foutje in de 1.1 versie van ExtensionsMadeEasy. In de 1.2 werkt alles terug goed. Ik heb ook een blog postje gemaakt voor je waar ik het hele process nog eens gedetailleerd uitleg! (http://wp.me/p1J0PO-4r).

      Trouwens, werk je ver van waar ik woon (Brugge)? Anders kom ik met plezier eens langs en geven we je collega’s samen een demo van hoe sterk LightSwitch wel is? Laat me iets weten!

      Veel plezier!

      Jan

  3. Hoi Jan, bedankt voor je snelle response! Ik ga er meteen mee aan de slag! Ik werk in Hengelo Overijssel. Dat is dus best ver. Ik ben al goed bezig met mijn voorbeeld. Ik laat je weten of het gelukt is met de shell.

    Thanx!

  4. Ik hou je blog zeker in de gaten en “speciallekes” zijn wel goed!!! Ik ben bezig om in weinig tijd een deel van een huidig project in lightswitch te maken. Dit om ze te overtuigen. Zij zijn daar weken mee bezig geweest en ik lekker snel in Lightswitch 😉
    De meeste problemen waar zij veel tijd mee waren, had ik veel sneller klaar. Maar wil de looks and feels ook meenemen. Wij gebruiken nu het Jetpack theme. Deze ga ik er dus ook inzetten. Was al gelukt. Had ook al een accordion control in mijn shell (zonder made easy extension). Maar vind jou implementatie ook goed. Dus ik ga nu kijken of het me lukt om alles aan de praat te krijgen.

  5. Hoi Jan, eerste wat ik kan opmerken, is dat je in de Post-build event commandline harde verwijzingen hebt naar paden:

    copy “E:\WSLS\CodePlex\ExtensionsMadeEasy\ExtensionsMadeEasy\ExtensionsMadeEasy\ExtensionsMadeEasy.Client\Bin\Debug\ExtensionsMadeEasy.Client.dll” “E:\WSLS\CodePlex\ExtensionsMadeEasy\TheminTestArea\TheminTestArea\_Pvt_Extensions\ExtensionsMadeEasy\Client\Reference\ExtensionsMadeEasy.Client.dll”
    copy “E:\WSLS\CodePlex\ExtensionsMadeEasy\ExtensionsMadeEasy\ExtensionsMadeEasy\ExtensionsMadeEasy.Client\Bin\Debug\ExtensionsMadeEasy.ClientAPI.dll” “E:\WSLS\CodePlex\ExtensionsMadeEasy\TheminTestArea\TheminTestArea\_Pvt_Extensions\ExtensionsMadeEasy\Client\Reference\ExtensionsMadeEasy.ClientAPI.dll”

    Ook in je voorbeeld TheminTestArea staan veel harde verwijzingen. Ik zal het nodige eruit halen 🙂

    Thanx!

  6. Hallo Jan, even een puntje:

    als je een checkout van je testsolution TheminTestArea doet, dan mist het project LightSwitchExtension2.Client

    Deze verwijst naar: C:\Users\personal\Documents\Visual Studio 2010\Projects\LightSwitchExtension2\LightSwitchExtension2\LightSwitchExtension2.Client\LightSwitchExtension2.Client.csproj

    Relatieve paden zijn hier wel handig 🙂

  7. Pingback: Windows Azure and Cloud Computing Posts for 12/21/2011+ - Windows Azure Blog

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 )

Google+ photo

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

Connecting to %s