2010-12-30 4 views
3

우리는 C# (.NET 2.0, Visual Studio 2005)을 사용하는 Windows 기반 응용 프로그램을 작성했습니다. 이제이 애플리케이션 웹 기반을 재실행하는 것은 시간과 자원을 소비하는 프로세스이며 나에게는 불가능한 작업입니다.C# Windows Forms 응용 프로그램이 있습니다. 사용자가 웹을 통해 액세스 할 수 있도록 웹에 배포 할 수 있습니까?

사용자가 인터넷을 통해 액세스 할 수 있도록 호스트해야합니다.

부터 RDP까지 사용자가 Windows 응용 프로그램에 액세스 할 수 있지만 더 많은 사용자가 동시에 작동 할 수는 없습니다.

웹 응용 프로그램으로 호스팅하여 사용자가 브라우저를 통해 액세스 할 수 있습니까?

답변

4

아니요, 웹 사이트처럼 웹을 통해 직접 사용할 수 없으며 Windows Forms 응용 프로그램은 클라이언트 컴퓨터에서 직접 실행됩니다.

최종 사용자가 쉽게 설치할 수 있도록 MSI 설치 프로그램으로 패키지 한 다음 인터넷을 통해 데이터베이스와 같은 리소스에 액세스 할 수 있습니다 (이러한 리소스를 노출시키는 가장 간단한 방법은 웹 서비스). 이 메커니즘을 사용하기로 결정한 경우 응용 프로그램의 일부만 리팩터링해야합니다. 응용 프로그램을 n-tier 응용 프로그램으로 잘 구성했다고 가정하면됩니다.

사용자는 인터넷을 통해 이러한 리소스에 액세스 할 필요가 없습니다. RDP를 사용하는 사용자에 대한 언급에서 사용자가 인트라넷에 앉아있는 것이 좋습니다. 즉, 이러한 서비스를 "호스트"할 수 있음을 의미합니다. 모든 클라이언트가 네트워크를 통해보고 액세스 할 수있는 시스템의 데이터베이스로 사용됩니다. 이 경우 필요한 것은 응용 프로그램의 구성 파일에있을 수있는 연결 문자열이나 경로를 변경하는 것입니다.

+0

하나의 앱에서 성공적으로 수행 한 작업은 ILMERGE를 사용하여 링크를 클릭하여 "웹에서"실행 가능한 단일 실행 파일을 만드는 것입니다. 물론 로컬로 다운로드하지만 설치 및 관리자 권한이 필요 없습니다. –

1

click-once를 사용하여 네트워크를 통해 응용 프로그램을 배포하고이를 통해 업데이트를 지원할 수는 있지만 winform 응용 프로그램을 웹 기반 응용 프로그램으로 변환 할 방법을 모르므로 기본 사항을 고려해야합니다. 두 플랫폼 간의 아키텍처가 변경됩니다.

2

당신은 적어도 당신이 간단하게 설치를위한 웹 서버 또는 네트워크 파일 공유에 Windows 기반 응용 프로그램을 게시 할 수 있습니다 ClickOnce

ClickOnce 배포를 사용하여 그것을 웹을 통해 을 배포 할 수 있습니다. Visual Studio는 ClickOnce 기술로 배포 된 응용 프로그램 게시 및 업데이트를 완벽하게 지원합니다.

http://msdn.microsoft.com/en-us/library/t71a733d(v=VS.90).aspx

+0

@frou에 동의합니다. 그것은 갈 길입니다. 또는 현재 winforms 응용 프로그램이 3 계층 응용 프로그램이고 올바르게 설계된 것이라면 신속하게 웹 UI를 넣을 수 있어야합니다. 여기서는 프레젠테이션 레이어를 만들어야하며 모든 레이어는 그대로 유지됩니다. –

1

나는 약간의 시간을 투자 추천 SOA을 채택하는 구조를 수정하는 것입니다.

코드를 다시 구성하고 클라이언트에 메서드를 표시하는 web service을 만들어야합니다. 이러한 메서드는 클라이언트에서 입력을 받아 작업을 수행하고 UI에 표시 할 데이터를 되돌려줍니다. 기존 솔루션에서 핵심 비즈니스 로직 클래스를 선택하여 그대로 재사용 할 수 있습니다. 프리젠 테이션 로직을 비즈니스 로직과 분리하는 데는 어느 정도의 노력이 필요할 수도 있지만 노력할 가치가 있습니다.

일단 웹 서비스가 호스팅되면 데스크톱 응용 프로그램 또는 웹 응용 프로그램과 함께 사용할 수 있습니다. 물론 웹 애플리케이션 용 UI를 코딩해야하지만, 처음부터 작성하는 것보다 훨씬 쉬울 것이다.

+0

이것은 분명히 내가 제안하는 것입니다. 아키텍처를 재구성하는 데는 약간의 작업이있을 수 있지만, 이는 시간/노력의 측면에서 볼 때 가장 침입적인 방식 인 것처럼 보이며 향후 애플리케이션을 유지 관리하는 데있어 더 큰 유연성을 제공 할 것입니다. –

0

Windows에서 데이터베이스 응용 프로그램을 사용하는 경우 한 가지 작업을 수행 할 수 있습니다. 서버에 데이터베이스를 배포 할 수 있지만 ASP.NET에 프론트 엔드 응용 프로그램을 설계하여 응용 프로그램을 설치 한 컴퓨터에서 Windows 응용 프로그램을 사용할 수 있도록하고 다른 모든 응용 프로그램도 응용 프로그램에 액세스 할 수 있도록합니다 웹을 통해.

관련 문제