Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[TODO/Feature] Migrate to Dotnet 6 #53

Open
d8ahazard opened this issue Dec 13, 2021 · 5 comments
Open

[TODO/Feature] Migrate to Dotnet 6 #53

d8ahazard opened this issue Dec 13, 2021 · 5 comments

Comments

@d8ahazard
Copy link
Contributor

While the project was just updated to Dotnet 4.7.2, ideally, we should probably be using Dotnet 5 or 6.

@cjmurph - What are your thoughts about making me a contributor on this project so I can help with issues?

@cjmurph
Copy link
Owner

cjmurph commented Dec 16, 2021

We should definietly aim to move. We'll need to rethink the whole WCF approach though, I'm not sure it has made it from framework to core. I've been having a few issues wiht WPF for other apps with .net 6. seemingly random loss of binding, gui just not updating at all etc. This is a very simple application so we may not face too much trouble.

@d8ahazard
Copy link
Contributor Author

We should definietly aim to move. We'll need to rethink the whole WCF approach though, I'm not sure it has made it from framework to core. I've been having a few issues wiht WPF for other apps with .net 6. seemingly random loss of binding, gui just not updating at all etc. This is a very simple application so we may not face too much trouble.

So, I started cracking away at this one, taking in mind one of your previous comments about incorporating a Web UI.

Thus far, I was able to port the PlexService application portion to dotnet 6, and ditch the WCF stuff entirely.

In lieu of WCF, I've added MCV in conjunction with SignalR for websocket support. This way, we can more or less keep the tray application exactly the same, only removing the calls that used WCF and have them use a WebSocket client instead.

I've also got the tray app ported to dotnet 6, but I'm presently getting some issues compiling/running it. But, that's more than likely something dumb I've done. I plan on tinkering with that some more today, hopefully, I can get the tray app up and running and doing basic communication with the service...and then it's just implementing all the various methods on the server-side as I've named them in the client.

@d8ahazard
Copy link
Contributor Author

@cjmurph - One more update...

Got most of the code ported to net6. Wound up going with WPF for the UI in the Tray app, and MCV + SignalR websocket for the server-side.

The client and server both run now and can communicate - I've probably still got some missing methods, but start/stop of Plex works, as does loading/saving settings, and most of the other UI components. Server side should also be running fine.

I could ramble on a bit about it, but I've got a branch with the working changes here:

https://github.com/d8ahazard/PmsService/tree/Net6

Still needs some work yet, but it's a promising proof-of-concept.

@cjmurph
Copy link
Owner

cjmurph commented Dec 17, 2021

Good stuff, I'll have a look.
I've used fleck for web sockets in c# before. It's very easy to implement.

@d8ahazard
Copy link
Contributor Author

Good stuff, I'll have a look. I've used fleck for web sockets in c# before. It's very easy to implement.

Just pushed more updates to this branch today...fixed most of the issues, probably created a few new ones. Tested most of the tray functions and verified they're working, had to fix all of the "open this external app" calls to pass the command to explorer, probably because netCore doesn't run the same as netFramework apps...or something.

Still a lot of warnings on compile, I need to test remote log viewing, and I need to add socket pushes for when an aux app's state changes remotely so the UI is updated accordingly.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants