Fernando Machado Píriz's Blog

Posts about digital transformation, enterprise architecture and related topics

Do you usually give presentations? Check this out

with 13 comments

For end users: Giving a Presentation is a simple application to change certain setting while delivering a presentation, e.g., hide desktop icons, disable screensaver, close selected programs, etc. Changes are reverted back when presentation ends. Initially built to show how to use certain technologies, it turned out to be useful by itself.

Watch this video to see Giving a Presentation in action:

If you want to try Giving a Presentation for youself, you can download installation bits from Codeplex.

For developers: Giving a Presentation is a WPF application sample created in C# that I use when blogging about Managed Extensibility Framework, Dependency Injection and Inversion of Control, etc. It demonstrates how an extensible application can be built as a container of component parts.

In this sample application, the container is the main window, plus the tab control on it. The tab control has just a Default tab and an About tab. The Default tab is initially empty; it will be dynamically filled by component parts.


The About tab shows typical information about application version, etc.


Component parts need to fulfill three requisites:

  1. Should implement an interface GivingAPresentation.Common.Contract.
  2. Should the decorated with the System.ComponentModel.Composition’s Export attribute.
  3. Should be deployed in an assembly in the same folder as the container.

The Managed Extensibility Framework and the MainWindow of the application will do the rest. The former will load instances of all exported types implementing the mentioned required interface in a list. The later will take the instances in the list and add the controls to the appropriate tab in the control tab.

Until now, I have created three component parts, to solve some of the typical problems that appear when giving a presentation:

  • Hide desktop icons. Usually you place working documents in your desktop. Some of these documents are private and you don’t want your audience see them before you start delivering a presentation. Use this feature to hide your desktop icons during a presentation and unhide them at the end
  • Disable screen saver. You may have your screen saver configured to start after certain time of inactivity. If you spend some time in a single slide during a presentation, your screen saver can interrupt your presentation. Use this feature to disable your screen saver during a presentation and enable it back at the end.
  • Close programs. Some programs pop up notification messages, e.g., mail or instant messaging clients when messages arrive. Despite of the interruption, the content of the notification might be inappropriate to be seen by your audience during a presentation. Use this feature to close selected programs during a presentation and open them back at the end.

Watch this video to see how these parts effectively extend the container:

You can download the source code also from Codeplex.

Give it a try. Hate it? Love it? Let me know.


13 Responses

Subscribe to comments with RSS.

  1. Great idea, makes me think of CCleaner for presenting.



    June 7, 2010 at 5:17 am

  2. Good idea. A good add-on would be the option to select a default background that switches when you check the box of “I’m giving a Presentation”

    We all like to have our girlfriend or family or anything we like in the desktop but for presentation a more formal picture should be displayed that resembles our company or product.



    June 9, 2010 at 2:49 pm

  3. […] Giving a Presentation from CodePlex, there is no need to do it in order to follow this post). Read this post to get more details about how Giving a Presentation works and was […]


  4. […] following UML class diagram from Giving a Presentation was created using the Visualization and Modeling Feature Pack in just a couple of […]


  5. […] siguiente diagrama de clases UML de Giving a Presentation fue creado usando el Visualization and Modeling Feature Pack en cuestión de un par de […]


  6. […] of the features of the Giving a Presentation demo application is the ability to hide desktop icons during a presentation, showing them back […]


  7. Having read this I believed it was very informative. I appreciate you taking
    the time and effort to put this article together. I once again find myself
    personally spending way too much time both reading and commenting.
    But so what, it was still worth it!



    December 29, 2012 at 12:32 pm

  8. Fantastic site. A lot of helpful information here.
    I’m sending it to some friends ans also sharing in delicious. And naturally, thank you in your sweat!


    hostels in london

    April 10, 2013 at 3:54 am

  9. whoah this blog is great i love reading your articles. Keep up the great work!
    You already know, a lot of individuals are hunting round for this info, you
    could aid them greatly.



    July 17, 2013 at 7:32 am

  10. I feel this is one of the most important information
    for me. And i’m satisfied studying your article. But want to remark on few basic things, The website taste is wonderful, the articles is in reality great : D. Excellent job, cheers


  11. Hello I am so delighted I found your blog page, I really found you by mistake,
    while I was researching on Bing for something else,
    Anyhow I am here now and would just like to say thank you for a fantastic post and a
    all round enjoyable blog (I also love the theme/design), I don’t have time to read
    it all at the moment but I have book-marked it and also added your RSS feeds, so when I have
    time I will be back to read a lot more, Please do keep up the fantastic work.



    September 3, 2014 at 12:38 am

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 )

Google photo

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

%d bloggers like this: