Есть ли простой способ перенести приложение Win32 в Delphi 2009 на .NET? - PullRequest
3 голосов
/ 25 сентября 2008

Мы хотим перейти с Delphi 7.0 на Delphi 2009, чтобы не отставать от современных IDE и современных технологий. Наша целевая платформа .NET. Как лучше всего достичь этой цели?

Ответы [ 6 ]

3 голосов
/ 25 сентября 2008

Я бы взял на вооружение ситуацию Unicode с обработкой строк, которая пришла с D2007 по D2009 - изменения, внесенные в этот шаг, могут сильно повлиять на ваше приложение (только вы можете сказать это). Кроме того, вам нужно будет рассмотреть, какие сторонние инструменты / библиотеки / компоненты вы используете. Еще не все сделали переход на D2009, и вполне вероятно, что некоторые менее популярные компоненты могут вообще не перейти.

Один разумный путь может быть к миграции D7 к D2007 (это проторенный путь, в основном безболезненный, с большим количеством побед и стоящих улучшений). Тогда вы находитесь на современной, стабильной, довольно современной, поддерживаемой платформе Delphi, с которой вы можете лучше оценить переход на .Net.

Мое собственное мнение об этом последнем этапе перекликается с некоторыми другими комментариями, учтите, что если вы не добьетесь какой-то большой победы от .Net, я не понимаю, почему вы отойдете от Delphi. С учетом современных требований различных сред выполнения и пакетов обновления, я думаю, Delphi становится все более жизнеспособным соответствующим инструментом для разработки Win32. Либо измените код с D7 на D2007 / D2009, либо просто перейдите с D7 на .Net; делать одно, а потом другое кажется немного странным!

3 голосов
/ 25 сентября 2008

Помните, что D2009 - это версия win32, а не .net. Я полагаю, вы хотите сделать двухэтапный путь, сначала перейти на D2009, а затем на .net?

К счастью, delphi - очень стабильная платформа, и гораздо проще конвертировать старые приложения в последнюю версию, но вам нужно учитывать другое.

Если ваше приложение использует BDE для доступа к БД, то конвертируйте его, чтобы использовать другие технологии, такие как ADO или DBX.

Если вы используете сторонние компоненты, убедитесь, что существуют версии для D2009 и / или .NET

Очень тонкий аспект - обработка строк. Если вы используете строки «обычно», у вас не должно быть больших проблем, но если вы используете строки как «байтовые буферы», как вы делаете это в C, тогда вы должны быть осторожны и пытаться переписать эти части. Практическое правило гласит: «постарайтесь избавиться от всех PChar'ов в вашем коде».

2 голосов
/ 25 сентября 2008

Delphi 2009 предназначается только для Win32. Для .NET вы можете использовать RAD Studio 2007 , которая поставляется с индивидуальностью Delphi для .NET, и должно быть довольно легко перенести простое приложение VCL на VCL.NET, которое предназначено для платформы .NET 2.0. Однако, если вы используете какие-либо сторонние компоненты и библиотеки, вам также нужно проверить их альтернативы .NET.

Если вы обнаружите, что это будет слишком много работы, или если вы хотите настроить таргетинг на последнюю платформу .NET, вам лучше переписать свой проект с нуля, используя Microsoft Visual Studio и C #.

Отказ от ответственности: у меня нет опыта переноса проектов Delphi Win32 в .NET, так что это просто мое скромное мнение.

2 голосов
/ 25 сентября 2008

Миграция с Delphi 7 на Delphi 2009, вероятно, проста, произошли лишь незначительные изменения (например, недавно обсужденный переход с ANSI на строки Unicode). Однако переход на .NET не так прост. Хотя существует VCL.NET, который делает возможным миграцию графических интерфейсов, другие серьезные вещи не будут работать. Так что вы можете подумать о наличии кода Win32 и кода .NET, объединяя их через COM. (Я надеюсь, что вы уже знаете COM, в противном случае это, вероятно, не вариант; -))

1 голос
/ 25 сентября 2008

Следуя ответу Giacomo, приведенному выше, если вы используете BDE, я могу предложить ЦАП MicroOlap http://www.microolap.com/ - это сэкономит вам много времени, не прибегая к преобразованию кода в что-то другое. Я использую PostgresDAC, этот продукт очень стабильный и быстрый.

1 голос
/ 25 сентября 2008

Портирование никогда не бывает легким. Однако семантика между Delphi и .NET очень близка, так как у обоих в качестве ведущего архитектора был Андерс Хейлсберг. Скорее всего, вам придется заменить вызовы Win32 VCL их эквивалентными компонентами VCL.NET.

Возможно, вы захотите перейти на CodeGear RAD Studio, поскольку это позволит вам иметь одну IDE для языков Delphi и .NET (в основном C #).

Много раз мне удавалось отказаться от замены управления при переходе от одной технологии к другой. Например, я смог заменить элементы управления базой данных BDE их заменами на ADO.NET без необходимости менять код. В конечном счете, вы владеете кодом и знаете лучше, чем любой из нас.

Почему вы хотите нацелиться на .NET Framework, когда у вас есть очень хорошая поддержка для исполняемых файлов Win32? Delphi - это уже небольшая отрасль, а Delphi с .NET еще меньше. Delphi всегда будет второсортным гражданином в мире .NET. Delphi уже является первоклассным гражданином Win32.

...