Funhouse Sample App
Funhouse Sample App

The "Funhouse" is a simple smart client application that delivers a crisp, functional, responsive user experience that is easy to deploy and operate over the web.

It's also a nifty tutorial on .NET application development techniques and patterns.

Install via "ClickOnce" and run it on your machine (learn how) and / or watch the 5 minute video of the Funhouse in action.

On the surface, the Funhouse is a superficial application of the kind you could hammer out in DevForce in a day or two. It's not much more sophisticated than the "Quick App" ten minute demonstration you may have seen elsewhere.

Inside, the Funhouse is an evolving tutorial of intermediate and advanced application development techniques.  Some parts of the code are deliberately naive. Other parts reveal architectural features and design patterns that are "over the top" for such a simple app but become fruitful as your application grows.

The "Funhouse" name conveys the sense of surprise that awaits the curious developer.  We hope that by exploring its corridors, you will learn to recognize and resolve issues that typically arise in sophisticated DevForce .NET applications.

NOTE: As of August 1, 2007, the Funhouse sample application is accessible only to developers who have bookmarked the pages, and will not be undergoing any additional changes or updates. We encourage developers interested in building smart client applications to check out our Cabana reference application here.

Funhouse Downloads  New!
Funhouse Client Application "ClickOnce" Install
Funhouse Code
  Download DevForce Express Free  (an edition of DevForce is required).
   Zip File New!
   Zip File New!
  Release and installation notes for the code
  IdeaBlade Application Block License Agreement
Funhouse For Developers
Orientation
  Install the Funhouse Code
... More videos are coming soon. Please watch this space for new topics such as ...
Business Object Model
Validation
EntityHelper
WinForms User Interface
Performance
Security in 2-Tier and n-Tier
Deployment

Developers' Orientation

Learn to find your way around the Funhouse code and understand the basic application flow.

Install the Funhouse Code

You are almost ready to get started after you've or and unzipped it.

Please read the Release Notes carefully; they are also included in the zip file.

Note: This Funhouse code compiles only with the latest version of DevForce,  .  Please contact support if you need a Funhouse copy for an earlier version of DevForce.

Install and Uninstall the Client Application  Video  (4 minutes).

Install and uninstall the Funhouse client application libraries and executable from the IdeaBlade website using ClickOnce.  The application communicates with the Funhouse server at IdeaBlade.com.

Application Project Tour  Video  (14 minutes).

Take a quick tour of each of the projects that make up the Funhouse solution.  This video gives a brief overview of each project, explaining its purpose and highlighting the most significant files and classes.

Application Launch  Video  (10 minutes).

Most .NET tutorial applications let Visual Studio dictate startup which means that the program class hands off to an instance of a main form almost immediately.

Yet, in many scenarios, we won't know what form to load, what modules to include, what navigation to present, or even what language to speak until we know who the user is.

The Funhouse launch takes smaller steps.  A free-standing login positions the developer to choose, configure, and run the application in the manner most appropriate for the user and the executing environment.  This is also the first taste of the the Funhouse Model-View-Controller paradigm.

Main Form and Pages  Video  (7 minutes).

The Funhouse main form is a shell, a container for the pages of the application.

That shell could prescribe a consistent, application-wide presentation.  It might divide its visual real estate into a navigation panel, menu bar, status bar, and a main panel for working pages. 

The Funhouse in this video has only a central panel for working pages but this constitutes the essential break from the usual practice of dumping the entire application into a form.

Page, View, and Controller  Video  (10 minutes).

Most Forms and UserControls try to do too much.  Funhouse illustrates IdeaBlade's strong recommendation that developers construct complex pages from light weight component parts.

While DevForce developers are used to separating the business object Model from the View-Controller classes, Funhouse takes the next step and begins to separate View classes from Controller classes.

This video shows us how to build pages programmatically from controller classes that create and manage instances of their view classes.