2011-04-10 2 views
0

현재 Windows Azure에서 실행중인 사용자 지정 ASP.NET 4 웹 응용 프로그램이 있습니다. 내가 자주 볼 수있는 (지난 25 년에 두 번) 변경되는 데이터 세트 (수천 개의 항목, 각각 "키"값 및 1-3 문장 설명이 있음)가 있습니다. 응용 프로그램 (드롭 다운 컨트롤, 그리드 등).자주 변경되지 않는 웹 응용 프로그램의 로컬 데이터를 저장하는 기본 방법은 무엇입니까?

나는 데이터베이스를 변경할 필요가 거의 없기 때문에 데이터를 데이터베이스에 저장하는 것이 바람직하지 않으며 각 페이지를 다시로드 할 때 여러 문장을 전달할 것이라고 생각합니다. LINQ-to-XML 또는 Resource 파일을 통해 액세스되는 XML 파일을 평가 중입니다. 문자열이 현지화 될 잠재적 인 필요성이 있습니다 (비즈니스 파일에 대한 접근이 필요하다고 생각합니다). 그러나 비즈니스 로직이 관련되어 있기 때문에 여러 가지 특성 (특정 "키")을 기반으로 데이터를 쿼리해야 할 때가 있습니다. 가치 또는 다른 특성, 나는 LINQ로 더 쉬울 것이라고 믿는다).

아무도 여기에서 사용하는 것에 대한 의견이 있습니까? 다른 옵션도있을 수 있습니다, 나는 확실히 그 또한 즐겁게 할 것입니다 ... 감사합니다!

답변

0

XML 파일을 리소스에 저장하지 않는 이유는 무엇입니까? 이렇게하면 간단한 패키징, 빠른 액세스, LINQ 및 현지화의 이점을 누릴 수 있습니다.

그러나 이미 데이터베이스가 호스팅되어있는 경우 SQL Azure를 배제하지 않을 것입니다. 이 도구에 대한 액세스는 빠르며, 연결 빈도에 관계없이 추가 비용을 지불하지 않습니다 (이미 데이터베이스를 배포 한 경우). ATS는 다소 느리지 만 (확장 성이 있지만 그렇지만), ATS에 가면 언제든지 비용을 지불하게됩니다.

전반적으로이 작업을 수행하는 데 십여 가지 방법이 있으며 모두 정상입니다. 퍼포먼스가 최고의 관심사라면 리소스를 통해 애플리케이션에 임베드하는 것이 가장 좋은 방법 일 것입니다. 유연성 & 배포가 가장 큰 문제인 경우 SQL Azure가 가장 좋은 방법입니다.

0

데이터가 변경되지 않았기 때문에 데이터베이스를 제외하지 않을 것입니다. Azure가 허용한다고 가정하면 SQL CE 또는 SQLite와 같은 간단한 데이터베이스가 정상적으로 작동 할 것입니다.

즉, 언급 한 다른 요소 (키에서 짧은 문자열로 매핑, 현지화 가능성, UI의 일부로 표시됨)는 리소스 파일을 가장 좋은 방법으로 보입니다.

리소스 문자열을 기반으로 쿼리를 실행하는 것은 다소 이상하게 보입니다. 가능합니다 (this question 참조). 그러나 "foo를 포함하는 모든 리소스 문자열을 제공합니다"와 같은 쿼리를 실행하면 현지화 된 모든 것.

0

Windows Azure 테이블을 사용할 수 있습니다. 빠르고 안정적이며 LINQ를 부분적으로 지원합니다. Here은 Azure의 LINQ에 사용할 수있는 쿼리 연산자입니다. 또한 현지화가 필요한 경우 PartitionKey와 동일한 테이블과 문화권을 사용할 수 있습니다. 또한 스토리지가 모든 노드에 공통적으로 적용되므로 크기를 늘리거나 줄일 때 문제가 발생하지 않습니다.

Windows Azure 테이블에 대한 옵션은 LINQ-to-XML을 통해 액세스되는 XML 파일이있는 전용 컨테이너 일 수 있습니다. 하지만 첫 번째 변종을 선호합니다.

+0

데이터가 변경되지 않는다면 Azure 테이블을 선호하는 이유는 무엇입니까? 비용이 더 많이 들고 액세스 속도가 로컬 디스크의 파일보다 느린 것 같습니다. 누락 된 부분이 있습니까? – OperatorOverload

관련 문제