Skip to content

Port to .NET 5/6 #42

@tomwendel

Description

@tomwendel

Das hier ist ein dickeres Brett. Ich google mich gerade so durch. Soweit ich mich erinnere, hat @patteki damit schon angefangen und ist über eine Reihe von Problemen gestolpert die es zu lösen gilt.

Im Simulation Core Bereich gibts hier ganz klar das Sicherheitsproblem. Das aktuelle Spiel nutzt dafür AppDomains um a) den ausgeführten Code in seinen Zugriffsrechten stark zu limitieren (das würde grundsätzlich auch mit der Code Access Security (CAS) funktionieren. Aber sie sorgt auch für das saubere Entladen von externen DLLs nach der Simulation.

Um also eine klare Trennung zwischen Hauptapplikation und den Simulationsdaten zu schaffen, könnte man mit einem zweiten Prozess arbeiten. Soweit, sogut.

Auf UI Seite wird das Problem aber etwas umfangreicher. Wenn der Port auf .NET 5+ gleichzeitig die Plattformunabhängigkeit herbeiführen soll, muss sich das UI grundlegenden ändern. Aktuell ist das ja eine hübsche WinForms App deren Inhalte aus den geladenen Plugin-Libs mit weiteren WinForms UserControls gefüttert werden.

Um das mit einem passenden Konzept abzulösen fallen mir eine Reihe von Frameworks ein

  • Avalonia (mein aktueller Favorit) um das UI entspannt mit XAML hinzubekommen. Leider bekommen wir da Schwierigkeiten mit der 3D-Ansicht)
  • MAUI (wäre dann mit .NET 6 spannend)
  • MonoGame. händische Renderei, bekommt aber das Problem mit der 3D-Ansicht in den Griff, das wir mit den ersten beiden haben.
  • Irgendwas web-basiertes in einem Electron Container (Reactive/Angular + irgendeiner web render Nummer wie Babylon). Web (zumindest die beiden genannten SPA frameworks) scheint mir aber vollkommen unfährig mit Plugins umzugehen. Also zusätzliche Bausteine per Plugin nachzuladen.

Und jetzt stehe ich wieder da und weiß nicht weiter. Ich bitte um Diskussion

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions