Delphi 2009의 Win32 앱을 .NET으로 이식하는 쉬운 방법이 있습니까?

StackOverflow https://stackoverflow.com/questions/132299

  •  02-07-2019
  •  | 
  •  

문제

우리는 최신 IDE와 최신 기술을 유지하기 위해 Delphi 7.0에서 Delphi 2009로 마이그레이션하고 싶습니다.우리의 대상 플랫폼은 .NET입니다.이 목표를 달성하는 가장 좋은 방법은 무엇입니까?

도움이 되었습니까?

해결책

D2007에서 D2009로 인한 문자열 처리로 유니 코드 상황을 탑승합니다.이 단계와 관련된 변경 사항은 응용 프로그램에 많은 영향을 줄 수 있습니다 (이를 알 수 있습니다). 또한 사용중인 타사 도구/라이브러리/구성 요소를 고려해야합니다. 모든 것이 아직 D2009로 점프 한 것은 아니며, 일부 덜 인기있는 구성 요소가 전혀 점프하지 않을 수 있습니다.

더 똑똑한 길은 하나 일 수 있습니다 D7을 D2007로 마이그레이션합니다 (이것은 많은 승리와 가치있는 개선으로 인해 크게 고통스럽지 않은 잘 정리 된 길입니다). 그런 다음 현대적이고 안정적이며 예쁜 지원되는 지원되는 델파이 플랫폼으로 .NET으로의 점프를 더 잘 평가할 수 있습니다.

이 마지막 단계에 대한 내 의견은 다른 의견 중 일부를 반영 할 것입니다. 다양한 런타임과 서비스 팩의 현대적인 요구 사항으로 델파이가 더욱 더 생존 가능한 관련 있는 Win32 개발 도구. 코드를 D7에서 D2007/D2009로 발전 시키거나 D7에서 .NET으로 이동하십시오. 하나를하고 다른 하나는 조금 이상해 보입니다!

다른 팁

D2009는 .NET가 아닌 Win32 버전이라는 것을 기억하십시오. 먼저 D2009로 이동 한 다음 .NET으로 이동하고 싶습니까?

운 좋게도 Delphi는 매우 안정적인 플랫폼이며 이전 응용 프로그램을 최신 버전으로 변환하는 것이 훨씬 쉽지만 고려해야 할 사항이 있습니다.

응용 프로그램이 BDE를 사용하여 DB에 액세스하는 경우 ADO 또는 DBX와 같은 다른 기술을 사용하도록이를 변환하십시오.

타사 구성 요소를 사용하는 경우 D2009 및/또는 .NET 용 버전이 있는지 확인하십시오.

매우 섬세한 측면은 문자열 처리입니다. 문자열을 "정상적으로"사용하는 경우 큰 문제가 없어야하지만 C에서와 같이 문자열을 "바이트 버퍼"로 사용하는 경우 조심하고 해당 부품을 다시 작성해야합니다. 경험의 규칙은 "코드의 모든 PCHAR을 제거하려고 노력하십시오"입니다.

Delphi 7에서 Delphi 2009로 마이그레이션하는 것은 아마도 직접적 일 것입니다. 아마도 약간의 변화 만 있었을 것입니다 (예 : 최근에 논의 된 ANSI에서 유니 코드 스트링으로의 이동과 같은). 그러나 .NET으로의 이동은 그렇게 간단하지 않습니다. 마이그레이션 GUI를 가능하게하는 vcl.net이 있지만 심각한 다른 것들이 작동하지 않습니다. 따라서 Win32 코드와 .NET 코드를 가지고 COM을 통해 함께 가져 오는 것을 생각할 수 있습니다. (나는 당신이 이미 com을 알고 있기를 바랍니다. 그렇지 않으면 이것은 아마도 옵션이 아닐 것입니다 ;-))

델파이 2009 Win32 만 목표로합니다. .NET의 경우 사용할 수 있습니다 Rad Studio 2007 .NET 용 Delphi 성격과 함께 제공되며 간단한 VCL 응용 프로그램을 .NET 2.0 프레임 워크를 대상으로하는 VCL.NET에 간단한 VCL 응용 프로그램을 포트하는 것이 매우 쉽습니다. 그러나 타사 구성 요소와 라이브러리를 사용하는 경우 .NET 대안도 확인해야합니다.

이것이 너무 많은 작업이거나 최신 .NET 프레임 워크를 타겟팅하려는 경우 Microsoft의 Visual Studio 및 C#을 사용하여 프로젝트를 처음부터 다시 작성하는 것이 좋습니다.

면책 조항 : Delphi Win32 프로젝트를 .NET로 포팅 한 경험이 없습니다. 그래서 이것은 저의 겸손한 의견 일뿐입니다.

이식은 결코 쉽지 않습니다.그러나 Delphi와 .NET의 의미 체계는 매우 유사합니다. 둘 다 수석 설계자로 Anders Hejlsberg를 두었기 때문입니다.Win32 VCL 호출을 동등한 VCL.NET 항목으로 바꿔야 할 가능성이 높습니다.

CodeGear RAD Studio로 업그레이드하면 Delphi와 .NET 언어(주로 C#) 모두에 대해 하나의 IDE를 사용할 수 있습니다.

한 기술에서 다른 기술로 이동할 때 제어 장치 교체를 중단할 수 있었던 경우가 많았습니다.예를 들어 실제로 코드를 변경하지 않고도 BDE 데이터베이스 컨트롤을 ADO.NET 대체 컨트롤로 바꿀 수 있었습니다.궁극적으로 귀하는 코드를 소유하고 있으며 우리 중 누구보다 더 잘 알고 있습니다.

Win32 실행 파일에 대한 매우 우수한 지원이 있는데 왜 .NET 프레임워크를 대상으로 하려고 합니까?Delphi는 이미 업계에서 작은 부분을 차지하고 있으며 .NET을 사용하는 Delphi는 훨씬 더 작습니다.Delphi는 항상 .NET 세계에서 2등 시민이 될 것입니다.Delphi는 이미 Win32의 일류 시민입니다.

위의 Giacomo의 답변에 따라 BDE를 사용하는 경우 Micloop의 DAC를 제안 할 수 있습니다. http://www.microolap.com/ - 코드를 다른 것으로 변환하지 않아도 많은 시간을 절약 할 수 있습니다. 나는 Postgresdac을 사용하고 있습니다.이 제품은 매우 안정적이고 빠릅니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top