all_2013_07_16.ppt
- Количество слайдов: 27
Курс. NET
Хорошая книга • Приемы объектноориентированного проектирования. Паттерны проектирования • Гамма Э. , Хелм Р. , Джонсон Р. , Влиссидес Дж.
Хорошая книга • Deadline. Роман об управлении проектами • Демарко Том.
Орг. вопросы • Включить камеру • Отметить присутствующих • След. Занятие – 23 июля (вторник)
Дом. задание • Реализовать приложение для CRUD с бизнесобъектами
MVC Реализация стандартного набора операций над сущностями
Суть проблемы • Пусть есть почтовый адрес, у которого есть индекс и строка • Надо реализовать стандартный набор операций над ними
MVC_Sections
Суть проблемы • Почти все находится на каком-либо из Layout-ов • На каждой страницу может быть что-то уникальное, и это уникальное должно быть выведено на Layout • Возникает вопрос – как ? • Классический пример – подключение JS скриптов • Следствие 1 – секция может быть обязательной и не обязательной
Суть решения - секции • Секция – некий аналог вставки текста, который будет взят из той страницы, которая находится на Layout • Пример -Index 1, Index 2, Index 3 – третий не работает, потому что не объявлена секция обязательная
@Render. Body • @Render. Body вызывает прорисовку содержимого текущего view
Чуть более сложная вещь • Можно определить, была ли определена секция для того, что бы сделать некоторое «значение по умолчанию» • Is. Section. Defined – проверяет, что секция была определена • Index 1, Index 2 – примеры определенной и не определенной секции
Где реально используются секции? • JS скрипты • CSS стили • Меню • В большинстве все же используется Partial, но скрипты есть везде – поэтому и секции используются везде.
MVC Небольшое углубление в MVC
Что делать, если у формы должно быть несколько кнопок подтверждения? • 1) Мы можем сделать несколько input в типом submit • 2) В любом случае у формы есть только один метод, который вызовется при нажатии на кнопку. • 3)пользователь нажимает на кнопку в браузере. • 4) Если пользователь нормальный, то у него включен JS • 5) Все данные (а вернее свойства модели) получаются в MVC
Следствие • Через JS можно отметить нажатие кнопки (вернее срабатывание). • По тому, какая кнопка нажата можно установить на форме значение скрытого поля • После установки можно «ручками» вызвать submit • При желании через JS можно изменить атрибут у формы action
Пример решения
Основы MVC Испльзование Ajax
Суть всего webпрограммирования • Суть любого действия в web – тыкнули куда-то – Послался запрос на сервер – В это время клиент ждет – Получили ответ от сервера – Обновили информацию на странице
Проблема • А что будет, если или сервер долго обрабатывает запрос или канал медленный? • Пользователь может нажать кнопку дважды
А если это кнопка списания денег с карточки?
Суть решения • У любой формы есть кнопка submit • На её нажатие, если форма валидна, нужно её заблокировать • Не надо путать клиентскую и серверную валидацию • Решение – в скприпте, который подключается на главной форме
Пример стандартных действий над списком • В прилагаемом проекте рассмотрен стандартный набор действий
Соотнесение объектов БД и их моделей
Суть проблемы • Если модель, которая нам пришла в контроллер • Надо из модели обновить БД. Тогда 90% кода будет БД. f 1 = Модель. f 1 БД. f 2 = Модель. f 2 БД. f. N = Модель. f. N Если объект БД расширится, то надо не забыть расширить набор присвоений Хочется счастья
Суть решения • Пусть стандартом наименования модели будет то, что имя модели добуквенно совпадает со свойством объекта БД • Задача: написать что-нибудь, что позволит копировать свойства записи в модель и обратно.
Полнотекстовый поиск • Сфинкс • Люцина
all_2013_07_16.ppt