WPF oder Windows Forms oder doch lieber die MFC?



  • Hallo Jungs,

    ich würde gerne auf WPF umsteigen.
    Nun meine Frage.
    Lohnt sich das?
    Welche Vorteile hat WPF gegenüber der Windows Form?
    Oder soll ich doch lieber mit der MFC weiter machen?

    Gruß Gissi



  • Naja kommt drauf an was du programmieren willst... aber würde WPF Winform vorziehen, ist schon ne feune sache... winForms kannst ja nebenbei bischen anschaun;)



  • ich kann man von meiner "laufbahn" berichten #gg

    UI angefangen hatte ich damals mit .Net/CLI - hatte zu der zeit noch keine peilung von UI im allgemeinen
    dann bin ich in die firma gekommen und hab von da an MFC gemacht
    private bin ich dann von MFC auf WinAPI da ich viel selber machen wollte - was ich jetzt als gute lernerfahrung verbuche
    bin dann aber auch privat wieder zu MFC
    nun bin ich in der firma der lokalisierungs-"mensch" und hab den WPF localisierungs prototypen geschrieben (eine eigene methode da wir den "Microsoft-Way" mit "LocBaml" nicht moegen)
    nun kuemmer ich mich um schreiben von diversen tools - alle haben eine consolen und eine UI schnittstelle

    also ich bleibe definitiv bei WPF - allein schon weil wir in der firma die neuen produkte bereits auf WPF setzen
    die moeglichkeiten der WPF sind einfach ungeschlagen - das bedarf viel zusatzarbeit es in MFC oder Forms zu schaffen

    mal ein paar vorteile die mir grad so einfallen:
    - alle controls sind lookless - dh man kann jedes control anhand templates ein eigenes aussehen verpassen
    - jedes control kann ein belibiges control beinhalten (ich packe bilder und checkboxen oder listen direkt in eine combobox)
    - man kann animationen starten, beenden, unterbrechen, fortsetzen usw ohne viel code
    - jedes control ist dynamisch - dh jedes control kann sich um seine benoetige groesse usw selber kuemmern
    - man kann schnell und einfach eigene controls entwickeln
    - man kann die komplette UI per code schreiben sodass es sich automatisch an gegebenheiten anpasst
    - man kann triggers definieren was nach bestimmten events passieren soll (zb das ein button bei mouseover anders aussieht)
    - man kann templates, styles und aehnliches dynamisch zur laufzeit wechseln ohne etwas neu starten zu muessen
    - man kann globale styles definieren, das zb buttons applikationsweit gleich aussehen
    - man kann styles und templates durch binding mehrfach weiter verwenden und dynamisch austauschen
    - man kann strings automatisch wechseln lassen (wichtig beim lokalisieren)
    - man kann abhaengigkeiten einstellen ohne sich per hand darum kuemmern zu muessen
    zb hat man eine combobox mit eigenen klassen als elemente, in der combobox ist ein binding auf dem "Name" property der klassen
    und darunter ist eine textbox die zeigt die GUID des ausgewaehlten element, achso und in der combobox sind den namen auch checkboxen vorran gesetzt (wenn man die checkboxen nur optional anzeigen moechte, definiert man ein horitontales stack panel mit checkbox und textblock, checkbox visibility of das boolean mit converter, und das textblock text auf name):

    // pseudo ausn kopf

    <ComboBox x:Name="ElementCombo" ItemsSource="{Binding}">
        <ComboBox.ItemTemplate>
            <CheckBox IsChecked="{Binding IsChecked}" Content="{Binding Name}" />
        </ComboBox.ItemTemplate>
    </ComboBox>
    <TextBox Text="{GUID}" DataContext="{Binding ElementName=ElementCombo, Path=SelectedItem}" />
    

    man kann es beliebig so fortsetzen



  • Das es wirklich Zeit ist umzusteigen, weist du dann wenn es darüber gute Bücher in deutscher Sprache gibt. 😃



  • als der microsoft typ bei uns in der firma war um damals WPF vor zu stellen wurde das buch hier:
    Windows Presentation Foundation Unleashed | ISBN: 0672328917
    von mehereren personen anstandslos empfohlen
    am sonsten such einfach bei amazon de nach "WPF" dann findest du mitlerweile mehrere - liest einfach die rezessionen durch

    deutsche kenn ich grad nicht

    ich persoenlich hab WPF auch komplett offline gelernt - ein buch (welches sag ich nicht q:) und die MSDN (F1 in VS) reicht vollkommen, was WPF mit .NET an geht ist die MSDN richtig gut und vollstaendig


Anmelden zum Antworten