2009-04-08 3 views
6

두 가지 다른 접근 방식이있는 것 같습니다. ASP.NET 프레임 워크를 사용하면 UserProfile.en.resx, UserProfile.fr.resx 등의 리소스에 UI 문자열을 넣어 페이지를 쉽게 현지화 할 수 있습니다.ASP.NET : 리소스 또는 데이터베이스에 지역화 할 수있는 UI 텍스트를 저장하는 것이 좋습니까?

다른 방법은 모든 문자열을 그런 다음 데이터베이스에서 일부 사용자 지정 메커니즘을 사용하여 현재 활성화 된 언어/문화 설정에 맞게 검색합니다.

내가 이해하는 한 데이터베이스 접근 방식은 엔터프라이즈 소프트웨어 같은 큰 프로젝트에서 더 일반적입니다. 또한 번역 회사에 데이터베이스에 대한 외부 액세스 권한을 부여 할 수있는 이점이 있습니다. 자원으로는 어려울 것입니다.

반면에 데이터베이스에서 모든 정적 문자열을 검색하는 것은 추가 트래픽 및로드 오버 헤드입니다. 비교적 작은 규모의 웹 사이트가 그렇게 할 수있는 이점은 없습니다. "작은"은 트래픽이 아니라 페이지의 양과 복잡성을 의미합니다.

나는 내 개인 프로젝트에 개인적으로 리소스를 사용하는 것을 선호합니다. 이것은 절대적으로 나쁜 생각입니까?

그런데도 ASP.NET MVC에서 리소스를 사용할 수 있습니까?

의견을 보내 주시면 감사하겠습니다.

편집 : 단 하나의 대답,이 질문은 누구에게도 관심이 없다고 생각할 수 없습니다. 아무도 자신의 의견을 공유하고 싶어하지 않습니까?

답변

2

나는이 모든 정보를 asp.net 리소스 파일에 의존하는 대신 데이터베이스에 저장하는 편이 더 좋습니다.

내가 한 일은 라벨과 같은 공통 컨트롤을 서브 클래 싱하고 렌더링 방법을 재정의하는 것입니다. 이 방법은 현재 문화권을 찾고 이에 따라 적절한 캡션을 설정합니다.

성능을 데이터베이스에 저장하면 성능이 향상됩니다. 내 application_start 이벤트에서 모든 문화권을로드하기 만하면됩니다. 특정 설명을 사용자 지정 개체에 저장하고 실제로 캐시합니다. 이 방법은 내 캐시가 만료되거나 만료 될 때까지 데이터베이스에 도달하지 않아도됩니다.

지금까지이 접근법에 따라 성능에 문제가 없었습니다. 이 모든 것을 한 - 내가 리소스 파일을 사용하는 것이 나쁜 옵션 중 하나를

것을 말하고 있지 않다 그러나 나에게 선택의 여지가 주어진다면, 내가

3

이 두 가지를 결합하는 대신 리소스 파일 접근 방식의 데이터베이스 접근 방식을 선호 유의하시기 바랍니다 . 리소스 파일 대신 데이터베이스를 사용하는 사용자 정의 리소스 공급자를 작성할 수 있으므로 텍스트를 직접 바인딩 할 필요가 없습니다 (즉, 오류를 유발할 수 있음). ASP 만 사용하면됩니다. NET의 현지화 기능. MSDN에는 walkthrough이 유용합니다. Michelle Leroux Bustamante

+0

http://www.west-wind.com/presentations/wwdbresourceprovider/ article이 (가) 데이터베이스를 사용하는 사용자 지정 리소스 공급자의 소스 코드로 구현되었습니다. –

관련 문제