2009-10-17 3 views
2

저는 C#으로 데스크톱 응용 프로그램을 작성해 왔지만 모든 사람이 .NET 2 이상을 설치하지 않았다는 사실에 점점 더 좌절하고 있습니다. 나는 나의 필요를 충족시키기 위해 그들의 시스템을 업그레이드 할 수있는 선택권이 없다. 내 애플 리케이션은 대부분 제가 일하는 회사의 메인 프로그램과 함께 실행되는 유틸리티입니다. 이들은 파일 시스템과 레지스트리에 액세스합니다. 일반적으로 프로그래밍에 익숙하지 않은이 도구를 웹으로 이동하면 내 문제가 해결 될지 궁금해졌습니다. 그러나 웹 응용 프로그램이 이러한 Windows 부분에 액세스 할 수 있는지 여부는 알 수 없습니다. 나는 Rails 또는 ASP.NET에서 이러한 웹 응용 프로그램을 작성하려고 생각했습니다. 그래서 제 질문은 이것입니다. 웹 응용 프로그램이 Windows의 레지스트리 및 파일 시스템에 액세스하여 수정할 수 있습니까?웹 응용 프로그램이 Windows 레지스트리에 액세스하여 수정할 수 있습니까?

감사합니다.

+0

입력 해 주셔서 감사합니다. 나는 많은 것을 배웠다. – JimDel

답변

5

아니요. asp.net 또는 rails 앱과 같은 "웹 앱"은 서버에서만 실행되며 클라이언트에게 HTML을 제공합니다. 따라서 모든 클라이언트 측 코드는 브라우저 샌드 박스에서 실행되는 jscript가 수행 할 수있는 것, 즉 파일 액세스 또는 레지스트리 액세스가 불가능합니다.

그러나 전체 액세스 권한을 가진 클라이언트 컴퓨터에 activex를 설치할 수는 있지만 사용자는 보안 위험 때문에 설치하는 데 동의해야합니다.

1

아니요, 불가능합니다. 보안 문제로 인해 웹 응용 프로그램은 사용자의 컴퓨터에서 레지스트리 및/또는 파일 시스템을 수정할 수 없습니다. 이러한 종류의 변경 작업을 수행하려면 Windows 응용 프로그램을 개발해야합니다. 당신은 항상 귀하의 웹 사이트에서 다운로드 할 수 있도록이 도구를 만들 수 있습니다.

2

아니요, 전통적인 asp.net 응용 프로그램은 Windows 시스템의 파일 시스템이나 레지스트리에 액세스 할 수 없습니다. 클라이언트 시스템에서 실제로 실행되지 않기 때문에 간단하게 넣을 수 있습니다. 대신 로컬 시스템에 액세스 할 수없는 서버에서 실행됩니다.

클라이언트 컴퓨터에서 실행되는 응용 프로그램의 부분을 가질 수 있습니다. 예를 들어 브라우저 기반 응용 프로그램. 그러나 이것들은 고객 시스템에 2.0 프레임 워크가 설치되어 사각형 # 1에서 다시 돌아올 것을 요구합니다.

+0

또한 사용자가 앱에서 이러한 위험하지 않은 작업을 수행하도록 허용해야하므로 씩 (thick) 클라이언트 앱을 설치하는 것보다 더 나쁩니다. – gbjbaanb

1

아니요, 웹 응용 프로그램으로는 불가능합니다. 다른 사람들은 이미 웹 응용 프로그램이 운영 체제 내부가 아니라 브라우저에서 실행되기 때문에 브라우저에서 수행 할 수있는 작업은 모두 사용자가 원하는 작업이 아니라 브라우저에서 수행 할 수있는 작업뿐입니다. 호스트 컴퓨터.

3

대신 웹 앱으로 앱을 작성하면 (레일즈 사용이 멋지다) 좋은 옵션입니다. 사용자가 아무것도 설치하지 않아도되고, 업그레이드가 쉽고, 의존성에 더 이상 문제가 없습니다.

그러나 브라우저에 저장된 쿠키를 제외하고는 클라이언트에 아무 것도 쓸 필요가 없도록 응용 프로그램을 다시 구성해야합니다. 이 작업을 수행 할 수 있다면 webapp로 마이그레이션하는 것이 좋습니다.

당신이 할 수 없다면, 내 조언은 회사의 응용 프로그램이 작성된 것과 동일한 언어를 배우는 것입니다. 일단 그렇게하면, 회사 응용 프로그램이 이미 종속성을 처리하게 될 것이므로 귀하는 유틸리티를 제공해야 할 것입니다 어쩌면 설치 프로그램에서 또는 단지 하위 디렉토리에 파일을 복사 할 수도 있습니다. 루비를 배우려고한다면 기업 언어를 배우는 것이 어려울 것입니다 (주 앱에 사용 된 많은 코드를 재사용 할 수 있습니다)

+0

주 응용 프로그램의 종속성을 사용하는 것이 분명한 해결책처럼 보입니다. – ScottS

1

사용하는 데스크톱 앱을 추측하고 있습니다. 귀하의 회사에서는 워크 스테이션/사용자 특정 (상태) 데이터를 저장하기 위해 레지스트리를 사용합니다.

웹 기반 앱으로 이동한다고해서 더 이상 상태 데이터를 저장할 수 없다는 것을 의미하지는 않습니다. 데이터베이스에 동일한 (상태) 데이터를 저장하는 데 사용할 수있는 테이블을 포함시켜 계정을 처리하십시오. 레지스트리는 더 이상 필요합니다.

또 다른 장점은 완전히 웹 기반 응용 프로그램으로 이동하면 코드가 서버에서 실행되기 때문에 최종 사용자에 대해 걱정할 필요가 없다는 것입니다. 최종 사용자는 모두 html : -D로 출력됩니다.

브라우저에서의 호환성은 크로스 브라우저 호환성에서만 발생합니다. 예를 들어 IE에서만 작동하는 앱을 만들지 마세요. 모든 주요 브라우저에서 똑같이 보이고 작동해야합니다.

1

Xenocode 및 VMWare의 ThinApp와 같이 .NET Framework가 설치되지 않은 컴퓨터에서 .NET 응용 프로그램을 실행할 수있는 지점까지 응용 프로그램의 종속성을 가상화 할 수있는 제품이 몇 가지 있습니다. 왼쪽 필드에서 또 다른 옵션.

관련 문제