По умолчанию, в ASP.NET Core используется конфигурация приложения с использованием файлов JSON, однако, при желании, конфигурацию приложения можно определить и в других типах файлов, например, XML, INI или даже определить собственный формат файла конфигурации и использовать его.
ASP.NET Core Web API
Общие сведения о конфигурации (интерфейсы IConfiguration и IConfigurationBuilder)
Под конфигурацией приложения обычно понимаются какие-либо настройки, применяемые, например, при запуске приложения. Это могут быть такие настройки, как строки подключения к базам данных, настройки оформления приложения, включение дополнительных опций и т. д.
Класс WebApplicationBuilder. Настройка приложения
Именно с создания экземпляра этого класса начинается выполнение приложения. В этой части мы рассмотрим некоторые из свойств класса WebApplicationBuilder.
Класс WebApplication. Запуск и остановка приложения, доступ к событиям жизненного цикла приложения
Класс WebApplication реализует сразу три интерфейса IHost, IApplicationBuilder и IEndpointRouteBuilder и используется для широкого круга задач — от запуска и остановки приложения, до настройки маршрутов, с которыми сопоставляются запросы пользователей, конвейера обработки запросов и получения доступа к настройкам приложения.
Файл Program.cs проекта ASP.NET Core Web API
Файл Program.cs – это главный файл нашего приложения с которого начинается абсолютно всё, что касается работы. В зависимости от того, какая версия платформы .NET выбрана при создании нового проекта, зависит содержимое этого файла.
Файл launchSettings.json. Настройка профилей запуска приложения
С помощью файла launchSettings.json мы можем настраивать профили запуска нашего приложения. Этот файл используется только на локальном компьютере в целях разработки и не копируется при разворачивании приложения
Работа приложения ASP.NET Core. Веб-сервер Kestrel
Прежде, чем мы приступим к изучению «внутренностей» ASP.NET Core, стоит потратить немного времени, чтобы разобраться с тем, как в принципе работает любое приложение ASP.NET Core.
HTTP-кэширование в ASP.NET Core Web API
HTTP-кэширование (веб-кэширование), как и кэширование данных, является одним из способов повышения производительности веб-приложений. Управление HTTP-кэшированием ресурсов осуществляется с помощью заголовков запросов. Обычно выделяют два вида веб-кэшей – приватный (private cache) и кэш совместного использования (shared cache). Также, в различных источниках можно встретить такие названия как клиентский кэш, шлюзовый, прокси-кэш и так далее. Но, в любом случае, все эти виды кэшей так или иначе можно свести к первым двум видам: приватный (клиентский) кэш – это кэш, который доступен конкретному пользователю и хранится на его компьютере, а кэш совместного пользования, в свою очередь, может располагаться где-либо в Сети и быть доступным многим пользователям.
Что касается непосредственно ASP.NET Core, то здесь можно выделить два механизма HTTP-кэширования – это кэширование ответов (response caching) и кэширование выходных данных (output caching). Несмотря на то, что эти механизмы очень похожи между собой, всё же это два разных механизма кэширования, причем, если кэширование ответов — это довольно старый механизм кэширования, который появился ещё в ASP.NET Core 1.0 и используется до сих пор, то кэширование выходных данных — относительно новый механизм, появившийся в ASP.NET Core 7.0. И в этой статье мы попробуем разобраться в том, как работает http-кэширование в приложениях ASP.NET Core Web API и чем эти механизмы кэширования различаются друг от друга.
Централизованная обработка исключений в ASP.NET Core Web API
Обработка исключений позволяет нам избежать аварийного завершения работы приложения. Для обработки исключений в приложениях C#, обычно, используются блоки try...catch с ключевым словом final для того, чтобы очистить ресурсы приложения. Это стандартная практика обработки исключений, которая может также применяться и в приложениях ASP.NET Core Web API. Однако, платформа ASP.NET Core позволяет извлечь всю логику обработки исключений и сосредоточить её в одном централизованном месте, избежав тем самым использования блоков try…catch в действиях контроллера и обеспечить, при необходимости, единый формат сообщений о возникших исключительных ситуациях в приложении. Такой подход к обработке исключений в приложениях ASP.NET Core часто называют Global Exception Handling – глобальная обработка исключений, хотя, на мой взгляд, правильнее было бы назвать этот механизм так, как указано в заголовке — централизованная обработка исключений, так как всё же, рассматриваемые ниже способы обработки исключений помогают обработать не все возможные исключения в приложении.
Тестирование Web API. Использование http-файлов Visual Studio
При создании нового проекта ASP.NET Core Web API мы можем тестировать запросы к API различными способами, например, воспользоваться сторонними сервисами типа ReqBin, Postman и так далее. Вместе с тем, Visual Studio 2022 предоставляет достаточно удобный способ тестирования запросов API — использование http-файлов (файлов проекта с расширением .http).