Violet Tape некоторые мысли о разработке на платформе .Net

26Янв/100

Featured Common Controls

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

Библиотека устанавливается в GAC, создает новую панель инструментов в Visual Studio, добавляется в диалоговое окно «Add reference…». Как это сделать самостоятельно, вы можете прочитать в одной из предыдущих статей.

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

Source code Установщик компонентов

Далее я вкратце опишу компоненты, входящие в библиотеку.

12Янв/100

Самописные визуальные компоненты

Для чего это нужно?

В процессе каждодневной работы, разработчику  прикладных приложений, приходится создавать кучу новых визуальных компонентов, в широком смысле слова. Каждый UserControl формально является новым компонентом. Я создаю определенную конфигурацию компонентов из стандартного набора и использую это в программе. Я не считаю получившиеся компоненты по-настоящему «новыми» компонентами, потому что они полезны только для меня и только в определенной программе. Как правило, я не переношу такие компоненты в другие программы и не использую их повторно за пределами программного решения, где они были созданы. Но, время от времени, я обнаруживаю, что некоторые из них вышли удачными для многоразового использования.

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

Когда и изучил более плотно смарт тэги, я решил, что некоторые компоненты могут быть улучшены. Это примерно так же как использовать Extended методы для базовых классов или создания Domain Specific Language – вообщем, чтобы писать код было быстрее и легче. То же самое применимо и к компонентам.

Итак, вот некоторые причины, по которым появляются самописные компоненты:

  • Случайно – как результат проектирования интерфейса в целом;
  • Выделение общих частей из случайных компонентов;
  • Создание компонента с самого начала;
  • Расширение существующего компонента.
9Янв/102

Установка самописных компонентов

После того, как вы сделали собственные визуальные компоненты, я думаю, вы захотите их использовать в различных проектах, а впоследствии и поделится с миром наработками. Как их установить на панель инструментов в студии, как добавить эту библиотеку в “Add reference…” диалог и как избежать подводных камней в этом деле – все это будет описано в этой статье.

Подготовка сборки (assembly)

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

  1. Подписать сборку;
  2. Установить сборку в GAC;
  3. Добавить  в “Add reference…” диалог;
  4. Добавить в панель инструментов студии.

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

6Янв/100

Smart tag – Single Binding

Intro

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

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

Я собираюсь рассказать и показать, как создать такую же функциональность в смарт тэге, которую вы наблюдаете при задании биндинга в окне свойств.

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

3Янв/101

Smart tag – базовое применение

Intro

Долгое время я с удовольствием и радостью пользовался смарт тэгами. Вообще-то я долгое время даже не знал, как эта штука правильно называется, но это не мешало с пользой использовать смарт тэги. Некоторое время назад я начал разрабатывать собственные компоненты, но это не сильно сокращало время настройки пользовательского интерфейса. Очень много времени уходит на то, чтобы найти необходимое свойство в Property view, выставить нужное значение. Это не проблема, если приложение небольшое и надо настроить только пару экранов, но превращается в головную боль, когда у тебя более 30 сложных экранов с самописными компонентами. Вобщем я решил найти, как же делаются смарт тэги (эти маленькие чудесные треугольнички) и настроить их для самописных компонентов и некоторых стандартных.

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

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