2014-02-06 3 views
0

저는 Razor 3 및 .NET Framework 4.5를 사용하는 ASP.NET 웹 페이지 프로젝트에서 작업하고 있습니다. 이 시점에서 IIS7 (Windows Server 2008 R2) 또는 IIS8 (Windows Server 2012)에 배포할지 여부는 알 수 없습니다.ASP.NET 웹 페이지 - 세미 동적 콘텐츠 캐싱

주문 된 CMS에서 관리하는 데이터베이스에서 채워지는 일부 .vbhtml 콘텐츠 페이지가 있습니다. 이 페이지의 내용은 자주 변경되지 않습니다 (홈 페이지, 우리에 관한 것, 작동 방식, FAQ 형식 페이지). 불필요한 데이터베이스 호출을 방지하기 위해 내용을 효과적으로 캐시하려고합니다. 나는 반 동적 인 내용으로 생각한다.

페이지 내용을 변경했을 때 데이터베이스에서 가져 오는 페이지 만 캐시하는 가장 좋은 방법은 무엇입니까? 이 코드는 IIS에서 설정 될 수 있습니까?

감사합니다.

+0

NHibernate를 사용하고 있습니까? –

+0

@ Carl Carlson 필자는 결코 그것을 사용하지 않았으며 팀은 Entity Framework와 같은 ORM 솔루션을 사용하지 않으려했지만 유용 할 가능성이 있다면 확실히 조사 할 것입니다. 제가주의해야 할 유일한 것은 헌신적 인 프로젝트 시간 척도에 따라 가파른 학습 곡선입니다. –

+0

자주 바뀌지 않는 콘텐츠 페이지가 현재 얼마나 많습니까? 내 대답은 10 명이 있는지 아니면 1 천 명이 있는지에 따라 달라질 수 있습니다! – Polynomial

답변

1

나는 캐싱에 대한 전문가가 아니며, 다음은 내 의견과 문제에 대한 의견을 나타냅니다.

먼저 캐싱을 전혀 사용하지 않는 경우입니다. 캐싱을 사용하여 기본적으로 메모리 풋 프린트에 대한 CPU 및 I/O 시간을 교환합니다. 전자가 프리미엄에 있고 당신이 후자를 가지고 있다면 그것은 분명 승리입니다. 물론 그것은 메모리 사용에 추가로 다른 가격, 즉 코드 복잡성을 발생시킵니다. 캐싱 시스템은 지나치게 복잡 할 필요는 없지만, 필자가 작성할 수있는 가장 좋은 코드는 작성할 수있는 가장 간단한 코드라는 의견이 항상있었습니다. 문제는 필자가 동적 리소스 캐싱을 고려하기 전에 해당 리소스가 분당 한 번 이상 요청되어야한다는 것입니다 (또는 페이지가 CPU 또는 I/O와 같이 매우 비싼 CPU를 계산해야 함). 코드가 자주 실행되지 않는다면 간단한 CMS 데이터베이스가 일부 컨텐트에 대해 자주 충돌 할 것이므로 코드베이스에 추가 오류 지점을 추가 할 필요가 없습니다. 웹 페이지는 사이트에서 기본 캐시 시스템의 일부 형식을 구현하려는 가정하에 다음과 같이 간단하면서도 강력한 내장 도구를 제공합니다. 여기 좋은 자습서는 다음과 같습니다

http://www.asp.net/web-pages/tutorials/performance-and-traffic/15-caching-to-improve-the-performance-of-your-website

나는 CMS가 동일한 프로젝트를 사용하는지 여부에 대해 질문하는 이유는 쉽게/에디터가 직접 무효화 할 캐시를 다시로드 할 수 있습니다 때 때때로 편리하다는 때 내용의 특정 부분 편집됩니다. 편집 내용을 즉시 표시하면서 데이터를 더 영구적으로 만들 수 있습니다. 캐쉬가 비었을 때 캐쉬가 비었을 때 데이터베이스에서 내용을로드하는 프론트 엔드 페이지가있는 단순한 시스템은 캐쉬를 무효로하거나 리로드하는 에디터와 결합하여 나에게 이상적이라고 들립니다. 캐싱 구현으로 진행하기로 결정하십시오.

+0

그것은 데이터 캐싱에 대한 유용한 링크입니다. 내 목적으로 이것은 페이지 수준 캐싱보다 바람직하며 WebCache 객체를 사용하여 구현하는 것은 매우 쉽습니다. 나는 캐싱에 대한 당신의 의견을 기록하고 생각할 것이다. 시간을내어 주셔서 감사합니다. –