LightSwitch achievements

In this blog post series, we’re going to create a fun extension that will stimulate the users of our LightSwitch applications by rewarding them with points and achievements when they use the application…

Download the extension.

Link coming after the story is told…

View the sample.

Link coming after the story is told…

Read the story.

  • Chapter one (Introduction)

    • The idea – briefly describing the history of this motivation system, and the extension we want to make.
  • Chapter two (Events)

    • Classic events: “The observer” – explaining events in .NET, paying some special attention to the INotifyPropertyChanged interface.
    • Event mediator pattern – explaining the event mediator pattern in general, showing how it’s implemented in LightSwitch and an overview of the default LightSwitch events.
    • Events and their threading issues – briefly describing threading, dispatchers, and how to deal with the “it is not valid to call execute() on a different dispatcher than the executableobject’s logic dispatcher.” exception.
    • Using events in our achievement extension – rolling our own events, the LightSwitch way, and introduce a small API to simplify our lives.
  • Chapter three (LightSwitch modules)

    • The modular approach of LightSwitch – learning that even though LightSwitch does not support modular development or deployment scenario’s, it does have the concept of modules.  
    • Deep dive in the application module – an overview of the LSML language and the contents of the application module, with some special attention to a couple of really interesting lines.
    • Programming with entities in an extension – querying the DataWorkspace and creating new entries at runtime.
    • Hacking into the heart of a LightSwitch application: continued… – remember that post? Time to see who’s done the homework.
    • Hosting a module in our achievement extension – putting two and two together…
  • Chapter four (LightSwitch UI hacking)

    • It’s all in the layers – the shell is all we see, but is it really the upper layer?
    • Rolling your own LoginScreen (the hard way) – time to take a short side track and put our layering knowledge to the test.
    • Rolling your own LoginScreen (the easy way) – how to accomplish the same thing with EME, in half the time.
    • Adding a Layer for our achievement extension – showing a visual effect when a medal is awarded.
  • Chapter five (The finishing touch)

    • An overview of how it all comes together – see the extension’s architecture come to life.
    • Walking through the sample – see the extension come to life.
    • A quick cheat sheet to implement the extension – use the extension to make your own LightSwitch applications come to life.

12 thoughts on “LightSwitch achievements

  1. Sounds well good. Jan, I would love to comment on more of your posts but my work’s firewall blocks the posting. Just thought I’d let you know I really enjoy the blog and your posts…

  2. Pingback: Windows Azure and Cloud Computing Posts for 1/23/2012+ - Windows Azure Blog

  3. Pingback: Windows Azure and Cloud Computing Posts for 2/1/2012+ - Windows Azure Blog

  4. Hello Jan,

    Can you tell me S.v.p how can i add namespace to project in Lightswitch , i am using a lightswitch and not visualstudio.


    • Hey Nasser!
      Do you mean: “how can I add an assembly (DLL) reference”?
      Michael Washington showed a nice trick on Go to any screen, and select any control. From the context menu, select “Custom Control”. A popup will appear where you can “Add a Reference…” the LightSwitch way…

      If that’s not what you ment, you’ll need to clarify a bit. What’s your situation, what are you trying to accomplish?



  5. Pingback: switchtory – turn on the innovation « Jan Van der Haegen's blog

Leave a Reply

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

You are commenting using your 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