Как стать автором
Поиск
Написать публикацию
Обновить

Делаем расширение StartPage для Visual Studio 2010

Время на прочтение6 мин
Количество просмотров1.7K
Добрый день.

Сегодня, установив новую «феничку» для студии захотелось попробовать самому поэкспериментировать с расширениями для студии. Строить мы будем расширение для стартовой страницы VS. Для того чтобы вообще возможно было делать расширения нужно установить Visual Studio 2010 SDK

В чистом SDK нет шаблонов проекта для создания стартовой страницы. Хотя можно вручную создать xaml страницу и заменить ее в директориях где установлена студия. Но тогда нельзя делиться своим расширением и можно ли это назвать расширением? На помощь приходит Custom Start Page Project Template Этот шаблон позволяет очень быстро и просто создавать свои собственные страницы приветствия (да еще и как).

Итак, как делать своё расширение для стартовой страницы Visual Studio 2010

Подготовка


После установки всех SDK и шаблонов проекта, создаем новый проект CustomStartPage

image

Шаблон изначально генерирует стандартные элементы стартовой страницы и новую вкладку с нашим контролом. StartPage — это файл с xaml разметкой который мы можем поменять как хотим. Проект создан с разметкой и цветовой схемой как в оригинальной VS. Вот так выглядит проект после создания и наш контрол, который мы будем наполнять тем чем хотим.

image

Разметка


В разметку MyControl.xaml пишем код разметки Rss Reader’а

<UserControl x:Class="HabrStartPageControl.MyControl"
       xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
       xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
       xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
       xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
       xmlns:vsfx="clr-namespace:Microsoft.VisualStudio.Shell;assembly=Microsoft.VisualStudio.Shell.10.0"
       mc:Ignorable="d" d:DesignHeight="414" d:DesignWidth="690">
  <UserControl.Resources>
    <XmlDataProvider x:Key="rss" Source="http://habrahabr.ru/rss/new/" XPath="/rss/channel"/>
  </UserControl.Resources>

  <!-- Start Page controls can use VsBrushes color table resources. -->
  <Grid Background="{DynamicResource {x:Static vsfx:VsBrushes.StartPageBackgroundKey}}">
    <Border Margin="20" CornerRadius="10" BorderThickness="3" BorderBrush="{DynamicResource {x:Static vsfx:VsBrushes.StartPageSeparatorKey}}">
      <DockPanel Background="#FFFFFF" DataContext="{Binding Source={StaticResource rss}, XPath=/rss/channel/item}">        
        <Label DockPanel.Dock="Top" Content="{Binding XPath=/rss/channel/title}" FontSize="14" FontWeight="Bold"/>        
        <ListBox DockPanel.Dock="Left" ItemsSource="{Binding}" IsSynchronizedWithCurrentItem="True" Width="300">
          <ListBox.ItemContainerStyle>
            <Style>
              <Setter Property="Control.Padding" Value="0"></Setter>
              <Style.Triggers>
                <Trigger Property="ListBoxItem.IsSelected" Value="True">
                  <Setter Property="ListBoxItem.Background" Value="#EEEEEE"></Setter>
                </Trigger>
              </Style.Triggers>
            </Style>
          </ListBox.ItemContainerStyle>
          <ListBox.ItemTemplate>
            <DataTemplate>
              <Grid Margin="3">
                <Grid.RowDefinitions>
                  <RowDefinition></RowDefinition>
                  <RowDefinition></RowDefinition>
                </Grid.RowDefinitions>
                <TextBlock FontWeight="Bold" Text="{Binding XPath=title}"></TextBlock>
                <TextBlock Grid.Row="1" Foreground="#8FACBA" Text="{Binding XPath=author}"></TextBlock>
              </Grid>
            </DataTemplate>
          </ListBox.ItemTemplate>
        </ListBox>
        <Frame Source="{Binding XPath=link}"/>
      </DockPanel>
    </Border>
  </Grid>
</UserControl>

* This source code was highlighted with Source Code Highlighter.


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

image

После установки VS SDK этот проект будет запускаться и устанавливаться в специальной версии VS – «Экспериментальный экземпляр». После того, как мы проверили все настройки и все установки — снять галочку “Deploy VSIX content to experimental instance for debugging” и после этого собранное расширение будет устанавливаться уже в рабочую VS.

image

Установка


Сохранив настройки и собрав версии проекта, можем смело ее установить. На выходе проект компилируется в расширение Visual Studio HabrStartPage.vsix. Установив расширение мы получим возможность наслаждаться новыми статьями хабра прямо с главной страницы VS. Для того, чтобы заменить StartPage после установки на нашу страницу, нужно в настройках изменить страницу вот так

image

И получим довольно симпатичный РСС ридер, с возможностью посмотреть статью прямо на странице VS.

image

А после установки наше расширение появится в списках расширений.

image

Заключение


Целью этой статьи было показать как просто делать свои расширения для Visual Studio 2010. На стартовую страницу можно повесить все что хочешь, а можно просто перекрасить страницу. В интернете полно маленьких и не сложные, а также больших и серьезных дополнений для VS. Теперь мы умеем делать это сами.

Расширение можно скачать с Visual Studio Gallery

Visual Studio 2010 SDK
Custom Start Page Project Template
Теги:
Хабы:
Всего голосов 27: ↑23 и ↓4+19
Комментарии2

Публикации

Ближайшие события