Visual Studio / Visual Studio 11 Beta- что нового!? + Хакатон по разработке Metro приложений для Windows в субботу в Москве

в 4:20, , рубрики: Новости, метки:

29 ферваля, все прогрессивное Microsoft сообщество радостно встретило Windows 8 Customers Preview.
Тут на хабре родилось целых 2 обсуждения win8- Первое и Второе.
Как и с CTP версией выход Visual Studio 11 beta и .Net 4.5 beta остался куда менее заметен.
Считаю это не справедливым, и хочу поделиться своим наблюдениями за новой версией лучшей IDE.
Прежде чем читать эту статью, рекомендую прочесть предыдущие 2 статьи, написанные по VS11 CTP
HTML5+ JS приложения для Windows 8. Что внутри + холиварные мысли
Что нового в Visual Studio11 CTP уже сейчас

Так же, хочу рассказать о личном опыте разработки под Windows8 Metro приложения во время Хакатона, который был сделан 3 числа в офисе MS в Крылатском. Там собралось 50 человек, почти все из которых писали ранее Windows Phone приложения и были активными деятелями WP сообщества.

Я думаю, что все заметили, что изменился интерфейс студии, причем очень координально.
Я бы не хотел устраивать холивар на эту тему, новый интерфейс- это реальность данная нам в ощущения.
Мне удалось быстро под этот дизайн перестроиться, хотя переключение из vs2010 в vs11 конечно было очень тяжело, когда работаешь на 2 ноутах одновременно. Все недовольства лучше наверное на msdn форуме высказывать и на connect.microsoft.com там хоть услышат разработчики, и ответсвенные, а крики тут- пустая трата времени.

Visual Studio / Visual Studio 11 Beta  что нового!? + Хакатон по разработке Metro приложений для Windows в субботу в Москве
Размеры экрана ноутбуков и планшетов отличаются. Windows8 планирует быть более массовой чем другие ос для планшетов, и у нее может быть множество разрешений.
Тк Вы не знаете, под каким разрешением будет запущено Metro приложение, то тестировать его нужно под разными разрешениями.

Visual Studio / Visual Studio 11 Beta  что нового!? + Хакатон по разработке Metro приложений для Windows в субботу в Москве

в качестве настроек доступны темы по умолчанию. Раньше в Windows Phone мы всегда видели черную тему по умолчанию. честно говоря очень долго и не знал, что есть еще белая тема как минимум. Установив тему, можно понять как будет выглядеть приложение в другой теме. Это очень интересная информация. Мне очень понравилось не в черной, а в белой теме.
Visual Studio / Visual Studio 11 Beta  что нового!? + Хакатон по разработке Metro приложений для Windows в субботу в Москве

Architecture

Со времени 2010 был очень серьезно переписан движек работы с диаграммы.
Его можно редактировать, перемещать, вносить дополнения, что сильно упрощает анализ приложения. Я считаю это очень интересным, тк из-за различного визуального представления одних и тех же элементов, можно либо посчитать архитектуру совершенно не понятной, или абсолютно простой.
Из личного опыта, что просто перемещение блоков и распутывания клубка связей упрощает структуру диаграммы.

Visual Studio / Visual Studio 11 Beta  что нового!? + Хакатон по разработке Metro приложений для Windows в субботу в Москве

можно на прямую редактировать xml код диаграммы — если кто-то считает себя достаточно суровым и образованным.

Visual Studio / Visual Studio 11 Beta  что нового!? + Хакатон по разработке Metro приложений для Windows в субботу в Москве

В качестве нового типа диаграмм был добавлен тип- Граф… Я не очень понимаю пока, какой в нес смысла, но просто как редактор очень даже не плохо смотрится.

Visual Studio / Visual Studio 11 Beta  что нового!? + Хакатон по разработке Metro приложений для Windows в субботу в Москве

Тестирование

Много любят разговаривать про тестирование и unit тесты, но не часто это делают. Одна из причин, что тесты надо либо запускать самому, либо они должны быть настроены в Континиус Интегрешион. MS решило помочь тем, кто все таки пишет тесты. Можно установить галку, запускать тесты после билда. Я лично редко запускал свои тесты, но теперь можно принудительно заставить себя это делать. Понятно, что тесты могут явно тормозить работу, если гоняются более 5 минут, это издержки производства. Я так решил шутки ради собрать NHibernate из исходников с этой галкой. В общем на обед сходить можно было, если каждый билд гонять тесты локально.

Visual Studio / Visual Studio 11 Beta  что нового!? + Хакатон по разработке Metro приложений для Windows в субботу в Москве

DirectX и графика

в visual studio 11 beta была заявлена расширенная поддержка графики, Directx и так далее. Я не являюсь специалистом, по графике, так что оставлю это на растерзание специалистам.

Visual Studio / Visual Studio 11 Beta  что нового!? + Хакатон по разработке Metro приложений для Windows в субботу в Москве

ARM

Появилась возможность установить настройку- тип процессора ARM, что приближает нас к тому, времени когда windows будет работать на arm, а мы сможем писать под нее Metro приложений

Visual Studio / Visual Studio 11 Beta  что нового!? + Хакатон по разработке Metro приложений для Windows в субботу в Москве

Store

Я не смог зарегистрироваться в Market Place пока, что… Но поддержка в Студии уже давно есть.
На старте Win8 в Москве 2 марта, Михаил Черномордиков сказал, что сейчас в Маркете можно зарегиться по спец промокоду, и маркет доступен для 5 стран, у которых разные языки. Штат, Германия, Франция и кто-то еще. К моменту выхода Win8 будут доступны почти все страны мира. Но это к выходу, сейчас посмотреть на магазин приложений можно в Win8, но использовать его как разработчику, пока без спец промокода пока нельзя, хотя и очень хочется

Visual Studio / Visual Studio 11 Beta  что нового!? + Хакатон по разработке Metro приложений для Windows в субботу в Москве

Visual Studio / Visual Studio 11 Beta  что нового!? + Хакатон по разработке Metro приложений для Windows в субботу в Москве

Эмулятор-Симулятор

Приложения для windows8 могут использовать в своих целях геолокацию, а на эмуляторе мы можем задавать координаты пространства, чтобы тестировать этот функционал.
Ну и само расширение экрана на эмуляторе.

Visual Studio / Visual Studio 11 Beta  что нового!? + Хакатон по разработке Metro приложений для Windows в субботу в Москве

Трололо

Цвет некоторых иконок они не перевели в серый интерфейс. Если кто-нибудь захочет вернуть цвет кнопкам, то есть шанс этот плагин может быть легко написан.
Visual Studio / Visual Studio 11 Beta  что нового!? + Хакатон по разработке Metro приложений для Windows в субботу в Москве

Хотя если честно, за время хакатона по Windows8 в офисе МС в Крылатском, я 5 часов сидел в VS11 beta и очень быстро привык к новой студии. Ну действительно я по верхней панельке только на закомметировать код тыкал. Выучил Хоткей и вообще в нее по моему не лазил. Так, что те кто ломает клавиатуру, печатая что такая цветовая гамма- отстой я могу предложить устроить самому себе хакатор по Windows8 Metro Applications и через 5 часов понять для себя лично- плохо или нормально или хорошо ему в таком интерфейсе. После хакатона, я поработал дома на vs2010 и как-то проблем не испытал с возвращением. Значит все хорошо лично для меня оказалось.

MVC4

Visual Studio / Visual Studio 11 Beta  что нового!? + Хакатон по разработке Metro приложений для Windows в субботу в Москве

В Visual Studio 11beta уже встроен MVC4. Ранее mvc4 был доступен в качестве бета версии для VS2010, но в VS11 не встраивался. Я проверял.
Как и ранее есть 2 движка представлений, НО для создания WEB Api мы не можем выбрать движек представлений, отличный от RAZOR.

Visual Studio / Visual Studio 11 Beta  что нового!? + Хакатон по разработке Metro приложений для Windows в субботу в Москве

Visual Studio / Visual Studio 11 Beta  что нового!? + Хакатон по разработке Metro приложений для Windows в субботу в Москве

Это уже скорее к MVC4, но в любом случаи. Лично мне очень понравилась идея APi котроллера, который возвращает просто нужный тип данных или просто дергает действие,
без каких либо Action Result. Действительно просто Api

Visual Studio / Visual Studio 11 Beta  что нового!? + Хакатон по разработке Metro приложений для Windows в субботу в Москве

Хакатон по разработке Windows8 Metro Application в Москве 3 марта

Я решил потратить свою субботу, чтобы встретиться с людьми, которые уже сейчас горят желанием научиться разрабатывать приложения под Windows8, сам по программировать.
В этой части я и расскажу о том, что получилось.

1- На старте VS11 Beta было сказано, что те кто умеет кодить на C# и знает XAML- уже умеют разрабатывать под Win8Metro. Воодушевленные этим все ринулись в бой. Ха-ха-ха. WinRt- совсем не тот .net к которому мы привыкли! Можно было бы сослаться, что это я не умею программировать, но со мной согласятся те человек 50, которые были на хакатоне и пытались кодить- просто знание .net, которое у них было раньше, за 3-5 лет разработки- не является достаточным, чтобы за день сесть и написать приложение с нуля.
Почему- а вы представте, что у Вас по сути забрали .net framework, а оставили только C# как язык программирования. Кто-нибудь пробовал писать на monodroid- monotouch, с использованием возможности системы? Да, .net есть, C#- есть. Но все что предоставляет Система- это совершенно новое, не известное API.
У Вас как основ- другой framework, который дает многое, но вы с ним работаете первый раз.

1.1 Асинхронность
Почти все методы в Api WinRt асинхронные и возвращают объекты WinRt, которых ранее в .net не было просто.
В итоге какое-то время тратится на понимание async, await. Где их можно ставить, где нет, как они работают и так далее. Все не так сложно, но 90% из нас раньше не использовал асинхронность выше уровня делегатов, которые просто подписывали на события.

1.2 Разные версии framework у нас и у некоторых сотрудников MS.
Было забавно, но у одного из сотрудников ms, была студия, которая была выпущена немного раньше, которая визуально не отличалась от нашей, но отличалась внутри. В итоге мы познали вкус, разрабатываемого framework сильнее. Когда у человека метод в названии Асинхронный, а по сути- нет. Ну нет в его версии модификатора async. А у нас есть.

2- документая.
Проблема в том, что framework дорабатывается. Документация вся на английском и достаточно краткая. В ней есть описание классов, методов, но ни одного примера использования. Любимым методом пользоваться не получится- написать задачку в гугле и поискать ответ на stackoverflow — не получится, ничего нет в выдачи гугла. Пусто!

3 примеры.
У нас были довольно обширные sample кода, точнее довольно много папок с проектами. Нас же интересовали примеры на C# и как можно проще.
У нас были примеры, которые в sdk. Не плохо, но в них большая часть- это уже продвинутый уровень- DirectX, работа с winrt из html-js. В итоге мы находили нужные примеры, но загуглить было бы куда быстрее.

В итоге те, кто в начале начал переписывать шаблон из стандартных в VS11beta потратили первые час-два, только на то, чтобы разобраться что и от куда, да куда. Я тоже допустил эту ошибку. Начал искать где DataTemplate лежат, как они внутри себя связаны, где стили каждого элемента и так далее. Я не хочу сказать, что sample плохие- они хорошие, просто ковалерийским наскоком с ними разбираться тяжело, а хакатон- это именно наскок.

4- ощущение от VS11
У меня остались крайне позитивные впечатления. То, что изменилась цветовая тема- это все ерунда. Я одаптировался к ней минут за 30 и дальше проблем не было. По поводу скорости работы- она летает. Я не знаю, что они с ней сделали, но скорость работы и отзывчивость- это супер. У меня система вылетела 1 раз на этой студии, что за 5 часов работы- не так много, тем более для beta версии.

5- написанные за 5 часов приложения.
В итоге на конкурс было предложено 10 приложений.
Ни одно из которых нельзя опубликовать в MarketPlace потому, что оно не дописано. У кого-то было GUI, у когото программа уровня hello word. Был клиент, для фликера написанный за 5 часов, который в общем-то и выиграл конкурс в конце дня, но по сути- это было разпарсить rss. Я не хочу сказать, что автор не умеет кодить- умеет, и он это показал выиграв конкурс написав лучшее приложение, но за 5 часов, если бы мы уже раньше, что-то делали, все сделали бы куда больше.

Resharper 7 for VS11

Спасибо ребятам из JetBrains, за то, что они очень быстро сделали версию Resharper для VS11. Он корретко работает с всеми проектами, КРОМЕ Win8 Metro. Если Вы скачали его ради Metro, значит Вы плохо читали блог с анонсом. В нем написано, что пока не поддерживается. Я его отключил, когда сел писать под WIn8 Metro, потому что на данный момент resharper красит весь весь проект в красный цвет, тк ошибки типа, хотя проект компилируется. Не находит сборки WinRt практически, хотя они есть. Не видел классы, блокирует интеллесенс, хотя классы и методы такие существуют, но он их просто не видет.
Обо всех ошибках этих в решарпере знают, еще раз спасибо им за решарпер и быстрое портирование для VS11. Осталось дождаться поддержки Metro, а пока на metro проектах просто отключать ее.
Этот кусочек я написал, потому что многие как и я считают Resharper- тулзой, которая должна быть у всех и которая практически не разделима с VS.

Мои выводы:
VS11- классная штука.
Чтобы разрабатывать Metro приложения для WIndows надо очень внимательно прочесть документацию прежде чем садиться кодить даже Hello Word.
Нужно почитать новшества в C#5, прежде чем работать с WinRt, тк в WinRt очень много асинхронности как-минимум.

P.S. огромное спасибо нашему руководителю разработки Андрею Цветкову из Сравни.Ру , что он меня в пятницу отпустили на Windows8 boot camp!

Автор: SychevIgor

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js