Visual Studio
Herramientas de estudio visual
Buscar..
Lente de código
La lente de código es una forma sencilla de saber qué sucede con el código. Aquí puede encontrar una imagen con el número de referencias de un método o clase.
Si no puede ver la lente del código, consulte esta pregunta: Las referencias de CodeLens faltantes cuentan en la edición de la comunidad de VS 2015
Fragmentos
Intoducción
Desde Visual Studio 2005 puedes hacer fragmentos de código Intellisense. Esto le permite generar algo de código simplemente escribiendo una palabra clave y presionando dos veces la tecla de tabulación .
Usando el codigo
El código XML que necesita para hacer un Fragmento de código Intellisense se encuentra a continuación:
<?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>
En la etiqueta del fragmento, tiene dos etiquetas requeridas llamadas Encabezado y Fragmento. Puede encontrar más información en los siguientes encabezados. El número cerca del nombre son los correspondientes con los números en el código anterior.
Puede haber cero o más elementos CodeSnippet agregados al elemento CodeSnippets.
1. encabezado
En la etiqueta de encabezado, puede colocar información específica sobre el fragmento y lo que hace. Las etiquetas importantes que puedes usar dentro de esta etiqueta son:
Elemento | Descripción |
---|---|
Título | El título del fragmento. Este atributo es obligatorio. |
Autor | El autor del fragmento. |
Atajo | Es el atajo, que puedes usar para generar el código. Tenga en cuenta que esto solo puede contener letras y números y debe comenzar con una letra. Nota: recuerde también darle al fragmento un nombre y un atajo buenos y únicos. De lo contrario, dará problemas cuando importe el fragmento a Visual Studio. |
Descripción | Da más información sobre el fragmento de código si lo necesitas. |
HelpUrl | Un url para una página de ayuda en internet. |
Palabras clave | Agrupa uno o más elementos de palabras clave. |
SnippetTypes | Grupos de elementos
|
Tabla de origen (pero ediciones): msdn.microsoft.com
2. Fragmento
En la etiqueta de fragmento, puede utilizar tres etiquetas diferentes. Esto puede ser:
- Importaciones
- Declaraciones
- Código (requerido)
- Referencias
Estos se explican a continuación.
2.1 Importaciones
Imports
contienen los espacios de nombres necesarios que necesita para el código. Use la etiqueta de importación dentro de esta etiqueta y aquí puede colocar los espacios de nombres necesarios, cada uno con la etiqueta Namespace
.
2.2 Declaraciones
Declarations
se pueden usar para declarar algunos literales u objetos en su código en la etiqueta Code
. Los niños son literales y objetos.
Los literales y los objetos definen los literales y los objetos del fragmento de código que puede editar. Las funcionalidades son literales y los objetos son iguales, pero tiene una restricción de tipo adicional.
El Literal y la etiqueta de objeto pueden contener los siguientes hijos:
-
ID
: El ID del literal (requerido) -
Type
: el tipo de ese objeto, incluidos el espacio de nombres y la clase (requerido por los objetos) -
ToolTip
: da una sugerencia -
Default
: un valor predeterminado de ese objeto (requerido) -
Functions
En los fragmentos, hay algunos literales predefinidos. Se enumeran a continuación:
Literal | Detalles |
---|---|
$end$ | Marca la ubicación para colocar el cursor después de insertar el fragmento de código. |
$selected$ | Representa el texto seleccionado en el documento que se insertará en el fragmento cuando se invoque. Ejemplo, si tiene: A $selected$ is an object that I like.y la palabra fue auto seleccionado cuando invocó la plantilla, obtendría: A car is an object that I like. |
Las funciones en la etiqueta Literal o de Objeto significan que puede usar una función para generar código dependiendo de otro elemento. Hay tres funciones que conozco:
Función | Descripción | Idioma |
---|---|---|
GenerateSwitchCases (EnumerationLiteral) | Genera una instrucción de cambio y un conjunto de declaraciones de caso para los miembros de la enumeración especificada por el parámetro EnumerationLiteral. El parámetro EnumerationLiteral debe ser una referencia a un literal de enumeración o un tipo de enumeración. | Visual C # y Visual J # 1 |
ClassName() | Devuelve el nombre de la clase que contiene el fragmento insertado. | Visual C # y Visual J # 1 |
SimpleTypeName(TypeName) | Reduce el parámetro TypeName a su forma más simple en el contexto en el que se invocó el fragmento. | Visual C# |
1 solo disponible en Visual Studio 2005.
Tabla de origen: msdn.microsoft.com
Atributos para los elementos literales y de objetoLas etiquetas Literal y Object pueden tener algunos atributos opcionales.
Atributo | Descripción | Tipo |
---|---|---|
Editable | Especifica si puede o no editar el literal después de insertar el fragmento de código. El valor predeterminado de este atributo es verdadero. | Booleano |
Tabla de origen: msdn.microsoft.com
2.3 Referencias
Los grupos hacen referencia a elementos que contienen información sobre referencias de ensamblaje para el fragmento de código. Esto puede contener los siguientes elementos:
- Ensamblaje: contiene el nombre del ensamblaje por el fragmento de código (requerido)
- Url: contiene un sitio web que brinda más información sobre el montaje.
2.4 Código
Código es el código que generará entre <![CDATA[
y ]]>
. Coloque la ID
de su literal entre caracteres en dólares y Visual Studio le pedirá que cambie estos valores predeterminados si se completan las declaraciones. Aquí, tiene un ejemplo para C # y VB para el acceso directo completo.
<!-- ... 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 ... -->
En el atributo Idioma requerido, puede definir su idioma en el que está haciendo el fragmento. Puede encontrar los idiomas que puede usar en la siguiente tabla.
Idioma | Palabra clave | Disponible en próximas versiones. |
---|---|---|
Visual C# | CSharp | 2005, 2010, 2012 y posteriores. |
Visual Basic | VB | 2005, 2010, 2012 y posteriores. |
XML | XML | 2005, 2010, 2012 y posteriores. |
Visual j # | VJSharp | 2005, 2012 y posteriores. |
C ++ | CPP | 2012 y posteriores |
JavaScript | JavaScript | 2012 y posteriores |
JScript | JScript | 2012 y posteriores |
SQL | SQL | 2012 y posteriores |
HTML | HTML | 2012 y posteriores |
CSS | CSS | 2012 y posteriores |
XAML | XAML | 2012 y posteriores |
Otros atributos opcionales son:
Atributo | Descripción |
---|---|
Delimitador | Especifica el delimitador utilizado para describir literales y objetos en el código. Por defecto, el delimitador es $ . |
Tipo | Especifica el tipo de código que contiene el fragmento y, por lo tanto, la ubicación en la que se debe insertar un fragmento de código para que el fragmento de código se compile. |
Los valores válidos para la variable kind son:
Valor | Descripción |
---|---|
método del cuerpo | Especifica que el fragmento de código es un cuerpo de método y, por lo tanto, debe insertarse dentro de una declaración de método. |
método decl | Especifica que el fragmento de código es un método y, por lo tanto, debe insertarse dentro de una clase o módulo. |
escriba decl | Especifica que el fragmento de código es un tipo y, por lo tanto, debe insertarse dentro de una clase, módulo o espacio de nombres. |
expediente | Especifica que el fragmento es un archivo de código completo. Estos fragmentos de código se pueden insertar solos en un archivo de código, o dentro de un espacio de nombres. |
alguna | Especifica que el fragmento se puede insertar en cualquier lugar. Esta etiqueta se usa para fragmentos de código que son independientes del contexto, como los comentarios. |
Tablas de origen: msdn.microsoft.com
Importar fragmento en Visual Studio
Guarda el código XML y dale la extensión
.snippet
.Puede agregar el nuevo fragmento de código hecho en Visual Studio presionando Control + K , Control + B o vaya a "Herramientas" → "Administrador de fragmentos de código ..." . Esta ventana abierta siguiente:
Elija el idioma en el cuadro combinado para el idioma en el que creó el fragmento. haga clic en "Importar ..." y elija el archivo que ha creado.
Haga clic en
"Finish"
. Si el nombre del archivo ya se ha utilizado, Visual Studio ve a reemplazar el archivo existente. Tienes tres opciones:- Sobrescribir: sobrescribe el archivo. Puede usar esta opción si va a editar un fragmento antiguo.
- Cambiar nombre: va a cambiar el nombre del archivo a un nombre único.
- Omitir: cancela la importación. Renombra el archivo a un nombre único.
También puede agregar una nueva ubicación con todos los fragmentos que haya hecho al hacer clic en el botón "Agregar ..." en la primera ventana y seleccionar la carpeta en la "ventana de selección de carpeta" . La ventaja es que ahora cuando se agrega un nuevo fragmento de código válido en esa carpeta, puede usar esto directamente en Visual Studio.
Nota: haga una prueba después de importar su fragmento de código para detectar errores, de modo que no tenga ningún problema al utilizar el fragmento de código. Siempre puede eliminar o sobrescribir el fragmento si hay un error.
Punto de interés
También puede ver la documentación en MSDN para obtener más información.
Anular las herramientas de combinación / combinación
Llegar a herramientas | Opciones | Control de fuente | Visual Studio Team Foundation Server
Haga clic en Configurar herramientas de usuario:
Puede agregar anulaciones independientes para las operaciones 'Comparar' y 'Combinar'. Haga clic en Agregar y seleccione la operación que desea anular. Necesitará escribir la ruta de acceso a la herramienta que usa y los argumentos exactos que su herramienta espera. Por ejemplo, para usar BeyondCompare, agregue los siguientes argumentos "% 1% 2 / title1 =% 6 / title2 =% 7":
Para fusionarse con BeyondCompare use los Argumentos "% 1% 2% 3% 4 / title1 =% 6 / title2 =% 7 / title3 =% 8 / title4 =% 9"
En una publicación del blog de 2006 , James Manning, empleado de MS, examinó los argumentos según lo esperado por varias herramientas: WinDiff, DiffDoc, WinMerge, Beyond Compare, KDiff3, Araxis, Compare It !, SourceGear DiffMerge, TortoiseMerge y Visual SlickEdit. La publicación es un buen punto de partida, pero asegúrese de verificar la documentación actualizada de su herramienta.
Se recomienda encarecidamente que no se utilicen para las herramientas de combinación que son incapaces de realizar combinaciones de 3 vías (por ejemplo, WinMerge 2.x).
Marco de la entidad
Entity Framework (EF) es un asignador relacional de objetos que permite a los desarrolladores de .NET trabajar con datos relacionales utilizando objetos específicos del dominio. Elimina la necesidad de la mayoría del código de acceso a datos que los desarrolladores generalmente necesitan escribir.
Entity Framework le permite crear un modelo escribiendo código o utilizando cuadros y líneas en el Diseñador EF. Ambos enfoques se pueden utilizar para apuntar a una base de datos existente o crear una nueva base de datos.
Fuente y más información: Documentación Entity Framework.