# | Название видеоурока | Видео / Тесты | Решило | Рейтинг | Доступ |
---|---|---|---|---|---|
1 |
![]() |
|
|||
На этом уроке мы создадим тестовый проект с использованием технологии ASP.NET на MVC шаблоне и рассмотрим структуру проекта. Отчёт отправил: 4004. Елена Выполнено за 15 мин. [Показать отчёт] Научился: Создавать web-приложения с использованием технологии AST.NET Сложности: пока ничего Комментарии: Пока технологию ASP.NET использовать не доводилось. Очень удивила возможность пошагового выполнения, которой так не хватает при программировании на PHP. |
|||||
2 | Выбор темы для проекта |
|
|||
На этом уроке мы обсудим, какой сайт будем делать. Отчёт отправил: 4004. Елена Выполнено за 15 мин. [Показать отчёт] Научился: исследовать сайт ithappens.me Сложности: что-нибудь придумать Комментарии: Насчет темы - есть несколько идей. Наверное, самая простая в реализации - это оформить статьи по программированию (благо, у меня их уже куча :) ). Сейчас мне интереснее сам механизм использования ASP.net для WEB. |
|||||
3 | Создание схемы проекта |
|
|||
На этом уроке мы ещё раз просмотрим сайт, и выберем страницы, которые будем создавать. Отчёт отправил: 4004. Елена Выполнено за 15 мин. [Показать отчёт] Научился: не знаю Сложности: ничего Комментарии: Уже третий вступительный урок... Когда же кульминация? Когда же наконец начнется создание проекта? А еще я подумала, почему бы не заняться оформлением своего конспекта по "Вычислительным машинам"? Пожалуй, займусь :) |
|||||
4 | Создание пустых страниц |
1 тест |
|||
На этом уроке мы создадим новый пустой проект, добавим нужные контроллеры Отчёт отправил: 4004. Елена Выполнено за 30 мин. [Показать отчёт] Научился: Создавать проект ASP.net, контроллеры и виды. Сложности: ничего Комментарии: Немного тормозит запуск приложения в окне браузера, в PHP это быстрее было. Но сама среда разработки мне очень понравилась. Посмотрела код сгенерированной html-страницы - там нет ничего особенного, все вполне понятно. Я даже таблицу стилей подключила и поменяла цвет фона (я же не могу без этого :) ) |
|||||
5 | Создание модели Story |
|
|||
На этом уроке мы создадим модель Story. В этой модели будят вся логика работы с историями. Отчёт отправил: 4004. Елена Выполнено за 40 мин. [Показать отчёт] Научился: Создавать модель и ее конструктор Сложности: Пока что задания со звездочкой мне не по зубам :( Комментарии: По теме урока все получилось. Я имею опыт (хотя и небольшой) работы с MVC, поэтому все кажется достаточно понятным и логичным. Но мне не удалось выполнить дополнительные задания :( Очень надеюсь, что скоро наверстаю свои пробелы в знаниях. |
|||||
6 | Формирование меню |
|
|||
На этом уроке мы сформируем навигационное меню в шапке нашего сайта.
Отчёт отправил: 4004. Елена Выполнено за 25 мин. [Показать отчёт] Научился: Создавать меню Сложности: Пока все сложновато воспринимается. Но это просто для меня абсолютно новое направление. Комментарии: Меню "О проекте" создала, пока в нем выводится та же единственная история. |
|||||
7 | Установка сервера MySQL |
|
|||
На этом уроке мы установим MySQL Community Server и программу HeidiSQL для подключения к нему. Отчёт отправил: 4004. Елена Выполнено за 15 мин. [Показать отчёт] Научился: Скачивать СУБД MySQL Сложности: ничего Комментарии: Пока решила попробовать воспользоваться mySQL, входящим в состав Denwerа. В предыдущих курсах это вполне успешно получалось. Если не получится, вернусь к этому уроку. Интересно, как отдельная установка MySQL скажется на поведении Denwerа? У кого-нибудь есть опыт? А то самой экспериментировать пока не хочется (хотя, возможно, придется). |
|||||
8 | Схема базы данных |
|
|||
На этом уроке мы создадим базу данных для нашего проекта, подготовим схему таблицы и напишем SQL запрос для её создания. Отчёт отправил: 4004. Елена Выполнено за 25 мин. [Показать отчёт] Научился: Создавать базу данных, работать с MySQL в консоли Сложности: ничего Комментарии: База данных успешно создалась, проверила через phpMyAdmin. В phpMyAdmin базы создавала и раньше. |
|||||
9 | Создание SQL-запросов |
|
|||
На этом уроке мы составим список задач для нашей базы и составим SQL запросы для решения каждой задачи. Все запросы протестируем в SQL-консоли. Отчёт отправил: 4004. Елена Выполнено за 45 мин. [Показать отчёт] Научился: Работать с SQL-запросами Сложности: ничего Комментарии: А чем плох такой запрос для вывода случайной истории: SELECT * FROM story WHERE id=1+ROUND(RAND()*(2-1)) LIMIT 1; ? Раскритикуйте мое "простое неправильное решение", потому что я почему-то подумала выводить случайную историю таким способом, а не так, как предложено в уроке. Сама, конечно, вижу, что иногда результат запроса выдает 'Empty set', но не понимаю, почему. |
|||||
10 | Подключение к базе данных |
|
|||
Мы достигли Экватора нашего проекта! На этом уроке мы подключим наш проект к созданной базе данных на MySQL. Отчёт отправил: 4004. Елена Выполнено за 1 час. 00 мин. [Показать отчёт] Научился: Подключаться к базе данных MySQL, конфигурировать строку подключения к БД Сложности: Долго не могла понять, почему BreakPoint не срабатывает при вызове MySQL.Select(). Оказалось, что не там вызывала метод. Комментарии: За сегодняшний день я, пожалуй, узнала больше, чем за последние 3 месяца :) |
|||||
11 | Работа над ошибками |
|
|||
На этом уроке мы создадим механизм отлова ошибок при работе с базой данных и передачи их клиенту. Отчёт отправил: 4004. Елена Выполнено за 1 час. 00 мин. [Показать отчёт] Научился: Обрабатывать ошибки, возникающие в ходе формирования запросов и подключения к базе данных Сложности: при таком объяснении - ничего :) Комментарии: Отличный урок! Я тоже прошлый раз с Web.config запуталась. |
|||||
12 | Запуск модели Story |
|
|||
На этом уроке мы запустим модель Story - допишем методы Number() и Random(), организуем ещё одну проверку ошибок. Отчёт отправил: 4004. Елена Выполнено за 1 час. 00 мин. [Показать отчёт] Научился: Работать с контроллером Story Сложности: Что было самым сложным, то еще не кончилось :( Комментарии: Попробую описать ситуацию. После того как я ввожу http://localhost:65185/story/number/12'/ в окне браузера (с заведомо неверным номером), у меня почему-то сохраняется состояние ошибки. Если раскомментировать строку ниже курсора на скриншоте, то программа перестает после такого ввода вообще что-либо выводить. Проверка IsError() возвращает true, и программа отказывается показывать мне случайные истории (как, впрочем, и истории с определенным номером). Может, я просмотрела, где очищается ошибка, оставшаяся от предыдущего запроса? |
|||||
13 | Что такое SQL-инъекция |
|
|||
На этом уроке мы сделаем бекап базы данных, затем продемонстрируем «взлом» страницы посредством SQL-инъекции, покажем, как от этого защититься и потом восстановим базу данных. Отчёт отправил: 4004. Елена Выполнено за 45 мин. [Показать отчёт] Научился: Бороться с SQL-инъекциями Сложности: ничего Комментарии: Вместе с защитой от SQL-инъекций пропал и тот "глюк", который беспокоил меня в прошлом уроке :) На скриншоте специально привожу несуществующую статью, чтобы было видно экранированные апострофы. |
|||||
14 | Рефакторинг модели Story |
|
|||
На этом уроке мы сделаем небольшой рефакторинг класса Story.
Отчёт отправил: 4004. Елена Выполнено за 10 мин. [Показать отчёт] Научился: Рефакторингу кода Сложности: ничего Комментарии: Почему лучше создавать два различных метода с разным числом параметров и вызывать один из другого? Почему бы не использовать аргументы по умолчанию? private void ExtractRow(DataTable table, int nr=0) {...} И еще столкнулась с одной "исключительной" ошибкой (правда, несколькими уроками раньше) - у меня в базе данных был некорректно записан email - не содержал '@'. В результате операция ename = email.Substring(0, email.IndexOf('@')); вызвала исключение. Пришлось ее тоже отдельно обернуть в блок try{}. |
|||||
15 | Работа со списком историй |
|
|||
На этом уроке мы сделаем вывод списка историй на главной странице.
Отчёт отправил: 4004. Елена Выполнено за 30 мин. [Показать отчёт] Научился: Формировать ссылки Сложности: "Затащить" в ссылку весь заголовок. Комментарии: Как учат в курсах по адаптивной верстке, чем больше площадь ссылки, тем проще перейти по ней на мобильном устройстве. Поэтому задалась целью сделать ссылкой весь заголовок статьи. Получилось довольно успешно :) |
|||||
16 | Добавление истории |
|
|||
На этом уроке мы реализуем отправку истории и добавление её в базу данных. Мы рассмотрим возможные ошибки, которые могут возникнуть при этом. Отчёт отправил: 4004. Елена Выполнено за 1 час. 00 мин. [Показать отчёт] Научился: Добавлять формы на сайт и обрабатывать данные из них. Сложности: уже ничего, с некорректным e-mailом раньше попалась :) Комментарии: все получилось :) |
|||||
17 | Валидация данных |
|
|||
На этом уроке мы реализуем проверку полей формы при отправке истории. Обсудим регулярное выражение для проверки адреса электропочты. Отчёт отправил: 4004. Елена Выполнено за 1 час. 30 мин. [Показать отчёт] Научился: Использовать регулярные выражения Сложности: Использовать регулярные выражения Комментарии: Вот уж не знаю, почему как в уроке {2-6} в регулярном выражении у меня не прокатило (VS Community 2015) :( Здесь https://msdn.microsoft.com/ru-ru/library/3206d374(v=vs.110).aspx прочитала, что число повторений задается через запятую. В результате выражение @"^([a-z0-9_-]+\.)*[a-z0-9_-]+@[a-z0-9_-]+(\.[a-z0-9_-]+)*\.[a-z]{2,6}" прошло успешно. Тьфу-тьфу... не дышать на него, пока работает :) |
|||||
18 | Оформление сайта |
|
|||
На этом уроке мы займемся внешним видом нашего сайта, будем оформлять страницы, используя возможности bootstrap 3. Отчёт отправил: 4004. Елена Выполнено за 1 час. 20 мин. [Показать отчёт] Научился: Оформлять сайт с использованием bootstrap Сложности: Все сложности - из-за невнимательности :) Комментарии: В этой теме для меня главное - "куда написать". А "что написать" - сама соображу :) Например, если задавать фиксированную ширину блока (960px), то Google по головке не погладит, а скажет, что сайт не адаптирован под мобильные устройства, поскольку при сужении экрана автоматически появляется горизонтальная полоса прокрутки. Лучше ограничить максимальную ширину экрана max-width. А вообще - чтобы корректно разместить содержимое по центру экрана в bootstrape есть стандартный класс "container". Задавать минимальную высоту блока - тоже не лучшее решение. Для этого лучше использовать волшебное свойство overflow: hidden, которое не дает "схлопываться" границам блока, внутри которого располагаются "плавающие" (float) элементы. Ладно, увлеклась я чего-то. Просто верстка - это моя любимая тема :) |
|||||
19 | Размещение проекта в Интернете |
|
|||
В этом уроке мы зарегистрируемся на хостинге и разместим свой проект в Интернете, наконец-таки! Отчёт отправил: 4004. Елена Выполнено за 30 мин. [Показать отчёт] Научился: Запускать ASP.net приложения на реальном хостинге Сложности: ВСЁ!!! Сложность в том, что никогда раньше ничего подобного не делала. Комментарии: Удивительнее всего, что все получилось!!! Получилось вот так: http://vev678-001-site1.ctempurl.com/ Правда, при повторном обращении к сайту возникают ошибки, которые мне пока не понятны :( Если снова перезаписываешь файл web.config, то ошибки пропадают. Какой-то одноразовый сайт получился. Подскажите, как это исправить? Насколько я помню, в конце урока тоже что-то подобное возникало. |
|||||
20 | Отказ от статика |
|
|||
Нам придётся отказаться от статичного класса базы данных, потому что статичный класс продолжает существование даже при новых обращениях к нему с новой страницы. Отчёт отправил: 4004. Елена Выполнено за 30 мин. [Показать отчёт] Научился: Создавать экземпляры уже не статичного класса MySQL. Сложности: Увидеть все MySQL и исправить возникающие ошибки. Комментарии: УРА! Настроение уже исправилось! Теперь сайт не вылетает с ошибкой. Работает даже после первых трех минут :) Ссылка на сайт: http://vev678-001-site1.ctempurl.com/ |
|||||
21 | ФИНАЛЬНЫЙ УРОК. Презентация |
без видео |
|||
Сделай видео-презентацию своей программы. На видео необходимо ответить на следующие вопросы: 0. Показать, что у тебя получилось. 1. Чему ты научился на этом курсе? 2. Что тебе понравилось, что нет? 3. Что ты ещё добавишь в свой проект? 4. Какой следующий курс ты будешь проходить? Отчёт отправил: 4004. Елена Выполнено за 30 мин. [Показать отчёт] Научился: Записывать презентации Сложности: Найти 5 минут тишины, чтобы записать "озвучку" Комментарии: Жаль, что мой шаблон презентации по видеоурокам покинул меня вместе с жестким диском :( Поэтому мудрить не стала. Видеообзор: https://youtu.be/KIXcyd-uF1k |
|||||
22 | VIP. Авторизация на сайте |
|
|||
На этом уроке мы создадим в базе данных таблицу users, добавим туда одну запись и реализуем авторизацию администратора Отчёт отправил: 4004. Елена Выполнено за 1 час. 30 мин. [Показать отчёт] Научился: Создавать и обрабатывать форму входа Сложности: Следить за действиями в видео (слишком все запутано получилось) Комментарии: Уже устала ковыряться в своих ошибках, но пока так и не поняла, почему при переходе по ссылке "Вход" подсвечивается меню "Последние". Кстати, в уроке тоже так получилось. Может, завтра посмотрю. Думаю, что все дело в том, что у нас есть файл Index.cshtml в View->admin и View->page, но не уверена. Проблемы с контроллером Story у меня не оказалось. Видимо, я добавляла объект класса MySQL сама, не особо отслеживая действия в уроке. |
|||||
23 | VIP. Модерация записей |
|
|||
На этом уроке мы реализуем функционал администратора сайта. Администратор сможет подтверждать истории для публикации. Отчёт отправил: 4004. Елена Выполнено за 2 час. 00 мин. [Показать отчёт] Научился: Использовать enum в таблице, модерировать записи. Сложности: Сложности у меня в другом :( - при попытке запустить проект VideoSchool, размещенный на GitHub, возникает ошибка Не удалось загрузить файл или сборку "Microsoft.Web.Infrastructure... (проблема на втором скриншоте) Думала, что здесь найду, как решить эту проблему, досмотрела урок до конца, но не нашла. Комментарии: Все-таки функция addslashes() должна делать проверку на то, что строка содержит null: public string addslashes(string text) { if (text==null) return ""; return text.Replace("\'", "\\\'"); } Теперь у меня программа не вылетает, когда пароль при входе вообще не введен. |
|||||
24 | VIP. Установка домена |
|
|||
На этом уроке мы покажем, как просто можно купить и привязать домен к вашему проекту. Отчёт отправил: 4004. Елена Выполнено за 30 мин. [Показать отчёт] Научился: Покупать и настраивать домены (теоретически) Сложности: Придумать доменное имя пока не удалось, потому что еще не определилась с темой проекта. Комментарии: Однажды придуманное не совсем удачно доменное имя prog-cpp.ru оказалось Уже по назначению, чем можно было предположить 2 года назад (когда кроме конспектов лекций по С++ на этом сайте я ничего размещать не планировала). Тогда я и повозилась с настройкой. Кстати, моему сайту prog-cpp.ru 7 марта исполнилось 2 года :) |
|||||
Итого: 24 видеоурока |
8 час. 41 мин. 1 тест |
24 чел. | |||
Финалисты: Михаил Ермишин, Nromik, Елена, Аркадий, valerys Nikola, Tekashnik, Сергей, zhikharevav, Максим, Сергей Соколов, Ludmila, Алексей Хонин, Станислав, Константин, WildOrc, Алексей|BrisK|Кривицкий, alklokov, Dmitry Sinitsin, Владимир, Max, Александр, Rita, vip, Evgenii Kudriavtcev . |