Кэширование не обязательно только относится 'часто к полученным' значениям, но к чему-либо, на чем можно сэкономить время путем сокращения количества раз, Вы повторно вычисляете его. Простой пример, который приходит на ум, вычисляет последовательность fibonacci . Самая простая рекурсивная реализация похожа на это (в psuedo-коде):
function f(n)
if n < 2 then
return n;
return f(n - 1) + f(n - 2)
Это может быть улучшено с кэшированием уже для предотвращения перевычисления известных значений:
fib_cache = {}
function f(n)
if n < 2 then
return n;
if fib_cache.contains(n) then
return fib_cache[n]
fib_cache[n] = f(n - 1) + f(n - 2)
return fib_cache[n]
" Приложение-служба WCF »само по себе прямое приложение веб-службы, полагающееся по технологии WCF (похожей на разработка веб-сервиса ASP.NET). "Сервисная библиотека WCF" с другой стороны. рука - это скомпилированный компонент, который может быть развернутым как веб-сервис или Служба Windows или даже как часть настраиваемое приложение для размещения.
- Разработка библиотеки службы WCF и ее размещение в качестве веб-службы WCF
Я бы всегда создавал библиотеку WCF как библиотеку классов - ее намного проще использовать. У вас есть полная гибкость, чтобы либо разместить свою службу WCF внутри IIS (путем предоставления виртуального каталога и файла .svc внутри него), либо вы можете написать свой собственный EXE-файл для самостоятельного размещения и ссылаться на службу WCF в библиотеке классов из него.
Включение службы WCF непосредственно в веб-проект кажется действительно плохой идеей и может быть полезно только для очень простых учебных целей - просто чтобы показать, как начать работу. Я бы никогда не сделал этого для «живой» системы.
Marc