mellowagain / Titan

A free, advanced CS:GO report and commendation bot built with performance and ease-of-use in mind
MIT License
204 stars 55 forks source link

.NET Core #54

Closed mellowagain closed 6 years ago

mellowagain commented 7 years ago

Description

This Pull Request introduces .NET Core Support for Titan. Please keep in mind that this Pull Request is experimental and is work-in-progress. Converting Titan fully into .NET Core will most likely break a few things and will require testing.

Type

breaking change

Discussion

I'd like to kick-off a discussion if Titan should be ported to .NET Core. Right now, it looks like Eto.Forms, a hard-dependency of Titan (that can't be replaced easily) isn't compatible with .NET Core as it has platform-specific implementations regarding WinForms and Gtk. To be able to convert Titan fully into a .NET Core project, we'll need to be able to find a alternative to the cross-platform UI library Eto.Forms.

Miscellaneous

This pull request addresses issue #1.

mellowagain commented 7 years ago

Another idea would be to use libui (with a .NET binding like DevZH.UI, LibUI.Binding or SharpUI) instead of Eto.Forms. These .NET Bindings are .NET Core compatible.

Reference: Stackoverflow

Another very crazy idea would also rewriting the whole thing in another language that has cross-platform UI's like Java. Most likely SteamKit wouldn't have that nice ports to these languages, so I don't prefer this method.

mellowagain commented 6 years ago

As soon as Etos .NET Standard PR got merged, Titan would be ready to be ported to .NET Standard and with that the .NET Core.

mellowagain commented 6 years ago

As Eto.Forms has now .NET Standard support (picoe/Eto#949), all dependencies are afaik .NET Core compatible. This means Titan will move to .NET Core support in the future.

Closing this Pull Request as this will be reworked.