문제

내 계획을 저장하는 모든 내용 내 응용 프로그램에서의 응용 프로그램입니다.config 섹션을 사용하여( ConfigurationManager.AppSettings 클래스).사용자로 변경 설정을 사용하여 응용 프로그램의 UI(클릭 체크 박스를 선택,라디오 버튼,etc.), 내 계획을 쓰고 있는 그 변경 사항 AppSettings.동시에,프로그램이 실행되는 동안 나는 계획에 액세스할 AppSettings 끊임없이 프로세스에서는 지속적으로 데이터를 처리.설정을 변경하는 UI 를 통한에 영향을 미칠 필요는 데이터 처리,실시간으로는 이유는 프로세스에 액세스할 AppSettings 다.

이것은 좋은 아이디어와 관련하여 성능은?용 AppSettings 는"올바른 방법"저장하고 접근 구성 설정할 때 쓰기.Net 앱하지만,제가 걱정하는 이 방법이 없도에 대한 지속적인 부하(적어도의 관점에서 설정되고 지속적으로 읽).

면 누구나 경험을 가지고 이와 함께,내가 크게 입력을 주셔서 감사합니다.

업데이트: 야 아마 몇 가지 포인트를 명확히.

이 웹 응용 프로그램,그래서 연결하는 데이터베이스 응용 프로그램은 과잉이 될 수 있는 단순히 저장하는 구성 설정합니다.이것은 Windows Forms 응용 프로그램입니다.

에 따라 MSDN documention,the ConfigurationManager 는 저장하기 위해 다만 응용 프로그램 수준 설정이지만,사용자 설정뿐만 아니라.(경우에 특히 중요,예를 들어,응용 프로그램이 설치되으로 부분적으로 신뢰할 수 있는 응용 프로그램에 적용 됩니다.)

Update2: 나는 받아들 lomaxx 의 대답이기 때문에 Properties 가 실제로 보면 다음과 같이 좋은 솔루션을 추가하지 않고도 어떤 추가적인 레이어를 내 응용 프로그램(과 같은 데이터베이스)입니다.면 속성을 사용하여,그것은 이미 모든 캐싱하는 다른 사람을 제안합니다.이미 모든 변경 사항 및 후속 읽는 모든 메모리에서 수행되고,그것은 매우 빠르다.만 속성을 변경 사항을 기록하는 디스크의 경우 명시적으로 말합니다.이것이 의미가 변경할 수 있는 구성 설정에서 비행 실행 시간에서 그만 마지막을 저장하는 디스크 프로그램이 종료됩니다.

그냥을 확인하는 것이 실제로 처리할 수 있는 부하가 필요로 나는 일부 테스트에서 노트북을 할 수 있었 750,000 읽고 7,500 당 쓰기 두 번째 속성을 사용하여.는 지금까지가 나의 응용 프로그램 면 나는 느낌이에서 매우 안전한 속성을 사용하여 성능에 영향을 주지 않고.

도움이 되었습니까?

해결책

부터를 사용하 winforms 경우,응용 프로그램이 있습니다.net2.0 이 실제로 사용자 설정 시스템(라는 속성)는 이러한 용도로 사용됩니다. 이 문서에 MSDN 매우 좋은 도입 이

는 경우 당신은 여전히 걱정이 성능에 대한 후 살펴보 SQL Compact Edition 비슷한 SQLite 지만 Microsoft 제공하는 내가 발견 매우 잘는 데 적도있는 능력을 으로 작동하게 Linq

다른 팁

체크아웃 SQLite 것 같아 좋은 옵션이 특정 시나리오이다.

딜런,

응용 프로그램을 사용하지 않 config 파일을 이 목적을 위해,사용하여 SQL DB(SQLite,MySQL,MSSQL,무엇이든)을 해야 하기 때문에 걱정을 덜에 대한 동시성 문제를 중에 읽기 및 쓰기를 config 파일에 있습니다.

당신은 또한 더 나은 유연성에 입력할 데이터의 저장할 수 있습니다.AppSettings 섹션에서는 단지 키/값 목록할 수 있는 자라 시간이 지남에 따라 그리고 응용 프로그램이 성숙한다.당신이 사용할 수 있 설정 섹션이지만 당신은 새로운 문제 영역을 때는 디자인이다.

AppSettings 정말 의미가되지 않습니다 무엇을하려고 노력하고 있습니다.

면.인터넷 응용 프로그램이 시작되면을 읽습니다.config 파일에 캐시 그 내용을 메모리에 있습니다.이러한 이유로,당신이 작성합니다.config 파일에,당신은 어떻게 든 강제로 런타임을 다시 구문 분석하는 앱입니다.config 파일을 수 있도록 캐시 설정이 다시합니다.이 작업이 필요하지 않습니다

최고의 접근 방식 을 사용하는 것이 데이터베이스를 저장하는 구성 설정합니다.

을 제외하고 사용하는 데이터베이스에,당신은 쉽게 설치는 외부 XML configuration file.응용 프로그램이 시작될 때,당신은 수 있는 캐쉬에서 그 내용 NameValueCollection 체 또는 HashTable 개체입니다.으로 변경/설정을 추가,당신이 그것을 할 것을 캐시 복사본입니다.할 때 응용 프로그램를 종료하거나,적절한 시간 간격을 작성할 수 있습니다 캐시 내용을 파일입니다.

사람이 올바른 경우,그러나 나는 생각하지 않는 AppSettings 은 일반적으로 사용되는 것을 의미한 이러한 유형의 구성을 설정합니다.일반적으로 당신만을 넣어 설정에서 남아 있는 매우 정적(데이터베이스 연결 문자열,파일 경로,etc.).을 저장하려는 경우에는 사용자 정의 사용자 설정,그것은 더 나은 것을 만들은 별도의 설정 파일에 저장 설정에서 데이터베이스입니다.

나는 사용하지 않을 config 파일을 저장하기 위해 사용자 데이터입니다.사용 db.

나는 이유를 물어 당신을 저장하지 않는 사용자 설정 데이터베이스에서?

일반적으로 저장 응용 프로그램 설정을 자주 변경되지 않습니다 appSettings 섹션에서(기본 이메일 주소 오류 로그를 보낼 수는 분 후에는 자동으로 로그아웃,etc.) 의 범위를 이것은 정말이지,응용 프로그램에서 사용자,일반적으로 사용되는 배포를 위한 설정입니다.

한 가지는 하이 캐싱 appsettings 에서 읽을 다음,플러싱에서 설정을 캐쉬에 작성해야하는 양을 최소화의 실제 부하 서버가 처리 처리에 대한 appSettings.

또한,가능한 경우에 보 깨 appSettings 로 configSections 읽을 수 있도록 작성과 캐시 관련 설정을 지정합니다.

을 말한 모든 것,내가 심각하게 고려하고 저장 이 값 데이터베이스에서 당신은 실제로 저장 사용자 환경 설정, 과하지 않는 응용 프로그램 설정.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top