🚀 Welcome to MDriven Learn –  MDriven is now on Discord!  Don’t miss the latest Release Notes.
WECPOF
This page was created by Alexandra on 2018-11-07. Last edited by Wikiadmin on 2026-07-29.

WECPOF is the MDriven Designer prototyping engine for developers who want to execute a model, inspect ViewModel user interfaces, and run modeled actions without first building a separate application UI.

What WECPOF does

WECPOF executes the user interface described by your model. It uses ViewModels to present data and actions, so you can test how a modeled application behaves while you design it.

For example, you can create a ViewModel that lists Customer objects, add an action that creates a customer, and run the model. WECPOF renders the ViewModel UI and lets you execute the action. This lets you verify the object creation, navigation, validation, and action expressions before you create a finished client application.

WECPOF is part of MDriven Designer and is also available as the runtime assembly WECPOFLogic.dll when you host it in your own application.

What you can test

Use WECPOF to test the behavior that you have modeled, including:

  • ViewModel layouts, navigations, lists, details, and nested data.
  • Actions and their expressions, including actions that create, update, or assign objects.
  • Modal ViewModels, where the user confirms or cancels a selection.
  • Framework actions such as Save, Refresh, Undo, Redo, and Exit when those actions are configured for the UI.
  • Search and seeker behavior.
  • Styling and WPF hosting behavior when WECPOF is used in a WPF application.

An action can bring up another ViewModel and pass it a root object. It can also open that ViewModel as a modal dialog. When the user chooses OK, an ExpressionAfterModalOk expression can use values returned from the dialog. For a worked example of selecting a car for a rental contract, see Training:What an Action can do.

How WECPOF fits in your workflow

A typical workflow is:

  1. Create or update your domain model in MDriven Designer.
  2. Define ViewModels that describe the data and commands users need.
  3. Define actions and their expressions.
  4. Run the model with WECPOF to inspect the generated UI and execute the actions.
  5. Refine the model until the behavior is correct.
  6. If you are delivering a WPF application that hosts this UI, configure WECPOF runtime hosting as described in Documentation:Using WECPOF in runtime.

For example, a Class1 grid can expose a create action. A normal create action requires the user to invoke the action and then edit the created row. A GridAction instead presents an editable row in the grid; when the user submits the entered value, WECPOF assigns it to vGridActionArgument and executes the action. The action can create the object and assign the entered value in one operation. See Documentation:WECPOF Goodies for the configuration and expressions.

Design-time prototyping and runtime hosting

Scenario Use WECPOF for Next step
You are designing a model in MDriven Designer. Execute ViewModels and actions to validate the modeled UI and behavior. Continue refining the model, ViewModels, and expressions.
You are building a finished WPF application. Host WECPOF windows and menus in your application through WECPOFLogic.dll. Follow Documentation:Using WECPOF in runtime for the required XAML and initialization code.

When hosting WECPOF in a WPF application, the runtime setup includes a WECPOFWindowEnvironment to host WECPOF windows and a MenuHandling component to place modeled actions in a WPF menu. The application also activates its EcoSpace, activates WPFDequeuer, and initializes embedded ViewModel definitions. If WPFDequeuer.Active is not set, nothing is shown. The complete host setup belongs in Documentation:Using WECPOF in runtime.

ViewModel conventions recognized by WECPOF

Some ViewModel names have special meaning in WECPOF:

ViewModel name WECPOF behavior Example use
DropTargetViewModel Adds the ViewModel to the WECPOF screen. Show persistent information or provide a scratchpad where users can drag objects.
DefaultBackgroundViewModel Shows the ViewModel when no tabs are open. Present a start page, navigation choices, an administrator message, or a list of broken constraints.

Use these exact names only when you want the associated WECPOF behavior. For details, including GridAction and search-result highlighting, see Documentation:WECPOF Goodies.

Related modeling features

WECPOF renders behavior defined in the model. Keep the following features in the model rather than duplicating them in client code where applicable:

  • Use TaggedValues in runtime when a modeled UI needs information stored in a model TaggedValue. For example, TaggedValueOnFeature can retrieve a TaggedValue for an attribute or association end.
  • Use databound placeholder text when a ViewModel needs a dynamic input hint. The current convention is an additional column whose name ends in _Placeholder; the older Placeholder TaggedValue approach is deprecated.
  • Use OpenDocument reporting when an action must generate a report from a ViewModel.

Name and platform history

The name WECPOF originated from ECO and WPF. ECO is now named MDriven Framework, but the WECPOF name remains for the prototyping capability and the WECPOFLogic.dll runtime assembly. The source material also describes WECPOF as having been used with WPF, MVC, and AngularJS; this page uses WECPOF to mean the MDriven Designer prototyping engine and its runtime-hosting assembly.

See also