Benutzer mit den meisten Antworten
Zukunft WinForms C#

Frage
-
Hallo,
so wie es aussieht wird Winforms nicht mehr weiterentwickelt.
Weiß jemand die Gründe, denke für kleine Anwendungen ist es ideal.
Grüße Sandra
- Bearbeitet Sandra Bauer Mittwoch, 2. November 2016 18:20
Antworten
-
Hallo Sandra,
Google Trends sagt, so angewendet, wenig aus. Das mehr Anfragen zu neuen Technologien stattfinden - wie derzeit Windows 10 App -, liegt in der Natur der Sache. Es ist schlicht und einfach für alle Entwickler anfangs neu, was zu mehr Suchanfragen bei Google und Co. führt.
Windows Forms wird noch für Jahre verfügbar sein, d. h. solange das .NET Framework in der heutigen Form existiert. Grundlage dafür sind die Windows Steuerelemente und die stecken in Windows selbst drin - wenn auch ohne .NET Wrapper. Selbst bei Windows 10 hat Microsoft erst einen Teil auf neue Beine gestellt; man schaue in die "neuen" Einstellungen und wie oft sie auf die "alte" Systemsteuerung zurückgreifen.
Ein alter Ratschlag in neuem Gewand wiederholt: Als Entwickler sollte man sich über neue Technologien auf dem Laufen halten, so dass man passende die für jeweilige Applikation auswählen kann. Sonst kann es einem passieren wie den Visual Basic 6 Entwicklern (uam.), die heute damit kämpfen, ihre Anwendungen am Laufen zu halten. Aber auch die werden (im Rahmen) weiter unterstützt, obwohl der Support längst abgelaufen ist.
Gruß Elmar
- Bearbeitet Elmar BoyeEditor Mittwoch, 2. November 2016 19:13
- Als Antwort markiert Sandra Bauer Donnerstag, 3. November 2016 18:37
-
Hi Sandra,
Windows Forms basieren auf einer pixelorientierten Technologie aus Zeiten, wo die CPU die Pixel "berechnete" und die Grafikkarte nur aus einem DA-Wandler bestand. Dass das so ist, kann man einfach erkennen, wenn man in Windows Forms Skalierungen ausführt und das Ergebnis "klötzelig" ist. Moderne Grafikkarten können vektororientiert und mit Layern arbeiten. Diese neuen Wege werden im Nachfolger der Windows Forms, im WPF gegangen. Damit ist WPF die Weiterentwicklung der Windows Forms. Wie bei jeder Weiterentwicklung wurden auch bei WPF viele Neuerungen neben dem einfachen Übergang von Pixeln zu Vektoren eingeführt, wie z.B. die Schachtelung von Objekten, die universelle Datenbindung, das Durchreichen von Ereignissen usw. Z.B. die Schachtelung wäre mit der Primitivität des Windows Forms Designer nur mit erheblichem Aufwand möglich gewesen und hätte zu schwer durchschaubarem Designer-Code geführt.--
Viele Grüsse
Peter Fleischer (MVP Reconnect, Partner)
Meine Homepage mit Tipps und Tricks- Als Antwort markiert Sandra Bauer Donnerstag, 3. November 2016 18:37
-
Hi Sandra,
Deine Herangehensweise ist zu kurzsichtig. Wenn Du wirklich stabile und gut wartbare Anwendungen erstellen willst, die auch noch in großem Umfang automatisch getestet werden können, dann geht kein Weg an MVVM vorbei. Dabei brauchst Du keine Loaded und Unloaded Ereignisse, da in der Oberfläche kein CodeBehind erforderlich ist.Wenn die Windows Forms Anwendung gut strukturiert ist (Methoden in den unterschiedlichen Layern), dann kann der Umstieg zu MVVM recht einfach sein. Meine Erfahrung zeigt aber, dass viel Anwendungen lange gewachsen sind und dass es keine sauber abgegrenzte Geschäftslogik gibt, die als Basis für den ViewModel dienen kann.
Neben den von Dir genannten Containern, die mehrere UI-Elemente aufnehmen können, kann jedes Steuerelement als Container betrachtet werden, auch, wenn oft erst einmal nur ein UI-Element eingebettet werden.
Zu beachten ist insbesondere die Datenbindung, die in ähnlicher Form in Windows Forms Anwendungen nur sehr begrenzt einsetzbar ist (DataBindings.Add). Dazu kommen dann noch Converter, die typsichere Bindungen ermöglichen. Zu beachten ist auch das Styling, was in Windows Forms im Gegensatz zu WPF nur rudamentär ausgebildet ist.
--
Viele Grüsse
Peter Fleischer (MVP Reconnect, Partner)
Meine Homepage mit Tipps und Tricks- Als Antwort markiert Sandra Bauer Mittwoch, 9. November 2016 17:31
-
Hallo Sandra,
Mit dem Blick auf zwei Folien ist nicht einmal ein Anfang gemacht.
WPF mit Windows Forms zu vergleichen, ist so also ob man einen Kutscherpferd mit einem Rennpferd vergleicht. Der eine tut zwar seine Arbeit und ist robust und genügsam, das andere will gehegt und gepflegt werden geht dann aber ab...
Und wohl jeder der eine Portierung ernsthaft erwogen oder gar vorgenommen hat, wird Dir sagen, das es am Ende mehr eine Neuentwicklung ist. Wobei das Endresultat lohnt, aber einiges an Mühe, Schweiss (und manchmal Tränen) gekostet hat.
Und wieder der Hinweis auf die (sooft verhasste) Dokumentation.
Gruß Elmar
- Als Antwort markiert Sandra Bauer Mittwoch, 9. November 2016 17:31
Alle Antworten
-
Hallo Sandra,
Google Trends sagt, so angewendet, wenig aus. Das mehr Anfragen zu neuen Technologien stattfinden - wie derzeit Windows 10 App -, liegt in der Natur der Sache. Es ist schlicht und einfach für alle Entwickler anfangs neu, was zu mehr Suchanfragen bei Google und Co. führt.
Windows Forms wird noch für Jahre verfügbar sein, d. h. solange das .NET Framework in der heutigen Form existiert. Grundlage dafür sind die Windows Steuerelemente und die stecken in Windows selbst drin - wenn auch ohne .NET Wrapper. Selbst bei Windows 10 hat Microsoft erst einen Teil auf neue Beine gestellt; man schaue in die "neuen" Einstellungen und wie oft sie auf die "alte" Systemsteuerung zurückgreifen.
Ein alter Ratschlag in neuem Gewand wiederholt: Als Entwickler sollte man sich über neue Technologien auf dem Laufen halten, so dass man passende die für jeweilige Applikation auswählen kann. Sonst kann es einem passieren wie den Visual Basic 6 Entwicklern (uam.), die heute damit kämpfen, ihre Anwendungen am Laufen zu halten. Aber auch die werden (im Rahmen) weiter unterstützt, obwohl der Support längst abgelaufen ist.
Gruß Elmar
- Bearbeitet Elmar BoyeEditor Mittwoch, 2. November 2016 19:13
- Als Antwort markiert Sandra Bauer Donnerstag, 3. November 2016 18:37
-
Hi Sandra,
Windows Forms basieren auf einer pixelorientierten Technologie aus Zeiten, wo die CPU die Pixel "berechnete" und die Grafikkarte nur aus einem DA-Wandler bestand. Dass das so ist, kann man einfach erkennen, wenn man in Windows Forms Skalierungen ausführt und das Ergebnis "klötzelig" ist. Moderne Grafikkarten können vektororientiert und mit Layern arbeiten. Diese neuen Wege werden im Nachfolger der Windows Forms, im WPF gegangen. Damit ist WPF die Weiterentwicklung der Windows Forms. Wie bei jeder Weiterentwicklung wurden auch bei WPF viele Neuerungen neben dem einfachen Übergang von Pixeln zu Vektoren eingeführt, wie z.B. die Schachtelung von Objekten, die universelle Datenbindung, das Durchreichen von Ereignissen usw. Z.B. die Schachtelung wäre mit der Primitivität des Windows Forms Designer nur mit erheblichem Aufwand möglich gewesen und hätte zu schwer durchschaubarem Designer-Code geführt.--
Viele Grüsse
Peter Fleischer (MVP Reconnect, Partner)
Meine Homepage mit Tipps und Tricks- Als Antwort markiert Sandra Bauer Donnerstag, 3. November 2016 18:37
-
Hallo,habe mir mal das jetzt endlich genauer angeschaut.2 Folien sind dort ok.
Eigentlich ist es gar nicht groß, der Unterschied.
Also WinForms zu WPF.
Alles wird halt in XAML beschrieben, was dahinter passiert ist 1:1 importierbar von WinForms.- Man sollte Container verwenden
- Canvas (der klassischen WinForms)
- DockPanel
- Grid
- StackPanel
- UniformGrid
- WrapPanel
Und zu FormLoaded, FormClosing sind das die Synonyme.
private void Window_Loaded(object sender, RoutedEventArgs e) { } private void Window_Unloaded(object sender, RoutedEventArgs e) { }
Hintergrund der Anfrage ist, kennt Ihr noch was, was macht beachten muss, hilfreich ist,
wenn man evtl. neue Aufgaben nach WPF, UWP etc. portiert bzw. neu entwickelt.
VergleichsportalGrüße Sandra - Man sollte Container verwenden
-
Hi Sandra,
Deine Herangehensweise ist zu kurzsichtig. Wenn Du wirklich stabile und gut wartbare Anwendungen erstellen willst, die auch noch in großem Umfang automatisch getestet werden können, dann geht kein Weg an MVVM vorbei. Dabei brauchst Du keine Loaded und Unloaded Ereignisse, da in der Oberfläche kein CodeBehind erforderlich ist.Wenn die Windows Forms Anwendung gut strukturiert ist (Methoden in den unterschiedlichen Layern), dann kann der Umstieg zu MVVM recht einfach sein. Meine Erfahrung zeigt aber, dass viel Anwendungen lange gewachsen sind und dass es keine sauber abgegrenzte Geschäftslogik gibt, die als Basis für den ViewModel dienen kann.
Neben den von Dir genannten Containern, die mehrere UI-Elemente aufnehmen können, kann jedes Steuerelement als Container betrachtet werden, auch, wenn oft erst einmal nur ein UI-Element eingebettet werden.
Zu beachten ist insbesondere die Datenbindung, die in ähnlicher Form in Windows Forms Anwendungen nur sehr begrenzt einsetzbar ist (DataBindings.Add). Dazu kommen dann noch Converter, die typsichere Bindungen ermöglichen. Zu beachten ist auch das Styling, was in Windows Forms im Gegensatz zu WPF nur rudamentär ausgebildet ist.
--
Viele Grüsse
Peter Fleischer (MVP Reconnect, Partner)
Meine Homepage mit Tipps und Tricks- Als Antwort markiert Sandra Bauer Mittwoch, 9. November 2016 17:31
-
Hallo Sandra,
Mit dem Blick auf zwei Folien ist nicht einmal ein Anfang gemacht.
WPF mit Windows Forms zu vergleichen, ist so also ob man einen Kutscherpferd mit einem Rennpferd vergleicht. Der eine tut zwar seine Arbeit und ist robust und genügsam, das andere will gehegt und gepflegt werden geht dann aber ab...
Und wohl jeder der eine Portierung ernsthaft erwogen oder gar vorgenommen hat, wird Dir sagen, das es am Ende mehr eine Neuentwicklung ist. Wobei das Endresultat lohnt, aber einiges an Mühe, Schweiss (und manchmal Tränen) gekostet hat.
Und wieder der Hinweis auf die (sooft verhasste) Dokumentation.
Gruß Elmar
- Als Antwort markiert Sandra Bauer Mittwoch, 9. November 2016 17:31
-
Hallo Sandra,
aus meiner Sicht gibt es nur einen Grund WinForms anstatt WPF für ein neues Projekt zu nehmen, zu faul neues zu lernen. Aber grade das sollte niemals für einen Softwareentwickler gelten.
Ich persönlich glaube nicht das UWP (Win 10) jemals WPF ersetzen kann, zumindest muss da noch sehr viel passieren. Grade die Sandbox macht viele Szenarien unmöglich so dass WPF zum Einsatz kommt. Somit ist WPF eine der wichtigsten Technologien die man sich unbedingt aneignen muss.
Die MS Dokumention ist top und auch der Grund warum ich mich für diese Technologien entschieden habe.
Gruß
Thomas
Icon für UWP: https://www.microsoft.com/store/apps/9nblggh5fzpm