Umwandlung eine große MFC-app .net
Wir haben eine anständige Größe MFC-MDI-desktop-app. Gibt es einen vernünftigen Weg, um zu konvertieren eine MFC-app ein .net-app oder ist es besser, einfach umschreiben? Wenn die Antwort ist app spezifisch, welche Kriterien verwenden Sie, um die Entscheidung zu treffen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich würde überspringen WinForms und den Kopf nach rechts für WPF.
Je nachdem, wie Ihre Anwendung ist so konzipiert, Sie sollten sich nicht zu umschreiben alles. Sie können den Aufruf von C++ - code von C# - code mit Managed C++ Wrapper, so dass Sie die Wiederverwendung von vorhandenen C++ - code. Microsoft hat auch umfangreiche Dokumentation auf, die Interoperabilität zwischen WPF und Win32/MFC. Sie können ähnliche Dinge tun mit WinForms.
Microsoft gegangen auf große Längen zu bieten Pfade für die migration von MFC zu WinForms/WPF, weil Sie wissen, können Unternehmen nicht einfach wegwerfen Jahre entwickelten code.
Auch, wenn Sie google "WPF und MFC" finden Sie viele Beispiele von Menschen, die mit den beiden Technologien in ein und demselben Projekt.
Beim portieren von MFC zu WinForms Sie haben, zu schreiben, die UI-code, wenn Sie gute Trennung zwischen UI und business-Logik werden Sie besser dran, die Portierung der business-Logik entweder durch die Verwendung von managed C++ oder durch die übersetzung von C# (syntax ist nur ähnlich genug, um es möglich zu machen).
Ich habe dies getan, für eine kleine MFC-Anwendung, die ich portiert die business-Logik in c# durch einfügen der C++ - code in eine c# - Datei und fixieren Sie den code, bis es anfing, zu arbeiten, schrieb ich die GUI von Grund auf neu.
Dieser entpuppte sich als ein sehr kluger Schachzug, weil wir uns immer weiterentwickelt, die in eine große app-und das Ergebnis ist viel besser als alles, was wir getan haben, könnten Sie in der MFC in der gleichen Zeitplan.
Wir haben auch eine riesige MFC-Anwendung mit keine klare Trennung zwischen UI und business-Logik, wir wollen, dass die Portierung an .net, aber habe noch nicht herausgefunden, wie man es noch nicht.
Wäre es auf jeden Fall eine rewrite, aber viele der Konzepte im MFC haben .NET-Pendants, so würden Sie in der Lage sein, um anzeigen über eine Menge von Ihr domain-Modell. Ich würde mit Windows Forms, denn das würde die Karte einfach an die gleichen Win32-Stil Benutzeroberfläche, die die MFC bietet.
Wenn Ihr MFC-Anwendung getrennt die domain model-und business-rules-schön, könnten Sie sogar in der Lage sein, um die Verwendung von C++.NET wiederverwenden einige, dass der code, und entweder halten diese nicht oder drehen, die in verwalteten Klassen, und wahlweise umwandeln C# später auf.
Siehe meine Antwort auf diese Frage das ist im Grunde das gleiche wie dieser.
Ich verbrachte viel Zeit mit der Suche auf C#, WPF, Expression Blend, MVVM, wenn man bedenkt Konvertierung von MFC nach WPF.
WPF (VS 2010) ist sinnvoll, wenn Sie wollen, verlieren 50% der MFC-Funktionen, und ein sehr kompliziertes, sehr langsame app, wenn Sie fertig sind. Es ist kein MDI.
MVVM hat zu viel Aufwand, um praktisch zu sein.
Gewinne: garbage collection, in der Größe anpassbare Dialogfelder, XAML und mehr databinding-Optionen sind kaum Wert.
Den letzten upgrades auf MFC, hinzufügen einer Multifunktionsleiste (die besser ist als ribbon-bar Schöpfung in Expression Blend) gib mir alles, was ich wollte.
Kurz gesagt, die Konvertierung von MFC nach WPF/.NET ist eine schlechte Idee; vergessen Sie es.
Nicht fallen MFC von Microsoft oder haben Sie die Menschen springen Schiff. (WTF???????)