Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Где можно найти готовые Snippets-ы для C#, Подскажите 
:(
    Опции темы
ivashkanet
  Дата 25.2.2006, 13:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 47
Всего: 149



Где можно найти готовые Snippets-ы для C# ?

Использую Microsoft Visual Studio 2005 и C#.

Snippets-ов для VisualBasic завались (на все случаи жизни), а C# как то обделили.
Только для if, for и т.д.

Подскажите где можно взять похожие для C#.


PM MAIL WWW ICQ   Вверх
Ch0bits
Дата 25.2.2006, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Python Dev.
****


Профиль
Группа: Завсегдатай
Сообщений: 2124
Регистрация: 21.2.2005
Где: Казань

Репутация: 9
Всего: 62



Цитата(ivashkanet @ 25.2.2006, 13:43 Найти цитируемый пост)
Snippets-ов

А что это? smile
PM WWW   Вверх
mr.DUDA
Дата 25.2.2006, 17:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Что-то я тоже ничего не нахожу... smile


--------------------
user posted image
PM MAIL WWW   Вверх
Exception
Дата 25.2.2006, 17:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 29
Всего: 186



PM   Вверх
ivashkanet
Дата 25.2.2006, 18:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 47
Всего: 149



mr.DUDA и Ch0bits, code snippets - шаблоны кода (вроде все правильно написал, так они и названы в Visual Studio 2005 smile)

Exception, спасибо, но мне нужен большой архив разных snippets-ов (читай шаблонов кода), как для VB в самой студии. А потом по мере появления вопросов в них разбираться. smile

PM MAIL WWW ICQ   Вверх
Ch0bits
Дата 25.2.2006, 19:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Python Dev.
****


Профиль
Группа: Завсегдатай
Сообщений: 2124
Регистрация: 21.2.2005
Где: Казань

Репутация: 9
Всего: 62



smile
snippets - обрезок, кусок, лоскут, отрезок, отрывок smile
Неужели нельзя было назвать code templates. smile

Это сообщение отредактировал(а) Ch0bits - 25.2.2006, 19:47
PM WWW   Вверх
mr.DUDA
Дата 25.2.2006, 19:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Цитата(Ch0bits @ 25.2.2006, 18:46 Найти цитируемый пост)
Неужели нельзя было назвать code templates.

Это вопрос к М$...


--------------------
user posted image
PM MAIL WWW   Вверх
ivashkanet
Дата 26.2.2006, 00:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 47
Всего: 149



Ch0bits,
Цитата
snippets - обрезок, кусок, лоскут, отрезок, отрывок 
Неужели нельзя было назвать code templates

Не я это придумал, смотри сам: smile
[IMG*]file://localhost/d:/Snippets.jpg[/IMG*]
(Сдесь длжна быть картинка: по нажатию правой кнопки появляеться меню
в котором написано Insert Snipet)
Так что вопрос не ко мне. smile

А вообще code snippets-ы вещь классная.
Часто просто лень набирать даже самое простое, цикл for например (мысль рвется
вперед и не желает ждать медленные пальцы). А с помощью code snippets-ов
псе проходит в несколько секунд.
1. Набрал for, либо правая миши --> insert Snippet -->for
[IMG*]file://localhost/d:/Пример1.jpg[/IMG*]
2. Нажал tab --появился "обрезок" кода (почти готовый код, но все же...).
[IMG*]file://localhost/d:/Пример2.jpg[/IMG*]
3. Осталось его доработать:
а) Изменить переменные на нужные.
б) Добвить тело цикла.
ВСЕ!!!

Это для ленивых (или экономящих время!?) smile , но есть и более полезные code snippets-ы.
Например:
1) Код для нового исключения или read-only свойства делается за секунды:
Набрал sortcut (не знаю как точнее перевести) exception, нажал
тот же tab, и готово -- 12 строчек кода нового исключения.
[IMG*]file://localhost/d:/Пример3.jpg[/IMG*]
2) Мне лично (может кому еще) всегда было легче разбираться в готовом коде, а не читать
длинные тексты о том что и как работает!!!
3) Самое главное можно не только пользоваться готовыми code snippets-ами,
но и создавать новые (особой хитрости нет). smile

Так вот вернемся к нашим "баранам" (см. тему).
Для VB этих code snippets-ов куча -- 290 штук (по количеству файлов в каталоге
Microsoft Visual Studio 8\VB\Snippets\1033\ - (минус) 1 xml-файл
с информацией о них). И все так красиво. Все по подкаталогам разложено
database, Security, collections and arrays. Прямо душа радуется.
[IMG*]file://localhost/d:/Папки.jpg[/IMG*]
А для C# всего 51 штук smile. А кто то говорил, что C# создавлся специально для MS VS,
где справедливость.

Так вот: Если кто знает где взять или у кого есть свои наработки по этой теме
поделитесь, пожалуйста такой полезной штукой.

Зарание спасибо.

P.S. Может стоит открыть новую тему в которой люди будут обмениваться своими
snippets-ами и делиться наработками по этой теме.

P.P.S. Размер каталога snippet-ов для VB -- 425 Кб, а в архиве -- 199.

P.P.P.S. Не смог добавить картинку в сообщение:
Ошибка Динамические страницы в тэгах запрещены[IMG]
Пришлось добавить * в тэг и добавить к сообщению архив, но и его
не пропустили smile smile smile . Помогите и с этим.

Это сообщение отредактировал(а) ivashkanet - 26.2.2006, 01:12

Присоединённый файл ( Кол-во скачиваний: 8 )
Присоединённый файл  Pictures.jpg 82,25 Kb
PM MAIL WWW ICQ   Вверх
Exception
Дата 26.2.2006, 01:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 29
Всего: 186



Так чем тебе тот сайт не понравился? Там и есть куча нужных тебе snippet'ов.
PM   Вверх
ivashkanet
Дата 26.2.2006, 01:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 47
Всего: 149



Exception, я ведь говорю: мне не нужен конкретный snippet -- его я и сам могу написать.
Мне нужна база snippets-ов. Но и на этом спасибо.

Это сообщение отредактировал(а) ivashkanet - 26.2.2006, 01:20
PM MAIL WWW ICQ   Вверх
Exception
Дата 26.2.2006, 11:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 29
Всего: 186



PM   Вверх
ivashkanet
Дата 26.2.2006, 11:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 47
Всего: 149



Наверное придется начать мне.
Точность информации не гарантирую (VS и C# увидел всего 2 месяца назад,
а свой первый snippets написал сегодня утром), но все работает (почти smile, см. ниже)


Файл snippets-а -- это обыкновенный xml-файл со специфической структурой.
Описывать её не буду (сам не сильно в ней разобрался smile), но свой snippets
создал и с этими знаниями.

Пример snippets-а саздающего переопеределение бинарного оператора
Код

<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
  <CodeSnippet Format="1.0.0">
    <Header>
      <Title>
        ...publlic ... operatop ?(...
        Переопределение оператора
      </Title>
      <Shortcut>opover</Shortcut>
      <Description></Description>
      <Author>ivashkanet ([email protected])</Author>
   </Header>
    <Snippet>
      <Declarations>
        <Literal>
          <ID>OperandType</ID>
          <Function>ClassName()</Function>
          <ToolTip>Тип операции и операндов</ToolTip>
          <Default>ClassNamePlaceholder</Default>
        </Literal>
        <Literal>
          <ID>Operation</ID>
          <Type>String</Type>
          <ToolTip>Сам оператор</ToolTip>
          <Default>+</Default>
        </Literal>
        <Literal>
          <ID>Operand1</ID>
          <Type>String</Type>
          <ToolTip>Первый операнд</ToolTip>
          <Default>a</Default>
        </Literal>
        <Literal>
          <ID>Operand2</ID>
          <Type>String</Type>
          <ToolTip>Второй операнд</ToolTip>
          <Default>b</Default>
        </Literal>
        <Literal>
          <ID>OperandType</ID>
          <Type>String</Type>
          <ToolTip>Тип операции и операндов</ToolTip>
          <Default>Type</Default>
        </Literal>
      </Declarations>
      <Code Language="CSharp">
        <![CDATA[public override static $OperandType$ operator $Operation$ ($OperandType$ $Operand1$, $OperandType$ $Operand2$)
{
      return $Operand1$ $Operation$ $Operand2$;
}]]>
      </Code>
    </Snippet>
  </CodeSnippet>
</CodeSnippets>


Все по порядку:

В теге <Header></Header> пишется информация о
snippets-e: подсказка, ключевое слово (именно его нужно набрать, после чего
при нажатии на tab, появиться шаблон), ...

Дальше в теге <Snippet></Snippet> пишется код шаблона (тег <Code Language="CSharp"></Code>, а в тегах <Literal></Literal> объявляются
используемые "переменые" (все что в snippets-е меняется, зеленые прямоугольники).
Там можно указать имя, тип, значение по умолчанию.
Можно указать и более сложное значение например:
Код

<Literal>
          <ID>OperandType</ID>
          <Function>ClassName()</Function>
          <ToolTip>Тип операции и операндов</ToolTip>
          <Default>ClassNamePlaceholder</Default>
</Literal>

Которое заменится на имя класса. Как это работает и какие еще есть возможности не знаю.
(Содрал 1:1 с snippets-а от Microsoft smile )

Эти "переменные" записываются в тексте кода в долларах: $OperandType$ и заменяются автоматически. Причем зеленый квадрат будет обрамлять только первое вхождение
"переменной" и только его можно изменить, остальное меняется автоматом.

То есть примудростей немного, но есть большие возможности.

Как это все подклюсить к VS? Тоже не сложно:

1. Создать в любом текстовом редакторе файл "Имя snippet-а.snippet".
2. Сохранить его в папке Microsoft Visual Studio 8\VC#\Snippets\1033\Visual C#\
Либо через диалог Tools-->Code snippets manager-->Add регистрируем
свою папку (например MySnippets), как папку содержащую шаблоны
И можно добавлять файлы в нее.
3. ВСЕ!!! snippet зарегистрирован. Пользуйтесь (набраем "shortcut", +tab)

Еще приятная вещь -- ссылка появляется в списке объектов (object Membet List),
поэтому все еще проще: начало "ключевого слова" +tab +tab (т.е. его еще и запоминать
необязательно smile)

Еще пример (сериализация объекта):
Код

<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
  <CodeSnippet Format="1.0.0">
    <Header>
      <Title>
        Сериализация объекта
      </Title>
      <Shortcut>serialize</Shortcut>
      <Description></Description>
      <Author>ivashkanet ([email protected])</Author>
    </Header>
    <Snippet>
      <Imports>
        <Import>
          <Namespace>System.Runtime.Serialization.Formatters.Binary</Namespace>
        </Import>
        <Import>
          <Namespace>System.IO;</Namespace>
        </Import>
      </Imports>
      <Declarations>
        <Literal>
          <ID>FileName</ID>
          <Type>String</Type>
          <ToolTip>Имя файла</ToolTip>
          <Default>Data.bin</Default>
        </Literal>
        <Literal>
          <ID>FileMode</ID>
          <Type>String</Type>
          <ToolTip>Тип</ToolTip>
          <Default>FileMode.Create</Default>
        </Literal>
        <Literal>
          <ID>FileAccess</ID>
          <Type>String</Type>
          <ToolTip>Тип доступа</ToolTip>
          <Default>FileAccess.Write</Default>
        </Literal>
      </Declarations>
      <Code Language="CSharp">
        <![CDATA[BinaryFormatter bf = new BinaryFormatter();
   FileStream fs = new FileStream
      ("$FileName$",$FileMode$, $FileAccess$);
   bf.Serialize(fs,this);
   fs.Close();]]>
      </Code>
    </Snippet>
  </CodeSnippet>
</CodeSnippets>


P.S. Не смог разобраться как изменить теги
Код

     <Imports>
        <Import>
          <Namespace>System.Runtime.Serialization.Formatters.Binary</Namespace>
        </Import>
     </Imports>

По логике они добавляют новое пространство имен, но ничего такого я у себя не увидел.
Хотя я содрал это из VB, а там как раз Imports, а не Using.
Так вот для VB это работает, а для С# нужны свои теги smile .
PM MAIL WWW ICQ   Вверх
ivashkanet
Дата 26.2.2006, 12:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 47
Всего: 149



Цитата(Exception @ 26.2.2006, 11:40 Найти цитируемый пост)
http://msdn.microsoft.com/vstudio/download...ts/default.aspx

Спасибо, Exception, именно то что надо. Класс!!!

А я все утро корябал свое сообщение. Хотя может быть эта информация кому нибудь пригодится.
Да и тема еще не закрыта. Ведь можно написать свой специальный snippet и поделиться им с остальными.

P.S. smile Может кто поможет мне со вставкой картинок в сообщение???
PM MAIL WWW ICQ   Вверх
Exception
Дата 26.2.2006, 12:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 29
Всего: 186



С картинками проблема - чтобы их вставить, нужно их скинуть на какой-нибудь север, а потом давать ссылку.
Кстати, глянь сюда:
http://www.gotdotnet.com/codegallery/codeg...ad-f87e4ee6bc39
Вроде как работающий Snippet Editor.
Добавлено @ 13:03
Вот еще классная штука, но, похоже, она только для VB .NET..
PM   Вверх
ivashkanet
Дата 26.2.2006, 14:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 47
Всего: 149



Цитата(Exception @ 26.2.2006, 12:53 Найти цитируемый пост)

Кстати, глянь сюда:
http://www.gotdotnet.com/codegallery/codeg...ad-f87e4ee6bc39
Вроде как работающий Snippet Editor.

Этот редактор сделан левой ногой, да еще какими-то умельцами.
Хотя рабочий, тут вопросов нет!

Editor от MS почему-то вообще не запустился. smile

Но все равно, спасибо.
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.1145 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.