пятница, 25 мая 2012 г.

Впечатления от MsDevCon’12 и пара интересностей о SharePoint

Вернулся с конференции MsDevCon, море впечатлений и эмоций, спешу поделиться!

Я на конференции

Напомню, я участвовал в конференции как докладчик, читал доклад “Разработка Ajax-приложений в SharePoint”. Видео докладов организаторы планируют выложить не раньше чем через неделю, так что если кто-то пропустил, придется ждать :(

image
В любом случае, как я и обещал на докладе, я уже опубликовал два сопутствующих поста к докладу:
  1. Как я реализовал склеивание и минификацию js-файлов
  2. Как реализовать автогенерацию JavaScript-классов модели на основе C#-классов, с помощью T4-преобразований

Место проведения – "Яхонты"

Качество сервиса было на самом деле просто шикарным. Организация тоже в принципе на высоте (единственный наверное недочет, это то что зона экспертов никак не была обозначена – ни на плане, ни указателями, ни вывеской). Ощущение, что съездил не просто на конференцию, но съездил отдохнуть в отпуск, и вдобавок еще и на очень классную конференцию попал :) Природа, свежий воздух, кормежка “на убой”, шикарные условия размещения. Причем, это впечатление не могла испортить даже довольно прохладная погода. И кстати, несмотря на то, что кто-то боялся комаров, комаров было на самом деле не так много, и они были не слишком навязчивыми.


Отдельно про официантов: официанты были просто бесподобны! :) Представьте себе гризли-подобного мужика, с руками толщиной в две обычных, и ростом под два метра. А теперь представьте его одетым в ливрею официанта :) Это было очень забавно! :)

Хансельман

Все эти условия способствовали созданию атмосферы отдыха, но главное, конечно, было на самой конференции. К сожалению, мне удалось поприсутствовать только на малой части докладов, т.к. дежурил в зоне экспертов, готовился к собственному докладу и т.д. Но главное, удалось побывать на всех докладах Скотта Хансельмана, и это было действительно очень здорово!

Хансельман (Scott Hanselman) – это один из самых выдающихся IT-докладчиков на сегодняшний день. Если вы еще не смотрели ВСЕ его доклады, очень рекомендую! Даже если вы не узнаете ничего нового (что невероятно, потому что Скотт очень любит собирать маленькие фишки о которых никто не знает), всегда стоит посмотреть Хансельмана. Это человек-театр, это зрелище которое просто нельзя пропускать.

Более того, нам удалось пообщаться со Скоттом вживую (!!). На фотографии Стас Выщепан, я и Скотт:


Очень общительный человек, Скотт бродил среди участников и среди экспертов в перерывах между докладами, и с удовольствием вступал в любые дискуссии и отвечал на любые вопросы. Всегда старался помочь, в частности мне удалось обратить его внимание на проблему со Script# в SharePoint.

Наверное хотя бы некоторые из вас знают, что SharePoint Client Object Model написан на Script#? Возможно, кто-то из вас также пробовал писать на Script# самостоятельно, и знают, чего это стоит, написать wrapper для какой-нибудь более-менее серьезной библиотеки? Возникает естественный вопрос, а что мешает Microsoft’у частично открыть исходники SharePoint ClientOM (для создания wrapper’а Script# не требуется реализация, только определения методов/классов/свойств и т.д.), сделав тех, кому нравится Script#, ну ОЧЕНЬ счастливыми? :)

Такой вопрос мы задали Скотту, и после того как он понял проблему, он тут же написал создателю Script#, которого зовут Nikhil Kothari. Я искренне надеюсь, что у этого обращения будут какие-то результаты, потому что те, кто хоть раз использовал Script# – знают, насколько это классный инструмент, и насколько проще с его помощью писать серьезные JavaScript-приложения.

Также, мы говорили со Скоттом о KnockOut. У меня есть некоторый опыт практической работы с KnockOut.js в SharePoint, и недавно я даже делал в Softline внутренний доклад “KnockOutJs в SharePoint”. На докладе я озвучивал проблему с атрибутом data-bind, с которой столкнулся самолично. Этот атрибут, как известно, очень хитрый. Он может содержать простые биндинги, а может целые выражения. Сделать ошибку в этом атрибуте ничего не мешает: значение атрибута является не более чем строкой, и сообщения об ошибках далеко не всегда внятные. Более того, поскольку биндингов очень много разных, и далеко не все из них сразу срабатывают, то мы можем вообще не получить никакого сообщения об ошибке и ошибочный вариант может запросто уйти на продакшен. А когда ошибка просачивается к клиентам, это уж совсем ужасно…

Ответ Скотта состоял из двух пунктов:
  1. Microsoft не собирается делать интеллисенс или пре-компилятор для KnockOutJs или для других OpenSource-проектов, даже несмотря на то, что сейчас KnockOutJs поставляется вместе с ASP.Net MVC 4. Причина проста: это очень дорого и это очень сложно. В этом я со Скоттом полностью согласен: в свое время я писал интеллисенс для LUA, и сложилось впечатление, что это даже сложнее, чем написать с нуля компилятор LUA…
  2. Как вариант решения проблемы, Скотт предложил написать расширение для Visual Studio, которое бы добавляло подсветку внутрь аттрибута data-bind. Причем он показал, что подобные расширения действительно можно написать, в качестве примера приведя Colorizer для Mustache Templating Engine, который был написан вроде как всего за одну ночь создателем этого движка, человеком по имени Mads Kristensen. Более подробно об этом можно почитать у Скотта в блоге. Подсветка Mustache-кода (с помощью vsix-расширения) выглядит вот так (картинка заимствована из блога Скотта):
A nice subtle mustache template
По-моему, решение весьма достойное (как минимум, “it sucks less”, как говорит Скотт :)…), и по наличии времени, я обязательно попробую разобраться, как это делается. Все-таки, в некоторых разрезах, KnockOutJs сделан очень удачно, и существует много ситуаций, когда его применение значительно облегчает жизнь разработчику.

На этом, пожалуй, всё, всем желаю удачных надвигающихся выходных, и да.. MsDevCon’12 был супер!

Комментариев нет:

Отправить комментарий

Внимание! Реклама и прочий спам будут беспощадно удаляться.