2014-06-23 11 views
12

Moja firma ma poważny problem. Opracowaliśmy aplikację zawierającą ponad 1.000.000 linii kodu w Delphi.NET. Z tego powodu utknęliśmy w Delphi 2007 i .NET 2.0.Utknęły w Delphi.NET i Delphi 2007

Wraz z rozwojem technologii i zastosowań, musimy przeprowadzić migrację na inną platformę programistyczną. Do tej pory wypróbowaliśmy kilka narzędzi, które obiecały przekonwertować Delphi.NET na kod C# - każde z tych narzędzi miało kilka problemów, takich jak błędne indeksowanie ciągów (Delphi 1 C# 0) lub kiedy typy były używane do deklarowania granic tablic.

Po tym podejściu próbowaliśmy dekompilować zestaw Delphi.NET - kod, który z niego wraca, jest mało czytelny i ma setki funkcji pomocniczych, które wywołują określone zespoły Borlanda. Już wcześniej przyjrzałem się możliwości napisania transpilatora, ale niejednoznaczna składnia Delphi jest zbyt trudna do zastosowania w prostej gramatyce.

Teraz wielkie pytanie, czy są jakieś możliwości, które nie obejmują tłumaczenia całego kodu ręcznie? A może ścieżka migracji, która pozwala na częściową i etapową migrację?

+0

_a ścieżkę migracji, która pozwala przenieść częściowo i stopniowo _ Dla mnie to __sounds__ zapraszającej; ale oczywiście nie znam absolutnie nic na temat twojego systemu z wyjątkiem liczby linii. Czy jest modułowy, jak jest podzielony na partycje itp.? – TaW

+0

Aplikacja podzielona jest na około 200 jednostek i obsługuje stare usługi WCF w sieci Web w IIS. Problemem, który widzę tutaj, jest to, że chociaż .NET pozwala na współdziałanie między językami jak łączenie plików źródłowych VB i C# w jednym projekcie - nie wiem, w jaki sposób ten rodzaj współdziałania mógłby działać dla C# i Delphi.NET – user3768733

+0

Budowanie interfejsu użytkownika i wywoływanie wszystkich twoich Delphi DLLS za pośrednictwem Interop może być początkiem. Następnie zacznij zastępować każde wywołanie funkcji DLL odpowiednią metodą. Twój wynik może być lepszym luźno powiązanym systemem. – celerno

Odpowiedz

4

Wyjazd narzędzia jak: http://www.9rays.net/TourStep.aspx?TourStepID=21

Choć może nie być tak proste, jak działa cały app Delphi przez niego i coraz C# źródła w zamian, to rodzaj tłumaczy IL/decompilers są dość dokładne. Moja rada polegałaby na uruchomieniu kilku zestawów i wykonaniu testu regresji, aby sprawdzić dokładność sprawdzania. Szanse są bardzo wysokie, że będziesz musiał zrobić jakieś remediacje w wygenerowanym kodzie, ale to lepsze niż przepisanie całej aplikacji.

także: sprawdzeniu http://blogs.msdn.com/b/danielfe/archive/2004/06/15/156087.aspx

Powiązane problemy