Thursday, March 20, 2014

Как изучить ASP.NET MVC5 в сжатые строки

Здравствуйте, уважаемые читатели. Сегодня постараюсь выступить в новом для себя амплуа и поделиться с вами приобретенными знаниями в области веб-разработки, так как сам отношусь к прикладным разработчикам, которые пишут программное обеспечение для операционной системы Windows. Часто таких разработчиков называют software developers. Но как показывает практика, чтобы стать поистине software developer, нужно постоянно учиться и улучшать свои навыки. Поэтому многие разработчики могут быть вполне неплохими программистами, но для них есть другие термины, как программист (programmer) и кодер (coder). Такую спецификацию рассматривает Хенсельман, который является очень сильным веб-разработчиком программного обеспечения. Если вам интересна классификация IT-специалистов за Хенсельманом, эта информация есть в моей статье "Мотивация как формула к действиям".
Продолжим экскурс в веб-разработку. Первое, что удивило меня в разработке веба: для этого написано столько контролов и инструментов, что разработка под веб превращается в одно удовольствие. Первое, с чем я столкнулся,  с поиском источника, с которого можно быстро получить необходимые знания. Книги всегда будут в почете, но когда дело касается возможности разобраться с новой для себя технологией в кратчайшие строки, книги могут быть не очень хорошим помощником. Прочтение технической книги с ее полным пониманием занимает по времени минимум неделю. Поэтому я решил посмотреть в интернете, что сейчас в "топ" по разработке для веба, для C# разработчиков. Как оказалось, спросом пользуются разработчики, которые умеют разрабатывать приложения на ASP.NET MVC4/5, знают HTML5 и JavaScript, обязательное, по сути, знание либо Entity Framework 6, либо NHibernate, и напоследок, требуется знание WCF
На работе у меня было задание написать сайт для отображения статистики, с использованием ASP.NET MVC 4 как проверенного способа написания сайтов. Пока было принято решение не переходить на ASP.NET MVC 5 по ряду причин. Но поскольку как ASP.NET MVC 4, так и ASP.NET MVC 5 для меня в новинку, я решил начать с изучения последней версии ASP.NET MVC 5. Для меня самый быстрый способ погрузится в новую область – посмотреть обучающие видео по выбранной технологии, поскольку это один из самых быстрых способов узнать о возможностях изучаемого языка или платформы. Поэтому выбор сразу пал на копании, которые занимаются написанием обучающих видео, из которых компанией номер один по качеству и подачи материала, считаю, выступает компания pluralsight.
На момент написания статьи данная компания предоставляла для новых читателей 10 дней бесплатного использования ресурсов. Этого времени достаточно, чтобы выучить много полезного J. Поэтому мой выбор пал сразу на эту компанию, поскольку раньше был знаком c некоторыми курсами по разработке программного обеспечения и был доволен качеством поданного материала и информационной составляющей пройденных курсов. Поэтому, по сути, задача стояла в том, чтобы найти нормальный курс и быстро вникнуть в ASP.NET MVC. На pluralsight я обнаружил курс Scott Allen, ASP.NET MVC 5 Fundamentals. Курс рассказывает об использовании OWIN&Katana. Если кратко рассказать об OWIN&Katana, то можно выделить следующее.
Katana – это OWIN-совместимый хост, написанный Microsoft.
OWIN (The Open Web Interface for .NET) – это спецификация, определяющая интерфейс и описывающая взаимодействие между всеми компонентами.
Поскольку все логически разнородные компоненты тесно связанны в одну единственную сборку System.Web (объекты ядра HTTP, webforms и т.д.), а ко всему этому ASP.NET включен в состав .NET Framework, время между релизами последнего может составлять несколько лет. Это существенно тормозило развитие ASP.NET. Монолитная архитектура делала такое развитие неповоротливым и инертным, а любые изменения затрагивали множество компонентов.
Если внимательно посмотреть на эту сборку, то можно заметить очень много зависимостей, так как System.Web. по сути, отвечает за все. Для того чтобы упростить связность, был разработан OWIN. Основой работы OWIN является словарь IDictionary<string, object>, который используется для получения доступа к HTTP запросам, заголовку запроса и окружению хоста. Мы кратко рассмотрели, что такое OWIN. После знакомства с OWIN я сразу попробовал написать несколько примеров использования на нем, но, к сожалению, с разворачиванием в IIS возникает много проблем. И, к большому разочарованию, после того как я посмотрел примеры использования OWIN и Katana в интернете, я так и не смог найти примеров его реального применения. Поэтому стоит ли использовать OWIN и Katana в своих приложениях, решать вам. Как говорят в народе, "на свой страх и риск".
Также данный курс кратко рассказывает о MembershipProvider и способах авторизации в вашем проекте. Поскольку мне до этого приходилось сталкиваться с MembershipProvider, для меня нового ничего не было открыто, кроме авторизации с помощью сервисов Google, vk.com, используя OpenID и OAuth. Хотя в данном видеокурсе это рассказывается мельком, но дает фундамент для того чтобы знать, в какую сторону можно развиваться.
Очень порадовали примеры использования фреймворка  bootstrap. Это простой и легко настраиваемый HTML. CSS и JavaScript фреймворк для более быстрой и удобной Web-разработки. Вы можете его поставить также отдельно для ASP.NET MVC 4.
Использовать данный фреймворк очень просто. Примеры на русском языке можно посмотреть по ссылке mybootstrap. Учитывая тот факт, что я призабыл CSS, это не помешало создать довольно симпатичный интерфейс своих страниц, используя данный фреймворк.
Следующим в данном видео уроке рассмотрено построение веб-служб с помощью Web API. Концепция Web API (которую, кстати, можно использовать не только в MVC, но и в веб-формах) – новый подход к реализации веб-приложений. Создать простой Web API сервис можно, создав базовый класс, который должен наследоваться от класса ApiController. Определение контроллера Web API отличается от обычного контроллера.
Во-первых, он образован от классаApiController, который не связан с базовым классом обычных контроллеров – Controller
Во-вторых, контроллеры Web API применяют стиль REST. Поддержка архитектуры REST (Representation State Transfer или "передача состояния представления") является одним из узловых пунктов технологии Web API.
Для взаимодействия с сервером используются методы GET, POST, PUT и DELETE. Поскольку я до этого уже работал с Web API, то для меня стало открытием только использование CORS (Cross-origin resource sharing (CORS технология современных браузеров, которая позволяет предоставить веб-странице доступ к ресурсам другого домена).
Entity Framework 6 в данном видеокурсе используется вскользь. И если вы до этого работали, например, с EF5, то новым для вас может стать разве что использование асинхронных запросов и логирование. Рекомендую при возможности просмотреть данную часть, чтобы обновить свои знания.
Как средство коммуникации между пользователем и сервером рассмотрен проект SignalR. Чтобы лучше понять проблематику, нужно представить себе Facebook или Вконтакте, которые перегружают страницу каждый раз, когда вы доходите до конца своей ленты новостей, чтобы после перезагрузки показать следующую порцию новостей. Момент перегрузки будет сильно раздражать. Рассмотрение SignalR для меня было полностью новым, с чем раньше никогда не сталкивался, поэтому комментировать ее использование, к сожалению, не могу.
Последним пунктом были рассмотрены разные инструменты для помощи веб-разработчикам. К сожалению, инструменты, в основном, с Visual Studio 2013, я этот раздел посмотрел для ознакомления, так как работаю с Visual Studio 2012. Если вы используете Visual Studio 2013 для разработки, то думаю, часть инструментов будет вам очень полезной. Неплохо знать возможности, которые предоставляет ваша среда разработки.
При желании более детально разобраться в том, как работает ASP.NET MVC, вы можете посмотреть другие курсы Скотта Аллена, которые раскрывают разработку, скажем, под ASP.NET MVC4 в полной мере. 

В этой статье кратко описан мой способ изучения ASP.NET MVC 5, по сути, с нуля, основываясь на знаниях языка C#. Буду очень благодарен за рекомендацию книг по ASP.NET MVC, которые действительно стоит прочесть. На данный момент лучшим способом для обучения пока вижу разбор примеров, просмотр видео и, конечно, практика, практика и еще раз практика. 

No comments:

Post a Comment