Документация и практика ASP.NET (Microsoft Learn)
В энциклопедии ASP.NET разобран как платформа (обзор, справочник-шпаргалка, первая программа). Microsoft Learn даёт актуальные учебники и хаб документации на русском — их проходят после базовых глав по C# и HTTP, иначе теряется связь между Program.cs, маршрутизацией и MVC.
Тексты статей Learn сюда не копируются — только структура, ссылки и привязка к разделам проекта.
С чего начать
| Шаг | Где в энциклопедии | Официальный источник |
|---|---|---|
| 1 | Практика C# на Learn | Get started C# |
| 2 | Первая программа ASP.NET Core | Приложение за 5 минут |
| 3 | ASP.NET — фреймворк | Хаб документации ASP.NET Core |
| 4a | Эта глава → Razor Pages (рекомендуется новичкам) | Серия Razor Pages |
| 4b | Эта глава → серия MVC | Начало работы с MVC |
| 5 | Сборка и публикация | Размещение и Docker (Core) |
Интерактивный каталог: Microsoft Learn — навигатор · Подборка документации.
Как выбрать первую ветку обучения
Если цель — быстро запустить рабочее CRUD-приложение, начинайте с Razor Pages. Если цель — строить API для фронтенда/мобильного клиента, стартуйте с Minimal API или контроллеров Web API. Оба пути остаются внутри ASP.NET Core и используют единые базовые механизмы — DI, middleware, конфигурацию и логирование.
Хаб документации ASP.NET Core 10
Документация по ASP.NET — входная точка для .NET 10: обзор, учебники, справочник API и разделы по типам приложений.
Быстрый старт
| Тема | Ссылка |
|---|---|
| Приложение за 5 минут | get-started |
| Обзор платформы | introduction-to-aspnet-core |
| Первый Web API | min-web-api |
| SignalR | signalr tutorial |
Модели веб-приложений (выбор UI)
| Подход | Когда выбирать | Старт на Learn |
|---|---|---|
| Minimal API | Тонкий HTTP-слой, микросервисы | minimal web API |
| Web API + контроллеры | REST с атрибутами, Swagger | контроллеры |
| Razor Pages | Страничный UI, CRUD; проще старт, чем MVC | серия Razor Pages |
| MVC | Классическое разделение Model–View–Controller | start-mvc |
| Blazor | SPA на C# (Server / WebAssembly) | blazor |
Сравнение Razor Pages, MVC и Blazor: choose-web-ui.
Данные, безопасность, развёртывание
| Раздел хаба | Ссылка | Связь с энциклопедией |
|---|---|---|
| EF Core + Razor Pages | ef-rp intro | ASP.NET - фреймворк для веб-приложений, серия ниже |
| EF Core + MVC | ef-mvc intro | ASP.NET - фреймворк для веб-приложений, Приложение с S3, PostgreSQL и ASP.NET Core Web API |
| Безопасность | security | Безопасность приложений на C# — безопасность C# |
| Kestrel / IIS | servers overview | ASP.NET - фреймворк для веб-приложений — хостинг |
| Docker (ASP.NET Core) | host-and-deploy/docker | 8.04 DevOps |
| Справочник API | .NET API browser | Справочник по ASP.NET — справочник |
Схема обучения с модулями и баллами: Создание веб-приложений ASP.NET Core (см. навигатор Learn).
Серия Razor Pages — RazorPagesMovie
Создание веб-приложения Razor Pages — оглавление серии на .NET 10. Microsoft рекомендует этот путь новичкам в ASP.NET Core (вместо MVC с контроллерами). Архитектура и понятия: Razor Pages в ASP.NET Core.
Что даёт серия
К концу — то же предметное приложение, что и в MVC-серии: каталог фильмов с отображением, редактированием и EF Core. Отличие модели: логика привязана к странице (PageModel), а не к контроллеру + представлению.
Первый проект: RazorPagesMovie, .NET 10, без top-level statements (как в учебнике). Шаблон Visual Studio: ASP.NET Core Web App (Razor Pages).
Порядок частей серии
| № | Тема | URL (view=aspnetcore-10.0) |
|---|---|---|
| — | Оглавление серии | razor-pages |
| 1 | Создание приложения | razor-pages-start |
| 2 | Модель | model |
| 3 | Scaffolding страниц | page |
| 4 | База данных | sql |
| 5 | Обновление связанных данных | da1 |
| 6 | Поиск | search |
| 7 | Новое поле | new-field |
| 8 | Валидация | validation |
После части 1 закрепите в справочнике разделы про Razor Pages, PageModel и Tag Helpers.
MVC или Razor Pages? Одну серию для старта — не обе сразу. Сравнение: choose-web-ui. Если уже знакомы с контроллерами — переходите к серии MvcMovie ниже.
Что важно закрепить после Razor Pages
- модель
PageModelи жизненный циклOnGet/OnPost; - binding формы и серверная валидация;
- базовый поток EF Core и миграций;
- разницу между серверным рендерингом и API-подходом.
Серия MVC — приложение MvcMovie
Начните работу с ASP.NET Core MVC — первый шаг серии: проект MvcMovie, .NET 10, шаблон MVC без top-level statements (удобно при копировании кода из статей).
Что даёт серия
К концу цикла — приложение каталога фильмов с CRUD, EF Core, поиском и валидацией. Навыки:
- создать и запустить MVC-проект (CTRL+F5, HTTPS dev-сертификат);
- добавить модель и scaffolding;
- подключить БД (SQL Server Express / SQLite в следующих частях);
- поиск и проверка данных.
Порядок частей серии
| № | Тема | URL (view=aspnetcore-10.0) |
|---|---|---|
| 1 | Создание приложения | start-mvc |
| 2 | Controller и Views | adding-controller |
| 3 | Представления | adding-view |
| 4 | Модель | adding-model |
| 5 | База данных | working-with-sql |
| 6 | Controller methods | controller-methods-views |
| 7 | Поиск | search |
| 8 | Валидация | validation |
Требования: Visual Studio 2022 с рабочей нагрузкой "ASP.NET и веб-разработка" или VS Code + .NET SDK. Имя проекта MvcMovie и регистр namespace должны совпадать с примерами в статьях.
После части 1 в энциклопедии закрепите маршрутизацию и контроллеры (разделы про MVC и routing).
Что проверить на практике после серии MVC
- Настроить собственный маршрут для контроллера и проверить URL-генерацию.
- Добавить валидацию модели и посмотреть
ModelState. - Подключить логирование запросов и исключений.
- Сгенерировать OpenAPI/Swagger и проверить корректность контрактов.
Docker — legacy ASP.NET MVC (.NET Framework)
Перенос приложений ASP.NET MVC в контейнеры Windows — отдельный сценарий для ASP.NET MVC на .NET Framework (IIS внутри образа Windows), не для ASP.NET Core на Linux.
| Аспект | ASP.NET Core в Docker | Legacy MVC в Docker (статья) |
|---|---|---|
| Стек | Kestrel / multi-stage Linux | mcr.microsoft.com/dotnet/framework/aspnet:4.8 |
| Публикация | dotnet publish | Профиль Visual Studio → bin\Release\PublishOutput |
| Точка входа | ENTRYPOINT в Dockerfile | IIS в базовом образе |
| Хост ОС | Linux / Windows | Контейнеры Windows (Docker Desktop → Switch to Windows containers) |
Шаги из учебника
- Publish — пользовательский профиль, целевая папка
bin\Release\PublishOutput, включить предкомпиляцию представлений при публикации. - Dockerfile — базовый образ Framework,
COPY ./bin/Release/PublishOutput/ /inetpub/wwwroot. - Сборка:
docker build -t mvcrandomanswers .
docker build -t mvcrandomanswers .
- Запуск:
docker run -d --name randomanswers mvcrandomanswers(порт 80 в образе по умолчанию).
docker run -d --name randomanswers mvcrandomanswers
- Проверка:
http://localhostв браузере; остановка:docker stop randomanswers, удаление:docker rm randomanswers.
docker stop randomanswers
Для новых проектов используйте Docker с ASP.NET Core и главу Приложение с S3, PostgreSQL и ASP.NET Core Web API. Статья про Framework MVC нужна при сопровождении корпоративных монолитов на IIS.
Типичные ошибки
- Путать хаб Core и статью про Framework MVC — разные runtime, образы и Dockerfile.
- Пропустить ASP.NET - фреймворк для веб-приложений и сразу учебник — непонятны middleware, DI и отличие API от страничного UI.
- Top-level statements — в сериях Razor Pages и MVC для VS отключайте "интервал верхнего уровня", иначе расходятся
Program.csи примеры. - Сразу MVC и Razor Pages — выберите одну серию; вторая пойдёт быстрее после первой.
- Только чтение без
dotnet run— после Первая программа на ASP.NET Core соберите RazorPagesMovie или MvcMovie локально.
Дальше
- Продвинутый стек: Приложение с S3, PostgreSQL и ASP.NET Core Web API — Web API, PostgreSQL, S3
- Интеграции: Веб-разработка и API на C# — веб и API на C#
- Карьера: роли и Learn
Итоги
Официальная документация ASP.NET Core 10 — хаб + серия Razor Pages (старт для новичков) или MVC + развёртывание. Энциклопедия даёт архитектуру и шпаргалку; Learn — пошаговую практику и актуальные версии API. Legacy Docker для Framework MVC держите отдельно от Core-контейнеров на Linux.
Базовый разбор HTTP и HTTPS находится в отдельной статье — HTTP как основа веб-интеграций.
В подборках
Статья входит в тематические подборки и блок "С чего начать?" на главной. Соседние шаги того же маршрута:
Веб-разработка — ASP.NET - фреймворк для веб-приложений, Приложение с S3, PostgreSQL и ASP.NET Core Web API, Веб-разработка и API на C#, Python — о разделе, C# — о разделе, Веб-разработка и REST API на Python.