1. Trang chủ
  2. » Công Nghệ Thông Tin

Visual studio 2010 part 36 pdf

8 251 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 8
Dung lượng 153,23 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Unlike templates in the local item templates folder, where all you need to do is copy the file, item templates in the global item templates folder don’t automatically show up.. To test t

Trang 1

including CSharp VisualBasic, Web, and more, each folder corresponding to folders in the

VS New Item window Under each folder is a locale code—for instance, English is 1033—

and you would copy the file into the locale folder for the category you wanted the project

template to appear in

Unlike templates in the local item templates folder, where all you need to do is copy

the file, item templates in the global item templates folder don’t automatically show up

To test the global item templates scenario, you should remove the item template from

your local item templates folder You must close down VS and execute the following in a

command window, which you should open by selecting Start | All Programs | Microsoft

Visual Studio 2010 | Visual Studio Tools | right-click Visual Studio Command Prompt

(2010) and select Run As Administrator This will take a few minutes to run, but afterward you’ll see the project appear in the VS New Item window This command imports all of

the item templates from the global item templates folder into VS:

devenv /installvstemplates

If later you decide you don’t want a given template to appear in the VS New Item

window, remove the item template from the global item templates folder(s) and run the

preceding command again

This section showed you how to add new project and item templates to VS, but

sometimes you just want to add a common bit of code while you’re programming The

next section shows you how to add your own custom code snippets to VS

Creating Custom Snippets

If you’ve been using VS snippets, as described in Chapter 2, you’ll know how much time

they can save when writing common blocks of code In time, you’ll wonder why certain

items aren’t already covered by snippets, especially if you’re a C# developer who has

noticed that VB has many more snippets Even if you’re a VB developer with the plethora

of available snippets, you might find blocks of code that will make you more productive

when written in the form of a snippet This chapter takes you to the next level in working

with snippets by showing you how to create and manage your own snippets

Creating a New Snippet

VB already has a snippet for Sub and Function, but C# doesn’t Since C# doesn’t have as

many snippets as VB, I’ll show you how to create a snippet in C#, but the process is similar for a VB snippet To create a new snippet, you can either work from an existing snippet file

or start from scratch I’ll show you how to find and open existing snippets first

Trang 2

Examining Existing Snippets

Snippets that ship with VS are located at \Program Files\Microsoft Visual Studio 10.0 under a folder for the language (VC#, VB, XML, and more) you need to find a snippet for There, you’ll either find one or more folders named with language codes (English is 1033) or a folder named Snippets For some languages, the language code is at a higher level and the Snippets folder is under that or vice versa; regardless, you’ll be looking for the Snippets folder that contains items with a snippet file extension The file path for C#

is \Program Files\Microsoft Visual Studio 10.0\VC#\Snippets\1033 Beneath the Snippets folder, you’ll see additional folders that serve to categorize other snippets

We’re going to open the for snippet because it contains several features that give

you a good idea of how snippets work It might help if you open a blank file by pressing

CTRL-N, selecting Visual C# Class, and naming the file anything you want, and try the for

snippet before going further; it will give you a good idea of what the snippet is supposed to

be doing Alternatively, you can review the description of the for snippet in Chapter 2.

The snippet extension is registered with VS, so you can double-click the for.snippet file

in the Snippets folder and it will open in VS Listing 12-1 shows what this file looks like Listing 12-1 Inside the for snippet

<?xml version="1.0" encoding="utf-8" ?>

<CodeSnippets xmlns=

"http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">

<CodeSnippet Format="1.0.0">

<Header>

<Title>for</Title>

<Shortcut>for</Shortcut>

<Description>Code snippet for 'for' loop</Description> <Author>Microsoft Corporation</Author>

<SnippetTypes>

<SnippetType>Expansion</SnippetType>

<SnippetType>SurroundsWith</SnippetType>

</SnippetTypes>

</Header>

<Snippet>

<Declarations>

<Literal>

<ID>index</ID>

<Default>i</Default>

<ToolTip>Index</ToolTip>

</Literal>

Trang 3

<Literal>

<ID>max</ID>

<Default>length</Default>

<ToolTip>Max length</ToolTip>

</Literal>

</Declarations>

<Code Language="csharp"><![CDATA[for (int $index$ = 0;

$index$ < $max$; $index$++)

{

$selected$ $end$

}]]>

</Code>

</Snippet>

</CodeSnippet>

</CodeSnippets>

As shown in Listing 12-1, a snippet is an XML file where all data is defined by begin

and end tags arranged in a hierarchy Inside of the CodeSnippet tags are Header and

Snippet elements

Inside of the Header element is a Shortcut element that defines the prefix you must

type in the VS editor to use the snippet The Title and Description tags define what displays for Intellisense in VS when the shortcut is being typed Author tells who wrote the snippet.

The SnippetTypes element defines the two ways to use a snippet: Expansion and

SurroundsWith Chapter 2 describes many snippets that work via Expansion However,

SurroundsWith snippets are also very useful To use a SurroundsWith snippet, highlight the

code that you want to surround, press CTRL-SPACE, and select the snippet After selecting

the snippet, the snippet template will appear in VS, with its blocks surrounding the

highlighted text Since the for loop has a block that can contain statements, it makes sense

that the for snippet is both a SurroundsWith and Expansion snippet.

The Snippet element in Listing 12-1 contains a Declarations and Code element, where the

declarations are used in the code Thinking about how snippet templates work, remember that your cursor is positioned on blocks of code that you change and tab through to complete the

snippet The blocks of code to be filled in correspond to Literal elements in the declaration.

Each Literal element has an ID that is used in the Code to define where the Literal is

located Default describes the data shown in the template before you start typing Whenever

you’re filling in a snippet template, you can hover over the data field and a tooltip will

describe what information should go into the data field This tooltip is defined in the Tooltip element of the snippet definition The ID of each literal is defined in the Code element.

Inside the Code element is the code for the snippet The variables in the code with

$ prefix and suffix help define how the snippet template works Notice that $index$

and $max$ match Literal elements in the Declarations element; this is where you must

Trang 4

fill in data items when filling in the snippet template in VS The $end$ variable defines

where the cursor ends up after the snippet is complete (after pressing ENTER in the snippet

template) You’ll want to locate $end$ where a developer would normally continue typing The $selected$ variable is used with SurroundsWith snippets, defining the relationship of

selected text with where snippet code should be

Now that you have a basic familiarity with snippets, the next section brings you to the next level as you actually create a new snippet

Creating New Snippets

To create a new snippet, you can either work from an existing snippet file or start from scratch If you work from an existing snippet, find and open the snippet closest to what you want to do, using the techniques described in the preceding section Starting from

scratch, there is a quick way to get started using a snippet snippet; that’s right, there is a

snippet that helps you create new snippets

As you learned in the preceding section, snippets are defined as XML files Fortunately,

VS has a nice XML editor that supports XML snippets So, when I say that we’re going to create a snippet from scratch, that’s not quite true, because we’re going to leverage VS to get a quick start In the following steps, I’ll show you how to create a snippet you can use

to add a C# method to a class quickly:

1 With VS open, press CTRL-N and create a new XML file If you were opening the file

from an existing project, you would need to provide a name, which would be meth

.snippet The new XML file has a single line, which is called an XML prefix.

2. Move to the line below the XML prefix, press CTRL-K-X, type sn to select Snippet in the

Intellisense list, and press ENTER You’ll see an XML snippet template with the values

for Title, Author, Shortcut, Description, ID, and Default.

3.Fill in data and tab through the snippet template as follows: Title as Method Snippet,

Author as <your name>, Shortcut as meth, Description as Create a New Method, ID

as access, and Default as public Press ENTER when complete

4 The resulting snippet still needs code and template item definitions, which is accomplished

by filling in the Code element and adding needed Literal elements First, modify the code

element as follows:

<Code Language="csharp">

<![CDATA[$access$ $return$ $methodName$($paramList$) {

$end$

} ]]>

</Code>

Trang 5

5. In addition to access, the code example in the preceding step includes variables for

return, methodName, and paramList Add Literal elements for each of these variables,

where the ID is the variable name and the Default is set to return as void, methodName

as MethodName, and paramList as int p1.

6 Save the file and name it meth.snippet The next section will explain where to put the

file, but for now put it in a location that you can remember so you can copy it later

BTW, the Save File dialog box has Snippet Files (*.snippet) for a Save A Type option,

which you can use to ensure the snippet has the correct file extension

You now have a workable snippet Listing 12-2 shows the snippet in its entirety

Additionally, notice how each Literal has a Tooltip to help the user of the snippet fill in

each data item Also, notice that the Language attribute of the Code element is spelled

csharp, rather than C# These small nuances, such as the spelling for a language, could

make the snippet file invalid A good troubleshooting technique is to open a similar

snippet predefined for VS, as described in the preceding section, and compare formats to

see if you might have mistyped something The next section will explain what to do with

this snippet file so that you can begin using it

Listing 12-2 A custom method snippet

<?xml version="1.0" encoding="utf-8"?>

<CodeSnippet Format="1.0.0"

xmlns="http://schemas.microsoft.com

/VisualStudio/2005/CodeSnippet">

<Header>

<Title>Method Snippet</Title>

<Author>Joe Mayo</Author>

<Shortcut>meth</Shortcut>

<Description>Create a New Method</Description>

<SnippetTypes>

<SnippetType>SurroundsWith</SnippetType>

<SnippetType>Expansion</SnippetType>

</SnippetTypes>

</Header>

<Snippet>

<Declarations>

<Literal>

<ID>access</ID>

<Default>public</Default>

<ToolTip>Access modifier</ToolTip>

</Literal>

Trang 6

<Literal>

<ID>return</ID>

<Default>void</Default>

<ToolTip>Return value</ToolTip>

</Literal>

<Literal>

<ID>methodName</ID>

<Default>MethodName</Default>

<ToolTip>Name of Method</ToolTip>

</Literal>

<Literal>

<ID>paramList</ID>

<Default>int p1</Default>

<ToolTip>

Comma-separated list of parameters

</ToolTip>

</Literal>

</Declarations>

<Code Language="csharp">

<![CDATA[

$access$ $return$ $methodName$($paramList$)

{

$end$

}]]>

</Code>

</Snippet>

</CodeSnippet>

Managing the Snippet Library

To use a snippet, you can either copy the snippet into a VS folder or use a VS tool called

the Snippet Manager This section will explain how to make the method snippet, created

in the preceding section, available to your code

File Folders Holding Snippets

The local snippets folder is located at \Users\<your name>\Documents\Visual Studio 2010\Code Snippets You’ll see a set of folders for each language/technology, which each have subfolders for organizing snippets Copy and paste the snippet file into one of these folders, such as Visual C#\My Code Snippets, and the snippet will be immediately available to your code

The local snippets folder makes a snippet available to your machine login You can also make the snippet available to everyone who logs on to the machine by copying the snippet to a global snippet folder, located at \Program Files\Microsoft Visual Studio

Trang 7

10.0\ You’ll see language technology folders, such as VC# for C# or VB for VB Within

those folders, you’ll either see folders for language codes (English is 1033) or a Snippets

folder Drilling down two levels, through the language code folders and Snippet folders

(whichever shows first), you’ll see more snippets and subfolders that organize the snippets for that language/technology Copy the snippet into the folder where you feel it belongs

The snippet will be immediately available to your code

Working with system file folders can be cumbersome, so VS offers a tool to help

organize snippets, the Snippets Manager

Using the Snippets Manager

The Snippets Manager allows you to import new snippets and organize existing snippets

Either select Tools | Code Snippets Manager or press CTRL-K, CTRL-B You’ll see the

Snippets Manager window, shown in Figure 12-7

The Language drop-down shows what type of snippets you can work with The folders show how snippets are organized Use the Add and Remove buttons to manage folders

Click the Import button to find and make new snippets available to the application

As you’ve seen, snippets give you a well-specified way to quickly write code However,

there is a capability that is even more powerful, which is macros, discussed next

Figure 12-7 The Snippets Manager window

Trang 8

Writing Macros

When the productivity features that ship with VS and custom snippets don’t give you

enough power, the next step is to consider creating a macro, which is a repeatable set of

actions that you can record and re-run multiple times An example of when a macro is useful is whenever you find yourself continuously repeating the same set of actions in VS This section will show you how to create and run a macro that uses VS features to create a customized block of code for validating strings

Recording a Macro

When creating business objects, it’s common to validate input parameters to ensure they are valid One such validation is enforcing that calling code pass a required parameter The example in this section shows you how to write a macro for validating that a string-type parameter is not null, empty, or white space (such as a space or tab) To get started, create a new Console project and add a Class file with the following method to the project, which simulates adding a new customer:

C#:

using System;

class Customer

{

public int AddNewCustomer(string firstName, string lastName) {

int newCustID = 0;

// Logic to add customer

return newCustID;

}

}

VB:

Public Class Customer

Function AddNewCustomer(

ByVal firstName As String,

ByVal lastName As String) As Integer

Dim newCustID As Integer = 0

' Logic to add customer

Ngày đăng: 04/07/2014, 03:20

TỪ KHÓA LIÊN QUAN