MCP
Показаны сообщения с ярлыком microsoft. Показать все сообщения
Показаны сообщения с ярлыком microsoft. Показать все сообщения

воскресенье, 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"

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

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

Изменение буквы системного диска в Windows

Раз уж сегодня начал активно писать в блог, то продолжу.  На этот раз не про конкурс, а небольшая заметка про то, как изменить букву диска в Windows, в случаях когда стандартными средствами (Управление Дисками) это не получается (нельзя, запрещено и так далее, в том же духе).

Стандартная ситуация, это когда при установке Windows не на основной диск система оказывается на диске D:, вместо диска C: и изменить это не получается, ибо диск системный и вообще загрузочный. Иногда подобное желание бывает и позднее (например системный диск X: а хочется сделать Y:).

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

Итак, всё просто. Открываем реестр, смотрим следующую ветку:

HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices

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

А теперь информация о том, как быстро сделать бекап, на случай поломки в данном случае. Для этого надо сделать несколько всего действий:

  1. Загрузиться из другой системы. Если её нет под рукой, замечательно подходит установочный диск от Висты или свежее. Вместо установки выбираем Recovery и открываем командную строку. Если у вас есть Far, то можете ж
    80;ть припеваючи на данном шаге.  Если нет, то работайте в консоли.
  2. Копируем все файлы (чтобы проще было) из Windows\System32\Config в любую другую подходящую папку. Там хранится реестр и журнал событий.
  3. Для надёжности копируем Documents And Settings\ntuser.dat — реестр для конкретного пользователя (в Висте и Семерке путь немного другой: Users)

Собственно, на этом всё. Для восстановления нужно проделать те же действия, только скопировать обратно. В частности, этот способ часто помогает, если нужно переустановить Windows на такой же, по причине фатального сбоя. Это поможет восстановить реестр и может быть даже всё заработает. Но очень опасный способ (с другой стороны уже всё сломано, можно и попробовать починить).

GAC

Не выдержал и решил написать ответ на вопрос про GAC для конкурса Гайдара про платформу.

Переписывать MSDN и Рихтера не буду, для разнообразия скажу своё мнение про GAC, чтобы ответ отличался от остальных.   Собственно расскажу, не про то, чем хорош GAC, а чем он плох.

Для начала в двух словах про него — это глобальный кеш сборок, и любое приложение, которое использует опредёленную сборку сначала посмотрит на её наличие в GACе, а только потом будет искать в других местах. Т.е. можно считать GAC банальным хранилищем DLLек, как Windows\System32, но с одним важным отличием. Сборки хранятся не по имении библиотеки, а по имени, Strong Name ключу, версии, культуре и платформе (x86, x64). Т.е. можно хранить разные версии сборок и даже умудряться их использовать в одном приложении (хотя лучше постараться не делать так). Т.е. GAC полезная функциональность, но есть несколько НО.

Самое главное, теряется возможность xcopy deployment, необходимо использовать gacutil или делать приличный Installer. Но если подумать, то что нужно класть в GAC? Нужно туда размещать библиотеку, которую будут использовать несколько приложений на компьютере, иначе особого смысла в этом нет. Другими словами, это должен быть конкретный shared-компонент. А кому нужен shared-компонент? Только разработчикам. Для обычных пользователей это в большинстве случаев не нужно. А разработчики очень не любят сложные процессы установки библиотек. Им бы в проект скопировать что надо, и не думать потом о библиотеках. В противном случае получается, что у разработчика может всё работать, ибо сторонняя сборка в GACe, а у клиента уже всё будет падать, ибо разработчик забыл её приложить к приложению.

Например, мой epic fail был с библиотекой Microsoft.mshtml.dll, которая оказалось что ставится со студией, и напрямую в приложении не используется, а используется через третьи библиотеки. В результате, у меня приложение работало на всех компьютерах, а половина клиентов ругалась. Конечно, я уже умный, и подобных вещей стараюсь не допускать, но вот пример как легко можно сломать приложение использованием GACа.

Собственно, если мы планируем использовать сборку в GACе, то у нас сразу усложняется разработка. Необходимо писать скрипты для билда, которые будут выковыривать сборку из GAC, компилировать новую версию и вставлять обратно. Вроде не сложно, но программисты ленивые, и обязательно что-нибудь схалтурят, и при деплое получим проблемы.  Ещё нужно обязательно использовать Strong Name, что на этапе разработки иногда плохо, ибо придётся раздавать ключ всем разработчикам (проблема в секурности), также сразу включается версионирование, которое менять нужно вручную. Иначе получатся две абсолютно разных сборки с версией 1.0.0.0, одна из которых в GAC, а вторая нужна приложению, и это вызовет замечательные проблемы, которые будет очень весело отлаживать.


Собственно, что я хотел сказать:

  • Использовать GAC нужно, когда есть проблемы с версионированием. Это позволит их решить. Например, приложение А использует библиотеки B и С. B использует библиотеку D версии 1.0.0.0, а C использует D версии 1.2.0.0. Как это это необходимо решать. Тут нужен GAC, ибо два файла с одним именем к приложению подцеплять плохо.
  • Использовать GAC нужно, когда есть много приложений, использующих одну сборку. Как вариант — хостинг многих приложений с общим компонентом. И то, может быть проще не использовать GAC, ибо места на диске не так уж и много сэкономится, а если случайно выкинут сборку из GAC, то можно получить проблемы.
  • Хороший пример того, что нужно класть в GAC — системные библиотеки .NET Framework
  • Во всех остальных случаях — не стоит. (Моё личное мнение).

.NET Remoting по протоколу SOAP. Возможно ли?

Тут @gaidar устроил конкурс и задаёт всякие разные вопросы.  В принципе, отвечать на них не планировал, ибо умные ответы писать долго и получится переписывание книжек/MSDN, а глупые можно и в Твиттере

Но, тут задали вопрос про Remoting, а это же моя любимая тема.

Собственно, Remoting может использовать любой канал, хоть голубиную почту, с сообщениями, закодированными морзянкой, этим он и отличается в лучшую сторону, но вопрос именно в том, что можно ли из подобного SOAP/Remoting сделать настоящий Web Service? Ответ сложный, с одной стороны — да, ибо можно использовать SOAP, с другой стороны, эти сообещия будут весьма страшными и заточенными под remoting-клиента, а не обычного Web-Service клиента. Собственно, проблема в том, что для веб-сервисов нужны  WSDL и XSD описания методов, а Remoting хоть и делает WSDL, но делает его для себя, и особо не смотрит на стандартные неймспейсы и типы.

Так что ответ: В принципе да. Но если вы хотите, чтобы клиентами были не только те же .NET приложения, то вам же придётся приложить множество усилий, чтобы использовать только базовые типы, не использовать CAO и эвенты, т.е. сильно урезать функционал Remoting, чтобы свести его к веб-сервисам. А оно вам надо? Гораздо проще тупо и использовать веб-сервисы для тех целей, когда они нужны, это проще и понятнее, а Remoting не использовать вовсе, не нравится он мне. 

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

RDC vs RAdmin/VNC

Иногда бывает нужно зайти удалённо на свой компьютер. С одной стороны стандартный RDP рулит, но он обычно создаёт новую сессию, так что получается две запущенные сессии — локальная и удалённая. А это весьма раздражает, ибо заводится весь авторан, да и задача часто бывает именно посмотреть что в конкретно творится, а не просто завести сессию.

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

Но есть простое решение с RDP, которое многие не знают, но тем не менее, оно сделано именно для таких ситуаций — залогиниться именно в локальную сессию удалённо. Делается это просто, запускается клиент с соответствующим ключом:

mstsc /console

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

mstsc /admin

Работает он также как и предыдущий.

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

пятница, 27 февраля 2009 г.

Ribbon Calculator

Моей любимой шуткой про Windows 7 было то, что у неё калькулятор с ribbon-интерфейсом.  Это было почти правдой, с учётом того, что что  WordPad и Paint с ним, родимым. Но оказалось, что я был недалёк от истины, и таки есть проекты нужного калькулятора:Стырено с хабра.

вторник, 24 февраля 2009 г.

Кризис в действии

Я уже писал про семинары от Microsoft. А сегодня (да-да, именно сегодня ) пришла напоминалка. Сразу видно, что в компании кризис (выделение моё):
Рекомендуем взять с собой документ, удостоверяющий личность, и внешний носитель или флэшь большого объёма.

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

Жалко, что в этом году всё настолько бюджетно.

четверг, 12 февраля 2009 г.

Семинары Microsoft в Ярославле

Не могу не поделиться, и не говорите потом, что я вас не предупреждал 

TechNet и DevDays

Всё проходит в один день, 25-ого февраля (среда). При этом, вначале TechNet, а потом DevDays. Т.е. можно сходить на оба. Вообще, судя по количеству докладов, кризис даёт о себе знать. Докладов меньше, чем в прошлом году, возможно что ещё и подарков меньше будет. Но я думаю, это не главное. Главное, что можно послушать Гайдара и узнать про Windows 7 и 2008 Server.