Windows WPF client
No edit summary
No edit summary
Line 1: Line 1:
The Windows WPF client consists of two logical parts.
The Windows WPF client consists of two logical parts.


Part 1 is a 2 threaded listener and information tree builder that by streaming changes from the turnkey server holds a local replica of the information in the viewmodel.
Part 1 is a 2-threaded listener and information tree builder that by streaming changes from the Turnkey server holds a local replica of the information in the ViewModel.


Whenever the user changes something in this replica commands are generated, queued and sent to the server, that in turn process the commands and update the main viewmodel based information tree that lives on the server. The changes the server information tree sees generates commands that are collected by the client - and the client merges the changes into its own viewmodel information tree replica.
Whenever the user changes something in this replica, commands are generated, queued, and sent to the server, which in turn processes the commands and updates the main ViewModel-based information tree that lives on the server. The changes the server information tree sees generate commands that are collected by the client - and the client merges the changes into its own ViewModel information tree replica.


Part 2 of the WPF client reads meta information about available main menu actions (Global actions) and also meta information per view it is set to display. Using this meta information - that really is just a condesate of the viewmodel definition from MDriven Designer - it builds a WPF based UI with editboxes and other UI widgets. These widgets are databound to the replicated information tree described in part 1.  
Part 2 of the WPF client reads meta information about available main menu actions (Global actions) and also meta information per view it is set to display. Using this meta information - that really is just a condesate of the ViewModel definition from MDriven Designer - it builds a WPF-based UI with editboxes and other UI widgets. These widgets are databound to the replicated information tree described in Part 1.  


The user edits information thru the UI widgets - bound to the information tree - that generates client commands that are sent to the server at the earliest possible time - but always in the order they were created. These client commands are handled by the server and when applied all effects and side effects that happens on the server generates server commands - that the client fetch as soon as it sees any reason to ask.
The user edits information through the UI widgets - bound to the information tree - that generate client commands that are sent to the server at the earliest possible time, but always in the order they were created. These client commands are handled by the server and when applied, all effects and side effects that happen on the server generate server commands that the client fetches as soon as it sees any reason to ask.


The code for the WPF client is open and can be downloaded from here https://www.MDriven.net/PublicDownloads/MDrivenTurnkeyClientCode_20200821.zip The builddate will change and old files may be removed. You find the correct build date here: https://www.MDriven.net/PublicDownloads/MDrivenTurnkeyVersion.xml - take the date from that file and update the link yourself for the latest download.
The code for the WPF client is open and can be downloaded from here: https://www.MDriven.net/PublicDownloads/MDrivenTurnkeyClientCode_20200821.zip  


==== Default viewmodel for the application background ====
The build-date will change and old files may be removed. You find the correct build date here: https://www.MDriven.net/PublicDownloads/MDrivenTurnkeyVersion.xml - take the date from that file and update the link yourself for the latest download.
If you name a viewmodel '''DefaultBackgroundViewModel''', this viewmodel will be used as the application background.
 
==== Default ViewModel for the Application Background ====
If you name a ViewModel '''DefaultBackgroundViewModel''', this ViewModel will be used as the application background.
[[Category:WPF]]
[[Category:WPF]]

Revision as of 07:01, 23 March 2023

The Windows WPF client consists of two logical parts.

Part 1 is a 2-threaded listener and information tree builder that by streaming changes from the Turnkey server holds a local replica of the information in the ViewModel.

Whenever the user changes something in this replica, commands are generated, queued, and sent to the server, which in turn processes the commands and updates the main ViewModel-based information tree that lives on the server. The changes the server information tree sees generate commands that are collected by the client - and the client merges the changes into its own ViewModel information tree replica.

Part 2 of the WPF client reads meta information about available main menu actions (Global actions) and also meta information per view it is set to display. Using this meta information - that really is just a condesate of the ViewModel definition from MDriven Designer - it builds a WPF-based UI with editboxes and other UI widgets. These widgets are databound to the replicated information tree described in Part 1.

The user edits information through the UI widgets - bound to the information tree - that generate client commands that are sent to the server at the earliest possible time, but always in the order they were created. These client commands are handled by the server and when applied, all effects and side effects that happen on the server generate server commands that the client fetches as soon as it sees any reason to ask.

The code for the WPF client is open and can be downloaded from here: https://www.MDriven.net/PublicDownloads/MDrivenTurnkeyClientCode_20200821.zip

The build-date will change and old files may be removed. You find the correct build date here: https://www.MDriven.net/PublicDownloads/MDrivenTurnkeyVersion.xml - take the date from that file and update the link yourself for the latest download.

Default ViewModel for the Application Background

If you name a ViewModel DefaultBackgroundViewModel, this ViewModel will be used as the application background.

This page was edited 90 days ago on 02/10/2024. What links here