Ckan: Port to .NET Core

Created on 1 Jun 2019  Â·  9Comments  Â·  Source: KSP-CKAN/CKAN

This isn't issue!

Please, can you (sup)port this awesome tool from classic .NET to .NET Core?

I know, there isn't any GUI toolkit by default (so far), but the GUI part is nearly unusable on Mono anyway, especially on HiDPI displays. Porting should be pretty straightforward, almost all interfaces you're using is implemented in at least one library compatible with .NET Core.

Architecture Enhancement macOS

Most helpful comment

From an ideological perspective, .NET Core could be amazing*. But a project like CKAN is way more than just code. Thousands of people use it, meaning they'd likely need to change their processes. Most people don't care about ideology, they just want it to work and often work without changing their process. Mono has its faults, but it was started at time before Microsoft were friendly towards open source and bugs often stem from the days of "works on windows ¯_(ツ)_/¯".

As for CKAN, it was developed by many developers, who volunteered their time to either scratch an itch or solve a problem they were having (and getting carried away in the process).

So ideology aside, if you have an itch to scratch or a problem to solve I think this is a fantastic idea and patches† are welcome.

* I have no skin in the game, Python is my primary language
† Not necessarily by you, introduce a dev who wants to build their skills to the project, fund a dev to do the same or there are many other ways to contribute!

All 9 comments

Why?

Because .NET Core is waaay faster in comparison to Mono? Because it has more predictable and reliable codebase shared between platforms. Mono isn't near MS implementation in any way, and has long story of bad written, buggy and slow code which only make problems with programs. It even has problems with 64 bit builds - we have 64 bit CPUs in PC for something like 16 years now...

there isn't any GUI toolkit by default

So would this change mean that the GUI would no longer run?

It mean that with proper management it will be fully compatible with both versions of framework, GUI for classic .NET and console only for Core, as separate executables. Most of the work is replacing libraries with compatible ones and adding a target in project build settings. I don't have Windows, don't have Visual Studio, so I can't deliver reliable and tested code for pull request.

I do all my dev work on KSP-CKAN using monodevelop on Linux. Visual Studio is not required to contribute.
And I don't know what you're talking about in regard to the GUI being unusable on HiDPI displays under mono, because that's exactly how I use it.

Good for you for using MonoDevelop. As far as I know, there is only subtle support for .net core, even in comparison to vs code/sublime text/atom.

Second, here is link to screen capture of CKAN GUI under MacOS, as you can see, is fulfilled with display bugs, font rendering issues, and this is with "Retina" mode disabled at all. While it's on there are more glitches, and even few of windows (like settings) goes center on screen, while title bar and bottom part of window disappears under and above desktop, and there isn't any obvious method of scaling it down from this state...

Third. It works only on mono compiled via Xamarin, with the default build (bundled in homebrew for example) doesn't start it at all - there was few bug reports for that, by ex. this. And this isn't CKAN or MacOS issue, it's buggy Mono.

Fourth, it doesn't work at all with mono64 (or mono --arch=64), runtime crashes after warning that 64bit isn't fully implemented (16 years after first x86_64 CPU on the market, 14 years of project life). So, yeah, mono is piece of s..t.

From an ideological perspective, .NET Core could be amazing*. But a project like CKAN is way more than just code. Thousands of people use it, meaning they'd likely need to change their processes. Most people don't care about ideology, they just want it to work and often work without changing their process. Mono has its faults, but it was started at time before Microsoft were friendly towards open source and bugs often stem from the days of "works on windows ¯_(ツ)_/¯".

As for CKAN, it was developed by many developers, who volunteered their time to either scratch an itch or solve a problem they were having (and getting carried away in the process).

So ideology aside, if you have an itch to scratch or a problem to solve I think this is a fantastic idea and patches† are welcome.

* I have no skin in the game, Python is my primary language
† Not necessarily by you, introduce a dev who wants to build their skills to the project, fund a dev to do the same or there are many other ways to contribute!

I mostly agree with you, but...

.NET Core isn't about process, there is almost identical "process", language(s) are identical, but more portable framework underneath. And this isn't about any ideology, only need to reliable portability of code, thing which was not so obvious not so long ago without much effort placed on programmers.

I know history of Mono, it was something what many non-windows users wanted, but never became reliable alternative to MS implementation. Duh, it runs probably every non-windows build of games based on Unity (which avoids the bad parts in it).

But, now there is alternative, which "just works". Why don't try?

Off topic - great choice of language, I like it too, also Java (please, make love, not war) and C/C++, and I'm C# illiterate (probably because history of MS and open source).

Nice suggestion, but this kind of suggestion is not helpful

Was this page helpful?
0 / 5 - 0 ratings

Related issues

junwooPark picture junwooPark  Â·  7Comments

mario-ragucci-sp picture mario-ragucci-sp  Â·  4Comments

Unhunter picture Unhunter  Â·  3Comments

motoboy98 picture motoboy98  Â·  6Comments

mynameis1234 picture mynameis1234  Â·  7Comments