Von WinForms nach WPF



Ähnliche Dokumente
Von Windows-Forms zu WPF mit Expression Blend? Thomas Müller conplement AG Nürnberg

Informationen zur Verwendung von Visual Studio und cmake

Ein UI in zwei Welten - Controls in HTML5 und WPF. Timo Korinth

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

Anleitung über den Umgang mit Schildern

Informationen zum neuen Studmail häufige Fragen

Serienbrieferstellung in Word mit Kunden-Datenimport aus Excel

Anleitung zur Erstellung von Serienbriefen (Word 2003) unter Berücksichtigung von Titeln (wie Dr., Dr. med. usw.)

IINFO Storyboard

S/W mit PhotoLine. Inhaltsverzeichnis. PhotoLine

Projektmanagement in der Spieleentwicklung

Testen mit JUnit. Motivation

Präsentation zur Vorstellung meiner Bachelor-Arbeit beim BSE- Seminar. Vortrag von Patrick Bitterling

Leere Zeilen aus Excel-Dateien entfernen

1.1.1 Test Überschrift

Zwischenablage (Bilder, Texte,...)

Freie Software: Was bringt s mir? Peter Bubestinger, David Ayers. 17. Mai 2008

Nach dem Einstecken des mdentity wird die Anwendung nicht gestartet

AutoTexte und AutoKorrektur unter Outlook verwenden

Wordpress: Blogbeiträge richtig löschen, archivieren und weiterleiten

Anleitung Homepage TAfIE

AutoCAD Dienstprogramm zur Lizenzübertragung

Reparaturmodus unter Office und 2013 finden

Erstellen eines Beitrags auf der Homepage Schachverband Schleswig-Holstein - Stand vom

Installation OMNIKEY 3121 USB

PCC Outlook Integration Installationsleitfaden

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Einleitung. Hauptteil. Wir befinden uns nun im Demoarchiv.

G.I.B ABAP Programmier-Templates, Strukturen bilden Kosten senken

Ein Buch entsteht. Ein langer Weg

Layoutmodelle. Steffen Schwientek Große Klostergasse Friedberg schwientek@web.de Web :schlaukopp.org

Animierte Fotoshow mit Fotostory 3

In diesem Bereich wird beschrieben, wie Sie eine Datensicherung der Software Jack Plus durchführen können.

In diesem Bereich wird beschrieben, wie Sie eine Datensicherung der Software Jack Plus durchführen können.

Viele Bilder auf der FA-Homepage

Novell Client. Anleitung. zur Verfügung gestellt durch: ZID Dezentrale Systeme. Februar ZID Dezentrale Systeme

Anleitung zum Computercheck So aktualisieren Sie Ihr Microsoft-Betriebssystem

Handbuch Fischertechnik-Einzelteiltabelle V3.7.3

Klausur GUI-Entwicklung WS10/11 1.Termin

Arbeiten mit UMLed und Delphi

Gästeverwaltung. Gästestammdaten. Gäste verwalten. Hotelsoftware für Klein- und Mittelbetriebe

Windows 10 - Probleme

Kulturelle Evolution 12

ltlasten in der Registrierdatenbank löschen

Schulung Marketing Engine Thema : Einrichtung der App

SOFiSTiK AG Installationsanleitung

Handbuch für Redakteure

bagfa ist die Abkürzung für unseren langen Namen: Bundes-Arbeits-Gemeinschaft der Freiwilligen-Agenturen.

Aufklappelemente anlegen

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

30 min locker Laufen (wenn du außer Atem bist, mache eine kurze Gehpause) min locker Laufen. Gehpause)

Animationen erstellen

Welche Gedanken wir uns für die Erstellung einer Präsentation machen, sollen Ihnen die folgende Folien zeigen.

Mobile Intranet in Unternehmen

B12-TOUCH VERSION 3.5

Ihr IT-Administrator oder unser Support wird Ihnen im Zweifelsfall gerne weiterhelfen.

Windows 10 > Fragen über Fragen

Vorstellung Microsoft Mathematics 4.0

Windows 10. Vortrag am Fleckenherbst Bürgertreff Neuhausen.

Idimager ein Bildverwaltungsprogramm-DAM Software

Handbuch ECDL 2003 Modul 2: Computermanagement und Dateiverwaltung Der Task-Manager

Arbeit zur Lebens-Geschichte mit Menschen mit Behinderung Ein Papier des Bundesverbands evangelische Behindertenhilfe e.v.

ways2gether ipad App Guide

Installation LehrerConsole (für Version 6.2)

Schnittgeschwindigkeitsberechnung in C#

Einführung zum Arbeiten mit Microsoft Visual C Express Edition

Meldung Lokale Anwendung inkompatibel oder Microsoft Silverlight ist nicht aktuell bei Anmeldung an lokal gespeicherter RWE SmartHome Anwendung

User Manual Data 24. Login und Layout

QTTabBar Einrichtung, ein Tutorial

Bildbearbeitung mit dem Programm REGISTAX 5.1 bei Planeten

Erstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu])

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version September

Windows Explorer Das unbekannte Tool. Compi-Treff vom 19. September 2014 Thomas Sigg

Statuten in leichter Sprache

Der Einsatz von Open-Source-Produkten im Unternehmen, dargestellt am Beispiel von OpenOffice


PocketPC.ch Review. SBSH ilauncher 3.1. Erstelldatum: 3. Dezember 2007 Letzte Änderung: 3. Dezember PocketPC.ch_Review_iLauncher.

Routenplanung und Navigation mit dem iphone

DAS PARETO PRINZIP DER SCHLÜSSEL ZUM ERFOLG

Installation von SAS unter Windows XP

Installationsanleitung für Update SC-Line

Windows Server 2012 RC2 konfigurieren

Hilfen zur Verwendung der Word-Dokumentvorlage des BIS-Verlags

39. Elektronik-Stammtisch

Nicht kopieren. Der neue Report von: Stefan Ploberger. 1. Ausgabe 2003

Jederzeit Ordnung halten

Windows. Das 8.1-Kompendium. Windows Power-Tools. Richtig umsteigen. Highlights entdecken. Unterbau beherrschen. c Windows

Umwandeln und Exportieren von Adobe-Illustrator-Dateien in Illustrator für Artcut

TYPO3 Tipps und Tricks

Der Weg zur eigenen App

Gesundheits-Coaching I Akut-Programme bei Erschöpfung I Gesunder Schlaf I Ernährungs-Umstellung I Mentale Stärke I Gutes Körpergefühl

Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers

L10N-Manager 3. Netzwerktreffen der Hochschulübersetzer/i nnen Mannheim 10. Mai 2016

Einbau bzw. Umbau einer USB-Schnittstelle für das Testboard TB1 nicht nur für il-troll

Das große Buch Photoshop CS3 & Lightroom Stefan Gross Pavel Kaplun

MSXFORUM - Exchange Server 2003 > SMTP Konfiguration von Exchange 2003

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Transkript:

Stefan Lange empira Software GmbH Von WinForms nach WPF Tipps zu Hybrid-Anwendungen Stefan.Lange@empira.de 25.02.2010

Agenda Tipps zu den folgenden Punkten: Entscheidungen und Vorgehensweise WPF in WinForms Integration WinForms in WPF Integration Typische Probleme und Lösungsansätze Anwendungsarchitektur Fragen/Diskussion

Vorüberlegungen Migrieren oder neu schreiben? Genaue Analyse durchführen Wo steht man? Wo will man hin? Ressourcen und Kenntnisstand der Entwickler Keine ad-hoc Entscheidungen treffen

Vorteile WPF (vs. WinForms) Bessere Trennung von UI und Code Datenbinding (MVVM) sehr produktiv Validierung Templates und Styles Gute externe Control Libraries verfügbar (Neue Features: Animation, 3D, Video, ) Hardwarebeschleunigt

Nachteile WPF (vs. WinForms) WPF vermeintlich komplizierter Erhöhte Hardwareanforderungen Leider immer noch: Probleme mit Terminalserver-Lösungen von Drittanbietern

Vorteile WinForms (vs. WPF) Breitere Entwicklergemeinde.NET 2.0 ist im Prinzip noch ausreichend

Nachteile WinForms (vs. WPF) Technisches Auslaufmodell GDI+ wird im Prinzip nicht weiterentwickelt Microsoft selbst verwendet es nicht mehr für neue Produkte

Umstieg: Wie fängt man an? Fragen stellen: Analyse: Wo will man eigentlich hin? Entscheidung hängt stark von der konkreten Anwendung / den konkreten Rahmenbedingungen ab Pro und contra in Bezug auf die nächste Produktversion abwägen

Option: Bei WinForms bleiben Vorteile Es ändert sich gar nichts (= bequem) Kein vorübergehender Produktivitätseinbruch Kein.NET Update beim Kunden

Option: Bei WinForms bleiben Nachteile Ggf. Zeitdruck, wenn man doch umsteigen muss/will (z.b. wegen neuer Features) Verliert ggf. Anschluss an WPF & Silverlight

Option: Mit WPF neu schreiben Vorteile Geringster Gesamtaufwand der WPF-Version Konsistentes UI und Applikations-Modell Alle WPF Features können unmittelbar genutzt werden Wenn man die Möglichkeit dazu hat, dann mit WPF ein neues keines Projekt starten!

Option: Mit WPF neu schreiben Nachteile Dauert am längsten bis zur fertigen Version Sehr steile Lernkurve Bei größeren Anwendungen oft nicht praktikabel

Option: Hybride Anwendung Mischung von beiden Welten Manche Teile werden mit WPF erweitert Andere Teile bleiben WinForms Sanfter und ggf. unsichtbarer Übergang Vermeidung des Second System Effects

Beispiel: Visual Studio 2010 rot = WinForms bzw. natives Win32

Beispiel: RibbonWindow WPF Frame mit WinForms Content

Hybride Anwendung Vorteile Entwickler lernen WPF Schritt für Schritt Kurzer Zeitraum bis zur ersten Version Compiler-technisch unproblematisch: Einfach WPF und WinForms Assemblies referenzieren

Hybride Anwendung Nachteile Ggf. nicht ganz konsistentes UI Man kann auf sehr komplexe Probleme stoßen (Interop, Applikations-Modell, )

1. WinForms mit WPF erweitern Teilkomponenten auf WPF Basis Neue modale Dialoge Spezielle UserControls Grafischer Editor Dokumentgenerierung / Vorschau / Druck XPS Dokumente generieren

WPF in WinForms Control ElementHost regelt Interop WinForms UserControl ElementHost WPF UserControl

DEMO WPF Dialog-Boxes in WinForms WPF UserControls in WinForms

Tipps zur WPF-Einbettung Modale Dialoge funktionieren einfach so UserControls benötigen ElementHost Modeless Dialoge vermeiden Wichtig Wenn es mit ElementHost nicht sofort funktioniert, nicht weiter rumprobieren

2. MainWindow wird WPF Teilkomponenten bleiben WinForms Hauptfenster kann beispielsweise Ribbons verwenden Besseres Workspace Layout möglich Einzelne Dialoge und UserControls bleiben in WinForms UI kann Stück für Stück erneuert werden

WinForms in WPF Control WindowsFormsHost regelt Interop WPF Control/UIElement WindowsFormsHost WinForms UserControl <WindowsFormsHost x:name="winformshost" Margin="12" > <wf:winformssampleusercontrol1 /> </WindowsFormsHost> Cool: WinForms Objekt wird in XAML angelegt

Beispiel mit AvalonDock WPF MainWindow ähnlich Visual Studio WinForms UserControl

WinForms in WPF einbetten DEMO Main Window mit Avalon Dock WinForms Dialoge aufrufen UserControls in WPF Controls einbetten

Tipps zur WinForms-Einbettung Modale Dialoge funktionieren einfach so WindowsFormsHost für UserControls Modeless Dialoge vermeiden WindowsFormsHost/ElementHost Verschachtelung vermeiden (wird sehr langsam)

WARNUNG Es ist komplizierter als es aussieht! Tastaturinterface hakt manchmal Farben, Hintergrund und Transparenz teilweise schwierig einstellbar Probleme bei verschiedenen Fonts Probleme bei Themes (XP / Vista / 7) Layoutprobleme bei WinForms Docking Resizingprobleme bei DPI!= 96 u.v.m.

Generelle Tipps Prototyp bauen und ausprobieren Auf allen Windows Versionen testen Wenn etwas nach einer bestimmten Zeit nicht klappt -> neu programmieren

Anwendungsarchitektur Wie baut man Hybrid Anwendungen Anbindung des UI an Legacy Applikation Refactoring der Altanwendung

Aufbau einer WPF Komponente WPF Window/ UserControl ViewModel WPF voll nutzen: Kommandos Datenbindung Templates Validierung Typ-Konverter etc. ApplicationModel

Tipps zur Architektur Für jeden WPF View ein eigenes ViewModel schreiben DataContext ans ViewModel binden Zugriff auf den alten Applikations-Code nur aus dem ViewModel heraus

Gute WinForms Architektur Wenn man sehr viel Glück hat WinForms Form/UserControl Presenter ApplicationModel Neu schreiben mit XAML Funktionalität wird übertragen Weitgehend unverändert WPF Window/ UserControl ViewModel ApplicationModel

Typische WinForms Architektur Meistens sieht es leider eher so aus: MyOldWinFormsApp.exe WinForms Form/UserControl plus Applikations- Code

Architektur-Umbau Code Refaktorierung WPF Window/ UserControl ApplicationModel (neuer / überarbeiteter Code) ViewModel ApplicationModel (alter Code)

Tipps zum Umbau MVVM Pattern verwenden Neue Komponenten sauber von altem Code trennen Ggf. schon vor dem Umstieg WinForms Anwendung aufräumen Etwas mehr Zeit für Fehlersuche und Tests einplanen

Fazit WPF ist die Zukunft des Desktops WPF macht mehr Spaß Schrittweiser Umstieg hält Lernkurve flach Hybride Anwendungen sind Notlösungen Wenn möglich mit WPF Anwendung von Grund auf neu schreiben

Links Stefan.Lange@empira.de Unterlagen zu dieser Session: www.st-lange.net