Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von Palladin007
Thema: Wie funktioniert die Seitennavigation in MAUI?
Am im Forum: Cross Platform Entwicklung - Mobile und IoT

Schau dir meinen Link an.
Oder lies dich am besten direkt in das ganze Kapitel zur Shell ein.
Ich musste auch erst ein bisschen damit herumspielen, bevor ich einen Überblick hatte ^^

Du definierst die Inhalte der Shell und damit indirekt auch den Aufbau der Anwendung, also z.B. Tabs oder Flyout-Inhalte.
Die Navigation arbeitet dann mit Routen, ein bisschen vergleichbar mit der Navigation in einer Web-Anwendung.

Du definierst die Inhalte und Routen und wie das alles zusammenhängt und rufst die Routen auf, um zu navigieren.

Thema: Wie funktioniert die Seitennavigation in MAUI?
Am im Forum: Cross Platform Entwicklung - Mobile und IoT

So ein Popup ist ja auch nicht viel anders, als sowas:


<Grid>
    <Content />

    <Popup IsVisible="..." Background="...">
        <PopupContent Margin="..." />
    </Popup>
</Grid>

Also der PageContent, dank einem Grid über dem aktuellen Conten + Margin und irgendein halbtransparenter Hintergrund. Kann man sich also auch wunderbar selber bauen.
Oder das Community Toolkit, damit macht man eigentlich nicht viel falsch.

Aber ich stimme Bernd zu, ich wüsste auf Anhieb keine App, die das so macht
Außerdem kann die Shell dann die ganze Navigation übernehmen: .NET MAUI Shell navigation - .NET MAUI

Thema: 12 MB Große Exe - Datei - Warum?
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

@Abt:
Soweit ich weiß sind die genannten Build-Funktionen für .NET 4.8 nicht verfügbar, oder?
Demnach fällt hier auch der Single File Build raus, da es hier ja um .NET 4.8 geht.

Thema: 12 MB Große Exe - Datei - Warum?
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Zitat von Sindelfinger
Ich habe nur ganz wenige, kleine Resourcen eingebettet. Das sind ein paar Icons und ein paar Fonts - das war's.
Wenn es keine Resourcen sind, ist es etwas anderes, aber das kannst nur Du sehen.
Vielleicht hast Du nicht alle Resourcen auf dem Schirm? Dekompiliere doch mal mit ILSpy und schau dir an, was der dir für Resourcen anzeigt.
Oder natürlich irgendwelche schrägen Einstellungen.

Ohne mehr Infos führt das hier aber zu nichts.
Wirf doch mal so lange Inhalte raus, bis Du einen deutlichen Größenunterschied sehen kannst.
Dann kennst Du die Ursache oder zumindest einen Teil davon.
Zitat von Sindelfinger
Mein kleines Testgerät hier wollte die - zum Glück testhalber schnell erstellte - .net Anwendung nicht starten.
.NET muss natürlich installiert sein, alt und neu sind nicht kompatibel - hast Du das bedacht?
Wenn das Installieren von .NET nicht in Frage kommt, kannst Du mit der "self-contained"-Option auch Runtime + Framework mit liefern, dann wird das Ergebnis natürlich deutlich größer, aber mit anderen Funktionen kann man da wieder viel reduzieren.

Application publishing - .NET
Installieren von .NET unter Windows - .NET
core/supported-os.md at main · dotnet/core (Und die anderen Versionen - schau im Pfad)

Thema: 12 MB Große Exe - Datei - Warum?
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Ich hab gerade eine WPF Anwendung mit 4.8 und Microsoft.Xaml.Behaviors, Prism.WPF und Prism Core erstellt, sonst nichts.
Der Debug-Build ist unter 2 MB groß.

Das Problem liegt also in deinem eigenen Code, hast Du große Dateien als embedded Resource, ein Haufen Bilder oder besondere Einstellungen?

Und Du solltest auf das neue .NET umsteigen - macht vieles deutlich einfacher.
Z.B. ist die csproj-Datei *deutlich* übersichtlicher.

Thema: Cancel Task / Soll immer nur ein Task laufen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Zitat von Abt
Oder es ist ein Fehler im Code
Und auch in der Frage?
Die Frage ist ja gerade, warum die vorherigen Tasks nicht abbrechen.
im Umkehrschluss heißt das, die Tasks sollen abbrechen.

Aber natürlich ist das alles ohne mehr Infos nur Spekulation.
Zitat von Abt
Lieber eine Lösung, die funtioniert
Wieso sollte das nicht funktionieren?
Gut, dieser Code hat seine Macken, aber das Konzept an sich sollte funktionieren.

Zitat von Abt
Davon abgesehen gibts eine fast fertige Lösung in den Docs: TaskScheduler Class
Mich stört nicht, dass ich (wenn es mein Projekt wäre) mich da einarbeiten müsste, sondern dass ich das dann auch von meinen Kollegen verlange, sobald sie an der Stelle arbeiten.
Für mich wäre es schon deshalb eine Option, weil es interessant ist, aber wenn später jemand damit arbeitet und nicht so viel Interesse zeigt, ist diese Klasse ein Fehler-Risiko, das man mit einer einfacheren Implementierung reduzieren oder sogar verhindern könnte.

Thema: Cancel Task / Soll immer nur ein Task laufen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Die Channel würden zwar nur einen Task zulassen, aber weitere Aufgaben würden warten, oder?
Im Test-Code soll aber der jeweils laufende Task abgebrochen werden, daher schließe ich darauf, dass das auch produktiv so sein soll.

Und ein eigener TaskScheduler klingt ziemlich overkill.
Ich würde - wenn der jeweils laufende Task abgebrochen werden soll - bei dem simplen Ansatz aus dem Test-Code mit der CancellationTokenSource bleiben.
Es erfüllt seinen Zweck und ich leicht zu verstehen und potentiell nötige Architektur-Umbauten lassen sich mit einer Abstraktion zumindest offen halten.

Hängt natürlich immer vom konkreten Ziel ab, aber solange die Anforderungen es nicht erzwingen, würde ich auf eher schwierigere Lösungen (viele haben ja schon Schwierigkeiten mit Tasks an sich) verzichten.

Thema: Cancel Task / Soll immer nur ein Task laufen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Das Geheimnis ist der CancellationToken - den gibt's nicht ohne Grund
Jeder Task muss seinen Token für sich habe, dein Code prüft aber immer die jeweils neuste CancellationTokenSource und die ist nie abgebrochen, weil sie immer sofort ersetzt wird.

Thema: MEF oder anderes Framework?
Am im Forum: Rund um die Programmierung

Ich kenne MEF nicht, daher kann ich keine Alternative empfehlen.
Ich habe bisher aber nichts derartiges vermisst, eine modulare Architektur würde ich mit Hilfe der "Microsoft.Extensions.***"-Frameworks aufbauen, hauptsächlich das DependencyInjection-Framework für die generelle Architektur und weil man ziemlich simpel Services per Reflection nachladen, registrieren und so in der Anwendung verteilen kann.
Eine geeignete Architektur musst Du dann aber immer noch selber entwerfen.

Zitat von Maliko
Ist das Entity Framework immer noch State of the Art oder gibt es dafür auch bereits einen Nachfolger, der inzwischen genutzt wird?
Ja und Ja
Das Entity Framework wurde neu entwickelt, heißt aber immer noch Entity Framework - meist gefolgt von einem "Core", also "Entity Framework Core".
Das kannst Du bedenkenlos verwenden.

Thema: Welche UI-Technologie von MS einsetzen???
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Zitat von Gimmick
Also wäre es vielleicht so gemeint, dass sich HTML-Technologien verbreiten, weil viel in Richtung Multiplatform geht, aber reine Desktop-Anwendungen betrifft das nicht, sie werden nur weiter zurückgehen.
So habe ich das gemeint, ja.
Die größte Zielgruppe arbeitet an betrieblichen Produkten, die sind natürlich daran interessiert, viele Menschen zu erreichen und das geht am besten, wenn es überall läuft.
Zitat von Gimmick
Gibt es überhaupt etwas, das mit MAUI-Blazor gar nicht geht?
Mit MAUI Blazor habe ich noch keine Erfahrung, aber MAUI ohne Blazor hat noch einige Probleme.
Ich sehe da viel Potential, aber es bleibt abzuwarten, wie es sich entwickelt.
Zitat von Wilfried
Avalonia platform support - why it's simple
Ich arbeite seit bald einem Jahr mit Avalonia und ich bin so gar nicht begeistert davon.
Ja, es läuft auf vielen Geräten und ist recht nahe an WPF, aber es wirkt auf mich an einigen Stellen nicht ganz zuende gedacht, ich habe z.B. immer wieder Probleme mit den Styles.
Man kann es natürlich ausprobieren, es ist nicht pauschal schlecht, aber solange ich die Wahl habe, werde ich es nicht mehr nutzen.

Thema: Welche UI-Technologie von MS einsetzen???
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Zitat
Welchen Vorteil hätte Blazor denn für eine reine Desktop-Anwendung gegenüber WinUI?
Keinen, außer so allgemeine Dinge, wie dass Du Web-KnowHow nutzen kannst.

Viel spannender ist, dass Du ein Projekt mit einer kompletten Code-Basis aufbauen kannst, die auf dem Desktop, als Website oder Handy-App laufen kann.
Wenn Du nur ein klassisches Desktop-Programm haben willst, würde ich kein Blazor verwenden - außer Du hast viel Erfahrung mit HTML/CSS.
Für viele Firmen kann das aber ein entscheidender Vorteil sein, so reicht ein Team, das sich auf einen begrenzten Technologie-Stack spezialisieren kann und das kann alle Ziel-Plattformen bedienen.

Ich würde es von den technischen Begebenheiten abhängig machen, also welche Nachteile Blazor auf dem Desktop hat (weiß ich nicht) und das mit deinen Anforderungen abgleichen.
Und Du solltest auch deine Fähigkeiten und die Zukunftsplanung mit einbeziehen, also wenn es mal als Website laufen soll, bietet sich natürlich Blazor an.

Thema: PDF auf 2 verschiedenen Monitoren öffnen
Am im Forum: Grundlagen von C#

Guter Gedanke

Bei WebView2 muss die Engine installiert sein, aber das dürfte zumindest auf den Privat-Rechnern überall der Fall sein, schätze ich.
Das Browser Control ist natürlich deutlich überdimensioniert für das Ziel, aber sollte funktionieren.

Thema: PDF auf 2 verschiedenen Monitoren öffnen
Am im Forum: Grundlagen von C#

Zitat
Gibt es ein PDF-Control das Free ist und einigermaßen gut aussieht ?
Befrag eine Suchmaschine deiner Wahl nach "c# pdf viewer", ich kenne nichts.
Zitat
2x Prozess aufrufen funktioniert leider nicht.
Dann macht dir wohl der Adobe Reader einen Strich durch die Rechnung, ich schätze mal, er möchte die PDF im selben Fenster öffnen, stellt fest, dass es die selbe Datei ist und öffnet einfach nur den bereits offenen Tab.

Thema: PDF auf 2 verschiedenen Monitoren öffnen
Am im Forum: Grundlagen von C#

Das öffnet das Standard-Programm, in meinem Fall wäre das mein Browser inklusive offener Tabs.
Natürlich kannst Du einen Prozess auch einfach zwei Mal starten, aber es kann auch sein, dass das Programm das verhindert, Browser und der Adobe Reader haben da besonderes handling, das musst Du austesten. Wenn die dir da einen Strich durch die Rechnung machen, hast Du jedenfalls keine Chance.

Aber Du kannst das Fenster positionieren, allerdings geht das nur über die WinAPI.
Du brauchst das WindowHandle (der Prozess kann aber auch mehrere Fenster haben), dann kannst Du mit EnumDisplayMonitors die Monitore abrufen, mit GetMonitorInfo Details über den Monitor abrufen und mit SetWindowPos das Window positionieren.

Oder Du schaust dich nach einem PDF-Control um und erstellst die Fenster selber, dann hast Du mehr Möglichkeiten und kannst auch beliebig viele Fenster öffnen.
Empfehlen kann ich dazu aber nichts.

Thema: Fehler MC6029 bei selbst erstellter Projektvorlage
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Ein Namespace darf nicht mit einer Zahl beginnen.

Thema: Strukturierte Programmierung erlernen
Am im Forum: Rund um die Programmierung

Zu der Frage nach dem "Wie" kann ich nichts mehr sagen, ich stimme Abt und Th69 zu.

Aber etwas, was man mMn. immer auf im Hinterkopf haben sollte: S.O.L.I.D
Das sind fünf Prinzipien, die nicht unbedingt einfach zu verstehen aber sehr wichtig sind.
Es gibt aber keine Anleitung, was man wie machen sollte und dann wird alles gut, es sind stattdessen sehr abstrakt formulierte Prinzipien, von denen man die Gründe und die Ziele verstehen muss, nur dann kann man sie auch richtig anwenden.

Am besten behält man sie immer im Hinterkopf und liest sich da alle paar Monate/Jahre neu ein, um sein Verständnis mit den neu gemachten Erfahrungen aufzufrischen.
Ansonsten kann ich noch das Buch "Clean Architecture" von Robert C. Martin (Uncle Bob) empfehlen, da sind unter Anderem die mMn. besten Erklärungen für die SOLID-Prinzipien enthalten. Oder in Video-Form eine Reihe von David Tielke auf YouTube, dessen Erklärungen ich auch gut finde - wenn auch nicht am besten: SOLID Principles von Robert C. Martin (Uncle Bob)



PS:
Und M.L. war schneller

Thema: UI Themes zur Verwendung mit .NET MAUI
Am im Forum: Cross Platform Entwicklung - Mobile und IoT

Zitat von BerndFfm
Man muss viele Sachen manuell machen. Bei verschiedenen Auflösungen des Displays, kommt bei Handys dauernd vor, muss man Buttongröße und Schriftgröße selber per Programm anpassen.
Meiner Erfahrung nach ist das, was Du beschreibst, ein selbst gemachtes Problem
Das Standard-Verhalten reicht völlig aus, um responsive Oberflächen zu entwerfen, erst bei einer zu sehr abweichender Oberfläche (z.B. Menü-Zeile vs. Menü-Flyout) geht es natürlich nicht mehr automatisch.
Z.B. bietet das Grid ganz einfache Möglichkeiten, Position und Größe der Inhalte prozentual festzulegen, in Verbindung mit dem Margin, MinWidth oder MaxWidth und Alignments erreicht man schon sehr viel.

Allerdings geht es bei der Frage, was nun einfacher ist, nicht darum, wie gut existierende Controls implementiert wurden (WPF, Xamarin, MAUI, etc. sind ja alle sehr flexibel), sondern um die Syntax und die grundlegenden Konzepte, wie Styling oder Templates, bzw. wie leicht das alles zu erlernen ist.
Zitat von BerndFfm
Einige Controls sind nicht brauchbar
In jedem UI-Framework gibt's Komponenten, die nicht so dolle sind
Ich hatte zuletzt erst mit file-Input in einem Web-Projekt Probleme und bei einem Avalonia-Projekt passe ich ständig Default-Templates an.

Thema: UI Themes zur Verwendung mit .NET MAUI
Am im Forum: Cross Platform Entwicklung - Mobile und IoT

Zitat von OXO
Ohne einen Designer mit WYSIWYG dauert das Ganze halt nunmal um ein Zigfaches länger, selbst wenn man eingearbeitet ist.
Ich bestätige Abts Einschätzung.
Ich ziehe XAML jederzeit einem Editor vor, einfach weil ich 1. viel schneller bin und 2. besser steuern kann, was ich haben will.
Es ist alles eine Frage der Übung und mit der Zeit hast Du schon eine ziemlich klare Vorstellung, wie der Code aussieht, wenn Du es startest.
Aber das dauert natürlich.

Zitat von Abt
im Gegensatz zu eben HTML die Lernhürde super hoch
Dem kann ich aber nicht zustimmen.
Ob nun XAML oder HTML einfacher ist, wage ich nicht zu beurteilen, aber CSS oder häufig auch JavaScript machen es für mich furchtbar. Aber Blazor beseitigt zumindest JavaScript zu einem großen Teil aus der Gleichung.
Ich muss aber auch sagen, dass ich mit WPF und XAML "aufgewachsen" bin und HTML/CSS erst später dazu kam, mit anderem Werdegang würde ich das vermutlich andersherum sehen.

Thema: Compile bis zur Anzeige auf Android Emulator sehr langsam
Am im Forum: Cross Platform Entwicklung - Mobile und IoT

Die CPU unterstützt bis zu 16 GB RAM:
Intel Core i55257U Processor 3M Cache up to 3.10 GHz Product Specifications
Dann müsste es das Notebook eigentlich auch schaffen.

Aber ob das wirklich viel bringt, kann ich nicht sagen.
Was bei dir die die Haupt-Ursache ist, musst Du herausfinden, der TaskManager kann da bestimmt mer Auskunft geben.
Du kannst natürlich erst einmal auf 16 GB aufrüsten und gucken, wie viel es bringt, aber wenn nicht, wäre das Geld in den Sand gesetzt.

Am besten, Du kaufst einen Desktop-PC, das ist meist günstiger und Du hast flexiblere Möglichkeiten aufzurüsten.

Und wenn Du alles für Unterwegs auch auf dem Notebook brauchst:
Besorge dir eine online Quellcodeverwaltung (oder ein eigener Git-Server, z.B. auf einem RaspberryPi) und die Visual Studio Einstellungen kannst Du über den Account verteilen lassen.

Thema: Compile bis zur Anzeige auf Android Emulator sehr langsam
Am im Forum: Cross Platform Entwicklung - Mobile und IoT

Das compilen dauert nicht so lange, sondern das starten des Emulators und das installieren darauf
Wenn Du den Emulator offen lässt, geht das bedeutend schneller, dauert aber natürlich immer noch seine Zeit.
Ansonsten gibt's noch HotReload, das funktioniert im begrenzten Maße ganz gut, dann kannst Du die UI (ich hab's nur mit XAML getestet) live ändern und direkt sehen, wie es aussieht.

Natürlich kann auch dein Rechner zu langsam sein.
Deine CPU hat schon einige Jahre auf dem Buckel und nur zwei Kerne (4 Threads), das mit nur 8GB RAM ist ziemlich sicher zu langsam.
Schau doch mal, wie stark die vier Threads und der RAM ausgelastet sind, VS2022 braucht recht viel, wenn dein RAM voll ist, lagert Windows auf die SSD aus und das merkst Du dann sehr deutlich.

Zitat von OXO
Ist das dafür wirklich so wenig ausreichend, oder geht es einfach nicht schneller bis die App auf dem Emulator sichtbar wird?
Beides und bedenke: Dein altersschwacher Rechner muss ja auch den Emulator am Laufen halten.
Zitat von OXO
Würde hier mehr CPU Power oder RAM helfen?
Das kann man beinahe immer mit "Ja" beantworten

Thema: UI Themes zur Verwendung mit .NET MAUI
Am im Forum: Cross Platform Entwicklung - Mobile und IoT

Fertige UIs wirst Du nicht bekommen.
Du kannst dich aber mal bei den großen Anbietern (z.B. DevExpress) umschauen, ob die schon was für MAUI haben.

Ansonsten:
FontAwesome und .NET MAUI Community Toolkit

Darüber hinaus solltest dir Du aber lieber die Zeit nehmen und Erfahrung mit MAUI sammeln.
Mit der Zeit wird's einfacher und so hast Du dann alle Möglichkeiten offen.
Und wenn Du nur mit XAML Schwierigkeiten hast, gibt's auch C#-Markup, ich persönlich finde XAML aber übersichtlicher.

Thema: Injecten von Services in .MAUI Blazor
Am im Forum: Cross Platform Entwicklung - Mobile und IoT

Ich hab mir deine Frage nochmal durchgelesen.

Du hast einen Service per Dependency Injection, den es nur auf Mobile-Geräten gibt?
Also beim Aufbau des Containers wird dieser Service nur für Mobile-Geräte registriert?

Was hinter dich daran, diesen Service auch für alle anderen Geräte zu registrieren, zur Not eine Dummy-Implementierung, die nichts tut? Stichwort Null object pattern
Oder Du rufst den Service optional ab, das geht über den Constructor (Parameter muss optional sein), mit Inject weiß ich nicht.
Oder Du registrierst eine Func<IMyService>, die den Service abruft und die Func rufst Du nur für Mobile-Geräte ab.

JavaScript brauchst Du dafür ganz sicher nicht.

Thema: Injecten von Services in .MAUI Blazor
Am im Forum: Cross Platform Entwicklung - Mobile und IoT

..., deshalb ein Enum für sowas

Zitat
In C# werden Dependencies meistens über den Klassen Konstruktor als Parameter injected
Nicht in Blazor - nicht nur zumindest.
Da gibt es das InjectAttribute, was Property injection aktiviert.
Constructor injection ist bei Komponenten standardmäßig *nicht* möglich.
Ändern kann man das, indem man seinen eigenen IComponentenActivator erstellt und im Container registriert, der Default ist ziemlich simpel: DefaultComponentActivator. Einfach einen IServiceContainer im Konstruktor entgegen nehmen und anstelle des Activators die ActivatorUtilities nutzen.

Wie das bei MAUI mit Blazor aussieht, weiß ich nicht, aber vermutlich genauso.

Thema: Regular Expressions
Am im Forum: Rund um die Programmierung

Zitat
komplett für Menschen schwer zu lesener Code
Der ist nur unformatiert, ist immer noch gutes altes HTML

Zitat
der die gesuchten Daten (die Weltranglistenpunkte) nicht mal enthält
Doch - Zeile 220 (zumindest bei dir)
Fängt mit figure und hat als erstes Child eine table.
Da stehen (vermutlich - hab's nicht abgeglichen) alle Daten drin.
Leider keine id, damit wäre es leicht gewesen, die Daten zu finden.

Thema: Regular Expressions
Am im Forum: Rund um die Programmierung

Zitat
Da die Webseite der FIFA selber aber nicht geeignet ist, weil der Seitensourcecode erst im Browser gerendert werden muss
Kann ich so nicht bestätigen.
Ich kann deine URL einfach als curl-command absetzen und bekomme alles zurück - inklusive der Daten.

Aber wenn Du eine vollständige Website hast, kannst Du dir auch das HTML Agility Pack anschauen.
Das kann CSS-Selektoren, dabei hilft dir dann der Browser, um den richtigen Selector zu finden.

Thema: Regular Expressions
Am im Forum: Rund um die Programmierung

Glaub mir: XPath ist einfacher.

Und du kannst auch das XML auf eine Klasse mappen oder Du liest es Manuell Element für Element.

Was nun die bessere Option ist, kann ich nicht sagen, ohne zu wissen, wo die Reise hin gehen soll.

Thema: Regular Expressions
Am im Forum: Rund um die Programmierung

Wäre es dann nicht besser, den Fehler mit XML zu suchen, anstatt auf Regex zurückzugreifen?
Weil mit XML oder XPath geht es ganz sicher - Du hast also irgendwas falsch gemacht.

Wenn ich das z.B. in Notepad++ werfe, ein root-Element drum (damit es ein Document ist), kann ich problemlos alle Werte abrufen:

Thema: Regular Expressions
Am im Forum: Rund um die Programmierung

Du könntest auch einfach nach "</tr>" splitten, dürfte bedeutend einfacher sein:


var text = "<tr><td>1.</td><td>&#x1f1e7;&#x1f1f7; Brasilien</td><td>1840.77</td><td>&#x2194;&#xfe0f;</td></tr><tr><td>2.</td><td>&#x1f1e6;&#x1f1f7; Argentinien</td><td>1838.38</td><td>&#x1f51d;</td></tr><tr><td>3.</td><td>&#x1f1eb;&#x1f1f7; Frankreich</td><td>1823.39</td><td>&#x1f51d;</td></tr><tr><td>4.</td><td>&#x1f1e7;&#x1f1ea; Belgien</td><td>1781.3</td><td>&#x1f53b;</td></tr><tr><td>5.</td><td>&#x1f3f4;&#xe0067;&#xe0062;&#xe0065;&#xe006e;&#xe0067;&#xe007f; England</td><td>1774.19</td><td>&#x2194;&#xfe0f;</td></tr><tr><td>6.</td><td>&#x1f1f3;&#x1f1f1; Niederlande</td><td>1740.92</td><td>&#x1f51d;</td></tr>";

foreach (var part in text.Split("</tr>", StringSplitOptions.RemoveEmptyEntries))
    Console.WriteLine(part + "</tr>");

Oder Du parst es als XML - HTML ist ja auch nix anderes als XML.
Damit hättest Du dann mit Abstand die meisten Möglichkeiten.

Thema: Von einem C# Programm aus einen Linux Rechner steuern
Am im Forum: Rund um die Programmierung

Zitat von Abt
Das haste aber bei jeder Remote Technologie
Natürlich, deshalb sollte der Sender ja auch nicht mehr machen können, als er braucht.
Also kein Shell-Zugriff, sondern nur passgenau definierte Funktionen, die gar keinen Spielraum bieten.

Thema: Von einem C# Programm aus einen Linux Rechner steuern
Am im Forum: Rund um die Programmierung

Zitat von dannoe
sondern eher dass der Sender des Befehls auch entsprechend authentifiziert und autorisiert ist

Es bleibt dennoch ein enormes Sicherheitsrisiko.
Wie stellst Du sicher, dass der Sender nicht unter fremder Kontrolle steht?

Du solltest immer darauf achten, dass dein Server abgesichert ist und wenn Du einer externen Instanz erlaubst, beliebigen Code auszuführen, öffnest Du Tür und Tor für Angreifer.
Besser wäre es, wenn man die konkreten Anwendungsfälle mit entsprechenden Parametern in genau dem Rahmen implementiert, den man braucht, nicht mehr, nicht weniger.
Wenn der Sender dann unter fremder Kontrolle steht, kann der zwar unerlaubt auf die API zugreifen, aber auf dem Server hat er maximal den Einfluss, den die implementierten Funktionen erlauben.

Lässt Du stattdessen frei Zugriff auf die Shell zu, könnte der Angreifer absolut alles machen.