2013-08-29 2 views
0

나는 asp.net C#에서 고객을위한 웹 사이트를 설계하고 있으며 소스 코드를 수정하지 않고도 일부 설정에 액세스하려고합니다. 예를 들어, 페이지 메타 키워드, 일부 문자 및 전자 메일 텍스트 및 일부 숫자 값. 음, 이들은 항상 코드로 작성됩니다. 하지만 속도와 품질을 유지하면서 패널을 통해 변경할 수 있도록하기 위해 어디에 저장할지 모릅니다.제한된 수의 설정을 저장하기위한 작은 데이터베이스

데이터베이스에 저장 하시겠습니까? 그들은 서로 다른 데이터 유형을 가지고 있습니다. xml 파일에서? 나는 속도에 많은 영향을 미칠 것이라고 생각한다. 너는 무엇을 제안 하겠는가?

답변

2

우리는 일반적으로 Web.config의 appSettings에 작은 설정을 유지합니다. 귀하의 질문과 관련이 있는지 모르겠습니다.

<?xml version="1.0"?> 
<configuration> 
    <appSettings> 
    <add key="mysetting" value="abcd"/> 
    <add key="anothersetting" value="cdef"/> 
    </appSettings> 
</configuration> 
+0

패널에서 설정을 변경하기 위해 프로그래밍 방식으로 사용자에게 액세스 권한을 부여하려면 어떻게해야합니까? 쓰기 및 쓰기 문제로 web.config를 열고 닫지 않습니까? –

+1

web.config의 설정을 런타임의 코드에서 변경하는 것이 정상적인 것은 아닙니다. 그러나, 당신은 app.Config를 사용하는 또 다른 접근법을 사용할 수 있습니다 - [Read/Write App.Config File with .NET 2.0] (http://www.codeproject.com/Articles/14744/Read-Write-App-Config-File) -with-NET-2-0) – Win

0

데이터 집합이 작고 평면 (예 : 비 관계형 또는 계층 구조) 인 경우 데이터를 App_Data.xml 또는 Web.config 파일에 저장합니다. 관계형 데이터베이스는 평면 응용 프로그램 설정에 너무 많은 번거 로움이 있습니다. 그런 다음 .NET과 함께 제공되는 XML 라이브러리 만 사용하여 런타임 중에 App_Data 파일을 편집 할 수 있습니다.

+0

고객이 관리 패널에서 설정을 수정하려고합니다. 그리고 XML 파일 속도가 문제가 생기지 않을까요? –

+0

xml yes에 수만 가지 옵션이 저장되어 있습니다. 상대적으로 작은 숫자라면 xml이 좋습니다. – user2366842

+1

@AshkanMobayenKhiabani는 시작할 때 xml 파일의 내용을 메모리에 유지하지 않습니다. 그런 다음 파일을 편집 할 때마다 메모리 상태를 업데이트 한 다음 파일에 기록하십시오. 어쨌든, xml I/O는 캐싱 없이도 충분히 빠릅니다.이 페이지를 업데이트하는 수백/수천 명의 사용자를 언급하지 않는 한 말입니다. 스레드 안전성의 오버 헤드는 아마 가장 느린 부분 일 것입니다. –

0

하나의 가능한 데이터베이스 솔루션은 ServiceStack.OrmLite을 SQLite 데이터베이스와 함께 사용하는 것입니다. 설정 파일은 POCO입니다. 쿼리/업데이트는 한 줄로 이루어집니다.

또 다른 해결책은 LINQ2XML을 사용하는 것입니다. 때때로 작은 파일을 읽는 &을 작성하는 오버 헤드는 중요하지 않습니다.

+2

전적으로 동의하지는 않지만 ... "ORM"이라는 단어가없는 것은 간단합니다. –

관련 문제