Различия здесь довольно хорошо обобщены:
Изучение кеширования в ASP.Net
Вы перечислили одни и те же типы кэширования несколько раз; Я бы посоветовал прочитать ссылку выше, и, если у вас возникли дополнительные трудности, вернитесь и задайте более конкретные вопросы.
Подведем итог статьи:
Мы можем использовать Кэширование вывода страницы для тех страниц, содержимое которых относительно статично. Таким образом, вместо того, чтобы генерировать страницу по каждому запросу пользователя, мы можем кэшировать страницу с использованием кэширования вывода страницы, чтобы к ней можно было обращаться из самого кэша. Страницы могут быть сгенерированы один раз, а затем кэшированы для последующих выборок. Кэширование вывода страницы позволяет хранить весь контент данной страницы в кэше.
Кэширование фрагментов страницы : ASP.NET предоставляет механизм для кэширования частей страниц, называемый кэшированием фрагментов страницы. Чтобы кэшировать часть страницы, вы должны сначала инкапсулировать часть страницы, которую вы хотите кэшировать, в пользовательский элемент управления. В исходном файле пользовательского элемента управления добавьте директиву OutputCache, указав атрибуты Duration и VaryByParam. Когда этот пользовательский элемент управления загружается на страницу во время выполнения, он кэшируется, и все последующие страницы, ссылающиеся на этот же пользовательский элемент управления, извлекают его из кэша
Кэширование данных : Кэширование данных может значительно повысить производительность приложения, уменьшая конфликты базы данных и повторные обращения. Проще говоря, кэширование данных сохраняет необходимые данные в кеше, так что веб-сервер не будет каждый раз отправлять запросы на сервер БД для каждого запроса, что повышает производительность веб-сайта. Я бы также добавил, что вы также можете хранить пользовательские данные в этом кэше, если вы знаете об ограничениях (например, период времени, в течение которого они доступны), а также данные из многих других типов хранилищ данных.
Можно также утверждать, что существует несколько других видов кэширования, поддерживаемых ASP.Net; Например, вы можете использовать State Bags или просто простое ViewState для кэширования данных между обращениями к клиенту. Объекты Application и Session также могут использоваться для кэширования данных (опять же, с ограничениями), но это также относится к сфере кэширования данных.
Короче говоря, существует множество мест, где можно спрятать данные в ASP.Net - это больше о знании того, какой использовать и когда!