Ich will C# lernen?

7 Antworten

Jein - eigentlich nicht, aber es gibt Avalonia.

Avalonia kann meines Wissens nach auch als Website gebaut werden, dann arbeitest Du mit deren XAML oder das Gegenstück aus C# heraus. Selber so gearbeitet oder ob es noch andere vergleichbare Frameworks weiß ich aber nicht.

Sehr viel besser wäre aber, Du arbeitest einfach mit HTML/CSS, z.B. Blazor ist dafür ein sehr gutes Framework. Ich bin mittlerweile soweit, dass ich auch Desktop-Anwendungen mit Blazor baue, einfach weil es wirklich gut funktioniert und ich dann alles aus einem Guss habe, auch wenn ich es mal als Website, oder Mobile-App aufbauen möchte.

Und generell gilt: Mit einer Sprache allein wirst Du nicht viel erreichen. Für die meisten Web-Anwendungen brauchst Du C#, SQL, JavaScript und HTML/CSS.

Woher ich das weiß:Berufserfahrung – C#.NET Senior Softwareentwickler

Ja und nein. Du kannst mittels Blazor WASM und Razor Pages einen Mix aus C# und HTML/CSS schreiben. Rein C# wird aber nicht funktionieren, da der Browser nur HTML/CSS kennt. Allerdings könntest du auch einen Wrapper programmieren. Dann wäre es möglich

Palladin007  15.03.2024, 14:43

Geht schon, manche Frameworks bieten sowas an - Avalonia zum Beispiel.

Aber besser wäre natürlich direkt HTML/CSS, schon allein, weil Avalonia mMn. nicht wirklich gut ist ^^

0
FaTech  15.03.2024, 14:47
@Palladin007

Tatsächlich kam mir auch Avalonia in den Sinn, doch habe ich das mal gesehen und das sah mir eher aus, wie ein großes Canvas. Fand ich eher nicht so gut. Deshalb habe ich es dann doch lieber außen vor gelassen 😅.

Avalonia mMn. nicht wirklich gut ist

Also ich muss sagen, dass es schon gut ist, aber es hat viele Bugs. Ich habe zum Beispiel ein Programm, dass hat ein Element und daraus erstellt der ein Binding zu einer Liste. Im laufenden Programm kann man dann mit Tab den ersten originalen Button erwischen. Die von Avalonia generierten nicht. Sehr Wild. Naja, das ist zum Beispiel einer der Bugs, die mir aufgefallen sind. Grundsätzlich würde ich aber lieber Blazor für Web und MAUI für Crossplatform nutzen (Ausnahme Linux, da muss man dann eine Lösung finden oder Avalonia nutzen).

Grundsätzlich stimme ich deine Aussage aber zu :)

0
Palladin007  15.03.2024, 16:33
@FaTech

Ein großes Canvas? O.o :D

Aber den Web-Support von Avalonia habe ich auch noch nie genutzt, ich weiß nur, dass es das gibt.

Also ich muss sagen, dass es schon gut ist, aber es hat viele Bugs.

Ich hab ein paar Monate damit gearbeitet und auf mich wirkt das wie ein schlechter Versuch, WPF nachzumachen - war ja auch die Vorlage.

Bugs sind das eine, aber ich sehe auch einige grundlegende konzeptionell tief liegende Probleme, wie z.B. dass man in einem Selector in ein Template "hinein" greifen kann. Das nutzen die auch sehr viel und das hat sehr weitreichende Auswirkungen.

Außerdem hatte ich in einem Projekt versucht, ein globales Font-Handling zu bauen, also man sagt an einer Stelle, was man haben will und das greift dann überall, wo nicht anders definiert. In WPF hat das immer super funktioniert, in Avalonia hat es zu krassen Performance-Problemen geführt.

... und noch ein paar andere Dinge.

Aber der Stand ist auch etwa ein Jahr her, ggf. ist es mittlerweile besser.

Grundsätzlich würde ich aber lieber Blazor für Web und MAUI für Crossplatform nutzen (Ausnahme Linux, da muss man dann eine Lösung finden oder Avalonia nutzen).

Web läuft auf Linux ganz hervorragend?

Für Desktop nutze ich aktuell Photino.NET, wie eine deutlich leichtgewichtigere und einfachere Variante von Electron. Man merkt, dass es etwas "stümperhaft" gebaut wurde, aber für meine Zwecke reicht es, der .NET 8 ist (war - ist paar Monate her) besser und es ist eben deutlich leichtgewichtiger.

Für Mobile kenne ich aktuell nur MAUI, was aber leider auch einige Macken hat. Ich hatte aber etwas gebaut, bei dem alles Blazor spezifische ausgelagert habe, so konnte ich ein ASP.NET- und ein MAUI-Projekt mit einem gemeinsamen Blazor-Projekt aufbauen.

0
FaTech  15.03.2024, 16:48
@Palladin007
Ein großes Canvas

Ich möchte definitiv nichts falsches sagen. Ich erinnere mich nicht mehr korrekt, ob es wirklich eins war. Zumindest hat es sich so angefühlt, daran erinnere ich mich noch.

Ich hab ein paar Monate damit gearbeitet und auf mich wirkt das wie ein schlechter Versuch, WPF nachzumachen

Ich selbst habe auch nur ein Projekt damit. Ich hatte genau dasselbe Gefühl. Trotzdem muss ich sagen, dass die Plattformunabhängigkeit des Frameworks ziemlich gut funktioniert (Linux, bei Mac war es eher naja beim Testen). Ich würde es aber auch nicht als Daily Projekt verwenden wollen.

Aber der Stand ist auch etwa ein Jahr her, ggf. ist es mittlerweile besser.

Mein Programm ist auch schon etwas älter, 2-3 Jahre oder mehr. Aber ich habe neulich erst geschaut und es schien immer noch so zu sein, wie vorher.

Web läuft auf Linux ganz hervorragend?

Definitiv. Meine Blazor Server Website läuft auf Ubuntu ohne Probleme (gehostet, wie auch aufgerufen). Dasselbe mit WASM. Ich bin nur Fan von Nativen Anwendungen und weniger von Web Apps. Darauf wollte ich hinaus (GUI Framework / Linux).

Variante von Electron.

Mit WebViews habe ich es nicht so. Mir fehlt da immer die Performance, die man mit einem nativen GUI erreichen kann. Egal welche Anwendung ich hatte, Teams, Discord, WhatsApp (das alte) oder sogar etwas in Blazor Hybrid. Immer hatte ich spürbare Performance Einbuße, die man hätte vermeiden können.

was aber leider auch einige Macken hat

Ja, ich habe auch bereits das eine oder andere festgestellt, doch ich empfinde es als super angenehm, entwicklerfreundlich und es läuft auch gut. Die Kleinigkeiten, die ich bisher hatte, kann ich gerne in Kauf nehmen. (Habe 2 Apps damit gemacht)

0
Palladin007  15.03.2024, 17:06
@FaTech
Mit WebViews habe ich es nicht so. Mir fehlt da immer die Performance

Die ganzen Negativ-Beispiele sind meines Wissens nach alle Electron? Das ist meine ich auch das einzige wirklich etablierte Framework dieser Art, Photino.NET ist noch ziemlich klein und unbedeutend.

Aber schau dir mal Photino.NET an, das wirkte auf mich deutlich performanter als Electron, allerdings muss ich auch dazu sagen, dass ich mit Electron gar kein eigenes Projekt (nur ein Experiment mit .NET 8) und mit Photino.NET nur ein kleines Projekt aufgebaut habe. Entscheidend war für mich die Start-Zeit und dass die Binaries deutlich kleiner waren, da Photino.NET die WebView nicht selber mit bringt, sondern auf dem System sucht.

Aber klar, mit nativen Mitteln hat man mehr Möglichkeiten, allerdings habe ich persönlich noch kein Projekt erlebt, wo ich das wirklich gebraucht habe.

Die Kleinigkeiten, die ich bisher hatte, kann ich gerne in Kauf nehmen.

Genau weiß ich das nicht mehr, aber meine Probleme mit MAUI waren Unterschiede im Detail, irgendeine Blazor-Komponente die aus irgendeinem Grund nicht mehr lief, im Browser aber schon. Das hat mich irgendwann so sehr genervt, dass ich gewechselt bin :D

0
FaTech  15.03.2024, 17:20
@Palladin007
meines Wissens nach alle Electron

Ja, außer ... Ich kann mich irren, aber ich meine, dass Teams nicht mehr Electron ist, sondern eine Edge Implementierung. Dafür lege ich aber nicht meine Hand ins Feuer 🔥.

etablierte Framework dieser Art

Ich habe tatsächlich auch ein eigenes Framework für C# gebaut. Basieren tut es auf WebView2. Es fühlt sich besser an, als das schwere Electron (meine Meinung), aber perfekt ist es dennoch nicht.

Aber schau dir mal Photino.NET

Es klingt definitiv interessant. In meinem aktuellen Projekt findet es keinen Anklang, aber ich werde es mir definitiv mal merken.

Aber klar, mit nativen Mitteln hat man mehr Möglichkeiten

Ja. Ich interessiere mich sehr für diese Dinge. Deshalb bin ich auch teilweise zu Rust gewechselt, um noch näher am System / Hardware zu sein und mehr rauszuholen. Derzeit arbeite ich an einem sehr großen Projekt, wo die Performance zählt. Ein natives UI kann da schon mal viel mehr herausholen.

irgendeine Blazor-Komponente die aus irgendeinem Grund nicht mehr lief

Ja gut. Mit Blazor Hybrid (MAUI) war meine Erfahrung auch sehr negativ. Ich nutze es eher ohne Blazor

0
Palladin007  15.03.2024, 18:00
@FaTech
dass Teams nicht mehr Electron ist, sondern eine Edge Implementierung

Dazu kann ich leider nichts sagen. Aber ich bezweifle, dass sie das Desktop-Frontend komplett neu gebaut haben, das wäre viel zu aufwändig. Also haben sie vermutlich einen anderen Host verwendet oder selber einen gebaut und der verwendet dann vermutlich WebView2, was im Hintergrund ja auch die Edge Engine ist.

In meinem aktuellen Projekt findet es keinen Anklang, aber ich werde es mir definitiv mal merken.

Es braucht auf jeden Fall mehr Leute, die daran mit arbeiten, vorallem solche, die am nativen Teil mitarbeiten können, also etwas für dich? :D Ich bin mit C++ nicht so fit, daher bin ich bei dem Thema raus.

Mit Blazor Hybrid (MAUI) war meine Erfahrung auch sehr negativ. Ich nutze es eher ohne Blazor

Lustigerweise war meine Erfahrung mit Blazor Hybrid genau andersherum.
Mit dem XAML-Ansatz bin ich gar nicht klar gekommen, dabei stehe ich eigentlich mit CSS auf dem Kriegsfuß und habe recht viel Erfahrung von WPF :D Blazor Hybrid hat dagegen sehr gut funktioniert, aber es gab immer wieder Problemchen, die auf Dauer dann doch nerven.

0
FaTech  15.03.2024, 18:12
@Palladin007
Aber ich bezweifle, dass sie das Desktop-Frontend komplett neu gebaut haben

Ich meine, irgendwo gelesen zu haben dass das gesamte frontend Framework auch getauscht wurde. Aber naja, Spekulationen...

Microsoft verwendet ja vermehrt Rust. Vielleicht haben die ja auch Teams auf Tauri + Rust umgestellt... Wobei es sich wirklich anfühlt, als wenn es direkt in edge integriert ist. Naja, wie gesagt, Spekulationen...

Ich bin mit C++ nicht so fit, daher bin ich bei dem Thema raus.

Naja, direkt am Framework, welches ja nicht mir gehört, würde ich nicht arbeiten wollen.

C++ mag ich schon sehr, doch meine "liebe" geht gerade in Richtung Rust 🫡.

Ich mag es lieber eigene Projekte von Grund auf aufzubauen, auch wenn es extrem große Projekte sind. Sitze an meinem derzeitigen Projekt seit bereits über einem Jahr.

Lustigerweise war meine Erfahrung mit Blazor Hybrid genau andersherum.

Die Antwort kam unerwartet, haha. Ja, witzig. Keine Ahnung, wie so etwas zustande kommt.

0

Nein kannst du nicht,

Webseiten so wir sie kennen werden mithilfe von HTML, CSS und JavaScript erstellt. Du kannst mithilfe von C++ oder C# ein Programm erstellen, der dir eine Webseite generiert bzw. ein Webserver darstellt, aber die klassische Webseite benötigt diese Schlüssel-Webtechnologien.

Woher ich das weiß:Berufserfahrung – Ich bin gelernter Mediengestalter Digital und Print(IHK)

Mit C# kannst du nur einen "Server" bauen, bzw. ein Programm das Anfragen entgegen nimmt, Daten zurückliefert, Datenbank Abfragen etc. absetzt, sprich ähnliches wie mit PHP oder Serverseitigem Javascript machen.

Für das FrontEnd, das was im Browser dargestellt wird, also die Webseite benötigst du weiterhin HTML und CSS weil dass das Grundgerüst einer jeden Webseite ist und für die Struktur und Optik Zuständig ist.

Wenn du mit C# auch eine Oberfläche bauen willst, dann musst du da ein richtiges Programm erstellen und kannst das nicht als Webseite machen sondern als Programm zum installieren unter Windows/Linux

C# ist eher für Backend und Desktop Anwendungen geeignet.

Wenn du Frontend entwickeln möchtest kommst du um HTML/CSS/JS nicht herum.

Woher ich das weiß:Hobby – Leidenschaftlicher Programmierer