Project Description

The WPF Dynamic User Interface makes it easier for any WPF developer to create a Line Of Business Application.

You'll no longer have to develop User Interface when started using this project.

It is generating the fully working end user interface for your model.

The Wpf Dynamic User Interface is developed in .NET C# 4.0 and WPF.

 

Where can it be used?

The library can be used in business field applications where the business requirement must be implemented fast and efficiently.

The proven user interface generation can build thousands of views on the fly.

The total time of development process can be reduced as no need to maintain the user interface and the bindings.

 

Possible usage areas

  • Prototyping WPF applications
  • In-house business applications
  • Line of business applications
  • Educational projects

 

Why using WpfDynamicUI?

WpfDynamicUI was designed to reduce the total project development cycle time. [more]


How it is working

1. Create your model
    public class StartupModel : Model
    {
        public StartupModel()
        {
            Message = "Welcome to WPF Dynamic User Interface - The Business Application Library!";
        }

        [Editable(false)]
        public string Message { get; private set; }

        public void StartApplication()
        {
            BusinessApplication.Instance.CloseActiveModelAndNavigateTo(() => new LogonModel());
        }

    }
2. Run the application image_thumb7

 

Key features:

  • POCO model is supported
  • Convention based model discovery.
  • System.ComponentModel.DataAnnotation based fine tuning.
  • General property types (string, datetime, int, etc) are supported.
    public class CustomerModel : INotifyPropertyChanged
    {
        public event PropertyChangedEventHandler PropertyChanged;

        //properties
        public string Name { get; set; }
        public int Age { get; set; }
        public DateTime BirthDate { get; set; }

        //save action
        public void Save()
        {
            //save in the db
        }

        //save condition
        [Display(AutoGenerateField = false)]
        public bool CanSave { get; set; }


    }

 

Extra features:

Deriving your class from Model opens the Workflow support

  • Discover modules from other assemblies using MEF
  • Built in workflow support.
  • Nesting models are supported.
  • Handles unlimited numbers of opened model in a chain.
  • Defining a module entry point is trivial.

 

  
    public class VisitModel : NavigationModel
    {
        //properties,etc excluded
    }
    public class OrderModel : NavigationModel
    {
        //properties, etc excluded

        [Display(AutoGenerateField = false)]
        public VisitModel VisitModel { get; set; }

        public void SaveOrder()
        {
            //save order
        }
       //entry point for the module
       public static void CreateOrder(VisitModel parentVisitModel)
       {
           BusinessApplication.Instance.CloseActiveModelAndNavigateTo(() => new OrderModel { VisitModel = parentVisitModel });
       }
   }

 

Start using it

For more details and examples please see the project documentation.

For basic and extended usage consult the quick-start guides:

 

The Wpf Dynamic UI is also available on nuget.

 

Roadmap

(future plans - V1.5)

  • To be decided…

V1.2.0.105 - Current release (20120415)

Included functionalities

  • Dynamic Code Builder. (Adding dynamic modules at runtime)

 

V1.2.0.103 - (20120413)

Included Fixes

  • Ability to add Runtime assemblies to MEF container
  • Fixed PagingExtensions page calculation when IQueryable is empty

 

V1.0.1.91 - (20120401)

Included providers

  • WebBrowser control provider

 

V1.0.1.82 - (20120324)

First stable release

  • Included WpfDynamicUI - Modeling
  • Included WpfDynamicUI - Dynamic User Interface Control

Included functionalities

  • Basic Discovery operations
  • Nested Model discovery operations
  • Work flow extensibility operations and definitions
  • Filtering
  • Trivial Menu building
  • Trivial Application menu building

Included providers

  • Standard .NET properties providers
  • DataGrid, ComboBox IEnumerable control providers
  • PagedIQueryable - paging control provider
  • Map provider
  • Chart provider

Included samples

  • WpfDynamicUI - HelloWorld
  • WpfDynamicUI - HelloWorkflow

 

Stable - stability:

WpfDynamicUI is involving. But you could be always be sure new involves ahead will not breaking your old code.

In terms of google we could say the application library is in Beta stage, but these application library parts if marked as released - stable - will be there for time.

There are still rooms for improvement:

  • Sophisticated menu instead of trivial menu.
  • Code Generation.
  • And perhaps something even not identified at this time

They all will be an "extension" on the top the actual stack.

 

 

If you find this project useful feel free to provide a feedback.

 

Regards

Zoltán Csizmazia

Last edited May 2, 2012 at 9:45 AM by csizo, version 36