2012-03-11 5 views
1

어떤 목적으로 데스크톱 WPF C# 응용 프로그램을 만들었습니다. C# 응용 프로그램은 다른 C++ 응용 프로그램에서 함수를 호출하고 C++ 응용 프로그램의 결과는 C# 응용 프로그램에 다시 노출되었습니다. 응용 프로그램이 정상적으로 작동하지만 웹 (ASP.NET)에 동일한 기능을 사용할 예정입니다.웹에 C# 데스크톱 응용 프로그램을 이식

내 데스크톱 솔루션에서 사용한 것과 동일한 종류의 것을 사용할 수 있습니까? ASP.NET 응용 프로그램에서 함수를 C++ 프로젝트로 호출하고 C++ 응용 프로그램에서 결과를 얻을 수 있습니까? DllImport[CallingConvention = CDecl, CharEncoding=Ansi]

EDIT--
내 주요 관심사는 내가 C++ 응용 프로그램에 함수 호출을 발행 할 때, 그것의 처리를 수행 할 C에 대한 ++ 기능을 5 초 걸리는 것입니다. 이 시간 동안 C# 응용 프로그램은 Freeze GUI로 간주 될 수 있습니다. 비슷한 경우 ASP.NET 웹 사이트에서 어떤 일이 발생합니까? 멀티 스레딩 때문에 혼란 스럽겠습니까?

답변

2

예, ASP.NET 응용 프로그램은 DllImport 메커니즘을 사용할 수 있습니다.

+0

다른 내용일까요? 내 주요 관심사는 C++ 응용 프로그램에 대한 함수 호출을 발행 할 때 C++ 함수가 처리를 수행하는 데 5 초가 걸렸습니다. 이 시간 동안 C# 응용 프로그램은 Freeze GUI로 간주 될 수 있습니다. 비슷한 경우 ASP.NET 웹 사이트에서 어떤 일이 발생합니까? 멀티 스레딩 때문에 혼란 스럽겠습니까? – Cipher

+0

계산에 5 초가 걸리는 경우 서버에서 처리되는 요청은 동일한 5 초 (송신 응답의 경우 약간의 시간이 있지만 밀리 초 단위)가 소요됩니다. 클라이언트 측은 서버로부터의 응답을 기다립니다. AJAX를 사용하면 웹 페이지가 멈추지 않습니다. 그렇지 않으면 사용자는 전체 페이지 데이터를 기다립니다 (이전/비어있는 페이지를 보거나 브라우저에서 애니메이션로드). – TcKs

+0

요청을 처리하는 최대 시간은 웹 서버에서 구성 할 수 있습니다 (IIS를 적절히 사용합니다). 안정성/확장 성/등을 위해 사용 가능한 구성 가능한 값이 많이 있습니다. – TcKs

1

ASP.NET 응용 프로그램 내에서 COM 또는 pinvoked 메서드를 호출해도 문제가 없습니다. 통화가 완료되는 데 5 초 정도 걸리더라도 클라이언트의 브라우저는 응답을 기다립니다. 결과적으로 응용 프로그램의 사용자 경험이 부진합니다.

일반적으로 오래 지속되는 서버 호출은 AJAX 요청에 래핑되어 최소한 "기다려주십시오"또는 이와 유사한 메시지가있는 회전 원과 같은 정보를 사용자에게 표시 할 수 있습니다.

0

기본적으로 동일합니다! wpf는 aps.net과 동일한 clr을 사용합니다. 차이점은 웹 응용 프로그램이 대부분 다중 사용자 환경이라는 것입니다. 이므로 com/C++ 구성 요소는 동시 사용자와 함께 작동해야합니다.

관련 문제