Посібник ASP.NET MVC для початківців: що таке, Archiтектура

⚡ Розумний підсумок

ASP.NET MVC — це програма з відкритим вихідним кодом Microsoft фреймворк, який розділяє веб-застосунок на шари Моделі, Представлення та Контролера, надаючи розробникам повний контроль над HTML, тестований код, чітку маршрутизацію та легку альтернативу класичним веб-формам.

  • 🏛️ Archiтекстура: Модель містить дані домену, Представлення (View) відтворює інтерфейс користувача за допомогою Razor, а Контролер (Controller) опосередковує кожен запит між ними.
  • Чому MVC: Це виправляє проблеми ViewState та накладні витрати на продуктивність веб-форм, а також забезпечує чітку маршрутизацію та розробку на основі тестування.
  • 🔀 Маршрутизація: На основі маршруту URLзіставляти вхідні запити з діями контролера, замінюючи файлові .aspx URLз SEO-дружніми шляхами.
  • 🧪 Тестування: Контролер і модель можна тестувати окремо, оскільки представлення не містять бізнес-логіки.
  • 🇧🇷 Порівняння веб-форм: Веб-форми використовують серверні елементи керування, керовані подіями; MVC використовує дії, керовані запитами, з ручним керуванням станом.
  • 🛠️ Найкраща практика: Зберігайте бізнес-логіку в Моделі, зменшуйте кількість Контролерів та використовуйте часткові Представлення або макети для повторного використання розмітки.

Підручник з ASP.NET MVC

Що таке ASP.NET MVC?

ASP.NET MVC це платформа веб-розробки з відкритим кодом від Microsoft що забезпечує архітектуру контролера представлення моделі. ASP.NET MVC пропонує альтернативу веб-формам ASP.NET для створення веб-додатків. Він є частиною платформи .NET для створення, розгортання та запуску веб-додатків. Ви можете розробляти веб-додатки та веб-сайти за допомогою HTML, CSS, jQuery, JavaСценарій тощо

Вивчіть MVC за допомогою цього посібника з ASP.NET MVC, який охоплює всі основні концепції MVC для початківців:

Чому саме ASP.NET MVC?

Хоча веб-форми були дуже успішними, Microsoft думка про розвитокping ASP.NET MVC. Основна проблема з веб-формами ASP.NET — це продуктивність.

В веб-застосункомє чотири основні аспекти, які визначають продуктивність:-

  • Проблеми з часом відповіді
  • Проблема модульного тестування
  • Налаштування HTML
  • Повторне використання класу коду

ASP.NET MVC перевершує вищезазначені параметри.

Історія версій MVC

ASP.NET MVC1

  • Випущено 13 березня 2009 р
  • Працює на .NET 3.5
  • Visual Studio 2008
  • Архітектура шаблону MVC із механізмом WebForm
  • Основні функції включають Html і Unit Testing, Ajax Helpers, Routing тощо.

ASP.NET MVC2

  • Ця версія випущена 10 березня 2010 року
  • Працює на .NET 3.5, 4.0 та з Microsoft Visual Studio 2008
  • Включіть такі функції, як помічники шаблонів, помічники інтерфейсу користувача з автоматичним каркасом та налаштовувані шаблони
  • Він підтримує атрибути DataAnnotations для застосування перевірки моделі на стороні клієнта та сервера

ASP.NET MVC3

  • Він був випущений 13 січня 2011 року
  • Працює на .NET 4.0 і з Microsoft Visual Studio 2010
  • Використання НuGet для доставки програмного забезпечення та дозволяє вам керувати залежностями на платформі
  • Краще JavaПідтримка скриптів з jQuery-валідацією та прив'язкою JSON
  • Він пропонує такі функції, як механізм перегляду Razor та покращені атрибути анотацій даних для перевірки моделі як на стороні клієнта, так і на стороні сервера.

ASP.NET MVC4

  • Ця версія була випущена в серпні 2012 року
  • Він працює на .NET 4.0, 4.5 і з Visual Studio 2010 і Visual Studio 2012
  • Покращення стандартних шаблонів проектів
  • Пропонує такі функції, як шаблон мобільного проекту з використанням jQuery Mobile, підтримку завдань для асинхронних контролерів, групування, мініфікацію тощо.

ASP.NET MVC5

  • Дата виходу 17 жовтня 2013 року
  • Працює на .NET 4.5, 4.5.1 та з Visual Studio 2012 та Visual Studio 2013
  • Підтримує маршрутизацію атрибутів у MVC

Особливості MVC

  • Легка перевірка без тертя
  • Повний контроль над вашим HTML, JavaСценарій, і URLs
  • Наявне кредитне плече ASP.NET Функції
  • Новий варіант презентації для ASP.NET
  • Простіший спосіб програмування ASP.NET
  • Чіткий розподіл логіки: модель, перегляд, контролер
  • Тестова розробка
  • Підтримка паралельної розробки

Речі, про які слід пам’ятати під час створення програми MVC

Ось кілька корисних речей у цьому підручнику з ASP.NET MVC, які вам потрібно запам’ятати для створення програми MVC:

  • Вам потрібно пам'ятати, що ASP.NET MVC НЕ є заміною застосунків на основі веб-форм ASP.NET.
  • Підхід до розробки MVC-додатків має бути визначений на основі вимог до додатків та функцій, що надаються ASP.NET MVC, щоб відповідати конкретним потребам розробки.
  • Процес розробки застосунків за допомогою ASP.NET MVC є складнішим порівняно з застосунками на основі веб-форм.
  • Ремонтопридатність програми завжди буде вищою з розділенням завдань програми.

Архітектурний шаблон MVC

Архітектурний шаблон MVC

MVC — це шаблон архітектури програмного забезпечення, який дотримується методу розділення завдань. У цій моделі .NET-додатки поділяються на три взаємопов'язані частини, які називаються Модель, Представлення та Контролер.

Мета шаблону MVC полягає в тому, що кожну з цих частин можна розробляти, тестувати у відносній ізоляції, а також комбінувати для створення дуже надійної програми.

Давайте розглянемо їх усі детально:

моделі

Об’єкти моделі – це частини програми, які реалізують логіку програми домен даних. Він отримує та зберігає стан моделі в базі даних. Наприклад, об’єкт product може отримувати інформацію з a база даних, прооперуйте його. Потім запишіть інформацію назад до таблиці продуктів на сервері SQL.

думки

Представлення (Views) – це компоненти, що використовуються для відображення інтерфейсу користувача (UI) застосунку, який також називають viewmodel у MVC. Він відображає .NET MVC-застосунок, створений з даних моделі.

Типовим прикладом може бути режим редагування таблиці Item. Він відображає текстові поля, спливаючі вікна та прапорці на основі поточного стану продуктів і об’єктів.

контролер

Контролери обробляють взаємодію з користувачем, працюють з моделлю та вибирають вигляд для відображення цього інтерфейсу користувача. У .NET MVC-додатку вигляд відображає лише інформацію, контролер керує та реагує на ввідні дані та взаємодію користувача за допомогою фільтрів дій у MVC.

Наприклад, контролер керує значеннями рядка запиту та передає ці значення в модель.

Веб-форми проти MVC

Параметри Веб-форми MVC
Модель Веб-форми ASP.NET дотримуються моделі подієво-орієнтованої розробки. ASP.NET MVC використовує модель розробки на основі шаблонів MVC.
Використовується з Існує з 2002 року Вперше він був випущений в 2009 році
Підтримка стану перегляду Веб-форма ASP.NET підтримує перегляд стану для керування станом на стороні клієнта. .NET MVC не підтримує стан перегляду.
URL тип Веб-форма ASP.NET має файлові URLs. Це означає, що ім'я файлу існує в URLі вони повинні існувати фізично. ASP.NET MVC має маршрутизацію URLце означає URLякі перенаправляються до контролерів та дій.
синтаксис Веб-форми ASP.NET дотримуються синтаксису веб-форм. ASP.NET MVC дотримується настроюваного синтаксису.
Вид перегляду Веб-форма, представлення тісно пов'язані з Code позаду (ASPX-CS), тобто логіка. MVC, Views і логіка завжди зберігаються окремо.
Однорідний вигляд та відчуття Він має головні сторінки для узгодженого вигляду. ASP.NET MVC має макети для узгодженого вигляду.
Code Багаторазовість Веб-форма пропонує елементи керування для повторного використання коду. ASP.NET MVC пропонує часткові представлення для можливості повторного використання коду.
Контроль для HTML Less контроль над відтвореним HTML. Повний контроль над HTML
Державне управління Автоматичне керування станом елементів керування. Ручне управління державою.
Підтримка TDD Потрібен слабкий або спеціальний TDD. Заохочує та включає ТДД.

Переваги ASP.NET MVC

  • За замовчуванням програми, які легко підтримувати
  • Він дозволяє замінити будь-який компонент програми.
  • Краща підтримка тестової розробки
  • Складними програмами легко керувати завдяки поділу на моделі, представлення та контролери.
  • Надійний механізм маршрутизації з шаблоном переднього контролера
  • Пропонує кращий контроль над поведінкою програми з усуненням стану перегляду та серверних форм
  • Застосунки .NET MVC підтримуються великими командами розробників та веб-дизайнерів.
  • Він пропонує більше контролю над поведінкою програми. Він також використовує оптимізовану пропускну здатність для запитів, зроблених до сервера

Недоліки ASP.NET MVC

  • Ви не можете переглянути попередній перегляд сторінки дизайну, як це відбувається зі сторінкою .aspx.
  • Вам потрібно щоразу запускати програму, щоб побачити її фактичний вигляд.
  • Розуміння потоку програми може бути складним завданням
  • Його досить складно реалізувати, тому він не є ідеальним варіантом для додатків невеликого рівня
  • Важко вивчити MVC для ASP.NET, оскільки для цього потрібно добре розуміти шаблон MVC

Найкращі практики використання ASP.NET MVC

  • Створіть окрему збірку для MODEL у випадку великого та складного коду, щоб уникнути небажаних ситуацій.
  • Модель повинна включати бізнес-логіку, підтримку сеансу, частину перевірки та частину логіки даних.
  • VIEW не має містити жодної бізнес-логіки та обслуговування сеансу, використовуйте ViewData для доступу до даних у View
  • Бізнес-логіка та доступ до даних ніколи не повинні відбуватися в контролері.
  • Контролер має відповідати лише за підготовку та повернення перегляду, виклик моделі, перенаправлення до дії тощо.
  • Видалити демо-код із програми під час її створення (Видалити AccountController)
  • Використовуйте лише певний механізм перегляду, щоб створити розмітку HTML із вашого перегляду, оскільки це поєднання HTML і коду програмування.

Поширені запитання

Так. GitHub Copilot може генерувати клас Controller з методами дій, атрибутами маршруту та відповідними Razor View. RevПерегляньте згенерований код для правильного зв'язування моделі та авторизації, перш ніж додавати його до проєкту.

Помічники машинного навчання можуть зіставляти сторінки веб-форм з контролерами та представленнями, перетворювати код позаду на методи дій та позначати використання ViewState. Розробник все ще перевіряє маршрутизацію, прив'язку моделі та кожне перенесене бізнес-правило.

ViewData — це словник об'єктів з ключем у вигляді рядка, який витримує один запит. ViewBag — це динамічна обгортка над ViewData. TempData використовує стан сеансу та витримує одне перенаправлення, тому він використовується для передачі даних між двома послідовними запитами.

Механізм маршрутизації відповідає вхідному URL відповідно до шаблонів, зареєстрованих у RouteConfig. Коли шаблон збігається, MVC вибирає контролер та дію, прив'язує будь-які параметри та викликає дію для повернення ActionResult.

Razor — це компактний синтаксис для вбудовування C# або VB.NET у файли .cshtml або .vbhtml. Він використовує @ для перемикання з HTML на код, забезпечує читабельність шаблонів та компілюється у швидкі, строго типізовані класи під час виконання.

Класичний ASP.NET MVC працює на повній версії .NET Framework та Windows тільки. ASP.NET Core MVC працює на .NET Core через Windows, Linux і macOS, використовує уніфіковану модель контролера з веб-API та пропонує вбудоване впровадження залежностей.

Використовуйте ASP.NET Identity або зовнішнього постачальника, такого як Azure AD для входу. Прикрасьте контролер або дію атрибутом [Authorize], щоб обмежити доступ, та використовуйте параметри ролі або політики для детальніших правил.

Створіть екземпляр контролера в тестовому методі, вставте фальшиві або фіктивні сервіси через конструктор, викличте дію та стверджуйте, що повернутий ActionResult відповідає очікуваній назві представлення, моделі або цілі перенаправлення.

Підсумуйте цей пост за допомогою: