Презентация Модель. Проектирование и разработка веб-сервисов онлайн
На нашем сайте вы можете скачать и просмотреть онлайн доклад-презентацию на тему Модель. Проектирование и разработка веб-сервисов абсолютно бесплатно. Урок-презентация на эту тему содержит всего 29 слайдов. Все материалы созданы в программе PowerPoint и имеют формат ppt или же pptx. Материалы и темы для презентаций взяты из открытых источников и загружены их авторами, за качество и достоверность информации в них администрация сайта не отвечает, все права принадлежат их создателям. Если вы нашли то, что искали, отблагодарите авторов - поделитесь ссылкой в социальных сетях, а наш сайт добавьте в закладки.
Презентации » Устройства и комплектующие » Модель. Проектирование и разработка веб-сервисов
Оцените!
Оцените презентацию от 1 до 5 баллов!
- Тип файла:ppt / pptx (powerpoint)
- Всего слайдов:29 слайдов
- Для класса:1,2,3,4,5,6,7,8,9,10,11
- Размер файла:83.16 kB
- Просмотров:105
- Скачиваний:0
- Автор:неизвестен
Слайды и текст к этой презентации:
№3 слайд
Содержание слайда: Понятие модели
Одним из ключевых компонентов паттерна MVC являются модели. Ключевая задача моделей - описание структуры и логики используемых данных.
Как правило, все используемые сущности в приложении выделяются в отдельные модели, которые и описывают структуру каждой сущности. В зависимости от задач и предметной области мы можем выделить различное количество моделей в приложении.
№4 слайд
Содержание слайда: Понятие модели
Все модели оформляются как обычные классы на языке C#.
Например, если мы работаем с приложением интернет-магазина мобильных телефонов, то мы могли бы определить в проекте следующую модель, представляющую телефон:
public class Phone
{
public int Id { get; set; }
public string Name { get; set; }
public string Company { get; set; }
public int Price { get; set; }
}
№5 слайд
Содержание слайда: Понятие модели
Модель Phone определяет ряд свойств: уникальный идентификатор Id, название, компанию производителя и цену.
Это классическая анемичная модель. Анемичная модель не имеет поведения и хранит только состояние в виде свойств.
Однако модель необязательно должна состоять только из свойств. Кроме того, она может иметь конструктор, какие-нибудь методы, поля, т.е. представлять стандартный класс.
Модели, которые также определяют поведение, называют "толстыми" моделями (Rich Domain Model / Fat Model / Thick Model).
Какой бы способ описания сущности не был выбран, необходимо помнить:
предназначение модели – описывать данные;
модель должна описывать только одну сущность.
№6 слайд
Содержание слайда: Виды моделей
Модели можно разделить по степени применения на несколько групп:
Модели, объекты которых хранятся в специальных хранилищах данных (например, в базах данных, файлах xml и т.д.).
Модели, которые используются для передачи данных представление или наоборот, для получения данных из представления. Такие модели еще называтся моделями представления.
Вспомогательные модели для промежуточных вычислений.
Для хранения моделей создается в проекте отдельная папка Models. Модели представления нередко помещаются в отдельную папку, которая называется ViewModels.
№7 слайд
Содержание слайда: Пример работы с моделью представления
Модель представления используется, когда в представление необходимо передать сразу несколько моделей.
Объект модели передается в качестве параметра методу View().
В представлении работа с моделью осуществляется:
@using ModelsApp.ViewModels
@using ModelsApp.Models
@model IndexViewModel
<table class="table">
@foreach (Phone p in Model.Phones)
{
<tr><td>@p.Name</td><td>@p.Manufacturer?.Name</td></tr>
}
</table>
№8 слайд
Содержание слайда: Привязка модели
Привязка модели или Model binding представляет механизм сопоставления значений из HTTP-запроса с параметрами метода контроллера.
При этом параметры могут представлять как простые типы (int, float и т.д.), так и более сложные типы данных, например, объекты классов.
Для поиска значений привязчик модели используется следующие источники в порядке приоритета:
Данные форм. Хранятся в объекте Request.Form
Данные маршрута, то есть те данные, которые формируются в процессе сопоставления строки запроса маршруту. Хранятся в объекте RouteData.Values
Данные строки запроса. Хранятся в объекте Request.Query
№9 слайд
Содержание слайда: Привязка модели
В случае, если параметры метода представляют сложные данные, например, класс, привязчик модели будет действовать подобным образом. Он использует рефлексию и рекурсию для прохода по всем свойствам параметра сложного типа для сопоставления свойств со значениями из запроса.
В частности, привязки модели ищет значения с ключами наподобие [имя_параметра].[имя_свойства]. Если подобных значений не будет найдено, то привязчик ищет значения просто по имени свойства.
Для таких типов как коллекции привязчик модели ищет значения с ключами имя_параметра[index]. Если параметр представляет объект Dictionary, то привязчик модели также ищет в источниках запроса значения с ключами имя_параметра[ключ].
№10 слайд
Содержание слайда: Привязка модели
При этом свойства, к которым осуществляется привязка, должны быть объявлены с модификатором public и быть доступными для записи. А сам класс должен иметь общедоступный конструктор по умолчанию.
И когда будет осуществляться механизм привязки для создания объекта будет использоваться этот стандартный конструктор, и затем у созданного объекта будут устанавливаться свойства.
Вполне возможна ситуация, когда привязчик не найдет требуемое значение. В этом случае перед использованием параметра метода желательно проверять свойство ModelState.IsValid.
№11 слайд
Содержание слайда: Управление привязкой
Для тех свойств модели, для которых не переданы значения, устанавливаются значения по умолчанию, например, для строковых свойств - пустые строки, для числовых свойств - число 0.
Поэтому фреймворк MVC предоставляет ряд атрибутов, с помощью которых мы можем изменить стандартный механизм привязки.
№12 слайд
Содержание слайда: BindRequired и BindNever
BindRequired требует обязательного наличия значения для свойства модели.
BindNever указывает, что свойство модели надо исключить из механизма привязки.
using Microsoft.AspNetCore.Mvc.ModelBinding;
public class User
{
public int Id { get; set; }
[BindRequired]
public string Name { get; set; }
public int Age { get; set; }
[BindNever]
public bool HasRight { get; set; }
}
№13 слайд
Содержание слайда: BindRequired и BindNever
Если для свойства с атрибутом BindRequired не будет передано значение, то в объект ModelState будет помещена информация об ошибках, а свойство ModelState.IsValid возвратит false. И в данном случае, проверяя значение ModelState.IsValid, мы можем проверить корректность создания объекта.
№14 слайд
Содержание слайда: BindingBehavior
Кроме того, мы можем применять атрибут BindingBehavior, который устанавливает поведение привязки с помощью одно из значений одноименного перечисления BindingBehavior:
Required: аналогично примению атрибута BindRequired
Never: аналогично примению атрибута BindNever
Optional: действие по умолчанию, мы можем передавать значение, а можем и не передавать, тогда будут применяться значения по умолчанию
[BindingBehavior(BindingBehavior.Required)]
[BindingBehavior(BindingBehavior.Optional)]
[BindingBehavior(BindingBehavior.Never)]
№15 слайд
Содержание слайда: Источники привязки
Ранее говорилось про порядок обхода привязчиком модели различных источников для получения значений.
Но группа атрибутов позволяет переопределить это поведения, указав один целевой источник для поиска значений:
[FromHeader]: данные берутся из заголовоков запроса
[FromQuery]: данные берутся из строки запроса
[FromRoute]: данные берутся из значений маршрута
[FromForm]: данные берутся из полученных форм
[FromBody]: данные берутся из тела запроса. Этот атриут может применяться, когда в качестве источника данных выступает не форма и не строка запроса, а, скажем, данные отправляются через код javascript. FromBody может применяться, если метод имеет только один параметр, иначе будет сгенерировано исключение.
№17 слайд
Содержание слайда: Атрибуты валидации
С помощью атрибутов валидации модели мы можем управлять валидацией и заключать несложную логику проверки значений свойств уже в атрибуты этих свойств, не прибегая к коду. Рассмотрим атрибуты валидации, которые мы можем применить в приложении на ASP.NET Core.
Атрибут Required
Применение этого атрибута к свойству модели означает, что данное свойство должно быть обязательно установлено.
public class Person
{
[Required (ErrorMessage = "Не указано имя")]
public string Name { get; set; }
[Required]
public string Password { get; set; }
}
№19 слайд
Содержание слайда: Атрибуты валидации
3. Атрибут StringLength
Чтобы пользователь не мог ввести очень длинный текст, применяется атрибут StringLength. Первым параметром в конструкторе атрибута идет максимальная допустимая длина строки. Именованные параметры, в частности MinimumLength и ErrorMessage, позволяют задать дополнительные опции отображения.
public class Person
{
[Required (ErrorMessage = "Не указано имя")]
[StringLength(50, MinimumLength = 3, ErrorMessage = "Длина строки должна быть от 3 до 50 символов")]
public string Name { get; set; }
}
№21 слайд
Содержание слайда: Атрибуты валидации
5. Атрибут Compare
Атрибут Compare гарантирует, что два свойства объекта модели имеют одно и то же значение. Если, например, надо, чтобы пользователь ввел пароль дважды:
[Required]
public string Password { get; set; }
[Compare("Password", ErrorMessage = "Пароли не совпадают")]
public string PasswordConfirm { get; set; }
№22 слайд
Содержание слайда: Атрибуты валидации
5. Специальные атрибуты
Мы применяли регулярное выражение для проверки адреса электронной почты. Проверки на корректность электронной почты, адреса url, номера телефона и кредитной карты довольно часто встречаются, что для них определены специальные атрибуты:
[CreditCard]
[EmailAddress]
[Phone]
[Url]
№23 слайд
Содержание слайда: Аннотации данных
Кроме атрибутов валидации модели также могут иметь дополнительные атрибуты, которые называются аннотации данных и которые располагаются в пространстве имен System.ComponentModel.DataAnnotations. Эти атрибуты определяют различные правила для отображения свойств модели.
Атрибут Display
Атрибут Display задает параметры отображения для свойства.
public class Person
{
[Display(Name="Имя и фамилия")]
public string Name { get; set; }
[Display(Name = "Пароль")]
public string Password { get; set; }
}
№24 слайд
Содержание слайда: Аннотации данных
2. Исключение из модели
Иногда возникают ситуации, когда надо, наоборот, исключить сущность из модели. Например, в примере выше сущность Phone ссылается на класс Company, и, допустим, мы не хотим, чтобы в базе данных была таблица Company.
public class Phone
{
public int Id { get; set; }
public string Name { get; set; }
public int Price { get; set; }
// навигационное свойство
public Company Manufacturer { get; set; }
}
[NotMapped]
public class Company
{
public int Id { get; set; }
public string Name { get; set; }
}
№27 слайд
Содержание слайда: Аннотации данных
5. Настройка ключей и индексов
По умолчанию в качестве ключа используется свойство, которое называется Id или [имя_класса]Id.
Для установки свойства в качестве первичного ключа с помощью аннотаций применяется атрибут [Key]:
public class User
{
[Key]
public int Ident { get; set; }
public string Name { get; set; }
}
№28 слайд
Содержание слайда: Аннотации данных
6. Альтернативные ключи
Альтернативные ключи представляют свойства, которые также, как и первичный ключ, должны иметь уникальное значение. В то же время альтернативные ключи не являются первичными. На уровне базы данных это выражается в установке для соответствующих столбцов ограничения на уникальность.
Осуществляется с использованием Fluent API (см. документацию).
№29 слайд
Содержание слайда: Аннотации данных
7. Значение по умолчанию и вычисляемые столбцы
Осуществляется с использованием Fluent API (см. документацию).
8. Атрибут MaxLength
В аннотациях данных ограничение по длине устанавливается с помощью атрибута MaxLength:
public class User
{
public int Id { get; set; }
[MaxLength(50)]
public string Name { get; set; }
}
Скачать все slide презентации Модель. Проектирование и разработка веб-сервисов одним архивом:
-
Работа с данными в Entity Framework Core. Проектирование и разработка веб-сервисов
-
Контроллер. Проектирование и разработка веб-сервисов
-
Введение. Проектирование и разработка веб-сервисов
-
Разработка веб-сервиса для обработки снимков ДЗЗ
-
Модели жизненных циклов разработки ПО. Инкрементная модель
-
Объектно-ориентированное проектирование ИС. Модель реализации
-
Разработка САПР для расчета характеристик и построения модели цилиндрического редуктора
-
Проектирование и разработка системы классов с использованием р-схем администраторской компоненты теоретического тестирования
-
Основы разработки программных систем. Типовые решения стадии проектирования
-
Разработка персонального сайта с помощью сервисов по конструированию сайтов