2017-03-09 1 views
1

C#으로 큰 솔루션을 개발하고 있습니다. 일부 프로젝트는 .NET Framework 4.0 (대부분)이고 다른 프로젝트는 .NET Framework 4.6.2입니다.앱과 Windows 서비스간에 동일한 설정 또는 구성을 공유하는 방법 (다른 PC에서 실행되는 경우에도 마찬가지 임)

이 솔루션에는 WinForm 응용 프로그램과 Windows 서비스가 있습니다.

제 문제는 이러한 모든 응용 프로그램이 데이터베이스 연결 문자열, 서버의 IP 등을 공유한다는 것입니다. 이러한 구성 설정을 모두 업데이트하려면 해당 구성 파일을 각각 수정해야합니다.

또한이 설정을 암호화하여 사용자가 수정할 수 없도록하려고합니다.

Windows 레지스트리 또는 암호화 된 SQL 라이트 데이터베이스를 사용하거나 웹 API 인터페이스가있는 다른 Windows 서비스를 사용하여 이러한 설정을 각각 요청했습니다.

나에게 무엇을 권하고 싶습니까?

그런데이 모든 프로그램은 다른 PC에 설치되므로 모든 PC에 해당 솔루션을 사용해야하거나 한 대의 PC에서만 모든 설정을 사용할 수 있습니다.

나에게 무엇을 제안합니까?

답변

0

다른 컴퓨터간에 이러한 정보를 동기화해야하는 경우이를 수행하기 위해 일종의 중앙 집중식 서비스가 필요합니다.

하나의 아이디어는 Apache Zookeeper입니다.

사육사는 구성을 정보를 유지하는 이름, 분산 동기화를 제공하고 그룹 서비스를 제공하는 중앙 집중식 서비스입니다. 서비스의 이러한 종류의 모든 분산 응용 프로그램에서 어떤 형태로든 사용되는

의 I는 것이다 우려가 분산 애플리케이션을 위해 설계 될 수 있습니다로 어쩌면 사육사가 프로젝트에 너무 많이있을 것입니다 하나의 노드에 배포 할 수는 있지만 잔인 함.

0

웹 API 인터페이스는 거의 권장하지 않습니다. 웹 API를 사용하는 경우 설정을 저장하는 방법을 변경할 수 있으며 웹 API 백엔드 만 변경하면됩니다. 설정을 가져 오는 방법은 여전히 ​​동일 할 수 있으며 소비하는 앱이나 서비스에서 어떤 것도 변경할 필요가 없습니다.

데이터베이스에 직접 연결하려면 최소한 각 응용 프로그램에서이 데이터베이스에 대한 연결 문자열을 저장해야하며 변경하는 경우 모든 소비자를 업데이트해야합니다.

관련 문제