Frage

Alle Ratschläge, wie eine vorhandene Delphi 7 Business-Anwendung auf .NET 2.0 in Visual Studio 2005 zu migrieren?

Visual Studio 2005 bereits erworben worden ist, will das Unternehmen aus dem Borland / CodeGear-Tool zu entfernen.

Die Anwendung ist eine einzelne Client-Server ausführbare Datei, eine Reihe von 3rd-Party-UI-Steuerelemente verwendet und Crystal Report 10 für die Berichterstattung.

Es gibt umfangreiche Business-Logik für Delphi-Typen in der Benutzeroberfläche zu verbreiten sowie viele SQL Server 2000 Stored Procedures. Verschieben großen Teil der gespeicherten proc Logik in .NET-Klassen ist ein weiteres Ziel.

Auswirkungen auf die Kunden zu reduzieren, ein Stück für Stück Ansatz eher als eine vollständige Re-Schreib / Umwandlung wäre vorzuziehen, wenn möglich. Vielen Dank im Voraus.

[Update] Hat jemand hatte keine Erfahrung, gut, schlecht oder hässlich, Managed VCL für diese Art von Szenario mit?

War es hilfreich?

Lösung

ich bei einer Firma gearbeitet, die von Delphi WPF / .NET circa 2007 wurde die Migration Wir haben versucht, ein Stück für Stück Ansatz. Es war schmerzhaft. Wir liefen immer in subtilen Fehler in der Interop. Der Aufruf von Delphi WPF oder WinForms und ist wieder schmerzhaft. Wenn die verschiedenen UI-Steuerelemente und Fenster Ihrer Anwendung Anruf auf einander viel, ich denke, Sie erhebliche Wachstumsschmerzen erleben werden.

Wenn Sie sich leisten können, die gesamte Umwandlung zu tun auf einmal ich es gehen würde. Falls nicht, teilen Sie die Teile Ihrer App aus, die Stand-alone sind oder das Minimum von Wechselwirkungen mit dem Rest der App.

Ich würde vorschlagen, auch in .Net Springen 2008. Warum Sie eine Technologie, Kommissionierung, die fast 4 Jahre alt (VS 2005) ist? Ich denke, es ist eine sehr, sehr schlechtes Geschäft Entscheidung zu wählen, in .Net 2.0 zu springen, wenn .Net 3.5 sehr stabil ist. Der einzige gültige Grund würde ich überhaupt anwesend Management für .NET 2.0 wäre Windows zu unterstützen 2000. Haben Sie noch Kunden auf Win2k? Werden Sie immer noch von der Zeit, die Kunden auf Win2k haben Ihre Konvertierung abgeschlossen ist? Haben Sie Kunden können Sie nicht auf XP oder Vista erhalten zu bewegen? .Net 3.0 und 3.5 sind nicht in Win2k unterstützt. Das ist der einzige Nachteil ich mir vorstellen kann.

.Net 3.5 und C # 2008 bieten erhebliche Vorteile für Ihr Unternehmen. Sie haben eine Reihe von Sprachfunktionen, die Zeit im Vergleich zu C # 2.0 entwickelte beschleunigen wird. Sie haben WPF, die weit überlegen WinForms ist. Ich würde behaupten, dass Sie die gleiche batteleship-grau Windows-Entwicklung können Sie in WinForms mit WPF bekommen würde, entwickeln sie schneller, und wenn Sie etwas Augenschmaus wollen Sie eine Technologie verwenden, die es leicht zur Verfügung stellen kann. Wenn Sie eine neue Windowing-Plattform für diese Umwandlung lernen, warum investieren nicht die neuen Sachen zu lernen?

Auch mir bitte sagen Sie VS kaufen eigentlich nicht 2005. Sie können ein MSDN Universal- Lizenz für etwa den gleichen Kosten und erhalten jede Entwicklung in Verbindung stehendes Produkt macht Microsoft. Kaufen Sie es von einer 3rd-Party und Sie werden einen guten Rabatt.

Sorry, wenn ich abging negativ. Mit freundlichen Grüßen, viel Glück auf der Migration. Ich habe nur Flashbacks, wenn ich denke, die guten Sachen alle in .NET 3.5 zu geben, von bis.

Andere Tipps

Das klingt wie eine wirklich schlechte Idee zu mir.

Gibt es einen technologischen Vorteil für Ihr Produkt in .NET zu sein, oder ist es vor allem eine politische Entscheidung, ein Microsoft-Shop zu sein? Für Client-Server, ist Delphi ziemlich schwer zu schlagen. Ich habe VS2005 / 8 verwendet, und es ist wirklich und wahrhaftig echt und aufrichtig nicht so gut wie Delphi für Win32-Entwicklung. Aber wenn man auf die Bahn auf dem Weg wandern gehen, dann VS hat entscheidende Vorteile.

Wenn hartnäckig Geschäft Leute einfach Delphi verweigern mehr zu verwenden, dann ist KiwiBastard richtig, IMO. Konvertieren Sie zuerst Delphi.NET, dann wandern von dort nach VS2005. Oder 2010, denn das ist ein realistischer Zeitplan:)

Ich war zuvor bei einem Unternehmen, das von Delphi nach C # .NET konvertieren wollte, weil .NET alles ist kühl und glänzend . Sie brachten in einigen mehr Entwickler, die eine Menge von C # Erfahrung hatte und es endete unter 3 mal die Entwickler doppelt so lang zu portieren, die Anwendung zu C # dann tat es das erste Mal in Delphi schreiben für sehr wenig zusätzliche ROI (ein paar neue Features wurden in dem Verfahren zugegeben). Hinzu kommen die Kunden nicht zufrieden mit der Anwendungsleistung oder der Benutzeroberfläche.

Fallstudie nach Fallstudie zeigt, dass Umschreiben eine schlechte Idee ist. (Hutspitze zu kogus )

Wenn Sie .NET bewegen muss (ja, ich weiß, du hast nicht die Entscheidung treffen, jemand mit weniger Informationen hat), dann würde ich vorschlagen, mit Delphi für .NET oder RemObjects Oxygene . Letzteres ist ein Visual Studio-Plug-in. Aber auch marc hofman hat der Chief Software Architect von RemObjects Oxygene sagte es eine schlechte Idee ist, eine perfekt funktionierende Anwendung Migration auf .NET „gerade weil.“

Wenn Sie Delphi Prism warten können, die auch ein Visual Studio-Add-In ist und erwartet wird, aus diesem Jahr später sein.

Eine stückchenweise Umwandlung würde bedeuten, den nativen Delphi-Code zu ändern COM zu verwenden, um die .NET-Seite kann mit Delphi koexistieren (oder möglicherweise einem anderen Technologie - schwer zu sagen)

Wenn Sie können, könnte es einfacher sein, die App zu Delphi.NET zuerst zu konvertieren, dann zumindest werden die .NET-Bits der Lage sein, ein wenig leichter zu kommunizieren.

Nur so ein Gedanke.

Umzug weg von CodeGear / Borland Tool eliminiert grundsätzlich jede Delphi .NET-basierte Lösung und ein Gesamt Umschreiben Ihrer Anwendung.

Ich hoffe, dass meine Antwort unten mit Ihren Entscheidungen hilft.

Aus Erfahrung (eine Delphi-Anwendung mit einem Team von Menschen geschrieben hat) es unter einem der zwei Wahlen läuft darauf hinaus.

Aber zuerst eine Warnung. Sie wird den gesamten Entwicklungsaufwand zumindest nimmst sie nahm ihre aktuelle Delphi-Anwendung zu schreiben

In unserem Fall wurde dieser Aufwand, da die alten Delphi-Anwendung gerechtfertigt (was in der Tat war es Kylix) hatte eine End-of-Life aus verschiedenen Gründen. Unsere Rewrite bestanden aus zwei Teilen:. Umschreiben mit begrenzten zusätzlichen Funktionen durch viele zusätzliche Funktionen gefolgt (der Entwurf des ersten Teils hat bereits den zweiten Teil berücksichtigt)

Zurück zu Ihrer Auswahl:

1- insgesamt Rewrite in C # oder VB.NET in Visual Studio

2 eine teilweise Wiederverwendung der vorhandenen Delphi Business-Schicht-Code von Oxygene mit von RemObjecs (ein Visual Studio-Plugin mit einer Syntax, die der Delphi-Syntax sehr ähnlich ist). CodeGear wird in Kürze bietet Prism (wahrscheinlich vor Ende 2008), die auch in Visual Studio integrieren.

Da .NET Datenzugriff und UI völlig verschieden von Delphi sind, werden Sie diese von Grund auf zu tun haben (beide für Szenario 1 und 2). Visual Studio 2008 bietet eine Menge Vorteile hier über Visual Studio 2005.

Es gibt nicht so etwas wie diese Migration nach und nach tun, da Sie einen kompletten Plattformwechsel zu tun hier, es ist ein alles oder nichts-Ansatz.

Beide Szenario dauert die eine beträchtliche Menge an Zeit (auch wenn Sie Delphi Erfahrung haben, bekommen Sie ein in die .NET-Welt gewöhnt wird einige Zeit dauern).

Visual Studio mit Crystal Reports in Wechselwirkung treten können, und geht auch mit SQL Server.

Da Visual Studio 2008 eine Menge Vorteile bietet (nicht nur .NET 3.5, sondern auch die Produktivität weist), dann würden Sie besser mit gehen. Auf der Benutzeroberfläche Seite, benötigen Sie eine ausgewogene Wahl zwischen WinForms (aka Windows Forms) und Windows Presentation Foundation (WPF aka) zu machen.

Wenn es eine 1-zu-1-Rewrite, möchten Sie vielleicht mit WinForms bleiben, da es bekannt ist, was Sie haben. Sie müssen wahrscheinlich einige 3rd-Party-Komponenten verwenden, um Ihre UI gehend zu erhalten; DevExpress ist eine gute Wahl hier, da sie ähnliche Komponenten in Delphi und Visual Studio haben.

Aber wenn Sie für zukünftigen Augenschmaus gehen wollen, dann könnten Sie WPF betrachten. Seien Sie bereit für eine steilere Lernkurve hier vorbereitet als WinForms, wie es ist sehr verschieden von dem, was Sie gewohnt sind.

Wenn Sie mit Delphi bleiben entscheiden, könnten Sie für das Web in VCL suchen möchten (aka IntraWeb) und in Delphi 2009 (viel hat sich in der Delphi-Welt verändert, seit 7 Delphi vor 6 Jahren angekündigt wurde).

Viel Glück machen Sie Ihre Auswahl!

- jeroen

Ich würde vorschlagen, von RemObjects bei Hydra suchen. Es rappt im Grunde die COM-Schnittstelle für Sie und stellt ein Beobachter-Muster zwischen Delphi und .NET-Anwendung für die Anbindung. Sie können .Net Formen haben auf Tafeln in Ihrem Delphi App erscheinen. Dies bietet einen schönen Migrationspfad, wo Sie Ihr Delphi-Code Stück für Stück ersetzen, wie Sie die Funktionalität von .NET migrieren.

Für mich ist die Frage wäre: welche Sprache Sie verwenden? Ich hoffe C # und nicht VB.Net. (Mit allen ungeschickten Politik in diesem usecase ist dies mit allen Mitteln nicht klar.)

Die nächst Sie wahrscheinlich hören ist, dass es Konverter gibt, die Ihnen diese Weise helfen. Wir gingen nur durch eine Auswertung solcher Wandler (Delphi 7 bis C #) und waren sehr! enttäuscht.

Auch schlage ich vor, einen Kompromiss? Wie wäre es Delphi Prism? Es ist Delphi in VS2008. Sicher, Sie haben noch Delphi und deshalb CodeGear, aber Sie haben auch VS (wie Ihr Unternehmen Sie geht davon aus).

Es wurde von John Brant, ein wissenschaftlicher Bericht über eine erfolgreiche Transformation einer 1,5 Millionen Linie Delphi-Projekt in C # gewesen Don Roberts et al. Er schrieb einen Delphi-Parser, einen C # Generator und viele Transformationsregeln auf dem AST. Nach und nach Verlängerung des Regelsatzes, einen täglichen Build zu tun, viele Unit-Tests, und einige Umschreiben von schwierigen Teilen Delphi erlaubten ihn mit einem Team von 4, unter denen einige der ursprünglichen Entwicklern, mit tiefen Delphi und C # Kenntnissen, die zur Migration Software in 18 Monaten. John Brant & Don Robert die ursprünglichen Entwickler des Refactoring Browser zu sein und die SMACC Compiler Construction Kit, Sie sind kaum in der Lage sein, so schnell zu gehen.

Obwohl dies eine bedeutende Investition war, ist es nirgends ‚die gleiche Größe wie die ursprüngliche Entwicklung‘. Die Autoren stellen fest, dass eine einfache Rewrite, ohne Werkzeug oder mit einem Single-Shot-Werkzeug, wie Jeroen erwähnt, sehr wahrscheinlich ist, dass zu führen, vor allem, wenn neue Anforderungen berücksichtigt werden.

Die Autoren haben in großem Maßstab Refactorings durchgeführt, während auf der gleichen Plattform für ein anderes Projekt zu bleiben, vollständig die Persistenz-Infrastruktur zu ersetzen. Dies könnte für ältere (BDE?) Basierte Projekte relevant sein.

Nur kann man wirklich entscheiden, ob ein Stück für Stück Ansatz möglich ist. Zum Beispiel kann die Anwendung aufgeteilt leicht oder sind alle Formen zu stark gekoppelt mit allen Business-Logik. Technisch möglich ist es aber alles hängt davon ab, wie die Code-Basis wirklich strukturiert ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top