rus | eng
PDF Печать RSS
Как создать приложение для Мой мир@Mail.ru за 10 минут на Silverlight 4  

Я рад поделиться с вами новостью, что сегодня мы анонсировали Silverlight SDK для разработки приложений для социальной сети Мой мир@Mail.Ru. Этот продукт является плодом тесного сотрудничества компаний Mail.Ru, Microsoft и нас.

Здесь я бы хотел рассказать о том, каким образом любой желающий может сделать свое приложение за 10 минут. Итак, поехали.

Установка SDK

Для создания приложения вам понадобятся установленная Visual Studio 2010, среда исполнения Silverlight 4, инструменты разработчика Silverlight 4 и непосредственно Мой мир@Mail.Ru Silverlight SDK. Для загрузки последнего можно воспользоваться официальным сайтом, загрузить из Visual Studio Gallery или воспользоваться встроенными механизмами Visual Studio Extension Manager по загрузке расширений.

Visual Studio Extension Manager

Установка SDK представляет собой стандартную процедуру из последовательности “Next – Next - Next” и подтверждения добавления расширения в Visual Studio 2010. После установки SDK расширение должно появится в Extension Manager. Следует убедиться активно ли оно, если нет, то активировать.

После этих шагов при создании новых проектов у вас должен появиться шаблон для создания приложения для сети Мой мир.

Шаблон для создания приложения Мой мир@Mail.Ru

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

Создание приложения

После того, как установка SDK закончена самое время перейти к созданию приложения. Для этого нужно выбрать пункт меню “New Project” и создать новый проект, используя шаблон “Мой мир@Mail.Ru” из раздела “Silverlight”. После создания приложения можно увидеть, что проект – это типичное Silverlight-приложение, в котором присутствует ссылка на сборку “Oogsoft.MyMir.SilverlightAPI”. Кроме того, вместо стандартного класса приложения Application используется новый класс SocialApplication. Это необходимо для того, чтобы приложение могло автоматически получить параметры от сети Мой мир.

<SilverlightAPI:SocialApplication xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                                  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                                  xmlns:SilverlightAPI="clr-namespace:Oogsoft.MyMir.SilverlightAPI;assembly=Oogsoft.MyMir.SilverlightAPI"
                                  
                                  x:Class="FriendsApp.App">
    <SilverlightAPI:SocialApplication.Resources>

    </SilverlightAPI:SocialApplication.Resources>
</SilverlightAPI:SocialApplication>

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

<UserControl x:Class="FriendsApp.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d"
    d:DesignHeight="300" d:DesignWidth="400">

    <Grid x:Name="LayoutRoot" Background="White">
        <ListBox Height="276" HorizontalAlignment="Left" Margin="12,12,0,0" 
                 Name="listBox1" VerticalAlignment="Top" Width="232" />
        <Button Content="Друзья" Height="23" HorizontalAlignment="Left" 
                Margin="250,12,0,0" Name="button1" VerticalAlignment="Top" Width="75" />
    </Grid>
</UserControl>

Теперь нужно определить обработчик события на кнопку. В нем мы обратимся к ресурсам социальной сети и попробуем получить данные.

Для работы с ресурсами социальной сети используются объекты, имеющие публичные интерфейсы. Например, для работы со списком друзей должен использоваться интерфейс IFriends, а для работы с фотографиями – IPhotos. Полный список объектов для работы с социальной сетью можно найти в документации к SDK.

Для получения соответствующих объектов используется специальная фабрика – SocialFactory. Этот объект имеет статический метод Create с generic-параметром. Этот параметр необходим для того, чтобы указать фабрике какой именно объект нам нужен в данный момент. Например, если нам нужно работать со списком друзей, то в качестве параметра следует передать интерфейс IFriends.

private void button1_Click(object sender, RoutedEventArgs e)
{
    var friends = SocialFactory.Create<IFriends>();
}

Каждый интерфейс имеет набор операций, которые разрешено выполнять. Поскольку все операции по работе с внешними ресурсами в Silverlight выполняются асинхронно, то сами операции не возвращают никакого результата. Вместо этого, в качестве параметра для этих операций передается делегат на метод, который будет выполнен после выполнения операции. Второй делегат выполняется в процессе загрузки данных и может использоваться для отображения прогресса загрузки. Если нам не требуется отображать прогресс загрузки, то на месте этого параметра можно указать null.

Код для получения списка друзей и отображения его в ListBox будет выглядеть следующим образом.

var friends = SocialFactory.Create<IFriends>();
friends.Get(delegate(IEnumerable<Friend> result, Exception error)
                {
                    if (error != null)
                    {
                        listBox1.ItemsSource = result;
                    }
                    else
                    {
                        listBox1.ItemsSource = null;
                        MessageBox.Show(error.Message);
                    }
                },
                null);

Теперь давайте поработаем с ListBox. Нам необходимо настроить внешний вид этого элемента управления для отображения данных. Мы будем отображать аватары пользователей. Поэтому поместим в шаблон этого элемента управления объект Image и привяжем его свойство Source к полю Pic, которое содержит адрес аватара для каждого пользователя. В итоге получим  следующую разметку для элемента управления.

<UserControl x:Class="FriendsApp.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d"
    d:DesignHeight="300" d:DesignWidth="400">

    <Grid x:Name="LayoutRoot" Background="White">
        <ListBox Height="276" HorizontalAlignment="Left" Margin="12,12,0,0" 
                 Name="listBox1" VerticalAlignment="Top" Width="232">
            <ListBox.ItemTemplate>
                <DataTemplate>
                    <Image Source="{Binding Pic}" Width="100" Height="100"/>
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>
        <Button Content="Друзья" Height="23" HorizontalAlignment="Left" 
                Margin="250,12,0,0" Name="button1" VerticalAlignment="Top" Width="75" Click="button1_Click" />
    </Grid>
</UserControl>

На этом логика нашего приложения готова и мы можем перейти к публикации приложения.

Публикация приложения

Для получения возможности публикации своих приложений следует вступить в специальное сообщество для разработчиков приложений. Правила вступления в сообщество также описаны на специальной странице.

После вступления в сообщество у вас появится возможность добавлять свои приложения. Для этого нужно перейти в личный кабинет по адресу http://api.mail.ru/apps/my/ и нажать кнопку «Создать приложение».

Создание приложения в Моем мире

Далее следует указать имя приложения и указать тип приложения «iFRAME». После создания приложения в разделе управления приложением можно получить специальный ключ – private key. Его нужно указать в файле App.xaml.cs вашего приложения.

public partial class App
{
    protected override string PrivateKey
    {
        get { return "31ce536824a120e24ea73ad80d5a8dd8 "; }
    }

После этого можно собрать приложение. Для удобства разработчиков SDK сам копирует нужные файлы в папку Publish, а также создает архив для удоства загрузки на сервер. Для размещения приложения вы можете использовать два варианта - разместить полученные файлы на собственном сервере, либо воспользоваться предложением Mail.Ru и разместить приложение на их серверах.

Если вы используете собственный хостинг, то в корне сервера вам следует разместить файл «receiver.html». Например, если вы размещаете ваше приложение по адресу http://mymir.oogsoft.com/apps/mailru/testapp1/, то путь для размещения этого файла должен быть http://mymir.oogsoft.com/receiver.html.

Если вы хотите использовать ресурсы Mail.Ru для размещения приложений, то следует перейти во вкладку хостинг и загрузить все необходимые файлы.

Загрузка файлов в Мой мир

Как я уже упомянул, Мой мир@Mail.Ru Silverlight SDK автоматически упаковывает все файлы в архив для удобства загрузки. Вам достаточно загрузить один файл «publish.zip» и его содержимое будет распаковано и помещено на сервер.

После размещения вашего приложения на сервере следует задать пути до файлов приложения. Для этого нужно перейти на вкладку «Настройки iFrame» и указать пути.

Загрузка файлов в Мой мир

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

Наше приложение готово к употреблению! После того, как приложение будет готово, его следует объявить публичным. Для этого необходимо сменить статус приложения на вкладке «Публикация».

Сколько стоит?

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

Feedback

В процессе работы над SDK мы постарались сделать его максимально удобным для использования. Однако, мы понимаем, что любая разработка не идеальна. Поэтому мы с огромным удовольствием выслушаем ваши замечания и предложения по улучшению продукта. С другой стороны, проект не является комерческим и мы рассчитываем на ваше понимание – далеко не всегда мы сможем выполнить все ваши пожелания.

Благодарности

При работе над проектом свою посильную помощь внесли следующие люди:

Поэтому я бы хотел поблагодарить их публично оперативную и слаженную работу. Ура!

Ссылки

Кроме того, на портале Techdays.Ru доступен мой доклад про то, как разрабатывать социальные приложения на Silverlight.

12.07.2010 19:43 UTC+4
Аватар
13.07.2010 08:42 UTC+4
Интересно, почему разработчики библиотеки решили использовать фабрику для создания друзей? var friends = SocialFactory.Create (); Ведь мы не создаем друзей (позабавило :), а получаем их от сервиса, например можно так: var friends = SocialFactory.Get .Get( (result, error) => { ... } );
Аватар
13.07.2010 08:46 UTC+4
Потому что фабрика возвращает объект по работе с друзьями, а не самих друзей :)
Аватар
10.02.2011 20:43 UTC+4
А вы мне можете через что-нибудь передать архив с файлами для хостинга?Мне нужно все то,что написано в помощи по созданию..Друзья ,фото и т.п. ... У меня незнаю почему,но не запускается именно SDK:Мой Мир...Что делать...И как вообще потом внешний вид приложения настраивать?Ну например постройки...Вот мой e-mail:pasha_98@bk.ru или zloy.pasha@mail.ru.Ответьте пожалуйста.!!!
Аватар
11.02.2011 08:38 UTC+4
Не совсем понял, что от меня требуется.
Аватар
11.02.2011 08:50 UTC+4
Нет..Просто вы не могли бы мне архив для хостинга приложения передать?
Аватар
11.02.2011 09:20 UTC+4
Какой архив? :)
Почему когда я выбираю МОй мир программа выдает ошибку?
Аватар
10.02.2011 05:43 UTC+4
Расскажите больше об ошибке :-)
Аватар
13.07.2010 15:25 UTC+4
А как отлаживать такое приложение. Ведь по f5 оно работать на локальной машине не будет
Аватар
13.07.2010 15:34 UTC+4
К сожалению, в данный момент нет простого способа отладки.
Аватар
09.08.2010 20:16 UTC+4
Здравствуйте Сергей! Подскажите пожалуйста как получить список своих фотоальбомов и список фотографий в них. У Вас в библиотеке есть интерфейс Oogsoft.MyMir.SilverlightAPI.Photos.IPhotos в котороем есть метод GetAlbums, но первый параметр сбивает с толку. Где брать список ИД альбомов. С уважением, Сергей.
Аватар
11.08.2010 07:32 UTC+4
Здравствуйте. Про укажите null вместо строки с идентификаторами: photos.GetAlbums(null, ...)
Аватар
21.08.2010 00:16 UTC+4
Здраствуйте Сергей! Как получить параметры переданные апликации (иднтификатор пользователя, ключ аутентификации, и т.п)? Что-то я не нашел никаких проперти в SocialApplication.
Аватар
21.08.2010 09:22 UTC+4
Добрый день, Евгений. А зачем вам нужны эти данные?
Аватар
22.08.2010 10:44 UTC+4
Эти данные нужны мне для передачи в мой веб сервис, а локально для определения установил пользователь приложение в Мой мир или еще нет, ну и может еще для чего.
Аватар
22.08.2010 10:47 UTC+4
На данный момент нет способа получить эти данные стандартным путем. Возможно, мы добавим это в следующей версии. Тем не менее, можно воспользоваться "хаками" через рефлексию. Если не понятно как - напишите мне на почту, я покажу пример.
Аватар
16.10.2010 19:12 UTC+4
Сергей, добрый день. SDK очень полезен. Спасибо огромное. Приведите пожалуйста пример, как отладить такие приложения. спасибо.
Аватар
16.10.2010 20:11 UTC+4
Спасибо и вам за отзыв. На счет отладки - сейчас нет простого способа того, как отлаживать приложение непосредственно на сервере. Мы думаем над решением проблемы.
Аватар
16.10.2010 20:23 UTC+4
Хорошо, будем ждать. И еще вопросик: Вы в своей презентации на techdays.ru упомянули, что кроме серверов mail.ru приложение можно размещать и на своих машинах. Что для этого необходимо? Спасибо.
Аватар
16.10.2010 20:41 UTC+4
Просто размещаете приложение у себя на сервере, а в настройках приложения в mail.ru указываете URL на свой сервер.
Аватар
17.10.2010 19:03 UTC+4
Добрый день, возникла такая проблема, при создании нового Silverlight приложения, используя SDK mail.ru выбивает такого рода ошибку: The imported project "C:\Program Files\MSBuild\Microsoft\Silverlight\v4.0\Microsoft.Silverlight.CSharp.targets" was not found. Confirm that the path in the declaration is correct, and that the file exists on disk.
Аватар
17.10.2010 19:11 UTC+4
Проверьте, установлены ли у вас инструменты для разработчика приложений Silverlight 4. Если вы используете Express-редакцию, то нужно работать из Visual Web Developer.
Аватар
02.04.2011 20:09 UTC+4
У меня точно такая же ошибка,я ссылку на фото давал.
Аватар
17.10.2010 19:05 UTC+4
Странно что при создании обычного Silverlight приложения ошибки нет, а именно при использовании SDK от mail.ru появляется такая проблема, не могли бы вы обьяснить в чём проблема?
Аватар
17.10.2010 19:44 UTC+4
Всё! Проблема решена путём инсталляции Silverlight4_Tools, хотя непонятно почему вижала выдавала ошибку, вроде для сильверлайта с VS 2010 всё идёт сразу, а тут качать пришлось отдельно...
Аватар
02.12.2010 21:41 UTC+4
to Sergey Zwezdin: А планируете выпустить SDK для Delphi Prism?
Аватар
02.12.2010 21:55 UTC+4
Нет. А нужно? :)))
Аватар
02.12.2010 22:22 UTC+4
Ну, кому-то нужно ))
Аватар
02.04.2011 20:10 UTC+4
А подскажите,где качали?
Аватар
23.01.2011 10:29 UTC+4
Почему когдая устонавливаю mail.ru SDK выходит вот такая ошибка http://pics.kz/view/2035197 помогите чем можте
Аватар
23.01.2011 10:42 UTC+4
Потому что поддерживается разработка только в рамках языка программирования C# (Visual Basic не поддерживается).
Аватар
07.03.2011 17:52 UTC+4
А обязательно нужно Visual Studio 2010-у меня нету, а скачивать долго???ПОМОГИТЕ!!!
Аватар
07.03.2011 18:01 UTC+4
Обязательно.
Аватар
08.03.2011 12:51 UTC+4
Скажите-на каком сайте можно скачать Visual Studio 2010???F то я сегодня скачал-а там при установке нужно отправить сообщение для получения кода-я не стал отправлять-много денег сдерут, а создать приложение очень хочется!!!!Если вы знаете такой сайт-напишите пожалуйста)))И ещё один вопрос:Можно ли на приложениях зарабатывать реальные деньги?????Заранее огромное спасибо)))
Аватар
08.03.2011 16:04 UTC+4
http://www.microsoft.com/ru/ru/softmicrosoft/vsexpress.aspx http://download.microsoft.com/download/C/3/1/C3171EE9-20C4-4B7F-9D47-584D0BBFB0A1/VS2010ExpressRUS.iso Абсолютно бесплатная Visual Studio 2010 Express.
Аватар
08.03.2011 16:26 UTC+4
Огромное спасибо))))Если что-буду обращаться к вам!!!
Аватар
09.03.2011 05:26 UTC+4
На здоровье!
Аватар
08.03.2011 16:55 UTC+4
Я хочу создать приложение-в виде файтинга-типо: я-удар рукой,ч-удар ногой,вверх-прыжок и т.д-какие программы для этого нужны???А деньги вложенные через терминал оплаты для игровой валюты в игре будут идти мне на счёт???Как создам-дам название приложения-поиграете)))
Аватар
09.03.2011 05:28 UTC+4
Попробуйте посмотреть доклады по Silverlight на портале techdays.ru - возможно, некоторые вопросы отпадут сами собой. Что касается вопросов оплаты - лучше уточнять у mail.ru.
Аватар
09.03.2011 12:52 UTC+4
Я прочитал весь ваш сайт - просто супер!!!Так держать-продолжайте в том же духе!!!Возможно я последую по вашим стопам!!!Как вы думаете-хорошая идея???
Аватар
09.03.2011 12:55 UTC+4
А как можно создать свой сайт????А то я играю на гитере-и пою песни,пишу книгу,создаю приложения-хочу создать что-то вроде фан-клуба!!!!Может есть сайты по созданию сайтов????Или советы!!!
Аватар
09.03.2011 14:30 UTC+4
http://techdays.ru/
Аватар
09.03.2011 20:28 UTC+4
Я разработчика одного приложения-файтинга "БОЙ С ТЕНЬЮ" в моём мире спросил какие программы нужны-он сказал, что для разработки файтинга - нужно человек 30 и пол миллиона рублей на расходы!!!Каково ваше мнение на этот счёт???Могу ли я в одиночку сделать отличное приложение и в тоже время- не тратя никаких денег????
Аватар
09.03.2011 20:32 UTC+4
Мне этот же пацан сказал что на поддержку игрового сервера(приложения в моём мире) нужно 4000 долларов в месяц-я уверен, что он гонит!!!А вы как думаете???
Аватар
02.04.2011 20:05 UTC+4
Когда выбираю SDK Мой Мир выдает ошибку Вот ссылка на фото:http://www.photoshare.ru/data/73/73602/1/4znrqx-m2i.jpg
Аватар
03.04.2011 09:48 UTC+4
Подозреваю, что у вас не установлен Silverlight4 SDK.
Аватар
03.04.2011 21:18 UTC+4
А вот даже если смотреть Ваш урок на techdays.ru все равно не понятно какие вы кнопки на клавиатуре нажимаете:))
Аватар
02.04.2011 21:00 UTC+4
А где можно посмотреть видео урок по созданию приложений?
Аватар
03.04.2011 09:51 UTC+4
Можете посмотреть на techdays.ru - http://www.techdays.ru/videos/2798.html
Аватар
03.04.2011 07:52 UTC+4
А почему на сайте techdays.ru,когда захожу смотреть обучающее видео сайт выдает ошибку?
Аватар
03.04.2011 09:49 UTC+4
Какой сайт? techdays.ru?
Аватар
03.04.2011 21:16 UTC+4
Да
Аватар
17.04.2011 01:27 UTC+4
Порекомендуйте пожалуйста характеристики сервера для приложений с большими нагрузками, потянет ли VPS ?
Аватар
18.04.2011 07:36 UTC+4
Смотря какая нагрузка и какая конфигурация VPS.
Аватар
17.04.2011 14:54 UTC+4
Здравствуйте! А действительно во сколько обойдётся аренда сервера для приложения с большёй посещаемостью?Тут товарищ писал про 4000$ в месяц, думаю слишком круто! VPS потянет? Хочется чтоб всё работало как часы, но и переплачивать не хочется.
как сделать приложение на подобие легенды наследия драконов?
Аватар
13.05.2011 21:08 UTC+4
А у вас где-нибудь есть обучение по созданию приложение (ФЛЭШ),только через Adobe Flash...Если есть-то дайте ссылку.Мне кажется,что флэш-лучше...Это уже проверенная технология.
Аватар
14.05.2011 09:48 UTC+4
а где найти програму для разроботки приложений
Аватар
18.05.2011 09:24 UTC+4
А можно ли сделать мобильную версию?Подскажите... -Мобильную версию этого же приложение (о котором Вы говорили).
Аватар
18.05.2011 09:28 UTC+4
Если постараться, то конечно можно. Но не в рамках этого SDK.
Аватар
18.05.2011 09:31 UTC+4
А какой SDK будет использоваться? И вы не подскажите,где можно посмотреть обучение по созданию приложение в Adobe Flash?
Аватар
18.05.2011 09:33 UTC+4
Не уверен, что есть такой. Нужно исследовать или делать самому. Про Flash не могу подсказать.
Аватар
18.05.2011 09:35 UTC+4
Вы имеете ввиду самому-мне делать?
Аватар
18.05.2011 09:36 UTC+4
Как один из вариантов.
Аватар
18.05.2011 09:39 UTC+4
Да,и еще когда нажимаю на кнопку "Друзья"-пишет:"Неправильный результат из-за исключения,возникшего во время операции".Что делать?
Аватар
21.05.2011 18:59 UTC+4
Вот вы указывали строку для получения картинки (фото) друга: А какой код использовать,чтобы получать имя,пол,возраст,день рождения,и чтобы при нажатии нажатии на друга переходило в его мир?
Аватар
20.05.2011 22:38 UTC+4
А вот вы сделали Для получения фото...А написать строку для получения имени,пола,дня рождения.И можно ли сделать по нажатию на пользователя переход в его мир?
Аватар
09.06.2011 12:51 UTC+4
Здравствуйте Сергей!Я установил файл MyMirSetup.msi,что мне это дало и в какой именно программе идёт создание приложения?
Аватар
14.06.2011 07:47 UTC+4
Ну в этой статье я как раз и рассказывал что вам это дает.
Аватар
27.06.2011 19:19 UTC+4
Здравствуйте Сергей!подскажите пожалуйста почему когда я хочу создать новый проект и нажимаю на "мой мир" он выдаёт мне ошибку "C:\Documents and Setting\Admin\Local Setting\Temp\mvvtc5w5.vm2\Temp\mymir19.csproj(102.3): импортированный текст C:\Program Files\MSBuild\Microsoft\Siverlight\v4.0\Microsoft.Siverlight.CSharp.targets не обнаружен. Проверьте путь в объявлении и наличие файла на диске.Подскажите что делать?
Аватар
27.06.2011 19:22 UTC+4
Здравствуйте. Установите Silverlight 4 SDK.
Аватар
30.06.2011 18:26 UTC+4
Your App generates an error with no information, is the reason platform update?
Аватар
30.06.2011 19:48 UTC+4
Hi, every time i send method to IFriends.Get i recieve error code: 104 Incorrect signature., Any Sugestions?
Аватар
30.06.2011 20:01 UTC+4
Send your code to me.
Аватар
30.06.2011 20:09 UTC+4
https://rapidshare.com/files/1481604440/MyMirTestApp.rar thanks for quick reply.
Аватар
04.07.2011 08:11 UTC+4
I can't download from rapidshare. Can you use sendspace.com?
Аватар
04.07.2011 11:04 UTC+4
http://www.sendspace.com/file/ogvlcg
Аватар
05.07.2011 08:55 UTC+4
Hi Nika. Your code works fine. Do you use correct Private Key from mail.ru platform?
Аватар
05.07.2011 11:28 UTC+4
yep, i was using the wrong key, thanks. and do you plan to add login with mail.ru account?
Аватар
05.07.2011 12:13 UTC+4
Nice. No, we have no any plans to integrate authentication into Silverlight SDK.
Аватар
04.07.2011 23:07 UTC+4
does this sdk supports scenario like login in to site with mail.ru account?

Сергей Звездин

Сергей Звездин

Сергей Звездин: занимается разработкой программного обеспечения на платформе Microsoft .NET. Является обладателем статусов Microsoft MVP и Microsoft Regional Director.

Читать дальше →

Записи

  • Архив
  • Обсуждаемые

Twitter

Most Valuable Professional (MVP) Microsoft Regional Director