간단한 WinForms 응용 프로그램을 ASP.Net 웹 응용 프로그램으로 마이그레이션하려고합니다. WinForms 응용 프로그램은 기본적으로 복잡한 일반 C 응용 프로그램의 프레젠테이션 계층이며 COM interop을 통해 레거시 코드와 상호 작용합니다. ASP.Net, javascript, jQuery, WinForms 및 interop의 많은 경험이 겸손하므로 기본을 알고 있으므로 디자인 결정을 내려야합니다.레거시 코드 interop에 대한 웹 응용 프로그램
앱을 지금 보이는 방법은 이것이다 :이 기존의 C (심지어 C++) 이 변경 및 재 컴파일 할 수있는 코드의 무리이지만, 이식이 옵션을 선택하지 않습니다
. 이것은 비즈니스 + 데이터 레이어입니다. 원하는 것을 호출하십시오. 나는 이것을 레거시 코드이라고 부를 것입니다.
레거시 코드를 시작하면 프레젠테이션 및 사용자 상호 작용에 사용되는 COM 서버가 인스턴스화됩니다. 프레젠테이션 데이터는 직렬화되어이 COM 개체 ("출력 할 사람을 보내고 있습니다.")로 전송되며 사용자 상호 작용은 주기적 폴링 ("나에게 입력이 있습니까?")을 통해 이루어집니다. 가장 좋은 해결책은 아니지만 지옥처럼 단순합니다.
COM 개체는 실제로 COM으로 노출 된 .NET 2.0 WinForms 앱입니다. 이 응용 프로그램은 .NET Remoting을 통해 다른 .NET 응용 프로그램에 일부 기능을 노출하지만 이는 그리 중요하지 않습니다. 시스템이 다소 복잡하지만
, 윈폼 응용 프로그램은 정말에만 상호 작용을 위해 사용된다, 그래서 웹으로 전환하는 매우 간단합니다. 웹 서버를 수행하는 가장 좋은 방법은 무엇인지 확실하지 않습니다. < ---> 레거시 코드 상호 작용.
.NET Remoting이 이미 구현 된 이후로 가장 먼저 떠오르는 것은 로컬 .NET Remoting을 통해 웹 파트에 WinForms 기능을 노출하여 레거시 코드 간의 프록시처럼 작동하도록 만드는 것입니다 및 웹 응용 프로그램. 실제로 양식이없는 통신 부분 만 필요합니다. 이 경우 웹 응용 프로그램은 .NET Remoting (로컬)을 통해이 기능에 액세스해야합니다.
.NET Remoting을 사용하여 웹 응용 프로그램을 다른 응용 프로그램과 로컬로 통신하는 것이 현명한 방법입니까? 또한 응용 프로그램을 Windows 서비스로 변경할 수도 있지만 COM을 통해 레거시 코드로 해당 기능을 노출 할 수 있습니까?
이것을 달성하는 더 좋은 방법은 무엇입니까? 필요한 경우 레거시 코드를 일부 수정할 수도 있습니다.
당신의 응답을 주셔서 감사합니다 :
정확히을하는 프레임 워크 내 즉시 제안을 참조하십시오. 구성 서비스에 대한 경험이 없으므로 먼저 확인하겠습니다. – Groo