Laden...

Wie kann ich mit C# eine Anwendung für den Raspberry PI (Linux) programmieren?

Erstellt von Paddy1997 vor 3 Jahren Letzter Beitrag vor 3 Jahren 3.118 Views
P
Paddy1997 Themenstarter:in
31 Beiträge seit 2019
vor 3 Jahren
Wie kann ich mit C# eine Anwendung für den Raspberry PI (Linux) programmieren?

Hallo Leute ich möchte ein kleines Programm schreiben um ein "SmartHub" auf dem Fernseher zu haben mit Netflix etc.
Ich habe mir dazu überlegt eine GUI zu entwickeln die einfach Browser Verknüpfungen auf Buttons hat.
Allerdings bin ich noch Anfänger und möchte das als Projekt machen um auch mehr über GUI's zu lernen.
Ist das überhaupt unter C# möglich weil das Pi ja auf Linux läuft und eine .exe da ja nicht ausführbar ist. Ich kenne mich leider nicht unter Linux aus und habe nach Recherche gefunden das man einfach mono installieren kann um C# Programme auszuführen. Ist das so auch für mein vorhaben möglich ?
MFG
Paddy

T
2.219 Beiträge seit 2008
vor 3 Jahren

Dir scheint es enorm an Grundlagen Wissen zu fehlen.
C# bzw. .NET Code ist nicht Windows spezifisch.
Hier solltest du dich erst einmal in die Grundlagen einarbeiten und auch verstehen was .NET eigentlich für eine Platform ist.

Aktuell kannst du auch mit .NET 5 auf Linux arbeiten.
Wenn du einfach nur eine Gui mit Buttons zum öffnen von Browsern umsetzen willst, kannst du dirs im einfachsten Fall mit Windows Forms unter .NET 5

T-Virus

Developer, Developer, Developer, Developer....

99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.

16.806 Beiträge seit 2008
vor 3 Jahren

Seit 5(!) Jahren wird Linux dank .NET Core unterstützt und läuft auch ARM Architekturen und damit auch auf dem Raspberry PI.
Running .NET 5 (Preview) on a Raspberry Pi 4

Hättest dazu auch nicht groß recherchieren müssen; blick in die Doku hätte gereicht 😉

P
441 Beiträge seit 2014
vor 3 Jahren

Winforms unter Linux läuft nicht mit .NET 5.0. Das ist nur mit Mono möglich.

P
Paddy1997 Themenstarter:in
31 Beiträge seit 2019
vor 3 Jahren

Ich bin da jetzt etwas verwirrt also laut Wikipedia gehören Winforms und Wpf zu .Net Core dann müsste das doch auch ohne Mono laufen oder ?
Also so wie ich es verstehe einfach das machen von ABT's Link und dann sollte es laufen ^^

P
441 Beiträge seit 2014
vor 3 Jahren

Windows Forms (und auch WPF) benötigt zusätzlich zur .NET 5.0 Runtime auch noch die .NET Desktop Runtime. Diese gibt es nur für Windows.

Was du allerdings nutzen kannst sind Dinge wie Electron.NET oder Plattformen wie UNO (https://platform.uno/).

Edit: Aber ob du z.B. Netflix so einbinden kannst, wie du dir das vorstellst kann ich dir nicht sagen, vermute aber, dass es Netflix dir schwer machen wird, außer mit einem Browser.

16.806 Beiträge seit 2008
vor 3 Jahren

Netflix verwendet zur Übertragung HTTP-Streaming mit einer eigenen Verschlüsselungsimplementierung.
Unwahrscheinlich, dass Du das ohne immensen Aufwand nachstellen kannst.

Geh besser den Browser-Weg.

P
Paddy1997 Themenstarter:in
31 Beiträge seit 2019
vor 3 Jahren

Ja also ich will da kein Netflix so implementieren 😄 wie schon gesagt ich bin Anfänger und lerne derzeit noch die Grundlagen von C#. Daher möchte ich es ganz Simpel halten also einen Button erstellen der aussieht wie das Netflix Logo. Wenn man diesen drückt soll sich der Browser öffnen mit www.netflix.de.

Das klingt für mich recht einfach auch als Anfänger. Ich werde mir trotzdem mal etwas zu Electron.NET anzuschauen einfach mal um zu verstehen was das überhaupt wirklich ist.

Aber für mein Vorhaben ist glaube ich der einfachste weg das über WinForms zu machen und mono auf dem Pi zu Installieren.

Ich danke euch für die Antworten immerhin weiss ich jetzt das es Grundsätzlich geht 😃

16.806 Beiträge seit 2008
vor 3 Jahren

Aber für mein Vorhaben ist glaube ich der einfachste weg das über WinForms zu machen und mono auf dem Pi zu Installieren.

Nur damit Du Bescheid weißt: damit erlernst Du tote Dinge.
Mono hat keine Zukunft mehr; es ist vollständig in .NET Core aufgegangen.

P
Paddy1997 Themenstarter:in
31 Beiträge seit 2019
vor 3 Jahren

Danke für die Info dann lass ich das lieber.
Ich habe jetzt über Wikipedia folgendes gefunden.
Plattformunabhängige Benutzeroberflächen mit Avalonia U
Sollte ich dann lieber das lernen ? Das klingt doch gut ^^ und da es Plattformunabhängig ist sollte das auch unter Linux laufen 😃.
Ich habe auch auf einem Discord mal nachgefragt da meinte jemand ich muss es dann als Linux "builden".
Wie das geht weiss ich derzeit noch nicht aber da werde ich ja ne Anleitung finden 😃
Kennst du Avalonia U ? Ist das Sinvoll zu erlernen ?

16.806 Beiträge seit 2008
vor 3 Jahren

kA wieso Du das Wiki liest wenn die Doku viel mehr aussagt.
Das bleibt Dein Geheimnis.

Avalonia ist halt ne "eigene" Technologie; musst selbst wissen, ob das was für Dich ist.
Evaluierung gehört zu Deinem Job: Du kennst die Anforderungen.
Wir können Dir nur Fakten geben. Entscheiden musst selbst.

Ich habe auch auf einem Discord mal nachgefragt da meinte jemand ich muss es dann als Linux "builden".

Totaler Quatsch; wie leider oft auf in solchen Kanälen.

Das neue Forum hier wird auf Linux gebuildet und wird auf Windows gehostet.
Andersrum geht's genauso.
(Ich builde immer auf Linux, weil Linux schneller beim Umgang mit vielen kleinen Dateien ist (zB Nuget Restore, Build etc..)

Aber auch dafür brauchst Du kein Discord: auch das steht in der Doku 😉

P
Paddy1997 Themenstarter:in
31 Beiträge seit 2019
vor 3 Jahren

kA wieso Du das Wiki liest wenn die Doku viel mehr aussagt.
Das bleibt Dein Geheimnis.

Ich hab manchmal Probleme in der Doc genau das zu finden was ich suche.
https://docs.microsoft.com/de-de/dotnet/core/introduction
Hier steht .Net Core Apps laufen Plattformübergreifend. Unter WPF steht es gibt zwei Implementierungen .Net Framework und .Net Core.
Heißt für mich das WPF.NET Core auch unter Linux läuft wenn man dort Runtime Core 3.1 installiert.
Das scheint aber auch nicht so ganz richtig daher hab ich oft das Gefühl die Doc "falsch" zu lesen.

16.806 Beiträge seit 2008
vor 3 Jahren

Heißt für mich das WPF.NET Core auch unter Linux läuft wenn man dort Runtime Core 3.1 installiert.

> Ja, .NET Core Anwendungen sind Plattform-übergreifend.
> Ja, für WPF brauchst Du nicht nur die .NET Core Runtime, sondern auch die .NET Core Desktop Runtime
> Nein, es gibt derzeit keine .NET Core Desktop Runtime für Linux
> Nein, die Doku ist nicht falsch
> Ja, Du hast ein Problem die Doku zu verstehen, wenn Du sie nich ganz liest 😉

Fazit:
.NET Core Anwendungen auf Linux: Ja
WPF .NET Core Anwendungen auf Lunux: (derzeit) nein.

Das steht auch in dem Link, den Du gepostet hast.
Hat auch Papst weiter oben schon gesagt.

P
Paddy1997 Themenstarter:in
31 Beiträge seit 2019
vor 3 Jahren

Für langjährige Entwickler wie du einer bist ist das sicherlich einfach zu verstehen.
Du solltest aber auch bedenken das nicht jeder vor allem ein Anfänger nicht über das nötige Hintergrund Wissen verfügt um diese Doc einfach zu verstehen.
Aber gut dann kuck ich einfach wie ichs mach

P
441 Beiträge seit 2014
vor 3 Jahren

Das .NET Ökosystem ist in den letzten Jahren stark gewachsen und die Dokumentation ist sehr gut. Allerdings, bei einem großen Ökosystem ist auch die Doku sehr groß.

Deswegen habe ich das auch so geschrieben und nicht einfach auf die Doku verwiesen.

Der Hintergrund ist, dass Windows Forms auf ActiveX (?) und WPF stark auf DirectX angewiesen sind und die gibt es eben nur für Windows.
Mono hat eine eigene Implementierung von Windows Forms gemacht, die auf GTK (glaube ich) basiert und damit Crossplattform.

P
Paddy1997 Themenstarter:in
31 Beiträge seit 2019
vor 3 Jahren

Ja es ist wirklich erschlagend, vor allem wenn man sich alles selbst beibringen will und leider auch keinen im Freundeskreis hat mit dem man sich austauschen kann.
Ich bin trotzdem dankbar für die Antworten ich denke ich werde es irgendwie mit Avalonia umsetzen das orientiert sich ja stark an WPF 😃

Bleibt Gesund und einen Guten Rutsch ins neue Jahr

16.806 Beiträge seit 2008
vor 3 Jahren

Du solltest aber auch bedenken das nicht jeder vor allem ein Anfänger nicht über das nötige Hintergrund Wissen verfügt um diese Doc einfach zu verstehen.

Genau deswegen poch ich so darauf, dass Du die Doku liest.
Hier steht zu 99,999% die Wahrheit; daher lass (aktuell) in Deinem eigenen Interesse sowas wie Wiki und Discords weg, wenn die Dich nicht entsprechend auf die Inhalte der Doku verweisen.

Es ist nicht unbedingt wichtig zu wissen, wie alles 100% funktioniert, sondern Du musst lernen zu wissen, woher Du die notwendigen Infos bekommst.
Und Dein erster Anlaufpunkt sollte niemals Wiki oder Discord sein, sondern die Doku. 👍

P
Paddy1997 Themenstarter:in
31 Beiträge seit 2019
vor 3 Jahren

Ich werde zukünftig immer zuerst in die Doku schauen und wenn ich da mal was nicht verstehe || nicht finde kann ich ja immernoch fragen 😃
Danke für die Hilfe