10 главных вопросов на собеседовании по ASP.NET MVC
- Что такое ASP.NET MVC?
**ASP.NET MVC ** — это среда веб-разработки от Microsoft, основанная на архитектурном шаблоне MVC (Model-View-Controller). Microsoft упростила разработку приложений на основе MVC с помощью платформы ASP.NET MVC.
- Объясните MVC (Model-View-Controller) в целом?
MVC (Model-View-Controller) — это архитектурный шаблон программного обеспечения, который в основном разделяет различные компоненты веб-приложения. Используя шаблон MVC, мы можем разрабатывать приложения, которые более гибки к изменениям, не затрагивая другие компоненты нашего приложения.
«Модель» — это в основном данные домена.
«Просмотр» — это пользовательский интерфейс для отображения данных домена.
«Контроллер» переводит действия пользователя в соответствующие операции, выполняемые над моделью.
- Разница между ASP.NET MVC и ASP.NET WebForms?
Веб-формы ASP.NET используют подход шаблона контроллера страницы для рендеринга макета, тогда как ASP.NET MVC использует подход переднего контроллера. В случае подхода с контроллером страницы каждая страница имеет свой собственный контроллер, т. е. файл кода программной части, который обрабатывает запрос. С другой стороны, в ASP.NET MVC общий контроллер для всех страниц обрабатывает запросы.
- Каковы основные функции ASP.NET MVC?
Основные функции платформы ASP.NET MVC:
Четкое разделение задач приложения (представление и бизнес-логика). Это снижает сложность, что делает его идеальным для крупномасштабных приложений, в которых работает несколько команд.
Это расширяемая, а также подключаемая структура. Мы можем легко подключать компоненты и дополнительно настраивать их.
Он обеспечивает обширную поддержку маршрутизации URL-адресов, которая помогает создавать удобные URL-адреса (то есть дружественные как для человека, так и для поисковых систем).
Он поддерживает подход Test Driven Development (TDD). В ASP.NET WebForms поддержка тестирования зависит от веб-сервера, но ASP.NET MVC делает ее независимой от веб-сервера, базы данных или любых других классов.
Поддержка существующих функций ASP.NET, таких как членство и роли, аутентификация и авторизация, модель провайдера, кэширование и т. д.
- Не могли бы вы объяснить поток запросов в среде ASP.NET MVC?
Поток запросов для платформы ASP.NET MVC выглядит следующим образом:
Запрос попадает в контроллер, исходящий от клиента. Контроллер играет свою роль и решает, какую модель использовать для обслуживания запроса, далее передавая эту модель для просмотра, который затем преобразует модель и генерирует соответствующий ответ, который передается клиенту.
- В чем разница между ViewData, ViewBag и TempData?
Для передачи данных из контроллера в представление и в следующем последующем запросе платформа ASP.NET MVC предоставляет различные параметры, т. е. ViewData, ViewBag и TempData.
И ViewBag, и ViewData используются для связи между контроллером и соответствующим представлением. Но это сообщение предназначено только для вызова сервера, оно становится нулевым, если происходит перенаправление. Короче говоря, это механизм для поддержания состояния между контроллером и соответствующим представлением.
ViewData — это объект словаря, а ViewBag — это динамическое свойство (новая функция C# 4.0). ViewData, будучи объектом словаря, доступен с использованием строк в качестве ключей, а также требует приведения типов для сложных типов. С другой стороны, ViewBag не поддерживает приведение типов и проверку на нуль.
TempData также является объектом словаря, который остается на время HTTP-запроса. Таким образом, Tempdata можно использовать для хранения данных между перенаправлениями, т. е. с одного контроллера на другой.
- Объясните роль модели в ASP.NET MVC?
Одной из основных особенностей ASP.NET MVC является то, что он отделяет ввод и логику пользовательского интерфейса от бизнес-логики. Роль модели в ASP.NET MVC состоит в том, чтобы содержать всю логику приложения, включая проверку, бизнес-логику и логику доступа к данным, за исключением представления, т. е. ввода и контроллера, т. е. логики пользовательского интерфейса.
Модель обычно отвечает за доступ к данным из какого-либо постоянного носителя, такого как база данных, и за управление ими, поэтому вы можете ожидать, что интервьюер может задавать вопросы по темам доступа к базе данных здесь вместе с вопросами интервью ASP.NET MVC.
- Объясните, в чем разница между View и Partial View?
Вид
Он содержит макет страницы.
Перед визуализацией любого представления отображается начальная страница представления.
Представление может иметь теги разметки, такие как тело, HTML, заголовок, заголовок, метаданные и т. д.
Представление не является легким по сравнению с частичным представлением.
Частичный вид
Он не содержит страницы макета.
Частичное представление не проверяется на viewstart.cshtml. Мы не можем поместить общий код для частичного представления в viewStart.cshtml.page.
Частичное представление разработано специально для рендеринга внутри представления и именно поэтому оно не содержит никакой разметки.
Мы можем передать обычное представление в метод RenderPartial.
- Что такое Razor в MVC?
ASP.NET MVC всегда поддерживал концепцию «механизмов просмотра», которые представляют собой подключаемые модули, реализующие различные параметры синтаксиса шаблона. Механизм представления «по умолчанию» для ASP.NET MVC использует тот же .aspx/.ascx/. шаблоны мастер-файлов в виде веб-форм ASP.NET. Другими популярными движками представлений ASP.NET MVC являются Spart&Nhaml.
MVC 3 представил новый механизм просмотра под названием Razor.
10.Почему Razor?
Компактный и выразительный.
Razor минимизирует количество символов и нажатий клавиш, необходимых в файле, и обеспечивает быстрый рабочий процесс кодирования. В отличие от большинства синтаксисов шаблонов, вам не нужно прерывать кодирование, чтобы явно обозначить серверные блоки в вашем HTML. Парсер достаточно умен, чтобы вывести это из вашего кода. Это обеспечивает действительно компактный и выразительный синтаксис, который является чистым, быстрым и интересным для ввода.
Простота в освоении: Razor прост в освоении и позволяет быстро повысить производительность с минимальными усилиями. Мы можем использовать все ваши существующие языковые навыки и навыки работы с HTML.
Работает с любым текстовым редактором: Razor не требует специального инструмента и позволяет продуктивно работать в любом обычном текстовом редакторе (отлично работает блокнот).
Обладает отличным Intellisense:
Возможность модульного тестирования: новая реализация движка представления будет поддерживать возможность модульного тестирования представлений (не требуя контроллера или веб-сервера, и может размещаться в любом проекте модульного тестирования — специальный домен приложения не требуется).
Познакомьтесь с экспертами для лучшего руководства: