Welcome to MSDN Blogs Sign in | Join | Help

Возродим Юзер Группу в Нижнем Новгороде?

Коллеги

Тут

http://nnov.ineta.ru/

есть юзер группа, у которой 4 декабря будет заседание. Очередное заседание пока согласился организовать лидер MCP клуба, за что ему большое спасибо. Но нам нужен новый лидер, который хорошо возьмется за юзер группу.

Приходит на юзер группу!

Заявки на то, чтобы стать лидером, принимаются.

i-maratb@microsoft.com, как обычно .

 

Спасибо!

Платформа 2010

Вот и подошла к концу конференция Платформа 2010, или #msplatforma, как ее называют в твиттере.

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

Я из разных источников слышал, что на сайте с оценкой докладов нельзя было указать текстовый комментарий – почему Вам понравился или не понравился тот или иной доклад. Поскольку мне очень хочется понять результаты , я предлагаю написать мне в произвольной форме Ваши впечатления от трека для разработчиков (доклады или лабораторные работы помеченные синеньким треком DT). Пожалуйста, напишите мне письмо с темой platforma 2010 feedback, укажите название доклада и укажите что Вы про него (доклад и докладчика) думаете.  Мой адрес i-maratb@microsoft.com.

Особенно интересно мнение тех, кому что-то не понравилось. Не обещаю ответить, но обещаю все прочитать и учесть.

Спасибо!

Платформа 2010

Вот и подошла к концу конференция Платформа 2010, или #msplatforma, как ее называют в твиттере.

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

Я из разных источников слышал, что на сайте с оценкой докладов нельзя было указать текстовый комментарий – почему Вам понравился или не понравился тот или иной доклад. Поскольку мне очень хочется понять результаты , я предлагаю написать мне в произвольной форме Ваши впечатления от трека для разработчиков (доклады или лабораторные работы помеченные синеньким треком DT). Пожалуйста, напишите мне письмо с темой platforma 2010 feedback, укажите название доклада и укажите что Вы про него (доклад и докладчика) думаете.

Особенно интересно мнение тех, кому что-то не понравилось. Не обещаю ответить, но обещаю все прочитать и учесть.

Спасибо!

Posted by Marat Bakirov [MSFT] | 0 Comments
Filed under:

Куда надо сходить на платформе.

 

Решил прорекламировать свой трек для разработчиков.

Во первых, хочу отметить, что кроме докладов нам удалось поставить две лабораторные работы.  Одна посвящена очень интересной технологии Dublin, и вести ее будет Наталья Ефимцева. Что такое Dublin в двух словах – это вещь для itpro, позволяющая управлять огромным количествов работающих workflow сервисов. Все это для .net 4. Однозначно рекомендую!

Вторую работу изготовил собственноручно Виталий Дильмухаметов. В этой работе он покажет как написать для silverlight так называемые behaviours , а после написания использовать их в Expression Blend и добавлять к вашим интерфейсным элементам на Silverlight. .

Ну и собственно сам трек. В треке 13 докладов (смотрите синенькие теги DT тут http://msplatforma.ru/schedule/default.aspx ). Нам выдали два зала рядом – синий конгресс зал (это один из трех залов в который превращается большой зал пленарного заседания), а также камерный “Желтый Зал”  (на нем еще написано Пресс Зал).

Доклады перечислять долго, назову только ключевые теги и ключевых докладчиков. Дмитрий Васюра, Никита Шамгунов, Алексей Шуленин и целый набор экспертов из нашего  консалтинга (я смотрел их доклад – это просто отпад). WPF, Silverlight, Visual Studio 2010, Team Foundation Server 2010, Sharepoint, SQL Server 2008 R2, ASP.NET, 1C + Sharepoint.

Будет ряд изменений – на круглом столе вместо Ромы Здебского будет Никита Шамгунов, Александр Яхнин приехать не смог (но код прислал), вместо него все буду рассказывать я.

Увидимся завтра и Вы узнаете зачем нам MultiTouch ноутбук!

Фотоальбом с дня 2

http://cid-d00ccb797db4960b.skydrive.live.com/browse.aspx/platforma%202010%20preps%202?ct=photos&sa=84138638

Posted by Marat Bakirov [MSFT] | 0 Comments
Filed under:

Платформа 2010 – фотографии с поля

Коллеги, буду краток.

Для платформы у нас есть MultiTouch ноутбук. Зачем? Аааа.. увидите.

 

 

Сделал несколько фотографий прямо на месте.

 

Это так выглядит сервер, на котором находится большинство виртуальных машин для пленарного доклада.

 

Железки Бари Муртазина.

 

Готовимся

 

Думаем.

 

Все фотографии тут -
Posted by Marat Bakirov [MSFT] | 0 Comments
Filed under:

Платформа – keynote (пленарный доклад) – тонкости подготовки

Так уж получилось, что я готовлю одну из демонстраций на keynote.

Для этого я пытаюсь настроить HP TouchSmart tx2 – тот самый ноутбук с multi touch.

Тонкость в том, что доклад на платформе должен быть very robust. Казалось бы простая демка должны быть продублирована, изолирована и так далее. Что значит продублирована ? значит мы хотим поднять второй ноутбук с копией демонстрации, которая будет использоваться если с первым что то случится.

Что значит изолирована? Пока предполагается , что этих же ноутбуки будут показывать что то Роман и Михаил. Но я собираюсь ставить Visual Studio 2010 Beta 2, а вдруг Михаилу понадобится какой нибудь SDK который как то повлияет на мою демо? Значит Мише  и Роме нужна вторая операционная система.

Решено сделать так.

На ноутбук делает один большой partiton, в котором мы ставим несколько VHD, на каждом будет стоять своя копия windows 7. Под каждую дему – своя. И кстати, это сильно упросит нам процесс копирования демы на второй диск – просто скопируем VHD.

Итак, я поставил Windows примерно так – в процессе установки тут же создал VHD (c:\winmain.vhd), и прямо на него установил Windows. Настроил драйвера для touch, вроде бы работают.

Теперь сделал копию файла winmain.vhd

D:\>copy winmain.vhd pl2010Wpf4.vhd

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

D:\>bcdedit

Windows Boot Manager
--------------------
identifier              {bootmgr}
device                  partition=\Device\HarddiskVolume1
description             Windows Boot Manager
locale                  en-US
inherit                 {globalsettings}
default                 {current}
resumeobject            {62620c6d-c343-11de-9ec9-f1812b1fa691}
displayorder            {current}
toolsdisplayorder       {memdiag}
timeout                 30

Windows Boot Loader
-------------------
identifier              {current}
device                  partition=C:
path                    \Windows\system32\winload.exe
description             Windows 7
locale                  en-US
inherit                 {bootloadersettings}
recoverysequence        {62620c6f-c343-11de-9ec9-f1812b1fa691}
recoveryenabled         Yes
osdevice                partition=C:
systemroot              \Windows
resumeobject            {62620c6d-c343-11de-9ec9-f1812b1fa691}
nx                      OptIn

D:\>

Попробуем скопировать загрузочную запись.

D:\>bcdedit /copy {current} /d "pl2010Wpf4"
The entry was successfully copied to {62620c72-c343-11de-9ec9-f1812b1fa691}.

 

Windows Boot Loader
-------------------
identifier              {62620c72-c343-11de-9ec9-f1812b1fa691}
device                  partition=C:
path                    \Windows\system32\winload.exe
description             pl2010Wpf4
locale                  en-US
inherit                 {bootloadersettings}
recoverysequence        {62620c6f-c343-11de-9ec9-f1812b1fa691}
recoveryenabled         Yes
osdevice                partition=C:
systemroot              \Windows
resumeobject            {62620c6d-c343-11de-9ec9-f1812b1fa691}
nx                      OptIn

Теперь задача поправить описание

по идее это надо делать так

D:\>bcdedit /set {62620c72-c343-11de-9ec9-f1812b1fa691} device vhd=d:\pl2010Wpf4.vhd
The device is not valid as specified.
Run "bcdedit /?" for command line assistance.
The parameter is incorrect.

D:\>bcdedit /set {62620c72-c343-11de-9ec9-f1812b1fa691} osdevice vhd=d:\pl2010Wpf4.vhd
The device is not valid as specified.
Run "bcdedit /?" for command line assistance.
The parameter is incorrect.

D:\>bcdedit /set {62620c72-c343-11de-9ec9-f1812b1fa691} device vhd=[d]:\pl2010Wpf4.vhd
An error has occurred setting the element data.
The request is not supported.

D:\>
Но почему то это не хочет работать. почему?

После пары дней нашел.

правильный синтаксис такой

D:\>bcdedit /set {62620c72-c343-11de-9ec9-f1812b1fa691} device vhd=[d:]\pl2010Wpf4.vhdAn error has occurred setting the element data.
The operation completed succesfully

Двоеточие должно быть  ВНУТРИ скобок.

(P.S.  пока я этого не понял, я действовал так – экспорт конфигурации в файл, редактирование бинарного файла  hex редактором – жесть в общем ).

P.S.

Ссылки к размышлению

http://technet.microsoft.com/en-us/library/dd799299(WS.10).aspx

http://blogs.msdn.com/cesardelatorre/archive/2009/01/11/windows-7-natively-booting-from-a-vhd-virtual-pc-image-file.aspx

Posted by Marat Bakirov [MSFT] | 0 Comments
Filed under:

Я иду на платформу

Как обычно, организаторы регистрируются последними. Наконец то зарегистрировался!

 

Оказывается на сайте можно сгенерить себе баннер , вот так.

Конференция Платформа 2010

 

А еще меня можно найти поиском, например по городу Екатеринбург

или просто так

http://msplatforma.ru/user/mbakirov.aspx

Увидимя на платформе!

Наткнулся на интересный проект – ADO.NET Sync services + compression

Не секрет, что ADO.Net Sync Services часто потребляет трафик. Мне тут прислали ссылку на проект на codeplex, в котором предлагается готовое решение с добавленными компрессорами на входе и декомпрессорами на выходе. Плюс к тому проект работает на мобильных устройствах!

 

Смотрим

http://synccomm.codeplex.com/

P.S. Японский BurgerKing отмечает выход Windows7 7 –слойным Whopperом.

http://www.burgerkingjapan.co.jp/news/win7.php

Visual studio 2010 traninng kit beta 2

 

Не буду спамить Вас, коллеги, информацией о выходе новой беты Visual Studio, а вот информация о том, что обновился traning kit , может быть полезной.

Очень важный момент – поскольку кит только-только выложили, иногда откуда то из кеша скачивается старая версия (размером 81 мегабайт). Убедитесь что размер скачиваемого файла больше 90 мегабайт!

http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=752cb725-969b-4732-a383-ed5740f02e93

подробности тут

http://www.managed-world.com/archive/2009/10/20/visual-studio-2010-beta-2-training-kit-published.aspx

P.S.

куча полезных ссылок.

http://channel9.msdn.com/shows/10-4/10-4-Episode-33-Downloading-and-Installing-Visual-Studio-2010-Beta-2/

Posted by Marat Bakirov [MSFT] | 0 Comments
Filed under:

Сара Форд отрывается

Сара Форд - та самая, переводной блог которой находится в проекте русских блогов,

http://blogs.msdn.com/rusaraford

Честное слово – не знал, что она , оказывается, менеджер проекта http://codeplex.com .

Решила отметить, как я понял, 8 – летие своей работы в Майкрософт, спрыгнув с подохрительно высокой башни. Как я понял, она собиралась в полете кричать “Go CodePlex”!

 

http://www.youtube.com/watch?v=iKvQLb2UKXg 

http://www.youtube.com/watch?v=jcc4KRrZpI0

Posted by Marat Bakirov [MSFT] | 0 Comments
Filed under:

Как я научился выдавать файл clientaccesspolicy.xml без IIS

Недавно один разработчик обратился ко мне и Мише с вопросом.

Суть вопроса такова.

Есть silverlight клиент, есть WCF сервис. Сервис доступен, скажем, по адресу http://localhost:8731/classic с wsHttpBinding или даже basicHttpBinding.

Сервис self hosted -ну то есть без всякого IIS в консольном приложении или сервисе есть код, который запускает сервис. Как то так.

Code Snippet
  1.             ServiceHost sh = new ServiceHost(typeof(Service1));
  2.             sh.Open();
  3.             Console.WriteLine("up and running");
  4.             Console.ReadLine();
  5.             sh.Close();

Ну и есть собственно сервис, в моем примере это IService2 и класс Service1.

Code Snippet
  1. // Classical wsHttpBinding or basicHttpBinding
  2. [ServiceContract]
  3. public interface IService2
  4. {
  5.     [OperationContract]
  6.     int DoAdd(int a, int b);
  7. }
  8. public class Service1 : IService2
  9. {
  10.     public int DoAdd(int a, int b)
  11.     {
  12.         return a + b;
  13.     }
  14. \

Конфиг выглядит примерно так

Code Snippet
  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <configuration>
  3.   <system.web>
  4.     <compilation debug="true" />
  5.   </system.web>
  6.   <!-- When deploying the service library project, the content of the config file must be added to the host's
  7.   app.config file. System.Configuration does not support config files for libraries. -->
  8.   <system.serviceModel>
  9.     <services>
  10.       <service behaviorConfiguration="WcfServiceLibrary1.Service1Behavior"
  11.         name="WcfServiceLibrary1.Service1">
  12.         <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
  13.         <endpoint address="classic" binding="basicHttpBinding" contract="WcfServiceLibrary1.IService2" />
  14.         <host>
  15.           <baseAddresses>
  16.             <add baseAddress="http://localhost:8731/" />
  17.           </baseAddresses>
  18.         </host>
  19.       </service>
  20.     </services>
  21.     <behaviors>
  22.       <serviceBehaviors>
  23.         <behavior name="WcfServiceLibrary1.Service1Behavior">
  24.           <serviceMetadata httpGetEnabled="true" />
  25.           <serviceDebug includeExceptionDetailInFaults="true" />
  26.         </behavior>
  27.       </serviceBehaviors>
  28.     </behaviors>
  29.   </system.serviceModel>
  30. </configuration>

Задача – сделать так чтобы по адресу http://localhost:8731/clientacccesspolicy.xml выдавался нужный нам файл.

Решение

Воспользуемся возможностями .NET 3.5 по работе с REST.

1) Добавим контракт, который будет реализовывать выдачу файла.

Code Snippet
  1.     // This service exposes operations via REST
  2.     [ServiceContract]
  3.     public interface IService1
  4.     {
  5.         [OperationContract]
  6.         [WebGet(UriTemplate = "/clientacccesspolicy.xml")]
  7.         Stream GetClientPolicy();
  8.     }

Обратим внимание на параметр URITemplate – этот параметр описывает, как должен выглядеть WEB запрос.

2) Добавим настройки в конфиг файл. Нам нужно по адресу http://localhost:8731 добавить endpoint с webBinding, а также прописать endpointBehavior. Можно сделать из утилиты WCF Service Configuraiton Editor, можно руками.

Итак, что пришлось добавить.

 

Code Snippet
  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <configuration>
  3.   <system.serviceModel>
  4.     <services>
  5.       <service behaviorConfiguration="WcfServiceLibrary1.Service1Behavior"
  6.         name="WcfServiceLibrary1.Service1">
  7.         <endpoint address="" behaviorConfiguration="webHttp" binding="webHttpBinding"
  8.           contract="WcfServiceLibrary1.IService1">
  9.         </endpoint>
  10.          .....
  11.       </service>
  12.     </services>
  13.     <behaviors>
  14.       <endpointBehaviors>
  15.         <behavior name="webHttp">
  16.           <webHttp />
  17.         </behavior>
  18.       </endpointBehaviors>
  19.        ....
  20.       </behaviors>
  21.   </system.serviceModel>
  22. </configuration>

 

Итоговый конфиг

 

Code Snippet
  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <configuration>
  3.   <system.web>
  4.     <compilation debug="true" />
  5.   </system.web>
  6.   <!-- When deploying the service library project, the content of the config file must be added to the host's
  7.   app.config file. System.Configuration does not support config files for libraries. -->
  8.   <system.serviceModel>
  9.     <services>
  10.       <service behaviorConfiguration="WcfServiceLibrary1.Service1Behavior"
  11.         name="WcfServiceLibrary1.Service1">
  12.         <endpoint address="" behaviorConfiguration="webHttp" binding="webHttpBinding"
  13.           contract="WcfServiceLibrary1.IService1">
  14.         </endpoint>
  15.         <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
  16.         <endpoint address="classic" binding="basicHttpBinding" contract="WcfServiceLibrary1.IService2" />
  17.         <host>
  18.           <baseAddresses>
  19.             <add baseAddress="http://localhost:8731/" />
  20.           </baseAddresses>
  21.         </host>
  22.       </service>
  23.     </services>
  24.     <behaviors>
  25.       <endpointBehaviors>
  26.         <behavior name="webHttp">
  27.           <webHttp />
  28.         </behavior>
  29.       </endpointBehaviors>
  30.       <serviceBehaviors>
  31.         <behavior name="WcfServiceLibrary1.Service1Behavior">
  32.           <serviceMetadata httpGetEnabled="true" />
  33.           <serviceDebug includeExceptionDetailInFaults="true" />
  34.         </behavior>
  35.       </serviceBehaviors>
  36.     </behaviors>
  37.   </system.serviceModel>
  38. </configuration>

 

То есть мы сказали WCF, что запросы по адресу http://localhost:8731 обрабатывает webHttpBinding, а по адресу http://localhost:8731/classic – классический binding. (я взял wsHttpBinging, вроде говорят что для silverlight  нужен другой).

3) Осталось написать реализацию. Я положи нужный мне XML в ресурсы, чтобы код не загромождать.

Code Snippet
  1.         public Stream GetClientPolicy()
  2.         {
  3.             byte[] buffer = null;
  4.             using (MemoryStream ms = new MemoryStream())
  5.             {
  6.                 ms.Position = 0;
  7.                 using (StreamWriter sw = new StreamWriter(ms))
  8.                 {
  9.                     sw.WriteLine(Resource1.crossdomainpolicy1);
  10.                 }
  11.                 buffer = ms.GetBuffer();
  12.             }
  13.             WebOperationContext.Current.OutgoingResponse.ContentType = "text/xml";
  14.             return new MemoryStream(buffer);
  15.         }

Обратим внимание на следующие моменты.

С помощью специального класса WebOperationContext, содержащего настройки специфичные для web запроса и ответа, я настроил правильный тип содержимого.

Второе – я зачем то занимаюсь шаманством с закрытием и открытием потока. Объясняю.

Метод требует возврата ОТКРЫТОГО потока – поток закрывается сам дальше. Но у меня же есть еще и StreamWriter, который я честно пытаюсь закрыть! А он берет и закрывает нижележащий поток (MemoryStream). Подумал я , да и решил закрыть StreamWriter, MemoryStream , а потом открыть заново.

ВСЁ! Не так страшно и сложно.

Итог – у меня есть сервис, который замечательно выдает clientaccesspolicy.xml,  а также работает как обычный сервис.

image

пример кода приложен. 

 Ссылки

ms-help://MS.MSDNQTR.v90.en/wcf_con/html/0283955a-b4ae-458d-ad9e-6fbb6f529e3d.htm

http://msdn.microsoft.com/en-us/library/cc681221(VS.100).aspx

Posted by Marat Bakirov [MSFT] | 0 Comments
Filed under: , ,

Attachment(s): ClientAccessViaWCF.zip

WCF Champ

Оказывается, коллеги из корпорации отожгли

На сайте посвященном WCF теперь есть такая страничка

image

В стиле бокса между WCF champ и человеком пользующемся старыми asmx веб сервисами (обычный порошок :) ). Как водится, есть два отвязных коментатора.

image

На сайте есть еще куча интересных ссылок.

Сайт http://www.microsoft.com/net/wcf/champ/

Прямые ссылки на видео (большой размер, аккуратно!).

http://wm.microsoft.com/ms/msdn/wcf/WCF_Winners_1_320_at_2000K.wmv

http://wm.microsoft.com/ms/msdn/wcf/WCF_Winners_2_320_at_2000K.wmv

http://wm.microsoft.com/ms/msdn/wcf/WCF_Winners_3_320_at_2000K.wmv

 

 

Posted by Marat Bakirov [MSFT] | 0 Comments
Filed under: ,

Я тут записал вводный доклад по Reporting Services

 

Господа, решил записать вводный короткий доклад (15 минут не получилось, получилось 16 с половиной) про Reporting Services. Ориентирован на обзор вообще и больше на itpro аудиторию. Тем не менее там сделал небольшую демку – как выглядит data driven subscription to email.

Мне показалось что такого доклада не хватает. :)

Смотрим, коментируем.

ссылка http://www.techdays.ru/videos/1441.html

доклад

Posted by Marat Bakirov [MSFT] | 0 Comments
Filed under: ,

Источник ошибки Could not enable integration features + статья , как я ставил Visual Studio 2010 Beta 1 TFS

Почти детектив.

Я уже писал о проблеме Cound Not Enable Integration Features.

Как выяснилось, проблема была наведенная.

Служба Virtual PC Integration Components Services Application просто не могла запуститься толком!

Дело в том, что , как показало расследование, процесс msiexec почему то после установки Sql serverа стал кушать от 90 до 99 процентов CPU и запуститься толком не могло ничего!

Но давайте по порядку, не все же SQL server виноват.

Итак, изначально я задался целью сделать себе целью сделать виртуалку под названием 2010 – чтобы там жили все продукты , включая Visual Studio 2010, Team Foundation Server 2010, ну и офис надо бы поставить до кучи.

Так вот, процесс установки был такой – сначала ставим VS 2010 Beta 1, потом пытаемся ставить TFS, не получается поскольку нужен SQL Server. Ну  мы люди не гордые, берем SQL 2008 и ставим, перегружаемся… и тут начинаются указанные выше чудеса.

Это сейчас становится очевидно, что что то тут не так в порядке установки. Но чтобы дойти до этого, доценту (доцент тупой :) ), пришлось сделать несколько попыток, пробуя и так, и этак.

ИТАК, внимание (БАРАБАННАЯ ДРОБЬ, КРИКИ на заднем фоне “нет,  Девид Блейн, нет!”).

НЕ НАДО СТАВИТЬ SQL 2008 ПОСЛЕ VS 2010 Beta1! НАДО НАОБОРОТ! Сначала SQL 2008!

P.S. Насколько я понял, разработчики в курсе. Так что , думаю, что это болезни ранней версии - потом все будет хорошо.

уфф.

Кстати, я решил в виде статьи опубликовать , как я ставил TFS 2010

Ссылка тут.

http://blogs.msdn.com/mbakirov/pages/KakYaStavilTFS2010Beta1.aspx

Posted by Marat Bakirov [MSFT] | 1 Comments
Filed under: ,

TwittSync

Мой коллега Виктор Шатохин написал сервис, работающий в облаке на платформе Azure -  http://twittsync.com/.

 bird[1]

Этот сервис позволяет автоматически уведомлять через твиттер о появлении нового контента в rss каналах.

Я настроил синдикацию своего блога, блога Windows Mobile, а также общей ленты русских блогов MSDN.

Мои блоги синдицируются по адресу http://www.twitter.com/mbakirov.

Блоги MSDN синдицируются по адресу http://twitter.com/rusdpe.

Welcome to twitter!

Posted by Marat Bakirov [MSFT] | 0 Comments
Filed under: ,
More Posts Next page »
 
Page view tracker