Laden...

Projekt von Windows Forms auf WPF umstellen.

Erstellt von AtzeX vor 8 Jahren Letzter Beitrag vor 8 Jahren 5.142 Views
A
AtzeX Themenstarter:in
217 Beiträge seit 2006
vor 8 Jahren
Projekt von Windows Forms auf WPF umstellen.

Hallo,

ich habe schon im Internet gesucht, aber entweder mit den falschen Begriffen, oder nicht gründlich genug.
Jedenfalls finde ich nicht konkret für meinen Bedarf Antworten.

Ein bestehendes Windows Forms-Projekt soll in ein WPF-Projekt 'konvertiert' werden.

Das Projekt hat nur ein einziges Windows Form und das möchte ich gerne komplett neu aufbauen.
Es geht also nicht um das Konvertieren der Windows Forms.

Zielsetzung meiner Frage ist, dass ich wissen möchte, ob und wie ich das Projekt selber von Windows Form zu WPF konvertieren kann.

Ich möchte bewusst kein neues Projekt erstellen und die anderen Dateien importieren!

Hintergrund, auch wenn ich das eigentlich mal als gegeben nennen und nicht diskutieren möchte, ist, dass ich im Sourcecode Management System möglichst wenig ändern, also einen möglichst kleinen Footprint hinterlassen möchte.

Allein mit dem Löschen und Hinzufügen der entsprechenden Verweise ist es leider nicht getan.

Aber eigentlich müsste es sich doch mit dem Überarbeiten der Projektdatei und dem Austausch des UI-Forms, wenn wir MVVM hier vom Ansatz mal gedanklich weglassen, umsetzen lassen, oder?

Vielleicht hat das ja schon einmal jemand gemacht?

16.834 Beiträge seit 2008
vor 8 Jahren

Vorweg: Dein Gedanke geht nach hinten los.
Konvertieren ist nicht, da wir hier von zwei völlig verschiedenen Ansätzen sprechen.

Und MVVM weg zu lassen und das mit "Frickellösungen", wie sie bei WinForms oft gemacht werden, zu "konvertieren: aussichtslos.

WPF erfordert an vielen Stellen Disziplin und forciert diese auch.
Mit Konvertieren ist da nicht viel - deswegen findest Du dazu auch ( Gott sei dank ) nicht viel im Netz.

A
AtzeX Themenstarter:in
217 Beiträge seit 2006
vor 8 Jahren

Da hast du mich leider falsch verstanden.

Ich hatte gehofft klar gemacht zu haben, dass ich das Projekt durchaus als 'korrektes' WPF-Projekt aufziehen möchte, auch mit MVVM.
Nur gedanklich, um das Projekt selber von Windows Forms auf WPF umzustellen, wollte ich der Einfachheit halber MVVM gedanklich weglassen.

Frickeln möchte ich nichts, nur händisch das Projekt von Windows Forms auf WPF umstellen.

Danach möchte ich das Windows Form löschen und ein WPF-UI mit MVVM implementieren.

16.834 Beiträge seit 2008
vor 8 Jahren

Ich seh jetzt den Unterschied in der Fragekorrektur nicht wirklich. 😉
MVVM weg zu lassen - vor allem gedanklich - ist halt keine gute Idee. Es ist wie gesagt ein vollständig anderer Ansatz, und nicht mehr wie bei WinForms meist auf Events.

Normalerweise, jedenfalls Projekte, die ich gesehen bzw. deren Umstellung ich mitbekommen habe, unterscheiden sich im Aufbau komplett voneinander - auch um Sünden zu korrigieren.

A
AtzeX Themenstarter:in
217 Beiträge seit 2006
vor 8 Jahren

Noch ein Versuch:

Ich möchte MVVM im resultierenden Projekt verwenden! Unbedingt! 😉

Ich wollte es nur für das Gedankenspiel jetzt schnell weglassen, um primär den Fokus auf die wohl notwendige Bearbeitung der Projekt-Datei, sowie sekundär den Austausch der Form-Dateien zu lenken.

Ich möchte nicht pfuschen.

Ich möchte lediglich das Projekt von WF auf WPF umstellen und dann ganz gesittet, verantwortungsvoll und zielgerichtet ein WPF UI aufzubauen, mit allen Paradigmen, die das so mit sich bringt und auch voraussetzt. 😃

Das einzige was ich nicht möchte ist, ein neues Projekt zu erstellen.

Nun klar?

Edit:
Noch ein Zusatz, was das Ziel ist:
Im aktuellen WF Projekt kann ich nur WF Forms hinzufügen, jedoch keine WPF-Forms.
Nach der erhofften Bearbeitung der Projektdatei möchte ich nur noch WPF-Forms und keine WF Forms mehr hinzufügen können.

Edit2:
Ich habe nun hier auf die Frage "Convert csproj file from winform to wpf" eines Anderen diese Aussage gefunden:

The short answer for those that don't want to do the comparison themselves is that a WPF .csproj file contains an addition property:

<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>  

Just put that in the first <PropertyGroup>...</PropertyGroup> section, it shouldn't matter where.

The meaning of {60dc8134-eba5-43b8-bcc9-bb4bc16c2548} is that this is a WPF project, and {FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} indicates a C# project.

Außerdem verweist der Antwortende noch auf diesen Beitrag:
http://stackoverflow.com/questions/10802198/visual-studio-project-type-guids

Ich werde mir das morgen einmal näher anschauen.

Hat denn zufällig jemand von euch das so schon einmal gemacht?

16.834 Beiträge seit 2008
vor 8 Jahren

Mir ist durchaus bewusst, was Du vor hast; habs verstanden - aber der Weg, den Du ausgewählt hast, dahin halte ich trotzdem für falsch. =)
Du willst die die Projektstruktur so belassen und quasi nur den Projekttyp im ersten Schrit ändern.

Wird meiner Meinung nicht funktionieren, da man ein WPF Projekt an für sich schon anders aufbaut (meine Meinung).
Aber ich werde Dir da nicht im Wege stehen; Dir aber meine Meinung nochmals unterstreichen, dass das kein durchdachtes Vorhaben ist.

Der korrekte Weg wäre ein neues Projekt zu erstellen und dann das WPF sauber hoch ziehen.
Ich sage Dir jetzt schon mal voraus, dass Du das bald bereuen wirst. =)

2.207 Beiträge seit 2011
vor 8 Jahren

Hallo AtzeX,

dein Vorhaben ist gedanklich sehr gut: Auf WPF umstellen ist sicher moderner und bringt viel Vorteile mit sich.

Jedoch versteh ich nicht was du da mit "Projektdatei bearbeiten" und "WPF-Forms" meinst und vorhast. Das wirkt echt wie Gefrickel, von daher kann ich Abt schon verstehen.

Mach dir ein neues Projekt, schau dir alle Features deine WF-Anwendung an und ziehe sie "neu" mit WPF hoch. Wenn Services etc. richtig gekapselt sind, kannst du ja alles, was nicht so UI-Verbunden ist, vielleicht wieder verwenden. Aber für alles andere kannst du saubere Commands, ViewModels etc. verwenden und es im Stile von WPF umsetzen.

Das macht am meisten Sinn IMHO.

Gruss

Coffeebean

T
2.224 Beiträge seit 2008
vor 8 Jahren

@Coffeebean
Er will die csproj Datei quasi mit einem Editor einfach von WinForms auf WPF umschalten.
Das ist aber auch aus meiner Sicht unsinn, da man sich damit irgendwas halbgares zurecht frickelt.

Hier ist der einzig sinnvolle Weg ein neues Projekt anlegen als WPF un gut ist es.
Eine bestehende Projektmappe umwerkeln von WinForms auf WPF oder andere Konstellationen sind aus meiner Erfahrung heraus unsinn da man sich damit immer nur die Projektdateien zuschießt.

Zusätzlich müsste man danna auch noch händisch die richtigen Refernzen in den jeweiligen Versionen zusammen suchen.
Der Aufwand den man dafür betreibt, und das Problem das man sein bestehendes Projekt damit auch kaputt macht, ist aus meiner Sicht total überflüssig.

Ich kann hier Abt nur zustimmen und dir auch empfehlen direkt ein neuens Projekt in der Projektmappe anlegen und gut ist es.
Später kannst du dann auch deine Winforms Anwendung einfach aus der Projektmappe hauen und löschen.
Über den Footprint in der Code Verwaltung würde ich mir hier keine Gedanken machen.
Aus meiner Sicht gäbe es auch keinen Grund sich um so etwas ernsthaft Gedanken zu machen.
Wir hantieren bei uns mit SVN Updates die teilweise schon im Gigabyte Bereich liegen, da wir auch Testdaten etc. mit im SVN brauchen.

Aber auch wenn du deinen Weg, entgegen aller empfehlen, fortsetzen würdest hättest du einen größeren Footprint.
Entsprechend kannst du den Punk fallen lassen.

T-Virus

Developer, Developer, Developer, Developer....

99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.