Laden...

WindowsForms oder WPF für Desktop Applikationen?

Erstellt von Pel vor 15 Jahren Letzter Beitrag vor 15 Jahren 5.266 Views
Pel Themenstarter:in
86 Beiträge seit 2008
vor 15 Jahren
WindowsForms oder WPF für Desktop Applikationen?

Hallo,

Wikipedia:"...WPF is now the preferred choice for developing line of business applications, especially since the release of the .NET Framework 3.5, Visual Studio 2008, and Expression Blend."

Wenn ich heute eine Windows Anwendung schreibe mit C# also auf WPF RICHTIG ?

4.207 Beiträge seit 2003
vor 15 Jahren

Nicht zwingend. Du kannst auch heute mit C# noch Windows Forms machen.

Die Frage ist IMHO, was Du erreichen willst: Wenn's eine schicke UI werden soll / muss, evtl mit 3D und grafischen Effekten, nimm WPF.

Wenn Du die gleiche Anwendung potenziell als RIA ins Web bringen musst, nimm WPF.

Wenn's nur Desktop ist und bleibt, und Dir der Windows 95-Look definitiv reicht, nimm Windows Forms.

Wissensvermittler und Technologieberater
für .NET, Codequalität und agile Methoden

www.goloroden.de
www.des-eisbaeren-blog.de

195 Beiträge seit 2006
vor 15 Jahren

das kann man so nicht sagen...
Das kommt darauf an ob du viel mit Designer und effekten arbeiten willst..dann WPF. Ansonst sind WinForms meiner Meinung nach immer noch der Standard und die bevorzugte Variante. Wenn du vor hast irgendwelche UI Controls zu verwenden kann das natürlich auch eine Rolle spielen.

Chris

Pel Themenstarter:in
86 Beiträge seit 2008
vor 15 Jahren

...und Dir der Windows 95-Look definitiv reicht, nimm Windows Forms. der war gut 😁

sollte Desktop bleiben doch ich bin von WPF sehr ja positiv überrascht wie einfach es ist Elemente in andere Elemente zu bekommen ist fast wie HTML schreiben... 😁

<ListBox>
<ListBoxItem>
<Image Source="happyface.jpg"></Image>
</ListBoxItem>
<ListBoxItem>
<Image Source="happyface.jpg"></Image>
</ListBoxItem>
</ListBox>

obiges in java zu machen sprich ein Icon in eine JList/JComboBox benötigt sehr viel mehr code und ist umständlicher... Da meine Desktopanwendung grafisch aufwändig werden soll sprich buttons,radio,checkbox, icons etc ineinander usw. frage ich mich ob die Erstellung von Items in anderen Items mit WindowsForms auch so easy ist?

Mir gehts es darum mit möglichst geringem Aufwand individuelle GUI Controls zu erstellen damit ich mich auf die Programmlogik und Datenverarbeitung konzentrieren kann, denn sonst kann ich mir gleich eine 900 $ componentone kaufen, doch das kann ich mir noch nicht leisten 😉

4.207 Beiträge seit 2003
vor 15 Jahren

Nein, in Windows Forms geht das so simpel nicht - beliebige Controls in andere Controls einfügen zu können gibt's für .NET derzeit nur in WPF.

Wenn Du daran also Bedarf hast, kommst Du an WPF (fast) nicht vorbei.

Und dass WPF fast wie HTML ist ... stimmt, das ist auch mein Eindruck. Lustigerweise hört man viele (ehemalige) Windows Forms-Entwickler jammern, dass WPF ja so furchtbar anders wäre - und die ganzen Webentwickler finden es cool ... so nach dem Motto, "Yeah, endlich HTML auf dem Desktop" ^^

Wissensvermittler und Technologieberater
für .NET, Codequalität und agile Methoden

www.goloroden.de
www.des-eisbaeren-blog.de

Pel Themenstarter:in
86 Beiträge seit 2008
vor 15 Jahren

Ich habe jetzt mal zig wpf vs. winforms threads hier durchgelesen und da die Threads nicht die neuesten sind würde ich gerne folgendes wissen:

  1. Ist dies mit net 3.5 immer noch so, dass unter WPF die fonts sch... aussehen sprich total verschwommen mit farbigen pixeln aussenrum oder wurde der Bug behoben?

  2. Welches Datagrid ist denn besser:

http://www.infragistics.com/dotnet/netadvantage/wpf/xamdatagridoverview.aspx#Features

oder

http://xceed.com/Grid_WPF_Intro.html

Will beide nicht durchprobieren etc. sondern hätte aus Zeitgründen gerne kurze Erfahrungsbereichte gehört, gibts da jemand?

0
767 Beiträge seit 2005
vor 15 Jahren
  1. Ist dies mit net 3.5 immer noch so, dass unter WPF die fonts sch... aussehen sprich total verschwommen mit farbigen pixeln aussenrum oder wurde der Bug behoben?

Ist immer noch so und "by Design". Microsoft nennts Antialiasing (oder ClearType), ich nenns Augenkrebsauslöser.

loop:
btst #6,$bfe001
bne.s loop
rts

4.207 Beiträge seit 2003
vor 15 Jahren

Warum das so "by design" ist: WPF unterstützt logische Pixel, sprich, Du kannst auch irgendwas an Position X=95,3 und Y=102,7 packen - das muss er natürlich irgendwie auf die physikalischen Pixel abbilden, was dann wiederum mit der DPI-Zahl auch irgendwie passend sein muss ... daher die Unschärfe.

Wissensvermittler und Technologieberater
für .NET, Codequalität und agile Methoden

www.goloroden.de
www.des-eisbaeren-blog.de

Pel Themenstarter:in
86 Beiträge seit 2008
vor 15 Jahren

Warum das so "by design" ist: WPF unterstützt logische Pixel, sprich, Du kannst auch irgendwas an Position X=95,3 und Y=102,7 packen - das muss er natürlich irgendwie auf die physikalischen Pixel abbilden, was dann wiederum mit der DPI-Zahl auch irgendwie passend sein muss ... daher die Unschärfe.

ach du schreck das erinnert mich an Flash... jetzt mal im Ernst , kann ich nicht sagen, dass ich die Pixel nur auf Ganzzahl Position setzen möchte? Dürfte das Problem ja beheben ?( wie ist das denn, ist der Font immer noch von Farbe umrandet oder von grau, denn das grau wäre ja noch ok doch mit der Farbe drumherum habe ich das Gefühl ich sehe leicht doppelt 😁

Also ich finde das jetzt so krass, dass ich sogar fast... der Meinung bin WPF wirds schwer haben, weil die Leute sagen werden:"oh man sieht das unscharf aus, was ist das denn für ne Anwendung? ach das ist wpf ok gefällt mir net will ich net..."

Oh man bisher hat WPF alles was ich mir wünschte nur die Fonts nachdem ich einen Screenshot vergleich gesehen habe, lösen bei mir arges Unwohlsein aus... grrrrrr... X( gibts da auch nur ein winziges Gerücht darüber ob Microsoft das fixen möchte? Es ist ja eigentlich kein Bug, sondern by design hehe von daher...

Gibt es irgendwelche workarounds die ich dem user im Programm anbieten kann z.B. nutze dieses blurry type oder nutze es nicht?

das sagt wohl alles: http://www.paulstovell.com/blog/wpf-why-is-my-text-so-blurry

...

4.207 Beiträge seit 2003
vor 15 Jahren

Es hängt sehr stark von der Schriftart ab, Segoe zB sieht IMHO deutlich besser aus als Verdana.

Prinzipiell musst Du damit aber leben.

Die Frage ist, ob's nicht-Entwicklern wirklich so sehr auffällt ...

Wissensvermittler und Technologieberater
für .NET, Codequalität und agile Methoden

www.goloroden.de
www.des-eisbaeren-blog.de

4.207 Beiträge seit 2003
vor 15 Jahren

PS: IIRC kommt mit 3.5 SP1 die Möglichkeit, die Font-Rendering-Engine zu wechseln, womit das Problem zumindest unter Vista besser werden sollte.

Wissensvermittler und Technologieberater
für .NET, Codequalität und agile Methoden

www.goloroden.de
www.des-eisbaeren-blog.de

Pel Themenstarter:in
86 Beiträge seit 2008
vor 15 Jahren

Segoe

ok dann könnte man z.B. mit den Fonts spielen und testen...

wiki:

Availability

The Segoe UI font family is available as a part of the Microsoft products named above. It can be obtained as part of Microsoft Office 2007 or Windows Vista. Certain Segoe fonts, but not Segoe UI, were included in Windows XP Media Center Edition 2005, replacing Trebuchet MS. Ich habe beides nicht kein O2007/vista. Wie komme ich also an den Font?

“data virtualization”, will these improve scrolling? Xceed’s grid scrolling is satisfactory in certain situations, but nowhere near as fast as an optimized WinForm/Java application.

quelle:
>

Heißt das, das Scrolling einer Table/Grid ist lahmer wie in JAVA ? ok egal das werden die schon noch ändern.

Über Segoe Software Produkt:

Microsoft grants you a personal, nonexclusive, non-transferable, royalty-free license to install and use the Software solely for the purpose of creating materials requested by Microsoft and in accordance with the specification(s) provide to you by Microsoft. By way of example only, such materials may include printed material (such as advertising, packaging, promotional material, and manuals), form material (such as templates and style sheets), online graphic material (such as bitmapped text, bitmapped logos and Macromedia Flash animations), and broadcast material (such as television advertising).

You may install and use the Software on an unlimited number of computers as long as all such computers are either owned or controlled by you.

Also darf dies nur auf meinem eigenen PC laufen das will ich nicht.

freeware wpf:

http://www.freeware-download.com/cgi-bin/jump.cgi?ID=14978

die unschärfe hält sich zumindest bei mir in Grenzen benutze auf XP eh kein clear type... doch die Performance dieses freeware programms ist der Hammer... klicke ich die Tree-Komponente auf der linken Seite an so dass rechts ein bild gezeigt wird, geht mit einer unglaublichen Verzögerung einher viel schlimmer als Java und ich denke nicht das liegt an dem Programmierer 😁

achso falls sich das schon einer fragte, ich habe auf meinem neuen PC VS 08 noch nicht installiert daher frage ich auch so blöd nach dem font-rendering 😉

4.207 Beiträge seit 2003
vor 15 Jahren

Segoe: Ohne Vista / Office 2007 IMHO gar nicht (zumindest nicht legal).

Interessant finde ich aber, ich habe meiner Frau gerade mal den Blogeintrag http://www.paulstovell.com/blog/wpf-why-is-my-text-so-blurry gezeigt und sie gefragt, was sie besser lesbar findet.

Das Ergebnis: Die WPF-Version, weil die "luftiger" wirkt - und das stimmt, die von Windows Forms ist ein bisschen gedrungen ...

Natürlich möchte ich jetzt nicht eine Einzelaussage zum Standard erheben, aber es zeigt doch, dass es Anwender gibt, die das anders wahrnehmen als wir IT-ler.

Wissensvermittler und Technologieberater
für .NET, Codequalität und agile Methoden

www.goloroden.de
www.des-eisbaeren-blog.de

Pel Themenstarter:in
86 Beiträge seit 2008
vor 15 Jahren

Meine Pro`s warum ich mich für Windows Forms entscheide 🙂

  • gute online Doku
  • viele Tutorials + große user community
  • Scharfe Schrift für XP Benutzer was bei mir ca. 90 % sind...
  • schnelle und ausgereifte Custom Controls
  • weniger Einarbeitung bzw. weniger steile Lernkurve aus Java-Sicht...
  • plastic styles benötige ich net wirklich...

Danke Golon und denk bitte an mich falls einer abspringt... 😁

4.207 Beiträge seit 2003
vor 15 Jahren

^^

Wissensvermittler und Technologieberater
für .NET, Codequalität und agile Methoden

www.goloroden.de
www.des-eisbaeren-blog.de

0
767 Beiträge seit 2005
vor 15 Jahren

witzig 🙂
meine findet den WinForms Teil besser lesbar (ich auch).

Wobei ich allerdings echtes Antialiasing (kein ClearType) noch besser lesbar finde. Dafür gibts auch einen physikalisch erklärbaren Grund:

Licht in unterschiedlichen Wellenlängen wird optisch unterschiedlich stark gebrochen. Blaues Licht zB stärker als rotes (siehe Prisma).

ClearType setzt die SubPixel um "näher" an die echte Position ranzukommen. Die SubPixel sind aber Rot-Grün-Blau (sieht man auch in dem verlinken blog-beispiel). Dadurch gibts zB einen senkrechten schwarzen Strich mit etwas rot links und etwas blau rechts davon. Schon hat man die Scherereien, weil das von der Linse im Auge unterschiedlich gebrochen wird und daher gar nie scharf sein kann.

Sowas wird übrigens auch in der Werbung eingesetzt, da sich der Betrachter dann etwas stärker konzentrieren muss...

loop:
btst #6,$bfe001
bne.s loop
rts

K
239 Beiträge seit 2005
vor 15 Jahren

Hallo

Ich habe selbst noch keine WPF Erfahrung, habe bislang WinForms gemacht. Das mit den Controls und der Schrift scheint noch ein Problem zu sein.

Allerdings möchte ich hier für WPF doch noch ein gutes Wort einlegen: Denn WPF ist nicht nur Klicki-Bunti schöner wie es hier dargestellt wird! Es gibt doch einige gute neuen Konzepte die in WPF umgesetzt sind, was wir hier z.B. selbst nachbauen Stichwort: Commands. Wie gesagt, ich kann nicht aus praktischer Erfahrung berichten, nur vom lesen und alles "neue" habe ich jetzt auch grad nicht mehr im Kopf.

Also: 1. das Layoutkonzept ist vergleichbar mit HTML (salopp gesagt), 2. viele Möglichkeiten optisch, 3 viele Neuerungen bei Funktionen

kaepten
Edit: Wobei mir grad in dne Sinn kommt bei Commands - > klappt das möglicherweise auch mit WinForms?

6.862 Beiträge seit 2003
vor 15 Jahren

Nicht so wirklich kaepten. Es gibt Implementierungen die für Windows Forms sowas bieten wie Commands, die aber im Vergleich zu WPF ziemlich gefrickel sind, da die Windows Forms Controls das nicht unterstützen von sich aus. Das machen jedoch die WPF Elemente und deshalb "fühlen" sich die Commands in WPF irgendwie natürlich an.

Konzeptionell hat WPF viele Vorteile gegenüber Windows Forms wie z.B. Dependency Properties, Routed Events, Templates/Styles, viel ausgereifteres DataBinding etc. Aber dadurch steigt natürlich der Einarbeitungsaufwand sehr, was man nicht unterschätzen sollte. Hat man aber diese Hürde geschafft und weiß wie WPF tickt, dann ist es wirklich ein leichtes, sehr ansprechende Programme zu schreiben.

Man darf aber net vergessen das WPF ja relativ jung ist. Das da das Geschäft mit 3rd Party Controls erst anläuft ist klar. Deshalb muss man wie schon gesagt drauf achten was man brauch. Man kann vieles leicht selber machen in WPF, aber halt net alles mit annehmbaren Aufwand. Da hat Windows Forms natürlich noch Vorteile, aber das wird sich mit der Zeit relativieren. Deshalb würde ich schon heute fast immer zu WPF raten bei Neuentwicklungen.

Die Perfomance ist so eine Sache. Klar brauch WPF mehr Resourcen als Windows Forms, aber selbst auf meinem 3,5 Jahre alten Laptop läuft das prima. Und die Performancenachteile die WPF hat nehm ich gerne in Kauf für das was ich bekomme als Programmierer.

@pel
Mit solchen Aussagen wäre ich vorsichtig:

klicke ich die Tree-Komponente auf der linken Seite an so dass rechts ein bild gezeigt wird, geht mit einer unglaublichen Verzögerung einher viel schlimmer als Java und ich denke nicht das liegt an dem Programmierer

Erstmal weißt du nicht wie das Programm funktioniert, was es beim klicken eines Items in der TreeView macht, es werden ja nicht nur einfach Bilder gezeigt sondern das Diagramm erstellt, das da nen bissle Zeit ins Land geht ist klar. Ob die Zeit bei dem Programm jetzt gerechtfertigt ist, ist ne andere Frage 🙂 Außerdem vergleichst du Äpfel mit Birnen: WPF vergleichst du mit Java. Zwei Technologien die vollkommen unterschiedlich funktionieren und vollkommen unterschiedliche Ansätze verfolgen. Das eine Technologie dort in gewissen Bereichen Vorteile gegenüber anderen hat ist klar, aber das dreht sich auch leicht bei anderen Problemstellungen. Deshalb sind Vergleiche zwischen verschiedenen Technologien und Sprachen sehr schwer objektiv zu formulieren. Man könnte auch eines dieser typischen WPF ShowCase Programme nehmen wo z.B. auf nen rotierenden Würfel auf jeder Seite ein anderes Video abläuft. Ob Java bei sowas noch Vorteile gegenüber WPF hat mag ich zu bezweifeln.

Noch eine frage war ja

jetzt mal im Ernst , kann ich nicht sagen, dass ich die Pixel nur auf Ganzzahl Position setzen möchte? Das geht natürlich für Elemente, nennt sich SnapToPixel die Eigenschaft.

Baka wa shinanakya naoranai.

Mein XING Profil.

4.207 Beiträge seit 2003
vor 15 Jahren

Ein IMHO unschlagbares Argument für WPF ist, dass es die GPU nutzt und die CPU entlastet - im Gegensatz zu Windows Forms.

Wissensvermittler und Technologieberater
für .NET, Codequalität und agile Methoden

www.goloroden.de
www.des-eisbaeren-blog.de

906 Beiträge seit 2005
vor 15 Jahren

aber nur in der Theorie. WPF Anwendungen erzeugen eine solche CPU Last, dass die Dinger total nutzlos sind 🙄

4.207 Beiträge seit 2003
vor 15 Jahren

Kannst Du das mit ein paar Argumenten unterlegen?

Wenn ich beispielsweise fünf Buttons mache, in dem jeweils ein Video läuft, hat meine CPU trotzdem nur ein paar Prozentpunkte Auslastung ...

Wissensvermittler und Technologieberater
für .NET, Codequalität und agile Methoden

www.goloroden.de
www.des-eisbaeren-blog.de

S
54 Beiträge seit 2007
vor 15 Jahren

Die Meinungen sind hier grad so unterschiedlich, das es einem schwer fällt eine Entscheidung zu treffen.

Ich bastel grad an einem Programm wo der User Steuerelemente zur Laufzeit erzeugen kann und manipulieren kann(verschieben,vergrößern usw). Bin auf der Suche nach perfomanten Lösungen. Aber dieser Text in WPF ist alles andere als ein Benutzmichargument, vorallem wo ich das benötigen würde. Vielleicht doch lieber erbe von control , overide onPaint .. X(

906 Beiträge seit 2005
vor 15 Jahren

@Golo

lass das Programm mal nicht auf deinem Quad/Dual Core PC mit was-weiß-ich für einer Grafikkarte laufen. Dann sieht du wie WPF stark ins trudeln kommt und die Kiste ist dann einfach zu stark ausgelastet.

4.207 Beiträge seit 2003
vor 15 Jahren

Okay, das ist logisch ... ohne hardwarebeschleunigtes DirectX wird's natürlich übelst langsam ...

Wissensvermittler und Technologieberater
für .NET, Codequalität und agile Methoden

www.goloroden.de
www.des-eisbaeren-blog.de