2009-04-22 6 views
0

배치 파일을 사용하여 활성화 할 수있는 응용 프로그램을 만들어야합니다.어떤 종류의 응용 프로그램이 비 대화식으로 실행하는 데 가장 좋을까요?

응용 프로그램은 파일 이름의 단일 문자열 매개 변수를 허용합니다. 그런 다음이 파일을 사용하여 일부 처리를 실행하고 미리 지정된 위치에 다른 파일을 놓아 종료합니다.

응용 프로그램은 실제 사용자와 상호 작용할 필요가 없습니다.

내가 선호하는 플랫폼은 C#을 사용하는 .net입니다.

원래 콘솔 응용 프로그램을 작성할 계획 이었지만 이것이 최선의 방법인지 확신 할 수 없습니다.

이 작업을 수행하는 가장 좋은 방법은 무엇입니까? 배치 파일에 의해 트리거되는 Windows 서비스를 만드는 방법이 있습니까? 이것이 더 바람직한가? Windows Form 프로젝트가 더 바람직할까요?

답변

3

옵션 1 : 콘솔 앱. Windows 스케줄러를 사용하여 스케줄 시간에 실행하십시오. (권장)

옵션 2 : 일부 inbuilt 스케줄러 또는 폴러가있는 Windows 서비스.

0

대화 형이 아닌 경우 콘솔을 배경으로두고 그대로 둘 수 있으므로 콘솔은 거의 확실하게 이동 방법입니다.

0

확실히 특정 폴더에 배치 할 파일을 감시하는 Windows 서비스를 만들 수 있습니다. 배치 파일은 그 파일을 그 폴더에 넣을 수 있습니다.

그래야 더 나은 이유를 찾을 것을 권장합니다. "콘솔 프로그램을 실행하고 파일 이름을 지정하는 배치 작업보다 어떤면에서 더 낫겠습니까?"라고 자문 해보십시오.

1

가장 빠르게 개발할 작업은 Windows 예약 된 작업 (또는 비슷한 작업)에 의해 트리거되는 배치 파일을 사용하는 콘솔 응용 프로그램 일 가능성이 큽니다.

이렇게하면 스케줄링 프레임 워크를 사용하지 않고 응용 프로그램 자체의 기능 만 개발하면됩니다.

또한 로깅, 쉽게 사용자 지정 가능한 예약, 오류보고 등의 예약 된 작업에서 제공하는 기능을 활용할 수 있습니다. Windows Schdeduled 작업의 또 다른 옵션은 SQL Server 예약 된 작업을 사용하는 것일 수도 있습니다. 직업 내역.

모두 당신이 그 길을 가면, 당신이 당신 자신의 윈도우 서비스를 작성한다면 제거 할 수있는 여분의 의존성이있다. 또한 배포가 중요한 경우 설치 프로그램과 함께 Windows 서비스를 작성하면 설치 프로세스를 훨씬 잘 제어 할 수 있습니다.

0

항상 켜져있는 콘솔 앱 대신 문제의 폴더를 감시하는 FileSystemWatcher가있는 Windows 서비스입니다. 그게 그들이 원하는 이유이고, 시스템이 실패하면 파일을 저장하는 것을 기억할 필요가 없으며 Windows 시작에 넣을 필요가 없습니다. 서비스가 자동으로 시작되도록 설정하십시오.

모든 서버 형 응용 프로그램은 어떤 종류없이 직접 부착 UI로 기록 된 다음과 같이 내가 회사 정책으로 채택 내 이전 고용주를 설득

3

내가 가장 좋아하는 옵션과 하나입니다.이 기능을 Windows 응용 프로그램처럼 콘솔 응용 프로그램으로 컴파일하든 아니면 설계 단계에서 관련이 없든 .NET을 사용하면 컴파일러 스위치를 뒤집을 수 있습니다. 일반적으로 프로그램은 사람의 직접적인 개입없이 실행되기 때문에 일반적으로 서비스로 실행되도록 설계되었습니다. 서비스 제어 관리자는 시작 및 종료를 처리하고 실패 할 경우 응용 프로그램을 다시 시작할 수 있으며 많은 좋은 작업을 수행합니다 데스크톱 응용 프로그램을 작성할 때 혼자하기가 어렵습니다.

다음으로 서버 응용 프로그램에서 네트워크를 통해 수신 대기하여 "admin"이 연결되도록합니다. 이 관리자 연결은 사용자의 UI입니다. SSL 암호화 및 인증과 같은 사항은 귀하와 귀하의 회사에 달려 있지만 기본적으로는 사람이 읽을 수있는 회선 기반 인터페이스를 구축하는 것이 좋습니다. 그렇게하면 telnet으로 연결하여 "show connections", "drop user 52"및 "restart"과 같은 명령을 실행할 수 있습니다. 모든 종류의 관리 동작 및 모든 종류의 상태 및 통계는이 인터페이스를 사용하여 노출되어야합니다. 우선, 이것은 디버깅에 도움이되고, 둘째로, 다음 단계로 인도합니다 ...

마지막으로 UI를 작성합니다. 아마 간단한 것. 이 UI 구성의 일부는 연결할 호스트와 포트 및 인증 비트를 지정하는 것입니다. UI 응용 프로그램은 서비스를 실행하는 시스템에 연결하고 네트워크 관리 인터페이스를 통해 명령을 실행하고 결과를 해석합니다. 우리 회사에서 각각의 새 UI는 더 큰 프로젝트의 일부로 스냅인 모듈이었습니다. 이 프로젝트는 다양한 서버와 상태를 나타내는 거의 빨간색과 녹색 불빛을 보여줍니다. 서버를 클릭하면 해당 서버로 "드릴 다운"하여 상태 또는 구성의 다양한 측면을 검사 할 수 있습니다.

프로젝트는 단 하나 또는 두 개의 서버에서 내 작은 프로그램으로 시작되었지만 다양한 운영 체제와 전 세계 수많은 도시에서 실행되는 소수의 서비스를 실행하는 수십 개의 서버를 포함하여 빠르게 성장했습니다. 이 간단한 UI 정책을 사용하여 한 곳에서 여러 사무실의 서로 다른 책상에서 수백 가지 서비스를 쉽게 추적하고 제어 할 수있었습니다.

확장 성이란 컴퓨터 앞에있는 누군가가 작성한 프로그램의 단추를 누르지 않아도된다는 것을 의미합니다.

관련 문제