C# обучение видео

Формула программиста

основатель — Волосатов Евгений Витольдович

Клуб формулистов - Ежемесячная подписка

Вступление в Клуб Формулистов на выгодных условиях для НОВЫХ участников.

После взноса  999  499 руб. вы получите подписку
в Клуб Формулистов на 30 дней и 256 байт для быстрого старта.
Байты используются для открытия более одного урока в день, по 50 байт за урок.

Стоимость 1 дня за первый месяц: всего 16 рублей.

Первый взнос - 499 руб./30 дней.

Через 30 дней будет списано 3,000 2,400 руб.
за продление подписки в Клуб на 30 дней + подарок 512 байт.

Так будет продолжаться каждые 30 дней, пока вы не отмените подписку.
Средства будет автоматически считываться с вашей карты.
Вы в любой момент сможете отказаться от продления Клуба.

Только ДО КОНЦА НЕДЕЛИ -
-50% скидка на первый взнос, всего 499 (вместо 999) рублей!
-20% скидка на ЕЖЕМЕСЯЧНЫЙ платёж!
Всего 2400 руб/месяц (вместо 3000 руб/месяц), или 80 руб./день - цена чашки кофе.


Стоимость 1 дня: 80 руб.

Хочу вступить!

Также есть другие варианты оплаты участия в КФ:

Билет в клуб формулистов на ...
30+ дней | 60 дней | 150 дней | 380 дней | 1000 дней

Внимание!
Стоимость участия в Клубе формулистов увеличивается 1 числа каждого месяца на 100 рублей.
При оформления подписки стоимость остаётся постоянной, пока подписка не будет отменена.







Первый взнос - 499 руб./30 дней + 500 байт.
Последующие взносы - 3,000 2400 руб./месяц + 512 байт.



Список уроков | фото | видео

# Название видеоурока Видео / Тесты Решило Рейтинг Доступ
1 FREE Мы начинаем ASP.NET с MVC 00:06:08
125 чел. ★ 4.8 Done
  На этом уроке мы создадим тестовый проект
с использованием технологии ASP.NET на MVC шаблоне
и рассмотрим структуру проекта.
Отчёт отправил: 4004. Елена Выполнено за 15 мин. [Показать отчёт]
Научился: Создавать web-приложения с использованием технологии AST.NET 
Сложности: пока ничего 
Комментарии: Пока технологию ASP.NET использовать не доводилось. Очень удивила возможность пошагового выполнения, которой так не хватает при программировании на PHP. 
2 Выбор темы для проекта 00:02:35
105 чел. ★ 4.8 Done
  На этом уроке мы обсудим, какой сайт будем делать.

Отчёт отправил: 4004. Елена Выполнено за 15 мин. [Показать отчёт]
Научился: исследовать сайт ithappens.me 
Сложности: что-нибудь придумать 
Комментарии: Насчет темы - есть несколько идей. Наверное, самая простая в реализации - это оформить статьи по программированию (благо,  у меня их уже куча :) ). Сейчас мне интереснее сам механизм использования ASP.net для WEB.  
3 Создание схемы проекта 00:06:41
99 чел. ★ 4.7 Done
  На этом уроке мы ещё раз просмотрим сайт,
и выберем страницы, которые будем создавать.
Отчёт отправил: 4004. Елена Выполнено за 15 мин. [Показать отчёт]
Научился: не знаю 
Сложности: ничего 
Комментарии: Уже третий вступительный урок... Когда же кульминация? Когда же наконец начнется создание проекта? А еще я подумала, почему бы не заняться оформлением своего конспекта по "Вычислительным машинам"? Пожалуй, займусь :) 
4 Создание пустых страниц 00:10:50
1 тест
93 чел. ★ 4.9 Done
  На этом уроке мы создадим новый пустой проект,
добавим нужные контроллеры

Отчёт отправил: 4004. Елена Выполнено за 30 мин. [Показать отчёт]
Научился: Создавать проект ASP.net, контроллеры и виды. 
Сложности: ничего 
Комментарии: Немного тормозит запуск приложения в окне браузера, в PHP это быстрее было. Но сама среда разработки мне очень понравилась. Посмотрела код сгенерированной html-страницы - там нет ничего особенного, все вполне понятно. Я даже таблицу стилей подключила и поменяла цвет фона (я же не могу без этого :) )  
5 Создание модели Story 00:12:38
75 чел. ★ 4.9 Done
  На этом уроке мы создадим модель Story.
В этой модели будят вся логика работы с историями.

Отчёт отправил: 4004. Елена Выполнено за 40 мин. [Показать отчёт]
Научился: Создавать модель и ее конструктор 
Сложности: Пока что задания со звездочкой мне не по зубам :( 
Комментарии: По теме урока все получилось. Я имею опыт (хотя и небольшой) работы с MVC, поэтому все кажется достаточно понятным и логичным. Но мне не удалось выполнить дополнительные задания :( Очень надеюсь, что скоро наверстаю свои пробелы в знаниях. 
6 Формирование меню 00:10:46
74 чел. ★ 5 Done
  На этом уроке мы сформируем навигационное меню в шапке нашего сайта.
Отчёт отправил: 4004. Елена Выполнено за 25 мин. [Показать отчёт]
Научился: Создавать меню 
Сложности: Пока все сложновато воспринимается. Но это просто для меня абсолютно новое направление. 
Комментарии: Меню "О проекте" создала, пока в нем выводится та же единственная история. 
7 Установка сервера MySQL 00:08:39
72 чел. ★ 4.8 Done
  На этом уроке мы установим MySQL Community Server
и программу HeidiSQL для подключения к нему.
Отчёт отправил: 4004. Елена Выполнено за 15 мин. [Показать отчёт]
Научился: Скачивать СУБД MySQL 
Сложности: ничего 
Комментарии: Пока решила попробовать воспользоваться mySQL, входящим в состав Denwerа. В предыдущих курсах это вполне успешно получалось. Если не получится, вернусь к этому уроку. Интересно, как отдельная установка MySQL скажется на поведении Denwerа? У кого-нибудь есть опыт? А то самой экспериментировать пока не хочется (хотя, возможно, придется). 
8 Схема базы данных 00:15:58
72 чел. ★ 4.9 Done
  На этом уроке мы создадим базу данных для нашего проекта,
подготовим схему таблицы и напишем SQL запрос для её создания.
Отчёт отправил: 4004. Елена Выполнено за 25 мин. [Показать отчёт]
Научился: Создавать базу данных, работать с MySQL в консоли 
Сложности: ничего 
Комментарии: База данных успешно создалась, проверила через phpMyAdmin. В phpMyAdmin базы создавала и раньше. 
9 Создание SQL-запросов 00:20:44
70 чел. ★ 4.9 Done
  На этом уроке мы составим список задач для нашей базы
и составим SQL запросы для решения каждой задачи.
Все запросы протестируем в SQL-консоли.
Отчёт отправил: 4004. Елена Выполнено за 45 мин. [Показать отчёт]
Научился: Работать с SQL-запросами 
Сложности: ничего 
Комментарии: А чем плох такой запрос для вывода случайной истории: SELECT * FROM story WHERE id=1+ROUND(RAND()*(2-1)) LIMIT 1; ? Раскритикуйте мое "простое неправильное решение", потому что я почему-то подумала выводить случайную историю таким способом, а не так, как предложено в уроке. Сама, конечно, вижу, что иногда результат запроса выдает  'Empty set', но не понимаю, почему. 
10 Подключение к базе данных 00:25:51
66 чел. ★ 4.9 Done
  Мы достигли Экватора нашего проекта!
На этом уроке мы подключим наш проект
к созданной базе данных на MySQL.
Отчёт отправил: 4004. Елена Выполнено за 1 час. 00 мин. [Показать отчёт]
Научился: Подключаться к базе данных MySQL, конфигурировать строку подключения к БД 
Сложности: Долго не могла понять, почему BreakPoint не срабатывает при вызове MySQL.Select(). Оказалось, что не там вызывала метод. 
Комментарии: За сегодняшний день я, пожалуй, узнала больше, чем за последние 3 месяца :) 
11 Работа над ошибками 00:36:57
59 чел. ★ 4.9 Done
  На этом уроке мы создадим механизм отлова ошибок
при работе с базой данных и передачи их клиенту.
Отчёт отправил: 4004. Елена Выполнено за 1 час. 00 мин. [Показать отчёт]
Научился: Обрабатывать ошибки, возникающие в ходе формирования запросов и подключения к базе данных 
Сложности: при таком объяснении - ничего :) 
Комментарии: Отличный урок! Я тоже прошлый раз с Web.config запуталась. 
12 Запуск модели Story 00:35:22
55 чел. ★ 4.9 Done
  На этом уроке мы запустим модель Story -
допишем методы Number() и Random(),
организуем ещё одну проверку ошибок.
Отчёт отправил: 4004. Елена Выполнено за 1 час. 00 мин. [Показать отчёт]
Научился: Работать с контроллером Story 
Сложности: Что было самым сложным, то еще не кончилось :( 
Комментарии: Попробую описать ситуацию. После того как я ввожу http://localhost:65185/story/number/12'/  в окне браузера (с заведомо неверным номером), у меня почему-то сохраняется состояние ошибки. Если раскомментировать строку ниже курсора на скриншоте, то программа перестает после такого ввода вообще что-либо выводить. Проверка IsError() возвращает true, и программа отказывается показывать мне случайные истории (как, впрочем, и истории с определенным номером). Может, я просмотрела, где очищается ошибка, оставшаяся от предыдущего запроса? 
13 Что такое SQL-инъекция 00:25:24
54 чел. ★ 4.9 Done
  На этом уроке мы сделаем бекап базы данных,
затем продемонстрируем «взлом» страницы
посредством SQL-инъекции, покажем,
как от этого защититься и потом
восстановим базу данных.

Отчёт отправил: 4004. Елена Выполнено за 45 мин. [Показать отчёт]
Научился: Бороться с SQL-инъекциями 
Сложности: ничего 
Комментарии: Вместе с защитой от SQL-инъекций пропал и тот "глюк", который беспокоил меня в прошлом уроке :) На скриншоте специально привожу несуществующую статью, чтобы было видно экранированные апострофы. 
14 Рефакторинг модели Story 00:05:28
53 чел. ★ 4.9 Done
  На этом уроке мы сделаем небольшой рефакторинг класса Story.
Отчёт отправил: 4004. Елена Выполнено за 10 мин. [Показать отчёт]
Научился: Рефакторингу кода 
Сложности: ничего 
Комментарии: Почему лучше создавать два различных метода с разным числом параметров и вызывать один из другого? Почему бы не использовать аргументы по умолчанию? private void ExtractRow(DataTable table, int nr=0) {...} И еще столкнулась с одной "исключительной" ошибкой (правда, несколькими уроками раньше) - у меня в базе данных был некорректно записан email - не содержал '@'. В результате операция ename = email.Substring(0, email.IndexOf('@')); вызвала исключение. Пришлось ее тоже отдельно обернуть в блок try{}. 
15 Работа со списком историй 00:24:25
53 чел. ★ 5 Done
  На этом уроке мы сделаем вывод списка историй на главной странице.
Отчёт отправил: 4004. Елена Выполнено за 30 мин. [Показать отчёт]
Научился: Формировать ссылки 
Сложности: "Затащить" в ссылку весь заголовок. 
Комментарии: Как учат в курсах по адаптивной верстке, чем больше площадь ссылки, тем проще перейти по ней на мобильном устройстве. Поэтому задалась целью сделать ссылкой весь заголовок статьи. Получилось довольно успешно :) 
16 Добавление истории 00:43:20
50 чел. ★ 4.9 Done
  На этом уроке мы реализуем отправку истории и добавление её в базу данных.
Мы рассмотрим возможные ошибки, которые могут возникнуть при этом.
Отчёт отправил: 4004. Елена Выполнено за 1 час. 00 мин. [Показать отчёт]
Научился: Добавлять формы на сайт и обрабатывать данные из них. 
Сложности: уже ничего, с некорректным e-mailом раньше попалась :)  
Комментарии: все получилось :) 
17 Валидация данных 00:23:09
50 чел. ★ 5 Done
  На этом уроке мы реализуем проверку полей формы при отправке истории.
Обсудим регулярное выражение для проверки адреса электропочты.
Отчёт отправил: 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 Оформление сайта 00:46:07
49 чел. ★ 4.8 Done
  На этом уроке мы займемся внешним видом нашего сайта,
будем оформлять страницы, используя возможности bootstrap 3.
Отчёт отправил: 4004. Елена Выполнено за 1 час. 20 мин. [Показать отчёт]
Научился: Оформлять сайт с использованием bootstrap 
Сложности: Все сложности - из-за невнимательности :) 
Комментарии: В этой теме для меня главное - "куда написать". А "что написать" - сама соображу :) Например, если задавать фиксированную ширину блока (960px), то Google по головке не погладит, а скажет, что сайт не адаптирован под мобильные устройства, поскольку при сужении экрана автоматически появляется горизонтальная полоса прокрутки. Лучше ограничить максимальную ширину экрана max-width. А вообще - чтобы корректно разместить содержимое по центру экрана в bootstrape есть стандартный класс "container". Задавать минимальную высоту блока - тоже не лучшее решение. Для этого лучше использовать волшебное свойство overflow: hidden, которое не дает "схлопываться" границам блока, внутри которого располагаются "плавающие" (float) элементы. Ладно, увлеклась я чего-то. Просто верстка - это моя любимая тема :) 
19 Размещение проекта в Интернете 00:33:42
45 чел. ★ 4.8 Done
  В этом уроке мы зарегистрируемся на хостинге
и разместим свой проект в Интернете, наконец-таки!

Отчёт отправил: 4004. Елена Выполнено за 30 мин. [Показать отчёт]
Научился: Запускать ASP.net приложения на реальном хостинге 
Сложности: ВСЁ!!! Сложность в том, что никогда раньше ничего подобного не делала. 
Комментарии: Удивительнее всего, что все получилось!!! Получилось вот так: http://vev678-001-site1.ctempurl.com/ Правда, при повторном обращении к сайту возникают ошибки, которые мне пока не понятны :( Если снова перезаписываешь файл web.config, то ошибки пропадают. Какой-то одноразовый сайт получился. Подскажите, как это исправить? Насколько я помню, в конце урока тоже что-то подобное возникало. 
20 Отказ от статика 00:13:42
46 чел. ★ 4.7 Done
  Нам придётся отказаться от статичного класса базы данных,
потому что статичный класс продолжает существование
даже при новых обращениях к нему с новой страницы.

Отчёт отправил: 4004. Елена Выполнено за 30 мин. [Показать отчёт]
Научился: Создавать экземпляры уже не статичного класса MySQL.   
Сложности: Увидеть все MySQL и исправить возникающие ошибки. 
Комментарии: УРА! Настроение уже исправилось! Теперь сайт не вылетает с ошибкой. Работает даже после первых трех минут :) Ссылка на сайт: http://vev678-001-site1.ctempurl.com/ 
21 ФИНАЛЬНЫЙ УРОК. Презентация без видео
35 чел. ★ 4.9 Done
  Сделай видео-презентацию своей программы.
На видео необходимо ответить на следующие вопросы:
0. Показать, что у тебя получилось.
1. Чему ты научился на этом курсе?
2. Что тебе понравилось, что нет?
3. Что ты ещё добавишь в свой проект?
4. Какой следующий курс ты будешь проходить?
Отчёт отправил: 4004. Елена Выполнено за 30 мин. [Показать отчёт]
Научился: Записывать презентации 
Сложности: Найти 5 минут тишины, чтобы записать "озвучку" 
Комментарии: Жаль, что мой шаблон презентации по видеоурокам покинул меня вместе с жестким диском :( Поэтому мудрить не стала. 
Видеообзор: https://youtu.be/KIXcyd-uF1k
22 VIP. Авторизация на сайте 00:37:47
32 чел. ★ 4.9 Done
  На этом уроке мы создадим в базе данных таблицу users,
добавим туда одну запись и реализуем авторизацию администратора

Отчёт отправил: 4004. Елена Выполнено за 1 час. 30 мин. [Показать отчёт]
Научился: Создавать и обрабатывать форму входа 
Сложности: Следить за действиями в видео (слишком все запутано получилось) 
Комментарии: Уже устала ковыряться в своих ошибках, но пока так и не поняла, почему при переходе по ссылке "Вход" подсвечивается меню "Последние". Кстати, в уроке тоже так получилось. Может, завтра посмотрю. Думаю, что все дело в том, что у нас есть файл Index.cshtml в View->admin и View->page, но не уверена. Проблемы с контроллером Story у меня не оказалось. Видимо, я добавляла объект класса MySQL сама, не особо отслеживая действия в уроке. 
23 VIP. Модерация записей 00:59:29
29 чел. ★ 4.9 Done
  На этом уроке мы реализуем функционал администратора сайта.
Администратор сможет подтверждать истории для публикации.
Отчёт отправил: 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. Установка домена 00:15:27
24 чел. ★ 5 Done
  На этом уроке мы покажем, как просто можно
купить и привязать домен к вашему проекту.
Отчёт отправил: 4004. Елена Выполнено за 30 мин. [Показать отчёт]
Научился: Покупать и настраивать домены (теоретически) 
Сложности: Придумать доменное имя пока не удалось, потому что еще не определилась с темой проекта. 
Комментарии: Однажды придуманное не совсем удачно доменное имя prog-cpp.ru оказалось Уже по назначению, чем можно было предположить 2 года назад (когда кроме конспектов лекций по С++ на этом сайте я ничего размещать не планировала). Тогда я и повозилась с настройкой. Кстати, моему сайту prog-cpp.ru 7 марта исполнилось 2 года :) 
  Итого:   24 видеоурока 8 час. 41 мин.
1 тест
24 чел. ★ 4.88  
  Финалисты:   Михаил Ермишин,   Nromik,   Елена,   Аркадий,   valerys Nikola,   Tekashnik,   Сергей,   zhikharevav,   Максим,   Сергей Соколов,   Ludmila,   Алексей Хонин,   Станислав,   Константин,   WildOrc,   Алексей|BrisK|Кривицкий,   alklokov,   Dmitry Sinitsin,   Владимир,   Max,   Александр,   Rita,   vip,   Evgenii Kudriavtcev .

Начинаем практику по языку C#





Если вы пришли без приглашения -
введите тысяча двадцать четыре (цифрами).
Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

После заполнения формы ты будешь подписан на рассылку «C# Вебинары и Видеоуроки», у тебя появится доступ к видеоурокам и консольным задачам.

Несколько раз в неделю тебе будут приходить письма — приглашения на вебинары, информация об акциях и скидках, полезная информация по C#.

Ты в любой момент сможешь отписаться от рассылки.


Научился: Подвел итоги и оценил свои достижения при изучении курса. Прикинул направление дальнейшего развития своего проекта.
Трудности: Обобщение, обзор темы с "высоты"
Понравилась практическая направленность курса. Из недостатков: малый объем, хотелось бы, чтобы курс охватывал ASP.NET MVC полнее. В моих планах добавить вывод графики в представлении, в идеале интерактивной


Научился: Даже не знаю - не мандражировать по поводу отзыва.
Трудности: Записать отзыв после праздников.
Не так страшен asp.net mvc как его малюют.