MCP

вторник, 8 декабря 2009 г.

70-536

Несмотря на то, что данный экзамен я сдал ещё в пятницу, всё не доходили руки написать впечатления от него. Ибо писать собственно-то и нечего.

Экзамен весьма простой, как-то даже странно сравнивать его с 70-562, ибо многие вопросы можно отвечать не задумываясь, для других, достаточно вдумчиво почитать вопрос, чтобы отсечь неверные ответы. Хотя, конечно, бывают и сложные вопросы, у меня возникли проблемы где-то с пятью вопросами, сколько реально ошибок сделал — неизвестно, но не очень много. Ибо итоговый результат: 953 балла из 1000.

Тем, кто собрался что-то сдавать, рекомендую начать с него, чтобы оценить свои силы. Материалов для подготовки по всему интернету лежит достаточно, при этом, достаточно только базовых знаний. Например, у меня попался всего один вопрос с generic'ами, пара вопросов на стандартные типы, всё остальное в принципе, напрямую к .NET 2.0 не относится (а 3.5 и не пахнет).

В принципе, особое внимание рекомендую уделить (т.к. практически никто этим не занимается): Code Access Security, System Security, Installers, Services. Ну, можно немножко еще глянуть на глобализацию и локализацию . Ну и немножко вспомнить стандартные типы, потоки, и дебаггинг. Хотя там в общем-то можно и догадаться.

В общем, на этом всё, я теперь буду пробовать готовиться к Pro-экзамену 70-564. Ден Гладких утверждает что он простой и нелепый. 

пятница, 27 ноября 2009 г.

Сдача сертификационных экзаменов Microsoft в Ярославле

Собственно, данный пост пишу как отчёт, и как руководство к действию для коллег и желающих сдать экзамен и получить статус. Возможно, если осилите его, то будет всё проще (хотя казалось бы, куда ещё).  Поэтому, на всякий случай напишу очень подробно. Если меня не хватит, или наоборот, я надоем, то можно почитать про опыт Дена Гладких, расписано всё неплохо и коротко. Итак, понеслась:

Зачем всё это нужно?

Думаю, каждый должен решить это сам. Например, я решил так, что если я могу сдать, то почему-бы и нет? Стоит это не очень дорого, на первый взгляд всё не очень сложно, да и стоит попробовать себя в этом. Собственно собирался сдавать я давно (года этак 4 назад начал собираться ), но сдаться решил только сейчас.

Собственно, из плюшек и бенефитов вы получаете только статус MCP, красивый логотипчик и сертификат, и в общем-то всё. Естественно, понты, это святое, и повесить красивую бумажку на стену, или показать её работодателю, это может быть важной причиной.  Но ещё раз повторюсь, реальных, физических подарков вы не получите. Возможно попадёте где-нибудь под акцию, получите книжку, или можете сдать другие экзамены со скидкой, но это в общем-то не очень существенно. Возможно, магазин MCP eStore окажется для вас неплохим вариантом (кружки, ручки, сумки, майки), но доставка в Россию стоит $100, так что лучше для такого искать другие магазины.

Какая бывает сертификация?

Расскажу только в контексте разработчиков, ибо тут всё коротко и просто. Для админов список гораздо шире. Собственно, открываем соответствующий сайт и всё видим. Если не брать в расчёт устаревшие экзамены то получаем:

  • MCP(Microsoft Certified Professional) это даже не статус, а просто факт того, что ты уже что-то сдал и получил доступ к сайту. Никаких бумажек и логотипов, но для сайтов, связанных с Microsoft этого уже достаточно (itcommunity.ru, MCP-клубы, партнёрская программа)
  • MCTS(Microsoft Certified Technology Specialist) базовый статус, который подтверждает знание какой-либо технологии. Если сдавать экзамены из разных областей, то можно набрать толпу таких статусов и получить кучу сертификатов. Полностью он будет выглядеть примерно так (мой текущий статус):
     
  • MCPD(Microsoft Certified Professional Developer) Собственно главный статус для разработчика. Опять же, можно получить несколько таких статусов, самый крутой: Enterprise Application Developer 3.5, но всё равно обидно, что кончились всякие MCAD и MCSD.

Теперь, собственно о том, какие варианты есть конкретно для .NET разработчика:

  • Базовый экзамен, который практически необходим 70-536 (TS: Microsoft .NET Framework – Application Development Foundation), требуется для получения любого другого статуса. Так что рекомендую начинать сдавать с него, если вы ещё не решили, в какую сторону пойдёте. Начинайте с него и не прогадаете.
  • Для того, чтобы получить MCTS нужно сдать по крайней мере 2 экзамена. Собственно, я двигаюсь в сторону .NET Framework 3.5, ASP.NET Applications, так что начал с 70-562 (TS: Microsoft .NET Framework 3.5, ASP.NET Application Development), хотя он должен быть вторым.
  • Чтобы получить MCPD, нужно сдать специальный "Pro" экзамен по выбранной специализации. Т.е. в моём случае: 70-564 (PRO: Designing and Developing ASP.NET Applications Using Microsoft .NET Framework 3.5)
  • Когда выйдет .NET Framework 4.0, дожен появиться специальные Upgrade экзамен, так что, как вы его сдадите, вы получите уже MCPD по 4.0, и не надо будет сдавать всё заново. Но за один экзамен всё-таки заплатить придётся. Так что можете ждать фреймворка 4.0 и не сдавать экзамены 

Собственно, это про экзамены. Ещё раз сайт, на котором можно всё поглядеть и почитать: www.microsoft.com/learning/

Как зарегистрироваться?

Тут, в общем, есть два пути: Prometric и личная явка в сертификационный центр. Первый вариант позволяет проделать все операции сидя за компьютером (к тому же он дешевле), второй позволяет оплатить рублями, назначить экзамен в тот этот же день, да и вообще, идёт общение с живым человеком.  В Ярославле есть 3 сертификационных центра (на пятой странице прометрика, чтобы потом не искать долго):

  • Интернет Центр ЯрГУ (я там сдавал экзамен). В первом корпусе. Тел. 79-77-31
  • КАМИ (вроде первый в Ярославле). Чайковского, 40A (рядом с Мелоди-клабом). Тел. 72-75-55
  • Академия МУБиНТ. Советская 80. Тел. 8-915-969-90-99. Это рядом с Шинным.

Так, что смотрите, где вам удобнее, и можете туда звонить, или идти на Прометрик. Уточню: сдаёте экзамен вы не Microsoft, а отдельной конторе, точнее организации, с кем прометрик заключил договор. Соответственно на них накладываются определённые требования, так что в разных организациях всё должно быть примерно одинаково и принципиальной не должно быть. Кстати, можно сдавать не только экзамены Microsoft, но и другие, но тут я ничего не могу подсказать.

Собственно, как регистрироваться через прометрик:

  1. Идём сюда, и набираем ваучеров для скидок (15-25%, действуют до конца года). Чтобы потом не возвращаться, можно взять сразу три ваучера (они придут на почту), и потом их использовать.
  2. Идём вбивать данные на сайт прометрика: register.prometric.com
  3. Там всё по шагам, так что сложностей не должно возникнуть. В конце нас попросят зарегистрировать и оплатить стоимость экзамена. Так что, если есть карточка, то платим (через paypal нельзя, только в лоб, так что решайте, доверять или нет). Без скидок экзамен стоит $50.
  4. Ждём указанного времени, и минут за 15 приходим сдаваться.
  5. Если не получается в указанное время, можно изменить расписание, или вообще отказаться (вроде за сутки до сдачи, но это лучше уточнить).

Уточнение: Я сдавал в интернет центре ЯрГУ, и меня попросили всё-таки им позвонить, причём до регистрации. Т.е. конечно, они меня примут в любое время дня и ночи, но лучше всё же договориться заранее. Кроме того, они сказали про какой-то сдвиг, так что возможно они скажут что лучше немного другое время указать.

Процесс сдачи

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

Собственно все вопросы выдаются прометриком и идут через специальную программу. Пользоваться можно только маркером и калькулятором встроенным в тест (если нужно что-нибудь посчитать). Сотрудников можно вызывать только в случае проблем с компьютером.

Вначале возможно будет небольшой опросник, текст соглашения, возможно, небольшой опросник о ваших предполагаемых знаниях, а потом сам тест. На него даётся 3 часа (на 50 вопросов), что весьма дофига. Я управился со всем за 2, и при этом много тупил. Т.е. при желании можно уложиться и в час (только надо ли?). К любым вопросам можно всегда возвращаться, можно помечать их для последующего просмотра, можно менять решение. Тут никаких ограничений нет. Это весьма удобно, сложные вопросы можно уже пересмотреть в конце экзамена, когда на всё уже ответил и время не давит.

Сами вопросы обычно предлагают выбрать один правильный из четырёх вариантов. Изредка бывает выбор двух-трех вариантов (всегда пишут нужное количество). Вопросы грамотные и сводятся к вариантам вида где мы пропустили запятую? С другой стороны, иногда раздражает, что бывают вопросы, на которые ты просто не помнишь правильный ответ, но знаешь, что из MSDN ты найдёшь его за минуту (с непрограммерскими экзаменами, ещё хуже, бывают задания, которые в жизни делаешь на автомате, и по пунктам уже объяснить не можешь, ибо спинным мозгом нажимаешь на кнопки, а приходится выбирать правильный вариант).

После сдачи, можно будет написать комментарий об умственных способностях составителя, о качестве каждого вопроса, о самой процедуре проведения экзамена (уходит прямо в прометрик, судя по всему, проверяют организацию, которая устраивает экзамен). От них можно отказаться, можно ответить. На это даётся дополнительное время, всё добровольно. При этом вам сразу же говорится, сдали вы экзамен или нет, и автоматом печатается листок с конкретными цифрами, и шкалами вида Тема: слабо/сильно. Т.е. конкретные ошибки неизвестны. Но примерно оценить проблемные темы можно.

На этот листок вам ставят хитрую печать, после этого вы должны его посмотреть, запомнить и съесть. Ибо данные цифры и шкалы больше нигде и никогда не покажутся, это ваше личное дело, что вы знаете. И даже если набрали 701 балл при допустимых 700, этого вы никому не обязаны говорить. Говорите, что 1000, всё равно не проверят.


Далее, если вы в первый раз сдаёте, то вам через некоторое время придёт MCP ID, для регистрации на mcp.microsoft.com, там вы можете сотворить свои логотипы, получить PDF с сертификатом или заказать его ($10 за один + $1 за каждый последующий в одной посылке), на сертификате будет стоять личная подпись самого Стивена Балмера.  Официальный способ при этом подтвердить статус, это Transcript. Для доступа к нему нужен код доступа, который вы придумываете сами и всегда можете изменить, чтобы прекратить к нему доступ. Так что сертификаты, это в общем-то баловство, но красивое.

Подготовка

Ну и в конце, о том как готовиться. Тут я не помощник. Я почти не готовился, решил что свои-то 700 баллов наберу, и очень пожалел. При сдаче экзамена, сомневался практически в каждом вопросе, было ощущение, что я вообще первый раз вижу этот .NET, и вообще, кто здесь?  

Темы для подготовки есть в описании экзамена, а уж как вы будете готовиться: читать книжки, курить брейндампы, копать MSDN или смотреть доклады, решайте сами. Глубоких знаний не требуется, но требуются достаточно широкие (e.g. 70-562): Microsoft AJAX, Mobile Controls, Declarative Data Sources, Control Lifecycle, Deployment, Configuring, Security. 

Вообще, могу сказать, что на MesureUp вопросы близко к теме, а на BrainBench — вообще не в тему.

воскресенье, 22 ноября 2009 г.

Сжатие ViewState

ViewState — в ASP.NET весьма интересная и полезная технология, но у неё есть один существенный недостаток. ViewState может очень сильно увеличивать размер страницы, и кроме всего прочего все эти данные пойдут на сервер назад, что для пользователей с узким каналом может выливаться в "тормоза" приложения, хотя само-то оно будет быстрым.

И что самое неприятное, все эти проблемы активно вылезают обычно ближе к окончанию проекта, когда всё уже сделано, и менять уже логику поздно. Точнее, смена логики может привести к непредсказуемым глюкам, а если всё тестировать заново, то это займёт слишком много ресурсов, так что обычно всё так и оставляют, и на будущее все программисты твёрдо себе говорят: в следующем проекте будем следить за ViewState. Но вы поняли. 

Собственно, есть ситуация, проект близится к концу, нужно что-то с ViewState'ом делать. Для начала, стоит взять типичную страницу, забрать из неё ViewState (он хранится в hidden-поле __VIEWSTATE), убрать кодирование в base-64 (сам ViewState не должен быть зашифрован, естественно), и посмотреть на него. На данном этапе иногда можно выкинуть некоторые элементы, которые случайно попали туда. Например, в одном проекте часть рендера страницы выводилась через asp:Literal, который по умолчанию пихает всё свое содержимое во ViewState, что, например, для русского текста длинной в 100 байт превратится в 300 байт на клиенте.

Но, когда базовые вещи исключены, всё равно может остаться большой вьюстейт (например, у нас в одном проекте с хитрым гридом он был 80 килобайт), и с ним надо что-то кардинально сделать. В этом случае, можно попробовать самое простое решение: сжать вьюстейт, благо ASP.NET предоставляет достаточно простую возможность для этого.

Вначале, нам необходимо переопределить PageStatePersister, собственно, тот класс, который и отвечает за хранение. В ASP.NET существуют две реализации, которые хранят ViewState в hidden-поле (по умолчанию) или в сессии. Нам нужен свой, который будет сжимать содержимое:


protected override PageStatePersister PageStatePersister
{
    get
    {
        return _persister ?? (_persister = new CompressionPageStatePersister(this));
    }
}

Для этого перекрываем property PageStatePersister у страницы (Page), и возвращаем инстанс нашего класса:


public class CompressionPageStatePersister : PageStatePersister
{
    public CompressionPageStatePersister(Page page) : base(page) { }
    public override void Load()
    {
        string requestViewStateString = base.Page.Request.Form["__CVIEWSTATE"];
        if (!string.IsNullOrEmpty(requestViewStateString))
        {
            Pair pair = (Pair)
                ViewStateCompressor.ViewStateDecompress(
                    Convert.FromBase64String(
                        requestViewStateString));
            base.ViewState = pair.First;
            base.ControlState = pair.Second;
        }
    }

    public override void Save()
    {
        Control control = base.Page.FindControl("__CVIEWSTATE");
        if ((base.ViewState != null) || (base.ControlState != null))
        {
            string s = Convert.ToBase64String(
                ViewStateCompressor.ViewStateCompress(
                    new Pair(base.ViewState, base.ControlState)));
            ScriptManager.RegisterHiddenField(base.Page, "__CVIEWSTATE", s);
        }
    }
}

Как видно, реализация простейшая, перекрываются методы Save и Load, которые сохраняют и загружают ControlState (неотключаемая часть, необходимая для работы контролов) и ViewState. Всё это сохраняается в собственное hidden-поле __CVIEWSTATE, т.к. к обычному у нас нет доступа (но если интересно, то с использованием Reflection, нужно взять private field у класса Page с именем _clientState, и записать значение туда).

Да, и в base-64 кодировать обязательно, ибо особенности стандарта HTTP таковы, что даже если вы попробуете другую кодировку, в реальности будет передано гораздо больше байт.

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


public static byte[] ViewStateCompress(object viewStateToCompress)
{
    ObjectStateFormatter formatter = new ObjectStateFormatter();
    MemoryStream output0 = new MemoryStream();
    DeflaterOutputStream ds = new DeflaterOutputStream(output0, new Deflater(6, true));
    formatter.Serialize(ds, viewStateToCompress);
    ds.Close();
    return output0.ToArray();
}

public static object ViewStateDecompress(byte[] data)
{
    ObjectStateFormatter formatter = new ObjectStateFormatter();
    InflaterInputStream ds = new InflaterInputStream(new MemoryStream(data), new Inflater(true));
    object value = formatter.Deserialize(ds);
    ds.Close();
    return value;
}

Небольшие пояснения:

  • Для сжатия используется библиотека #zipLib (родная медленнее и хуже жмёт, использовать не стоит)
  • Степень сжатия (6) — это по умолчанию, наилучший компромисс качества и скорости
  • Не пишутся заголовки GZip, так как они нам не нужны, т.е. другими словами использоуется не GZip, а Deflate — алгоритм сжатия без дополнительной информации
  • В качестве сериализатора используется ObjectStateFormatter, который и используется в качестве стандартного (точнее там используется LosFormatter, но итогом работы служит строка в base-64, а мы сами потом трансформируем уже запакованные данные
  • В данном случае мы теряем встроенную возможность шифрования ViewState, но её при необходимости легко реализовать, да и расшифровать ViewState будет уже сложнее

Как видно, всё просто: два класса для удобства и один override, и результат — размер данных на клиенте в 2-5 раз меньше, и не на магистральных каналах страницы начинают работать гораздо быстрее.

Да, и постарайтесь не сохранять во ViewState собственные объекты, ибо ObjectStateFormatter достаточно эффективно сериализует базовые типы, но если он не понял про тип, то начинает использовать недостаточно эффективный, но универсальный BinaryFormatter. Если будет время, я постараюсь расписать, как в некоторых случаях можно подменить сериализацию для своих типов, чтобы уменьшить размер ViewState (который из-за этого может тоже весьма значительно сократиться).

вторник, 17 ноября 2009 г.

Мои впечатления о Платформе 2010. Доклады.

Сегодня я расскажу своё впечатление о докладах на Платформе 2010, пока тема окончательно не устарела.  Ибо сейчас всё прогрессивное человечество следит за PDC, а я ещё на платформе.

В общем, как я писал в прошлый раз, сейчас я расскажу про доклады, и своё мнение о них, чтобы вам было проще решать, что стоит смотреть, а что можно и пропустить. Итак, поехали.

Обзор ключевых изменений Windows Server 2008 R2
После пленарного доклада, о котором я уже писал и вкусного обеда, я отправился на данный доклад, в качестве докладчика на котором выступал Александр Шаповал. Доклад оказался весьма интересным, я узнал, что Microsoft действительно сделал множество существенных изменений в архитектуре Windows 7 (Server на том же ядре, так что и к нему это тоже относится). В принципе, в докладе ничего принципиально важного нет, но докладчик рассказывал весьма интересно, да и тема сама по себе интересная, так что рекомендую прослушать данный доклад по возможности, за чашечкой чая/кофе. Слушать легко и интересно, ни к чему не обязывает. 

С высоты Килиманджаро. Введение в SQL Server 2008 R2
Основным докладчиком тут выступал  Алексей Шуленин (если я правильно запомнил, ибо докладчиков было 4). Доклад действительно отражает название. Рассматривались новые фичи с такой высоты... что мне как обычному разработчику было настолько всё далеко и не нужно, что я весьма заскучал. Т.е. на самом деле, шёл весьма специфический BI для серьёзных DBA и архитекторов, разработчикам тут делать абсолютно нечего. Доклад стоит послушать, если это и есть ваша работа. С другой стороны, до конца дослушать доклад я не успел, ибо побежал на экзамен.

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

Практика проектов виртуализации
Собственно после сдачи экзамена у меня хватило времени сходить ещё на один доклад, где выступал Алексей Кибкало. Несмотря на название, доклад оказался обычным маркетинговым рассказом о том, как в Microsoft делают виртуализацию. Смысла ноль, смотреть не стоит. Тем кто интересуется, проще позвонить напрямую в Microsoft.

Дальше началась вечерняя программа в исполнении Hosten'а и Гоблина, об этом я уже немного рассказывал. Не дожидаясь окончания, я побежал в гостиницу отсыпаться, ибо на следующий день у меня с утра была запланирована лабораторная работа, и мне хотелось быть бодрым и свежим.

Во второй день я случайно оставил фотоаппарат в камере хранения, так что без фотографий.

Лабораторная работа: Реализация DirectAccess в Windows Server 2008 R2
Скажу сразу, от лабораторной работы я ожидал большего. На практике оказалось всё гораздо банальнее. Выдали мануал для админов-даунов и компьютер с тремя виртуалками, и сказали: "Копать!" И все начали копать. С учётом ограниченности во времени и общей концепции документации всё выглядело весьма уныло. Шаманство, танцы с бубном, непонятные действия. Только потом, я хоть немного начал понимать, что примерно нужно для DirectAccess, во время же лабораторной работы, об этом думать особо не успеваешь, только примерно запоминаешь шаги и то, что лично тебе нужно будет настроить самостоятельно, а не брать уже готовое из виртуалок. Чтобы было понятнее, приведу небольшой пример из документации: В меню Start, кликните Server Manager, кликните Roles, и затем кликните Add Roles. Нажмите Next, и затем на странице Select Server Roles, кликните Web Server (IIS) и затем нажмите Next. Нажмите Next. Нажмите Next, и затем нажмите Install. По завершению установки нажмите Close.

Ну как вам? Нормальному человеку необходимо написать: Поставьте IIS. И всё! Это займёт гораздо меньше времени, ибо не надо отвлекаться на инструкцию пытаясь найти скрытые моменты (а они иногда бывают, запрятанные между кучей стандартных действий). В общем, на лабораторную работу стоит идти только в одном случае: контора за вас платит, и вам совершенно наплевать на её деньги. Иначе, проще потратить столько же времени почитав документацию и узнать гораздо больше.

Хотя, как мне потом рассказали, всё-таки смысл есть: документацию вам читать будет лень, а тут хоть как-то вас заставят пройти все шаги, чтобы в голове отложилась хоть какая-то информация. Ладно, проехали.

ASP.NET 4.0, MVC Framework 2.0 и Visual Studio 2010
С лабораторной работы я побежал на следующий доклад, при этом чуть-чуть опоздав на начало, и был очень удивлён не обнаружив ни единого свободного места. С трудом найдя место я принялся слушать доклад. Докладчиком был Гайдар Магднануров, которого я считаю одним из лучших докладчиков в Microsoft (особенно пикантно это выглядит с учётом того что на платформу я попал благодаря Гайдару, да и тест этот, он наверняка прочитает ). В общем, как бы то ни было, доклад оказался очень интересным, докладчик тоже, я узнал про нововведения, и как с ними жить дальше. Если вкратце, то в 4.0: причесали, подлатали, подкрасили, подкрутили. Стало всё еще лучше чем было. Всем, кто связан с разработкой под ASP.NET, смотреть в обязательном порядке.

Новые возможности веб-платформы Microsoft IIS 7.5
Следующий доклад вёл также Гайдар, но тема была уже более локальная и специфическая. Вкратце: добавили в Server Core полноценную поддержку .NET, немного перекроили IIS, так что стало ещё лучше (кто бы сомневался ), добавили доменных пользователей и трейсинг изменений. Можно послушать доклад, если это вас интересует, в принципе можно и покурить документацию. После доклада весьма продуктивно пообщались с Гайдаром, но запись не велась, так что рассказывать особо и нечего (и незачем ).

Windows Workflow Foundation для архитекторов
Тут я изменил свои планы и пошёл слушать Дэвида Чаппелла, ибо всю конференцию слушал о том, какой он хороший докладчик. Надо сказать, что это действительно так. Докладчик он просто замечательный и слушать его одно удовольствие (я вначале взял девайс для перевода, но он не работал, а я и не настаивал ибо итак всё было понятно и интересно). Так что рекомендую послушать какой-нибудь из его докладов, получите массу положительных впечатлений. А если говорить а самом докладе, то и говорить нечего. Доклад ни о чём.  (Хорошо это выглядит после того как я расписал докладчика). Но тем не менее, Дэвид рассказывал банальные вещи, и главное в его докладе было: WWF 4.0 переписали с нуля и он стал быстрым. Кстати, само слово WWF вызывало немало проблем у русскоговорящих слушателей, ибо одно дело сказать вэ-вэ-эф по-русски и все тебя поймут, другое дело попробовать это сказать Дэвиду (да, мы поговорили после доклада). Если кого интересует, то следует говорить даб-эф (Workflow Foundation), чтобы было кратко и понятно.

Silverlight 3. Комплексный обзор платформы
После, я пошел послушать Михаила Черномордикова, про Silverlight. Почему-то тут больше хочется сказать про Мишу, а не про доклад. Миша хороший докладчик, но один из его недостатков, что он весьма быстро говорит, нет, даже так, ВЕСЬМА быстро говорит  и выкладывает огромное количество информации на головы слушателей. Ну это наверное даже и неплохо, но можно было бы подсократить, доклад от этого ничего бы не потерял. Хотя, судя по огромной активности Михаила перед докладом, я думаю что он просто такой быстрый человек, находящийся сразу в нескольких местах и успевающий при этом всё сделать.  Ну и ещё одна проблема, в том, что Миша всё-таки не очень хорошо работает с аудиторией, для него её нет, он сообщает информацию. Думаю, если эти моменты Михаил пересмотрит, то я буду заслушиваться его докладами.  

Да, про сам доклад, про Silverlight. Моё мнение, надоели.  Не успеваешь разобраться с одной версией, уже новая на подходе, где всё еще лучше и интереснее. Для пользователей наверное это неплохо, но для разработчиков это ужасно. Надо весьма активно за этим следить, чтобы не пропустить очередную версию. Сам Silverlight при этом весьма и весьма хорошо для разработки, и может весьма просто превращаться в десктопное приложение. В общем, можно послушать, можно прочитать, можно посмотреть доклад. Есть интересные ссылки.

Да, и после доклада я решил узнать, почему у меня падает Opera при работе с Silverlight. Миша сказал, что я неправ и всё должно работать. Пришёл домой и действительно, всё работает! Как не крутил, не смог заставить её упасть. Вот она сила докладчика.  

SQL Server 2005/2008: восстановление при катастрофических сбоях
Последний доклад, на который я пошёл, был посвящён работе с SQL сервером. Докладчиком был Дмитрий Артемов. Если вкратце пересказать доклад, то главное это: бэкапы, бэкапы и еще раз бэкапы (да и проверять бэкапы на корректную работу тоже нужно). Стоит скачать презентацию, там всё подробно и понятно, и в документации такого тяжело найти, но слушать в принципе особо не стоит.

После этого я побежал забирать свою пачку подарков (получил еще вэб-камеру за оценку докладов), ну а после этого решил что до конца программы закрытия я всё равно не успею, так что лучше не рисковать и отправиться на поезд.

На этом Платформа 2010 для меня закончилась. Всё было безумно интересно и я совершенно не жалею что съездил.

воскресенье, 15 ноября 2009 г.

Мои впечатления о Платформе 2010. Общее.

Попробую рассказать свои впечатления о недавно прошедшей Платформе 2010 от Microsoft. Впечатлений много, попробую их немножко структурировать, но если получится сумбурно, то заранее извиняюсь. В любом случае, не я первый буду писать о платформе, не я последний, так что всегда можно найти какие-либо другие мнения. 

Для начала несколько слов о том, как я вообще попал на платформу. Дело в том, что участие в ней стоило 20000 руб., со скидками дешевле, но тем не менее за свои деньги хоть и хотелось ехать, но всё-таки сумма смущала. Но совершенно случайно, благодаря твиттеру, я оказался среди победителей конкурса, который проводил Гайдар Магдануров, и как результат получил приглашение на Платформу. Ехал я не один, а с Денисом Гладких, который кроме всего прочего еще является MVP, так что в отличие от меня он ехал в качестве Эксперта (я обычный участник). Кстати, думаю он тоже поделится впечатлениями, и они наверняка будут с другого ракурса, и возможно даже более интересные чем мои. 

Не буду особо рассказывать про то как добирались, но добрались до места проведения, которое было в Центре Международной Торговли, без особых приключений. При регистрации я сразу же получил в качестве подарка весьма симпатичную сумку для ноутбука (кстати, размер оказался 14", а я достаточно долго искал сумку именно под данный размер, так что всё оказалось просто замечательно в этом плане), набор рекламных материалов (уже заботливо уложенных в данную сумку, так что отдельных пакетов таскать не пришлось), и беджик со штрихкодом и статусом. При этом беджик содержал бумажку с расписанием конференции и расположением залов, что весьма пригодилось впоследствии.

Кстати, ещё немного про штрихкод: перед каждым докладом его сканировали, что судя по всему в дальнейшем будет использоваться для отчётности. Такое простое и элегантное решение, которое никого не напрягает, но в тоже время составляет профиль участника, что ему интересно, и как он передвигался. Параноики тут бы удавились от такого внимания.

Про саму организацию мероприятия могу сказать, что всё было просто замечательно. Всегда можно было спросить как и куда добраться, перекусить в Атриуме, сдать вещи в камеру хранения, чтобы не таскать с собой, посидеть в интернете за компьютером (я обычно сидел со своего ноута, так что для меня было более важно что почти везде был WiFi), или поиграть в XBox. При этом можно было пообщаться с докладчиками в зоне "Спроси Эксперта", побродить по рекламным стендам Dell, HP, IBM, Intel, Microsoft Embedded и прочим.

При этом можно было получить кучу разных подарков за какие либо действия (например, заполнить анкеты). Из подарков запомнился оригинальностью подарок от HP — средство для разогревания замков в машине с фонариком, которое первоначально было принято за странную отвёртку, и лишь потом, когда я обжёгся, мне объяснили, что это.  Кстати, на стенде HP были самые красивые девушки.

Также от Интела получил в подарок интересный USB-hub, и дополнительно узнал много интересного про их программу ITGalaxy.

Дальше началось пленарное заседание на котором вначале выступил Николай Прянишников (президент российского подразделения Microsoft), а потом Норм Джуда вкратце рассказал план мероприятия, периодически вызывая других докладчиков, которые вкратце рассказывали о технологиях Microsoft. 

При этом, для тех, кто не очень хорошо владеет английским языком выдали девайсы, позволяющие слушать перевод (не знаю как они правильно называются, но смысл надеюсь понятен: приёмник с наушником). Хоть и по-английски было весьма понятно, я таки включил переводчика и уже слушал его. Всё-таки синхронный перевод с сохранением интонации и технических терминов, это весьма сложная работа, но переводчик с ней замечательно справился. 

Вечером была вечерняя программа с показом мультфильма Битва за планету Виндостан, в личном переводе товарища Гоблина. До конца я не досидел, ибо пора было отдыхать, и вставать на следующий день на лабораторную работу, так что пошёл отсыпаться в гостиницу.

В следующий раз я расскажу про доклады, которые я посетил и своё впечатление от них. Возможно это вам даст информацию о том, какие материалы стоит скачать и на что обратить внимание, но так как параллельно шло несколько (6-8) докладов, естественно я не смог побывать на всех, а побывал только на самых интересных для меня лично.

Ну и в конце, чтобы не выглядело всё слишком замечательно, немного про минусы конференции.  На самом деле их было немного. Один из основных — сильно разнесённые в пространстве помещения. Например, чтобы сходить перекусить во время перерыва нужно было потратить минут 5 в одну сторону, до некоторых залов идти было ещё дольше. Но это больше связано с самим зданием WTC. Ну и местами было весьма тяжело подключиться к интернету, так что когда это удавалось приходилось стоять посреди холла, лишь бы отправить нужное письмо (чтобы не дай бог не сломать интернет).  Но это опять, особенности здания и большого количества народа. Во второй день с интернетом было уже гораздо лучше.

суббота, 31 октября 2009 г.

Запуск процесса на удалённом компьютере

Сегодня постараюсь быть кратким.

Итак, есть задача: запустить процесс на удалённом компьютере, RDC запускать не хочется, ибо тяжёлая артиллерия и не автоматизируется. Поиск стандартных утилит выявил только: sc — может многое, но только для сервисов, при этом tasklist и taskkill есть, а taskstart — нет.

В качестве решения можно использовать pstools, но их ещё нужно скачать, а с интернетом иногда проблемы бывают, да и хочется стандартными средствами обойтись. И оно есть, через WMI:

wmic /node:remoteComputer process call create "calc.exe"

Всё просто, отдельными параметрами если нужно, то можно задать пользователя.