Visual Studio
Инструменты Visual Studio
Поиск…
Кодовая линза
Кодовый объектив - это простой способ узнать, что происходит с кодом. Здесь вы можете найти изображение с количеством ссылок метода или класса.
Если вы не видите объектив кода, посмотрите этот вопрос: Отсутствует ссылка на ссылки CodeLens в VS 2015 Community edition
обрывки
презентационное
Поскольку Visual Studio 2005 вы можете создавать фрагменты кода Intellisense. Это позволит вам сгенерировать некоторый код, просто набрав одно ключевое слово и дважды нажмите клавишу табуляции .
Использование кода
Код XML, необходимый для создания фрагмента кода Intellisense, приведен ниже:
<?xml version="1.0" encoding="utf-8"?> <CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/CodeSnippet"> <CodeSnippet Format="1.0.0"> <!-- format attribute is required --> <Header> <!-- 1 --> <Title></Title> <Author></Author> <Shortcut></Shortcut> <Description></Description> <Keywords> <Keyword>abc<Keyword> <Keyword>def<Keyword> </keywords> </Header> <Snippet> <!-- 2 --> <Imports> <!-- 2.1 --> <Import> <Namespace>System</Namespace> </Import> </Imports> <Declarations> <!-- 2.2 --> <Literal Editable="true/false"> <!-- 2.2.1 --> <ID>example</ID> <Type>System.String</Type> <ToolTip>A tip you can show</ToolTip> <Default>default value</Default> <Function></Function> <!-- 2.2.2 --> </Literal> <Object> <!-- 2.2.1 --> <ID>example</ID> <Type>System.String</Type> <ToolTip>A tip you can show</ToolTip> <Default>default value</Default> <Function></Function> <!-- 2.2.2 --> </Object> </Declarations> <References> <!-- 2.3 --> <Reference> <Assembly>System.Data.dll</Assembly> </Reference> </References> <Code Language=""> <!-- 2.4 --> <![CDATA[ <!-- your code here if you use literals use dollar chars --> ]]> </Code> </Snippet> </CodeSnippet> </CodeSnippets>
В теге фрагмента есть два требуемых тега с заголовком «Заголовок» и «Сниппет». Вы можете найти более подробную информацию в следующих рубриках. Число, близкое к имени, является корреспондентом с цифрами в приведенном выше коде.
В элемент CodeSnippets может быть добавлено ноль или несколько элементов CodeSnippet.
1. Заголовок
В теге заголовка вы можете разместить определенную информацию об этом фрагменте и о том, что он делает. Важными тегами, которые вы можете использовать внутри этого тега, являются:
Элемент | Описание |
---|---|
заглавие | Название фрагмента. Этот атрибут требуется. |
автор | Автор фрагмента. |
кратчайший путь | Является ярлыком, который вы можете использовать для генерации кода. Обратите внимание, что это может содержать только буквы и цифры и должно начинаться с буквы. Примечание. Помните также, чтобы дать фрагменту хорошее и уникальное имя и ярлык. В противном случае это вызовет проблемы при импорте фрагмента в Visual Studio. |
Описание | Предоставляет дополнительную информацию об этом фрагменте, если вам это нужно. |
HELPURL | URL-адрес страницы справки в Интернете. |
Ключевые слова | Группирует один или несколько ключевых элементов. |
SnippetTypes | Группы
|
Исходная таблица (но редактирование): msdn.microsoft.com
2. Фрагмент
В теге фрагмента вы можете использовать три разных тега. Это может быть:
- импорт
- Объявления
- Код (обязательно)
- Рекомендации
Они объясняются ниже.
2.1 Импорт
Imports
содержит необходимые пространства имен, необходимые для кода. Используйте тег import внутри этого тега, и здесь вы можете поместить необходимые пространства имен с помощью Namespace
-tag.
2.2 Декларации
Declarations
могут использоваться для объявления некоторых литералов или объектов в вашем коде в Code
-tag. Дети - это литералы и предметы.
Литералы и объекты определяют литералы и объекты фрагмента кода, которые вы можете редактировать. Функциональность - это литералы и объекты одинаковые, но у них есть дополнительное ограничение типа.
Literal и object-tag могут содержать следующих дочерних элементов:
-
ID
: идентификатор литерала (обязательно) -
Type
: тип этого объекта, включая пространство имен и класс (требуется для объектов) -
ToolTip
: дает подсказку -
Default
: значение по умолчанию для этого объекта (обязательно) -
Functions
В отпечатках есть некоторые предопределенные литералы. Они перечислены ниже:
буквальный | подробности |
---|---|
$end$ | Помечает местоположение для размещения курсора после вставки фрагмента кода. |
$selected$ | Представляет текст, выбранный в документе, который должен быть вставлен в фрагмент при его вызове. Например, если у вас есть: A $selected$ is an object that I like.и слово было выбрано автомобилем при вызове шаблона, вы получите: A car is an object that I like. |
Функции в теге Literal или Object означают, что вы можете использовать функцию для генерации кода в зависимости от другого элемента. Есть три функции, которые я знаю:
функция | Описание | язык |
---|---|---|
GenerateSwitchCases (EnumerationLiteral) | Создает оператор switch и набор операторов case для членов перечисления, заданных параметром EnumerationLiteral. Параметр EnumerationLiteral должен быть либо ссылкой на литерал перечисления, либо тип перечисления. | Visual C # и Visual J # 1 |
ClassName() | Возвращает имя класса, содержащего вставленный фрагмент. | Visual C # и Visual J # 1 |
SimpleTypeName(TypeName) | Уменьшает параметр TypeName до его простейшей формы в контексте, в котором был вызван фрагмент. | Visual C # |
1 доступен только в Visual Studio 2005.
Исходная таблица: msdn.microsoft.com
Атрибуты для буквенных и объектных элементовТеги Literal и Object могут иметь некоторые необязательные атрибуты.
атрибут | Описание | Тип |
---|---|---|
Редактирование | Указывает, можно ли отредактировать литерал после добавления фрагмента кода. Значение по умолчанию этого атрибута равно true. | логический |
Исходная таблица: msdn.microsoft.com
2.3 Ссылки
Элементы ссылок на группы, содержащие информацию о ссылках на сборки для фрагмента кода. Это может содержать следующие элементы:
- Assembly: Содержит имя сборки по фрагменту кода (обязательно)
- Url: содержит веб-сайт, в котором содержится дополнительная информация о сборке
2.4 Код
Код - это код, который вы создадите между <![CDATA[
и ]]>
. Поместите ID
своего литерала между символами доллара, и Visual Studio попросит вас изменить это значение по умолчанию, если декларации заполнены. Здесь у вас есть пример для C # и VB для быстрого вызова.
<!-- ... Other code ... --> <Declarations> <Literal> <Id>variablename</Id> <Default>_myproperty</Default> </Literal> <Literal> <Id>propertytype</Id> <Default>int</Default> </Literal> <Literal> <Id>propertyname</Id> <Default>myproperty</Default> </Literal> </Declarations> <Code Language="CSharp"> <![CDATA[ private $propertyvalue$ $variablename$; public $propertyvalue$ $propertyname$ { get { return $variablename$; } set { $Variablename$ = Value; } } ]]> </Code> <!-- ... Other code ... --> <Declarations> <Literal> <Id>variablename</Id> <Default>_myproperty</Default> </Literal> <Literal> <Id>propertytype</Id> <Default>int</Default> </Literal> <Literal> <Id>propertyname</Id> <Default>myproperty</Default> </Literal> </Declarations> <Code Language="VB"> <![CDATA[ Private $variablename$ As $propertyvalue$ Public Property $propertyname$ As $propertyvalue$ Get Return $variablename$ End Get Set (ByVal value As $propertyvalue$) $variablename$ = value End Set End Property ]]> </Code> <!-- ... Other code ... -->
В обязательном атрибуте Language вы можете определить свой язык, на котором вы делаете фрагмент. Вы можете найти языки, которые вы можете использовать в следующей таблице.
язык | Ключевое слово | Доступно в следующих версиях |
---|---|---|
Visual C # | CSharp | 2005, 2010, 2012 и более поздние |
Visual Basic | VB | 2005, 2010, 2012 и более поздние |
XML | XML | 2005, 2010, 2012 и более поздние |
Visual J # | VJSharp | 2005, 2012 и более поздние |
C ++ | CPP | 2012 и более поздние |
JavaScript | JavaScript | 2012 и более поздние |
JScript | JScript | 2012 и более поздние |
SQL | SQL | 2012 и более поздние |
HTML | HTML | 2012 и более поздние |
CSS | CSS | 2012 и более поздние |
XAML | XAML | 2012 и более поздние |
Другие необязательные атрибуты:
атрибут | Описание |
---|---|
Разделитель | Задает разделитель, используемый для описания литералов и объектов в коде. По умолчанию разделитель равен $ . |
Добрый | Определяет тип кода, который содержит фрагмент, и, следовательно, место, в которое должен быть вставлен фрагмент кода для фрагмента кода для компиляции. |
Допустимые значения для переменной вида:
Значение | Описание |
---|---|
тело метода | Указывает, что фрагмент кода является телом метода и, следовательно, должен быть вставлен внутри объявления метода. |
метод decl | Указывает, что фрагмент кода является методом и, следовательно, должен быть вставлен внутри класса или модуля. |
тип decl | Указывает, что фрагмент кода является типом и, следовательно, должен быть вставлен внутри класса, модуля или пространства имен. |
файл | Указывает, что фрагмент - это полный файл кода. Эти фрагменты кода могут быть вставлены отдельно в файл кода или внутри пространства имен. |
любой | Указывает, что фрагмент можно вставлять в любом месте. Этот тег используется для фрагментов кода, которые не зависят от контекста, например комментариев. |
Исходные таблицы: msdn.microsoft.com
Импорт фрагмента в Visual Studio
Сохраните XML-код и дайте ему расширение
.snippet
.Вы можете добавить новый сделанный фрагмент в Visual Studio, нажав Control + K , Control + B или перейти в «Инструменты» → «Менеджер фрагментов кода ...» . Это откроется в следующем окне:
Выберите язык в поле со списком, для которого вы сделали фрагмент. нажмите «Импорт ...» и выберите файл, который вы создали.
Нажмите
"Finish"
. Если имя файла уже было использовано, Visual Studio попросит переопределить существующий файл. У вас есть три варианта:- Overwrite: перезаписывает файл. Вы можете использовать этот параметр, если вы отредактируете старый фрагмент.
- Переименовать: переход к переименованию файла в уникальное имя.
- Пропустить: отменяет импорт. Переименовывает файл в уникальное имя.
Вы также можете добавить новое местоположение со всеми сделанными фрагментами, щелкнув по кнопке «Добавить ...» в первом окне и выбрать папку в окне «Выбор папки» . Преимущество теперь в том, что в эту папку добавлен новый допустимый фрагмент, вы можете использовать его непосредственно в Visual Studio.
Примечание. Тест после импорта вашего фрагмента для ошибок, поэтому у вас нет проблем при использовании фрагмента. Вы всегда можете удалить или перезаписать фрагмент, если есть ошибка.
Точка интереса
Вы также можете просмотреть документацию на MSDN для получения дополнительной информации.
Переопределить инструменты слияния / сравнения
Получил инструменты | Варианты | Контроль источника | Visual Studio Team Foundation Server
нажмите «Настроить инструменты пользователя»:
Вы можете добавить отдельные переопределения для операций «Сравнить» и «Объединить». Нажмите «Добавить» и выберите операцию, которую вы хотите переопределить. Вам нужно будет ввести путь к используемому инструменту и точным аргументам, которые ожидает ваш инструмент. Например, чтобы использовать BeyondCompare, добавьте следующие аргументы «% 1% 2 / title1 =% 6 / title2 =% 7»:
Для слияния с BeyondCompare используйте Аргументы «% 1% 2% 3% 4 / title1 =% 6 / title2 =% 7 / title3 =% 8 / title4 =% 9"
В сообщении в блоге в 2006 году сотрудник MS Джеймс Мэннинг рассмотрел аргументы, ожидаемые различными инструментами: WinDiff, DiffDoc, WinMerge, Beyond Compare, KDiff3, Araxis, Compare It !, SourceGear DiffMerge, TortoiseMerge и Visual SlickEdit. Сообщение является хорошей отправной точкой, но не забудьте проверить актуальную документацию вашего инструмента.
Настоятельно рекомендуется не использовать для инструментов слияния, которые неспособны к 3-сторонним слияниям (например, WinMerge 2.x).
Основы Entity Framework
Entity Framework (EF) - это объектно-реляционный картограф, который позволяет разработчикам .NET работать с реляционными данными с использованием объектов, специфичных для домена. Это устраняет необходимость в большей части кода доступа к данным, который разработчикам обычно приходится писать.
Entity Framework позволяет создавать модель путем написания кода или использования полей и строк в EF Designer. Оба этих подхода могут использоваться для таргетинга на существующую базу данных или создания новой базы данных.
Источник и дополнительная информация: документация Entity Framework