Suche…


Code-Linse

Die Code-Linse ist eine einfache Möglichkeit, um herauszufinden, was mit dem Code passiert. Hier finden Sie ein Bild mit der Anzahl der Referenzen einer Methode oder Klasse.

Code-Linse

Wenn Sie das Codeobjektiv nicht sehen können, sehen Sie bitte diese Frage: In der VS 2015 Community Edition zählen die Verweise auf fehlende CodeLens

Schnipsel

Einführung

Seit Visual Studio 2005 können Sie Intellisense-Code-Snippets erstellen. Dadurch können Sie Code erzeugen, indem Sie einfach ein Schlüsselwort eingeben und die Tabulatortaste zweimal drücken.

Verwenden des Codes

Der XML-Code, den Sie zum Erstellen eines Intellisense-Code-Snippets benötigen, steht unten:

<?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>

Im Snippet-Tag haben Sie zwei erforderliche Tags mit dem Namen Header und Snippet. Weitere Informationen finden Sie in den nächsten Überschriften. Die Nummer in der Nähe des Namens sind Korrespondenten mit den Nummern im obigen Code.

Es können null oder mehr CodeSnippet-Elemente zum CodeSnippets-Element hinzugefügt werden.

1. Kopfzeile

Im Header-Tag können Sie bestimmte Informationen über das Snippet und seine Aktionen einfügen. Die wichtigsten Tags, die Sie in diesem Tag verwenden können, sind:

Element Beschreibung
Titel Der Titel des Ausschnitts. Dieses Attribut ist erforderlich.
Autor Der Autor des Ausschnitts.
Abkürzung Ist die Verknüpfung, können Sie den Code generieren. Beachten Sie, dass dies nur Buchstaben und Zahlen enthalten kann und mit einem Buchstaben beginnen muss.
Hinweis: Denken Sie auch daran, dem Snippet einen guten und eindeutigen Namen und eine Abkürzung zu geben. Andernfalls treten Probleme auf, wenn Sie das Snippet in Visual Studio importieren.
Beschreibung Enthält weitere Informationen zum Snippet, wenn Sie das benötigen.
HelpUrl Eine URL für eine Hilfeseite im Internet.
Schlüsselwörter Gruppiert ein oder mehrere Schlüsselwortelemente.
SnippetTypes

Gruppiert SnippetType Elemente. Dieses Element enthält einen Textwert und muss einen der folgenden Werte haben. Snippet-Typen werden mit einem Schrägstrich kombiniert.


  • SurroundsWith : Ermöglicht die Platzierung des Code-Snippets um einen ausgewählten Code.
  • Expansion : Ermöglicht das Einfügen des Code-Snippets am Cursor.
  • Refactoring : Gibt an, dass das Code-Snippet während der Umgestaltung von Visual C # verwendet wird. Refactoring kann nicht in benutzerdefinierten Code-Snippets verwendet werden.
Quellliste : msdn.microsoft.com

Quelltabelle (aber bearbeitet): msdn.microsoft.com

2. Ausschnitt

Im Snippet-Tag können Sie drei verschiedene Tags verwenden. Das kann sein:

  • Importe
  • Erklärungen
  • Code (erforderlich)
  • Verweise

Diese werden weiter unten erläutert.

2.1 Importe

Imports enthalten die benötigten Namespaces, die Sie für den Code benötigen. Verwenden Sie das import-Tag innerhalb dieses Tags und hier können Sie die jeweils benötigten Namespaces mit dem Namespace Tag platzieren.

2.2 Erklärungen

Declarations können verwendet werden, um einige Literale oder Objekte in Ihrem Code im Code -tag zu deklarieren. Die Kinder sind Literale und Objekte.

2.2.1 Literale und Objekte

Literale und Objekte definieren die Literale und Objekte des Code-Snippets, die Sie bearbeiten können. Funktionalität sind Literale und Objekte sind die gleichen, es gibt jedoch eine zusätzliche Typeinschränkung.

Das Literal und das object-Tag können die nächsten untergeordneten Elemente enthalten:

  • ID : Die ID des Literal (erforderlich)
  • Type : Der Typ dieses Objekts, einschließlich Namespace und Klasse (für Objekte erforderlich).
  • ToolTip : Gibt einen Tipp
  • Default : Ein Standardwert dieses Objekts (erforderlich)
  • Functions

In den Ausschnitten befinden sich einige vordefinierte Literale. Sie sind unten aufgeführt:

Wörtlich Einzelheiten
$end$ Markiert die Position, an der der Cursor platziert werden soll, nachdem das Code-Snippet eingefügt wurde.
$selected$ Stellt den in dem Dokument ausgewählten Text dar, der beim Aufruf in das Snippet eingefügt werden soll. Beispiel, wenn Sie:
A $selected$ is an object that I like.
und das Wort wurde mit Auto ausgewählt, als Sie die Vorlage aufgerufen haben, würden Sie Folgendes erhalten:
A car is an object that I like.
2.2.2 Funktionen

Funktionen im Literal- oder Object-Tag bedeuten, dass Sie eine Funktion zum Generieren von Code in Abhängigkeit von einem anderen Element verwenden können. Ich kenne drei Funktionen:

Funktion Beschreibung Sprache
GenerateSwitchCases (EnumerationLiteral) Erzeugt eine switch-Anweisung und eine Reihe von case-Anweisungen für die Mitglieder der Enumeration, die im Parameter EnumerationLiteral angegeben sind. Der Parameter EnumerationLiteral muss entweder eine Referenz auf ein Aufzählungsliteral oder einen Aufzählungstyp sein. Visual C # und Visual J # 1
ClassName() Gibt den Namen der Klasse zurück, die das eingefügte Snippet enthält. Visual C # und Visual J # 1
SimpleTypeName(TypeName) Reduziert den TypeName-Parameter in dem Kontext, in dem das Snippet aufgerufen wurde, auf seine einfachste Form. Visual C #

1 nur in Visual Studio 2005 verfügbar.

Quelltabelle : msdn.microsoft.com

Attribute für die Literal- und Objektelemente

Die Literal- und Object-Tags können einige optionale Attribute haben.

Attribut Beschreibung Art
Bearbeitbar Gibt an, ob Sie das Literal bearbeiten können, nachdem das Code-Snippet eingefügt wurde. Der Standardwert dieses Attributs ist true. Boolean

Quelltabelle : msdn.microsoft.com

2.3 Referenzen

Gruppiert Referenzelemente, die Informationen zu Assemblyreferenzen für das Code-Snippet enthalten. Dies kann folgende Elemente enthalten:

  • Assembly: Enthält den Namen der Assembly im Code-Snippet (erforderlich)
  • URL: Enthält eine Website, die weitere Informationen zur Assembly enthält

2.4 Code

Code ist der Code, den Sie zwischen <![CDATA[ und ]]> generieren. Platzieren Sie die ID Ihres Buchstabens zwischen den Dollarzeichen und Visual Studio fordert Sie auf, diese Standardwerte zu ändern, wenn die Deklarationen ausgefüllt werden. Hier haben Sie ein Beispiel für C # und VB für die Abkürzung.

<!-- ... 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 ... -->

Im erforderlichen Sprachattribut können Sie Ihre Sprache definieren, in der Sie das Snippet erstellen. Die Sprachen, die Sie verwenden können, finden Sie in der nächsten Tabelle.

Sprache Stichwort Verfügbar in den nächsten Versionen
Visual C # CSharp 2005, 2010, 2012 und später
Visual Basic VB 2005, 2010, 2012 und später
XML XML 2005, 2010, 2012 und später
Visuelle J # VJSharp 2005, 2012 und später
C ++ CPP 2012 und später
JavaScript JavaScript 2012 und später
JScript JScript 2012 und später
SQL SQL 2012 und später
HTML HTML 2012 und später
CSS CSS 2012 und später
XAML XAML 2012 und später

Andere optionale Attribute sind:

Attribut Beschreibung
Trennzeichen Gibt das Trennzeichen an, das zum Beschreiben von Literalen und Objekten im Code verwendet wird. Das Trennzeichen ist standardmäßig $ .
Nett Gibt die Art des Codes an, die das Snippet enthält, und somit die Position, an der ein Code-Snippet eingefügt werden muss, damit das Codefragment kompiliert werden kann.

Die gültigen Werte für die Kindervariable sind:

Wert Beschreibung
Methodenkörper Gibt an, dass das Code-Snippet ein Methodenkörper ist und daher in eine Methodendeklaration eingefügt werden muss.
Methode deklarieren Gibt an, dass das Code-Snippet eine Methode ist und daher in eine Klasse oder ein Modul eingefügt werden muss.
Typ deklariert Gibt an, dass das Codeausschnitt ein Typ ist und daher in eine Klasse, ein Modul oder einen Namespace eingefügt werden muss.
Datei Gibt an, dass das Snippet eine vollständige Codedatei ist. Diese Codeausschnitte können alleine in eine Codedatei oder in einen Namespace eingefügt werden.
irgendein Gibt an, dass das Snippet an einer beliebigen Stelle eingefügt werden kann. Dieses Tag wird für Codeausschnitte verwendet, die kontextunabhängig sind, beispielsweise Kommentare.

Quelltabellen : msdn.microsoft.com

Importieren Sie das Snippet in Visual Studio

  1. Speichern Sie den XML-Code und geben Sie ihm die Erweiterung .snippet .

  2. Sie können die neuen gemacht Schnipsel in Visual Studio durch Drücken von Strg + K, Strg + B oder gehen in den „Extras“„Code Snippets - Manager ...“. Dieses nächste Fenster öffnen:

    Das Fenster Code-Snippet-Manager

  3. Wählen Sie im Kombinationsfeld die Sprache aus, für welche Sprache Sie das Snippet erstellt haben. Klicken Sie auf "Importieren ..." und wählen Sie die Datei aus, die Sie erstellt haben.

    Das Fenster Import Code Snippet

  4. Klicken Sie auf "Finish" . Wenn der Dateiname bereits verwendet wurde, fordert Visual Studio zum Überschreiben der vorhandenen Datei auf. Sie haben drei Möglichkeiten:

    • Überschreiben: Überschreibt die Datei. Sie können diese Option verwenden, wenn Sie ein altes Snippet bearbeiten möchten.
    • Umbenennen: Umbenennen der Datei in einen eindeutigen Namen.
    • Überspringen: Der Import wird abgebrochen. Benennt die Datei in einen eindeutigen Namen um.

Sie können auch einen neuen Speicherort mit allen von Ihnen erstellten Ausschnitten hinzufügen, indem Sie im ersten Fenster auf die Schaltfläche "Hinzufügen" klicken und den Ordner im Fenster "Ordner auswählen" auswählen . Der Vorteil ist jetzt, wenn ein neues gültiges Snippet in diesem Ordner hinzugefügt wird. Sie können dieses direkt in Visual Studio verwenden.

Hinweis: Testen Sie den Snippet nach dem Import auf Fehler, sodass Sie keine Probleme mit dem Snippet haben. Sie können das Snippet im Fehlerfall jederzeit entfernen oder überschreiben.

Punkt des Interesses

Weitere Informationen finden Sie in der Dokumentation zu MSDN .

Werkzeuge zum Zusammenführen / Vergleichen überschreiben

Zu den Tools | Optionen | Quellcodeverwaltung | Visual Studio Team Foundation Server

Klicken Sie auf Configure User Tools:

Geben Sie hier die Bildbeschreibung ein

Sie können separate Überschreibungen für die Operationen "Vergleichen" und "Zusammenführen" hinzufügen. Klicken Sie auf Hinzufügen und wählen Sie den Vorgang aus, den Sie überschreiben möchten. Sie müssen den Pfad zum verwendeten Werkzeug und die genauen Argumente eingeben, die Ihr Werkzeug erwartet. Um beispielsweise BeyondCompare zu verwenden, fügen Sie die folgenden Argumente "% 1% 2 / title1 =% 6 / title2 =% 7" hinzu:

Geben Sie hier die Bildbeschreibung ein

Verwenden Sie zum Zusammenführen mit BeyondCompare die Argumente "% 1% 2% 3% 4 / title1 =% 6 / title2 =% 7 / title3 =% 8 / title4 =% 9"

In einem Blogbeitrag von 2006 befragte MS-Mitarbeiter James Manning die Argumente, die von verschiedenen Tools erwartet wurden: WinDiff, DiffDoc, WinMerge, Beyond Compare, KDiff3, Araxis, Compare It !, SourceGear DiffMerge, TortoiseMerge und Visual SlickEdit. Der Beitrag ist ein guter Ausgangspunkt, aber überprüfen Sie die aktuelle Dokumentation Ihres Tools.

Es wird dringend empfohlen, keine Werkzeuge zum Zusammenführen zu verwenden, die keine 3-Wege-Zusammenführung (z. B. WinMerge 2.x) ermöglichen.

Entity Framework

Entity Framework (EF) ist ein objektrelationaler Mapper, mit dem .NET-Entwickler mit relationalen Daten unter Verwendung domänenspezifischer Objekte arbeiten können. Dadurch entfällt der größte Teil des Datenzugriffscodes, den Entwickler normalerweise schreiben müssen.

Mit Entity Framework können Sie ein Modell erstellen, indem Sie Code schreiben oder Boxen und Linien in EF Designer verwenden. Beide Ansätze können verwendet werden, um auf eine vorhandene Datenbank zu zielen oder eine neue Datenbank zu erstellen.

Quelle und weitere Informationen: Entity Framework-Dokumentation



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow