User avatar
polycular
Topic Author
Posts: 19
Joined: 29 Sep 2015, 18:18

uFrame integration

14 Oct 2015, 17:41

Hi,
I wanted to ask if anyone is using uFrame 1.6 with Noesis? I saw the git repo but it seems outdated, is it still working?
best,
Robert
 
User avatar
jsantos
Site Admin
Posts: 2906
Joined: 20 Jan 2012, 17:18
Contact:

Re: uFrame integration

14 Oct 2015, 19:49

We agreed with the uFrame people to have a common MVVM architeture based on Microsoft interfaces. Those folder are: It seems that they are a bit out of sync. I know there are a few users using both packages but I am not sure about the versions they are using. The best thing you can do is reporting problems to both parts or even send pull requests.

Thanks!
 
davebac
Posts: 19
Joined: 09 May 2014, 03:21

Re: uFrame integration

16 Oct 2015, 21:03

Untested -- replace Noesis' copy with this copy, delete the matching files from uFrame. It compiles, but might explode at runtime.

* I might have had to change namespace in uFrame as well -- they had the one interface in the wrong namespace.
Attachments
MVVM.zip
(6.9 KiB) Downloaded 174 times
 
movra
Posts: 70
Joined: 02 Apr 2014, 20:35

Re: uFrame integration

16 Oct 2015, 23:51

I gave up on uFrame being WPF MVVM compatible a long time ago. Last year in the 1.5 cycle I submitted a pull request that fixed a lot of bugs and made it compatible, but it wasn't merged. Aside from that there was a showstopper bug in the closed source code generator.

The UnityMVVM folder included in Noesis should be the same as in uFrame but it isn't. You can remove the UnityMVVM folder from uFrame 1.6 and it will compile. However on runtime it will explode because uFrame's WPF compatibility has been thrown out of the window. For example, the commands have been replaced with signals and they don't implement System.Windows.Input.ICommand.

I moved on from uFrame and started creating MVVM classes manually in Visual Studio and Blend. It's not that bad actually. But then I ran into the next problem, which is that Noesis has some significant performance problems when it comes to binding. Which looking at the Trello board is planned to be addressed in the version after the next version.

So far MVVM in Unity has caused more trouble than it solved. ¯\_(ツ)_/¯
 
davebac
Posts: 19
Joined: 09 May 2014, 03:21

Re: uFrame integration

17 Oct 2015, 04:06

I hadn't noticed how old the thread was, or I wouldn't have replied.

I have a game model. I have controllers that talk to the game model, and a Hub that publishes. My Unity scenes use MonoBehaviours as views against the game model, so that there is no coupling to Unity and the next time I decide that I hate Unity too much to deal with it and swap to something else, none of the game logic changes.

In the Code Behind for my Noesis code, I subscribe to the hub -- and update the UI as appropriate, and then just don't have a separate view model. I'm still decoupled -- I can replace Noesis with anything else, and the only code I'm writing is the same code I would be writing anyway.

I've thought about setting things up to test with Visual Studio and Blend -- right now that's not been a priority because my UI needs are relatively simple.
 
User avatar
jsantos
Site Admin
Posts: 2906
Joined: 20 Jan 2012, 17:18
Contact:

Re: uFrame integration

19 Oct 2015, 13:22

I hadn't noticed how old the thread was, or I wouldn't have replied.
This one? It started only five days ago : )
 
User avatar
jsantos
Site Admin
Posts: 2906
Joined: 20 Jan 2012, 17:18
Contact:

Re: uFrame integration

19 Oct 2015, 13:26

But then I ran into the next problem, which is that Noesis has some significant performance problems when it comes to binding. Which looking at the Trello board is planned to be addressed in the version after the next version.
Just a clarification here. The problem is not at the bindings but at our containers. As they do not support virtualization many inefficiencies happen when there are many items (100+) inside a listbox for example.

We wanted to solve this in v1.2.5 but the task is huge so we decided to postpone it for v.1.2.6. This is a very important and critical issue. It will be solved.

Who is online

Users browsing this forum: No registered users and 2 guests