# | Название видеоурока | Видео / Тесты | Решило | Рейтинг | Доступ |
---|---|---|---|---|---|
1 |
![]() |
|
|||
На этом уроке мы создадим тестовый проект с использованием технологии ASP.NET на MVC шаблоне и рассмотрим структуру проекта. Отчёт отправил: 9567. Максим Выполнено за 5 мин. [Показать отчёт] Научился: 1) Создавать ASP.NET проекты =) 2) Примерно понял структуру проекта Сложности: Ничего Комментарии: Все замечательно |
|||||
2 | Выбор темы для проекта |
|
|||
На этом уроке мы обсудим, какой сайт будем делать. Отчёт отправил: 9567. Максим Выполнено за 5 мин. [Показать отчёт] Научился: 1) Продумывать тему сайта 2) Продумывать его схему Сложности: Ничего Комментарии: Все замечательно |
|||||
3 | Создание схемы проекта |
|
|||
На этом уроке мы ещё раз просмотрим сайт, и выберем страницы, которые будем создавать. Отчёт отправил: 9567. Максим Выполнено за 7 мин. [Показать отчёт] Научился: 1) Продумывать концепцию сайта P.S. - история прикреплена в виде фотографии Сложности: Собственно, ничего. Комментарии: Замечаний нема. Все хорошо, как всегда. |
|||||
4 | Создание пустых страниц |
1 тест |
|||
На этом уроке мы создадим новый пустой проект, добавим нужные контроллеры Отчёт отправил: 9567. Максим Выполнено за 15 мин. [Показать отчёт] Научился: 1) Создавать MVC проекты 2) Создавать новые контроллеры 3) Создавать для них представления 4) Задавать главный контроллер 5) Перенаправлять представления из одного методы в другой Сложности: Пока что все доступно Комментарии: С хорошим учителем и замечаний быть не может =) |
|||||
5 | Создание модели Story |
|
|||
На этом уроке мы создадим модель Story. В этой модели будят вся логика работы с историями. Отчёт отправил: 9567. Максим Выполнено за 28 мин. [Показать отчёт] Научился: 1) Cоздавать модели для контроллеров 2) Создавать конструктор с инициализацией полей Сложности: Сделать пошаговое выполнение проекта (я серьезно, у меня не работает линейка клавиш F =) ) А так - ничего, все доступно и понятно. Комментарии: Все замечательно! Спасибо за урок! |
|||||
6 | Формирование меню |
|
|||
На этом уроке мы сформируем навигационное меню в шапке нашего сайта.
Отчёт отправил: 9567. Максим Выполнено за 17 мин. [Показать отчёт] Научился: 1) Изменять пункты меню в шапке проекта (господи, магия какая-то =) ) 2) Полазил по проекту и примерно понял, как сия магия работает) 3) Заодно увидел, где меняется копирайт страниц и приписка к основной ссылке) Сложности: Ничего, все понятно Комментарии: Все замечательно) |
|||||
7 | Установка сервера MySQL |
|
|||
На этом уроке мы установим MySQL Community Server и программу HeidiSQL для подключения к нему. Отчёт отправил: 9567. Максим Выполнено за 15 мин. [Показать отчёт] Научился: 1) Устанавливать MySQL сервер 2) Получать к нему доступ Сложности: Ничего Комментарии: Собственно, по неизведанным для меня причинам я не смог получить доступ к базе данных через консоль. Либо, товарищи там поменяли для этого внутреннюю команду, либо же отказались от данного функционала, ибо в родном приложении таковой функционал появился, без всяких там HeidiSQL (скрин прилагаю) |
|||||
8 | Схема базы данных |
|
|||
На этом уроке мы создадим базу данных для нашего проекта, подготовим схему таблицы и напишем SQL запрос для её создания. Отчёт отправил: 9567. Максим Выполнено за 25 мин. [Показать отчёт] Научился: 1) Создавать базы данных 2) Создавать в них таблицы Сложности: Ничего Комментарии: Опять-таки, через саму консоль не вышло, ибо она отказывается принимать команду "mysql", но в HeidiSQL есть как возможность простого создания таблиц простым добавлением элементов, так и есть консоль для запросов. Оба варианта работают как надо. И да, в родном манипуляторе базами от MySQL отсутствует возможность удаления созданных баз (или я просто слепой)) |
|||||
9 | Создание SQL-запросов |
|
|||
На этом уроке мы составим список задач для нашей базы и составим SQL запросы для решения каждой задачи. Все запросы протестируем в SQL-консоли. Отчёт отправил: 9567. Максим Выполнено за 27 мин. [Показать отчёт] Научился: 1) Познал суть SQL запросов Сложности: Ничего Комментарии: Большое спасибо за доступный и понятный урок) В принципе, куда логичнее не использовать встроенный запрос RAND(), а программно сгенерировать псевдо-случайное число, верхним порогом которого будет последнее id, которое можно вытащить "select id from story order by id desc limit =1;", после чего использовать уже "select * from story where id='"+сгенерированное_нами_число+"';" Ибо какое-то уж очень громоздкое решение нашли sql-вцы для реализации рандома) |
|||||
10 | Подключение к базе данных |
|
|||
Мы достигли Экватора нашего проекта! На этом уроке мы подключим наш проект к созданной базе данных на MySQL. Отчёт отправил: 9567. Максим Выполнено за 35 мин. [Показать отчёт] Научился: 1) Подключаться к базам данных 2) Считывать оттуда нужную информацию 3) Вносить параметры подключения в конфиг Сложности: Ничего, все пока весьма понятно =) Комментарии: Все замечательно, спасибо за отличный урок! |
|||||
11 | Работа над ошибками |
|
|||
На этом уроке мы создадим механизм отлова ошибок при работе с базой данных и передачи их клиенту. Отчёт отправил: 9567. Максим Выполнено за 45 мин. [Показать отчёт] Научился: 1) Отрабатывать ошибки Сложности: Ничего Комментарии: Все прекрасно) Кстати, заодно я реализовал вариант рандома, который предлагал в прошлый раз. Надо сказать, что использовать его имеет смысл в том случае, если у нас достаточно большая база, ибо генератор псевдо-случайных чисел уж не слишком-то и случаен, особенно хорошо сие наблюдается на диапазоне чисел 1-2, в этом случае более рандомной показывает себя именно функция RAND() в SQL. |
|||||
12 | Запуск модели Story |
|
|||
На этом уроке мы запустим модель Story - допишем методы Number() и Random(), организуем ещё одну проверку ошибок. Отчёт отправил: 9567. Максим Выполнено за 1 час. 25 мин. [Показать отчёт] Научился: 1) Работать с параметром id в составе url 2) Отрабатывать еще больше ошибок =) Сложности: 1) Работать с залипающей от пролитого чая с сахаром клавиатурой =) А так - ничего) Спасибо за урок) Комментарии: Все здорово! Спасибо! |
|||||
13 | Что такое SQL-инъекция |
|
|||
На этом уроке мы сделаем бекап базы данных, затем продемонстрируем «взлом» страницы посредством SQL-инъекции, покажем, как от этого защититься и потом восстановим базу данных. Отчёт отправил: 9567. Максим Выполнено за 30 мин. [Показать отчёт] Научился: 1) Делать бэкапы баз данных 2) Делать SQL-инъекции 3) Защищаться от них) 4) Восстанавливать базы данных Сложности: Ничего) Спасибо за урок Комментарии: Очень интересно все это работает. Спасибо за подробное разъяснение и предупреждения об опасностях) |
|||||
14 | Рефакторинг модели Story |
|
|||
На этом уроке мы сделаем небольшой рефакторинг класса Story.
Отчёт отправил: 9567. Максим Выполнено за 13 мин. [Показать отчёт] Научился: 1) Убеждаться, что все работает =) Сложности: Абсолютно ничего Комментарии: Единственное замечание - Вы немного увлеклись в заменении ноликов на nr) В строчке с ename'ом сие было малость излишне =) |
|||||
15 | Работа со списком историй |
|
|||
На этом уроке мы сделаем вывод списка историй на главной странице.
Отчёт отправил: 9567. Максим Выполнено за 27 мин. [Показать отчёт] Научился: 1) Создавать гиперссылки Сложности: Ничего Комментарии: Спасибо за урок, все замечательно =) Но хотел бы испросить совета: хотел сделать так, чтобы по нажатию на "Случайная" выдавалась случайная история (как и раньше), но чтобы в url значился ее адрес. И вот тут возникает вопрос: можно ли по нажатию на объект, созданный при помощи HtmlActionLink не только сделать редирект, но и выполнить действие из какого-либо класса перед этим (тогда можно будет создать ссылку прямо перед перенаправлением). Или же возможно ли изменить текущий url страницы на нужный? |
|||||
16 | Добавление истории |
|
|||
На этом уроке мы реализуем отправку истории и добавление её в базу данных. Мы рассмотрим возможные ошибки, которые могут возникнуть при этом. Отчёт отправил: 9567. Максим Выполнено за 53 мин. [Показать отчёт] Научился: 1) Научился разделять Post и Get запросы 2) Научился таки методу Redirect() (благодаря которому наконец реализовал получение случайной истории как хотел) Сложности: Ничего. Благодаря хорошим объяснениям все как всегда понятно, спасибо большое за урок =) Комментарии: Евгений Витольдович, я вот еще с урока, где вы указали получение ename'a через substring() думал, зачем было делать именно так. И когда Вы сейчас исправляли ошибку, возникающую в том случае, если email не содержит @, 4 строчками, решил, что все таки можно и попроще. У нас ведь цель вернуть имя до собачки, а это можно сделать при помощи email.Split('@')[0]. Вот и все. И никаких ошибок =) Мы пока к валидации не обращались, так что нам не надо отлавливать там ошибок (а когда обратимся - можно обрабатывать наличие собачки email.Contains("@")) Так, я думаю, покороче будет) |
|||||
17 | Валидация данных |
|
|||
На этом уроке мы реализуем проверку полей формы при отправке истории. Обсудим регулярное выражение для проверки адреса электропочты. Отчёт отправил: 9567. Максим Выполнено за 45 мин. [Показать отчёт] Научился: 1) Валидации (отчасти) Сложности: 1) Заставить работать проверку регулярным выражением. Так и не понял, в чем была проблема, но вот это: [Required(ErrorMessage = "Укажите свой email")] [RegularExpression(@"^([a-z0-9_-]+\.)*[a-z0-9_-]+@[a-z0-9_-]+(\.[a-z0-9_-]+)*\.[a-z]{2-6}", ErrorMessage = "Укажите допустимый email")] public string email { get; set; } Просто отказывается нормально работать и не пропускает вообще ничего Комментарии: Все замечательно, спасибо. |
|||||
18 | Оформление сайта |
|
|||
На этом уроке мы займемся внешним видом нашего сайта, будем оформлять страницы, используя возможности bootstrap 3. Отчёт отправил: 9567. Максим Выполнено за 1 час. 10 мин. [Показать отчёт] Научился: 1) Обучился тому, как менять внешний вид сайта 2) Поразбирался с bootstrap Сложности: Самое сложное в оформлении - сделать что-то нормально =) Комментарии: Все замечательно, спасибо за урок! |
|||||
19 | Размещение проекта в Интернете |
|
|||
В этом уроке мы зарегистрируемся на хостинге и разместим свой проект в Интернете, наконец-таки! Отчёт отправил: 9567. Максим Выполнено за 48 мин. [Показать отчёт] Научился: 1) Ставить ASP.NET проекты на хостинг Сложности: Ничего) Комментарии: Мой комментарий виден на скрине в 10 истории =) Та ошибка, что у Вас выскочила, была связана, что мы пытались постоянно держать подключение к базе данных открытым. Правильнее было переработать класс, чтобы подключение обновлялось при каждом новом запросе. И все прекрасно себе работает) |
|||||
20 | Отказ от статика |
|
|||
Нам придётся отказаться от статичного класса базы данных, потому что статичный класс продолжает существование даже при новых обращениях к нему с новой страницы. Отчёт отправил: 9567. Максим Выполнено за 15 мин. [Показать отчёт] Научился: Собственно, ничему) Урок-то дебаггингу посвящен) Сложности: Ничего Комментарии: Выполнил задание за 15 минут до начала урока (так что могу зваться учеником-экстрасенсом), исправляя ошибку, возникшую на прошлом уроке =) |
|||||
21 | ФИНАЛЬНЫЙ УРОК. Презентация |
без видео |
|||
Сделай видео-презентацию своей программы. На видео необходимо ответить на следующие вопросы: 0. Показать, что у тебя получилось. 1. Чему ты научился на этом курсе? 2. Что тебе понравилось, что нет? 3. Что ты ещё добавишь в свой проект? 4. Какой следующий курс ты будешь проходить? Отчёт отправил: 9567. Максим Выполнено за 10 час. 01 мин. [Показать отчёт] Научился: В этом курсе я научился: 1) Создавать базовые ASP.NET проекты 2) Отрабатывать ошибки в них возникающие 3) Подключать к ним базы данных 4) Ставить все это дело на хостинг Сложности: Благодаря нашим учителям сложностей почти не возникало =) Комментарии: Спасибо за этот замечательный курс и затраченные Вами, Евгений Витольдович и Валерий Владимирович, на него силы! Все получилось красиво и понятно! |
|||||
22 | VIP. Авторизация на сайте |
|
|||
На этом уроке мы создадим в базе данных таблицу users, добавим туда одну запись и реализуем авторизацию администратора Отчёт отправил: 9567. Максим Выполнено за 1 час. 45 мин. [Показать отчёт] Научился: 1) Создавать форму авторизации/регистрации (приступаю теперь к следующему уроку, чтобы познать суть сессий) =) Сложности: Ничего Комментарии: Все замечательно, спасибо! Заодно сделал форму для регистрации, чтобы можно было вносить новых пользователей =) |
|||||
23 | VIP. Модерация записей |
|
|||
На этом уроке мы реализуем функционал администратора сайта. Администратор сможет подтверждать истории для публикации. Отчёт отправил: 9567. Максим Выполнено за 1 час. 28 мин. [Показать отчёт] Научился: 1) Создавать сессии. Ура =) Сложности: Ничего Комментарии: Все замечательно, спасибо за урок) Внес некоторые коррективы: в разделе "Модерация" отображаются все истории, ждущие своего вердикта, отклоненные истории меняют свой id на минимальный в базе-1, а значение auto_increment в таблице снижается до его старого id, тем самым мы избегаем "бреши" в id опубликованных записей! Хотел еще сделать, чтобы отсылать истории могли только зарегистрированные пользователи (а email сразу брался из их данных о регистрации), но сил уже не хватает =) Через часик доделаю сие действо =) |
|||||
24 | VIP. Установка домена |
|
|||
На этом уроке мы покажем, как просто можно купить и привязать домен к вашему проекту. Отчёт отправил: 9567. Максим Выполнено за 10 час. 00 мин. [Показать отчёт] Научился: 1) Ставить домен Сложности: 1) Доползти до компьютера =) Комментарии: Спасибо за курс! Был рад его пройти и обучиться созданию базового ASP.NET проекта! (http://hearthforumstories2.tk/) |
|||||
Итого: 24 видеоурока |
8 час. 41 мин. 1 тест |
24 чел. | |||
Финалисты: Михаил Ермишин, Nromik, Елена, Аркадий, valerys Nikola, Tekashnik, Сергей, zhikharevav, Максим, Сергей Соколов, Ludmila, Алексей Хонин, Станислав, Константин, WildOrc, Алексей|BrisK|Кривицкий, alklokov, Dmitry Sinitsin, Владимир, Max, Александр, Rita, vip, Evgenii Kudriavtcev . |