среда, 2 апреля 2014 г.

Окончание полугодовых курсов.

Удалось успешно вычитать очередные курсы по разработке веб-приложений. На этот раз все по взрослому: спонсор, заинтересованные студенты, помощь университета, площадка.

Из тринадцати студентов четверо успешно трудоустроены. Остальные, думаю, в ближайшем времени найдут достойную работу.

Выражаю благодарность Белорусскому Государственному Университету любезно предоставившему площадку и студентов, а так же спасибо спонсору любезно предоставившему средства на все это дело. И куда же без самих студентов - спасибо им, ленивые они, но все же.


Список тем прочитанных на курсах:

  1. HTML: основные понятия, структура документа, основные тэги.
  2. CSS: основные селекторы, понятия и свойства.
  3. HTTP: жизненный цикл web-приложения (“клиент-сервер”), структура http запросов и ответов. Различия между GET и POST запросами. 
  4. Разработка web-приложения средствами asp, передача и обработка параметров.
  5. Понятие cookies, передача, ограничения. Понятия Session, cпособы реализации, использование средствами asp.net.
  6. Основные этапы жизненного цикла http запроса в asp.net mvc. Основные элементы: Controller, Model, View.
  7. Использование cookies для хранения информации о пользователе и его идентификации.
  8. Структура и основные этапы создания “аутентификационного-тикета” применяемого в asp.net. Понятия MembershipProvider, RoleProvider, ProfileProvider. Использование стандартных провайдеров из asp.net и asp.net mvc.
  9. Понятие Role. Авторизация на основе ролей пользователя. Реализация собственных провайдеров, их настройка, подключение и использование.
  10. Авторизация и ограничения доступа к ресурсам на примере asp.net mvc.
  11. Вводный курс БД. Обзор основных объектов баз данных MSSQL. Доступ к БД из .NET приложения средствами ado.net.
  12. Пример трех уровневой архитектуры (представление, логика, источник данных). Основные подходы в использовании.
  13. Dependency Injection (DI). Применение DI для разрешения кольцевых зависимостей. Пересмотр зависимостей в трехуровневой архитектуры.
  14. Microsoft Enterprise Library: Unity.
  15. Основные элементы IIS: Application pool, website, application. Жизненный цикл пула приложений. 
  16. Компиляция веб приожения. Способы публикации веб приложения.
  17. Entity Framework: работа с БД, построение моделей, миграция.
  18. Entity Framework: версионность схем БД, построение зависимостей между объектами.
  19. Entity Framework: оптимизация запросов, применение в многоуровневых архитектурах.
  20. JavaScript, jQuery.
  21. jQueryUI.
  22. Применение Ajax на примере получения данных.
  23. Применение Ajax на примере построения интерфейса.
  24. Базовые элементы системы контроля версий.
  25. nuget.

Если вас заинтересовали темы, готов рассмотреть возможность проведения мастер-классов. Контакт: alevshunov@gmail.com

среда, 26 марта 2014 г.

Студенты и Microsoft Unity.

Сегодня рассказал своим студентам про IoC, на примере Unity, глаза у них были по пять копеек. Благо на практике в разрезе ASP.NET MVC, аля мастер-класс, все пошло гораздо проще, все вкурили что это и как это едят, захотели попробовать применять на практике. Продемонстрировал на примере трехуровневой архитектуре: развернули зависимость бизнеса от хранилища; обсудили модное слово "бутстраппер", поигрались с Lifetime менеджерами и довольные разошлись.

Мораль сей басни такова: последний раз когда я подключал Unity в ASP.NET MVC проект - это был ад, сейчас это одна команда nuget и пара строк кода.

Install-Package Unity.Mvc5

среда, 19 марта 2014 г.

KudesniK.EntityFramework.OrderPageExtensions через nuget.

Продолжаем эпопею с небольшим расширением для EntityFramework.

Теперь библиотека доступна и через нугет:
Просто ссылка на библиотеку:
Install-Package KudesniK.EntityFramework.OrderPageExtensions


Или немного примеров:
Install-Package KudesniK.EntityFramework.OrderPageExtensions.AspNet.Mvc

вторник, 18 марта 2014 г.

Сортировка и постраничное отображение данных в EntityFramework.

Назрела недавно проблема по использованию EntityFramework в частности работа с постраничным отображением данных и сортировкой. Сил моих больше небыло писать свитчи и кейсы, в результате выдрал часть исходником из старого домашнего проекта и сотворил библиотечку на будущее, и уже успешно применил.

Разве не прелестно:
public ActionResult Countries(CountryOrder order = CountryOrder.Name, OrderDirection direction = OrderDirection.Asc, int page = 1)
{
    var viewModel = _db.Countries.Paged(order, direction, page, Settings.PageSize);
    return View(viewModel);
}
Потрогать можно на github.com.