Programm mit C# programmieren mit Scratch?

palindromxy  28.10.2021, 18:22

Du willst Scratch in C# übersetzen oder in einer GUI mit Blöcken Daten eintragen?

DoGame5 
Fragesteller
 28.10.2021, 18:27

Ich will ein Programm mit C# programmieren. Indem man mit Scratchblöcken zum Beispiel HTML erstellen kann

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Im Grunde hast du eine Oberfläche bestehend aus anordbaren Boxen o.ä., die jeweils mit einer Bedeutung verknüpft sein müssen. Diese Daten müssen in mehreren Schritten zu C# übersetzt werden.

Beginne am besten mit einer Analyse von Scratch (erstelle eine Grammatik zu dieser Sprache) und beginne dann damit, die Anwendungslogik zu implementieren. Von einem textuellen Code der Scratchgrammatik ausgehend müsstest du zu einem C# Expression Tree kommen, der am Ende nur noch einmal ausgewertet werden muss. Das IronyProjekt kann dir dabei helfen.

Der zweite große Teil des Projektes ist die Implementation der Oberfläche. Eine sorgfältige Vorausplanung deinerseits wäre sehr ratsam, bei der du genau festhältst, wie die Oberfläche aufgebaut und bedienbar sein soll.

Das passende Toolkit zu finden, ist kein Problem. Sowohl Windows Forms als auch WPF unterstützen Drag & Drop, das Zeichnen von Komponenten, u.ä.. Komplizierter wäre die Frage, wie du den einzelnen Bausteinen eine Bedeutung zuordnest und später den Code auch in der richtigen Reihenfolge an das Backend weiterreichst. Vielleicht analysierst du die einzelnen Bauteile anhand ihrer Position, iterierst über den visuellen Tree oder, was wohl einfacher wäre, du lässt nur Einordnungen in eine ListView zu. Wenn dieses ListView an ein Model gebunden wird, wäre es zudem einfacher, Komponenten mit ihrer jeweiligen Bedeutung zu koppeln und du könntest auch leichter Validationen / Limitationen auf der Oberfläche einbauen. Das Ziel wäre es, einen textuellen Scratch-Code zu generieren.

Gibt es da (...) irgendwelche Code beispiele oder Tutorials.

Tatsächlich habe ich ein Beispielprojekt gefunden, welches ebenso Irony einsetzt und eine visuelle Sprache zu C# übersetzen lässt:

https://www.codeproject.com/Articles/817854/Expression-Script-inspired-from-MIT-Scratch

Ich habe noch nie so etwas gemacht deshalb brauche ich eure Hilfe.

Als Programmierer stößt man immer wieder auf Anforderungen, die man so noch nie umgesetzt hat. In den Fällen kommt man nur weiter, indem man entweder recherchiert oder selbst Lösungsansätze entwickelt.

Was ich wohl zu deiner Projektidee anmerken sollte: Neben soliden C#-Grundkenntnissen (dazu zähle ich hier auch die OOP) solltest du mit dem GUI-Toolkit, welches du wählst, gut vertraut sein. Achte darauf, eine klare Trennung zwischen den Anwendungsschichten vorzunehmen. Dazu eignen sich Muster wie MVC oder MVVM.

DoGame5 
Fragesteller
 31.10.2021, 08:13

Vielen Dank das du immer solche ausführlichen Antworten schreibst. Aber du weißt auch alles oder?

0
regex9  31.10.2021, 08:23
@DoGame5

Im Bereich Programmierung/Softwareentwicklung muss ich mich auch ab und an zu Themen einlesen (schon allein, um halbwegs aktuell zu bleiben) oder noch einmal bestimmte Details nachschlagen.

1
DoGame5 
Fragesteller
 31.10.2021, 08:24
@regex9

Okay, darf ich fragen was du gelernt hast? (Ausbildung)

0
regex9  31.10.2021, 08:28
@DoGame5

Ich arbeite als Softwareentwickler und habe damals auch einmal einen Informatikstudiengang absolviert. Näher möchte ich aber tatsächlich nicht auf meine Person eingehen. 😉

1

Dafür wirst du eine komplexe grafische Oberfläche brauchen, die am Ende gegenüber der Umsetzung in einer vernünftigen IDE eigentlich nur Nachteile bietet.

Die konkrete Umsetzung der GUI sprengt den Rahmen dieser Plattform.

DoGame5 
Fragesteller
 31.10.2021, 08:08

Da es für das was ich vorhabe noch keine Dateien bzw keine zugehörige IDE gibt versuche ich es auf diesem wege

0