Documentation Feedback Wanted

Gathering customer feedback is a critical part of our documentation process. Your feedback helps us determine whether we are writing the type of content that is most useful to you (such as procedural how-to's, in-depth walkthroughs, API reference, etc.), and whether we are covering the tasks and scenarios that you need the most help with.

To this end, we have posted an online survey to collect some of your feedback regarding our documentation. If you have used the documentation for any Microsoft Visual Studio product or component, we'd like to hear from you! Please take a few minutes to complete the survey at the following URL: http://go.microsoft.com/fwlink/?LinkId=102169.

This survey is completely anonymous; it does not require you to enter any personal information. Your honest responses will help us to produce the type of documentation that you need and want in upcoming releases of Visual Studio and the Visual Studio SDK. 

-- Paul Cornell

------------------------------------

This posting is provided "AS IS" with no warranties, and confers no rights.

Visual Studio "Orcas" SDK June 2007 CTP Now Available

The Microsoft Visual Studio Code Name "Orcas" SDK - June 2007 Community Technology Preview is now available for download here. This SDK provides tools, documentation and samples for developers to write, build, test and deploy customizations and extensions for Visual Studio Code Name "Orcas" Beta 1.

-- Paul Cornell

------------------------------------

This posting is provided "AS IS" with no warranties, and confers no rights.

Visual Studio 2008 Shell...In 60 Seconds

If you create software development tools, you’ll want to consider building on the Microsoft Visual Studio 2008 Shell. A streamlined Visual Studio development environment, the Visual Studio Shell provides the core foundation so you can focus on building your application’s unique features. The Visual Studio Shell comes in two modes, an integrated mode and an isolated mode.

The Visual Studio Shell (integrated mode) is optimized for programming languages. Applications built on the integrated Shell will automatically merge with any other editions of Visual Studio installed on the same machine. Here a screen shot of the integrated Shell running Iron Python.The integrated Shell running Iron Python

The Visual Studio Shell (isolated mode) is optimized for specialized tools. Applications built with the isolated Shell will run side-by-side with any other editions of Visual Studio installed on the same machine. Here is a screen shot of the isolated Shell running Fabrikam Home Automation Studio.

The isolated Shell running Fabrikam Home Automation Studio

If you have more time: see the Visual Studio 2008 Shell page on the MSDN Web site.

-- Paul Cornell

------------------------------------

This posting is provided "AS IS" with no warranties, and confers no rights.

Visual Studio Extensibility Explained...In 60 Minutes

There's a great on-demand webcast available that teaches you the basics about Microsoft Visual Studio Extensbility in about 60 minutes. To view the webcast, go to the Visual Studio Webcasts page, and look in the "On Demand Webcasts" section for "Momentum Webcast: Do-It-Yourself Tools Inside Visual Studio (Level 100)." Here's a brief video index:

  • 03:00 Visual Studio extensibility approaches
  • 05:40 Visual Studio extensibility platform diagram
  • 10:00 Demo of the XPathmania tool, which shows a custom tool windows that integrates into the Visual Studio integrated development environment (IDE)
  • 16:00 Pros and cons of each of the Visual Studio extensibility approaches
  • 20:30 VSPackage architecture diagram
  • 25:00 Demo of how the XPathmania tool was built using the Visual Studio 2005 SDK V4.0
  • 39:00 How to use the Visual Studio 2005 SDK V4.0 to create a simple VSPackage
  • 42:15 Future Visual Studio extensibility plans
  • 43:30 Visual Studio extensibility resources, Q&A, etc.

Enjoy!

-- Paul Cornell

------------------------------------

This posting is provided "AS IS" with no warranties, and confers no rights.

What Is VSX?

VSX stands for Visual Studio Extensibility. If you extend or customize Microsoft Visual Studio in any way, you will likely begin encountering this acronym quite often.

You're invited to join in on the VSX community. Here are some links to help you get started:

VSX Dev Center: http://msdn.com/vsx

VSX Team Blog: http://blogs.msdn.com/vsxteam

VSX Forum: http://forums.microsoft.com/msdn/showforum.aspx?forumid=57&siteid=1

Enjoy!

-- Paul Cornell

------------------------------------

This posting is provided "AS IS" with no warranties, and confers no rights.

Device Application Development in Microsoft Visual Studio 2005…In 60 Seconds

Microsoft Visual Studio 2005 includes the tools and frameworks you need to develop applications for Pocket PC and Smartphone 2003 Second Edition. If you don't have one of these devices handy, you can create and test your device applications on your desktop computer using emulation technology without leaving the Visual Studio integrated development environment. Visual Studio 2005 supports Microsoft Visual Basic .NET, Microsoft Visual C#, and Microsoft Visual C++ languages for device application development. (Note that not all Visual Studio 2005 versions support device application development.)

If you have more time:

For more information, see Application Development Overview (Devices). If you already have Visual Studio 2005 installed, you can practice creating a device application by following the steps in the Walkthrough: Creating Windows Forms Applications for a Device.

-- Paul Cornell

------------------------------------

This posting is provided "AS IS" with no warranties, and confers no rights.

P.S. Did you like this "...In 60 Seconds" format? Please send me your comments!
P.P.S. Thanks, Barry, for notifying me of updates to this post.

Writers Wanted for Visual Studio SDK Documentation

My group, Microsoft Visual Studio User Education, is looking for experienced writers with programming knowledge to produce developer tools extensibility documentation and code samples that help improve customer satisfaction and increase product adoption, leading to increased revenues for Microsoft. As a Programming Writer, you will get to explore the insides of the Microsoft Visual Studio Code Name "Orcas" architecture, learn how Visual Studio can be extended and customized, create Visual Studio plug-in code samples, and share your knowledge and samples with independent software and tools vendors, developer experimenters, and developer enthusiasts. The documentation and code that you will produce are used by everyday developers to customize Visual Studio and by business partners to create and sell plug-ins that are fully integrated into the Visual Studio development environment.

For this position, you must be a highly-confident self starter with independent problem-solving skills. You must be able to thoroughly craft documentation plans and their corresponding documentation specs and get them approved by key business decision makers; create and stick to rapid and agile content production schedules; adapt quickly to ever-changing work priorities; respond adroitly to customer feedback from multiple incoming channels; and foster highly-collaborative working relationships with program managers, developers, and testers across the product development organization.

Candidates must have industry experience producing high-quality, technically accurate documentation that describes complex programming concepts; demonstrating how to accomplish a wide range of programming tasks; and showing how to use multiple related application programming interfaces (APIs) to accomplish tasks with code; all while working with established documentation style guidelines and using a product development organization’s specifications, source code, header files, and other relevant resources. Additional required qualifications include at least a Bachelor's degree in Technical Communications, Computer Science, or a related field, and at least intermediate proficiency in at least one Microsoft .NET programming language such as Microsoft Visual C#, Microsoft Visual C++, or Microsoft Visual Basic. The ideal candidate should also have general experience with Visual Studio, as well as experience extending or customizing a software development tool such as Visual Studio.

If you are interested in this opportunity and have the required skills and experience, please apply for the position via the Microsoft Careers Web site. This job is based in the United States at the Redmond campus. Use the search criteria of Job Code equal to 176959 or 185295.

-- Paul

------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights.

Links to Microsoft Visual Studio Documentation and Related Resources

Note: These links are subject to change at any time. 

Official Documentation for Visual Studio

Visual Studio Code Name "Orcas"

Visual Studio 2005

Visual Studio .NET 2003

Visual Studio .NET 2002

Visual Studio 6.0

MSDN Web Portals Related to Visual Studio

MSDN Forums Related to Visual Studio

-- Paul

------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights.

New Project Generation: Under the Hood

Introduction

Ever thought about how to create your own project type? Wonder what actually happens when you create a new project? Let's take a peek under the hood and see what's really going on.

There are several tasks that Visual Studio coordinates for you:

·         It displays a tree of all available project types.
·
         It displays a list of application templates for each project type and lets you pick one.
·
         It collects project information for the application, such as project name and path.
·
         It passes this information on to the project factory.
·
         It generates project items and folders in the current solution.

The New Project Dialog Box

It all begins when you select a project type for a new project. Let's start by clicking New Project on the File menu. The New Project dialog box appears, looking something like this. 

Let’s take a closer look. The Project types tree lists the various project types you can create. When you select a project type like Visual C# Windows, you’ll see a list of application templates to get you started. Visual Studio installed templates are installed by Visual Studio and are available to any user of your computer. New templates that you create or collect can be added to My Templates and are available only to you.

When you select a template like Windows Application, a description of the application type appears in the dialog box; in this case, A project for creating an application with a Windows user interface.

At the bottom of the New Project dialog box, you’ll see several controls that gather more information. The controls you see depend on the project type, but generally they include a project Name text box, a Location text box and related Browse button, and a Solution Name text box and related Create directory for solution check box.

Populating the New Project Dialog Box

Where does the New Project dialog box get its information from? There are two mechanisms at work here, one of them deprecated. The New Project dialog box combines and displays the information obtained from both mechanisms.

The older (deprecated) method uses system registry entries and .vsdir files. This mechanism runs when Visual Studio is opened. The newer method uses .vstemplate files. This mechanism runs whenever Visual Studio is initialized, for example, by running

devenv /setup
or
devenv /installvstemplates

Project Types

The position and names of the Project types root nodes, such as Visual C# and Other Languages, is determined by system registry entries. The organization of the child nodes, such as Database and Smart Device, mirrors the hierarchy of the folders that contain the corresponding .vstemplate files. Let's look at the root nodes first.

Project Type Root Nodes

When Visual Studio is initialized, it traverses the subkeys of the system registry key

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\8.0\NewProjectTemplates\TemplateDirs

to build and name the root nodes of the Project types tree. This information is cached for later use. Look at the

TemplateDirs\{FAE04EC1-301F-11D3-BF4B-00C04F79EFBC}\/1

key. Each entry is a VSPackage GUID. The name of the subkey (/1) is ignored, but its presence indicates that this is a Project types root node. A root node may in turn have several subkeys that control its appearance in the Project types tree. Let's look at some of them.

(Default)

This is the resource ID of the localized string that names the root node. The string resource is located in the satellite DLL selected by the VSPackage GUID.

In the example, the VSPackage GUID is

{FAE04EC1-301F-11D3-BF4B-00C04F79EFBC}

and the resource ID (default value) of the root node (/1) is #2345

If you look up the GUID in the nearby Packages key and examine the SatelliteDll subkey, you can find the path of the assembly that contains the string resource:

\Program Files\Microsoft Visual Studio 8\VC#\VCSPackages\1033\csprojui.dll

To verify this, open the File Explorer and drag csprojui.dll into Visual Studio. The string table shows that resource #2345 has the caption Visual C#.

SortPriority

This determines the position of the root node in the Project types tree.

SortPriority REG_DWORD 0x00000014 (20)

The lower the number of the priority, the higher the position in the tree.

DeveloperActivity

If this subkey is present, then the position of the root node is controlled by the Developer Settings dialog box. For example,

DeveloperActivity REG_SZ VC#

indicates that Visual C# will be a root node if Visual Studio is set for Visual C# development. Otherwise, it will be a child node of Other Languages.

Folder

If this subkey is present, then the root node becomes a child node of the specified folder. A list of possible folders appears under the key

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\8.0\NewProjectTemplates\PseudoFolders

For example, the Database Projects entry has a Folder key that matches the Other Project Types entry in PseudoFolders. So, in the Project types tree, Database Projects will be a child node of Other Project Types.

Project Type Child Nodes and .vstdir Files

The position of the child nodes in the Project types tree follows the hierarchy of the folders in the ProjectTemplates folders. For machine templates (Visual Studio installed templates), the typical location is \Program Files\Microsoft Visual Studio 8\Common7\IDE\ProjectTemplates\ and for user templates (My templates), the typical location is \My Documents\Visual Studio 2005\Templates\ProjectTemplates\. The folder hierarchies from these two locations are merged to create the Project types tree.

For Visual Studio with Visual C# developer settings, the Project types tree looks something like this.

The corresponding ProjectTemplates folder looks like this.

When the New Project dialog box opens, Visual Studio traverses the ProjectTemplates folder and recreates its structure in the Project types tree with some changes:

·         The root node in the Project types tree is determined by the application template.

·         The node name can be localized and can contain special characters.

·         The sort order can be changed.

Finding the Root Node for a Project Type

When Visual Studio traverses the ProjectTemplates folders, it opens all .zip files and extracts any .vstemplate files. A .vstemplate file uses XML to describe an application template. For more information, see New Project Generation: Under the Hood, Part Two (to be posted).

The <ProjectType> tag determines the project type for the application. For example, the \CSharp\SmartDevice\WindowsCE\1033\WindowsCE-EmptyProject.zip file contains an EmptyProject.vstemplate file that has this tag:

<ProjectType>CSharp</ProjectType>

The <ProjectType> tag, and not the subfolder in the ProjectTemplates folder, determines an application's root node in the Project types tree. In the example, Windows CE applications would appear under the Visual C# root node, and even if you were to move the WindowsCE folder to the VisualBasic folder, Windows CE applications still would appear under the Visual C# root node.

Localizing the Node Name

When Visual Studio traverses the ProjectTemplates folders, it examines any .vstdir files it finds. A .vstdir file is an XML file that controls the appearance of the project type in the New Project dialog box. In the .vstdir file, use the <LocalizedName> tag to name the Project types node.

For example, the \CSharp\SmartDevice\SmartPhone2003\TemplateIndex.vstdir file contains this tag:

<LocalizedName Package="{66E325E6-8BA1-4688-8A67-B86CE7741D2A}" ID="3183"/>

This determines the satellite DLL and resource ID of the localized string that names the root node, in this case, SmartPhone 2003. The localized name can contain special characters that are not available for folder names, such as .NET.

If no <LocalizedName> tag is present, the project type is named by the folder itself, SmartPhone2003.

Finding the Sort Order for a Project Type

To determine the sort order of the project type, .vstdir files use the <SortOrder> tag.

For example, the \CSharp\Windows\Windows.vstdir file contains this tag:

<SortOrder>5</SortOrder>

The \CSharp\Database\TemplateIndex.vstdir file has a tag with a larger value:

<SortOrder>5000</SortOrder>

The lower the number in the <SortOrder> tag, the higher the position in the tree, so the Windows node appears higher than the Database node in the Project types tree.

If no <SortOrder> tag is specified for a project type, it appears in alphabetical order following any project types that contain <SortOrder> specifications.

Note that there are no .vstdir files in the My Documents (My Templates) folders. User application project type names are not localized and appear in alphabetical order.

Quick Review

Let's modify the New Project dialog box and create a new user project template.

1.      Add a MyProjectNode subfolder to the \Program Files\Microsoft Visual Studio 8\Common7\IDE\ProjectTemplates\CSharp folder.

2.      Create a MyProject.vstdir file in the MyProjectNode folder using any text editor.

3.      Add these lines to the .vstdir file:

<TemplateDir Version="1.0.0">
    <SortOrder>6</SortOrder>
</TemplateDir>

4.      Save and close the .vstdir file.

5.      Create a MyProject.vstemplate file in the MyProjectNode folder using any text editor.

6.      Add these lines to the .vstemplate file:

<VSTemplate Version="2.0.0" Type="Project" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005">
    <TemplateData>
        <ProjectType>CSharp</ProjectType>
    </TemplateData>
</VSTemplate>

7.      Save the.vstemplate file and close the editor.

8.      Send the .vstemplate file to a new compressed MyProjectNode\MyProject.zip folder.

9.      From the Visual Studio command window, type:

devenv /installvstemplates

10.  Open Visual Studio.

11.  Open the New Project dialog box and expand the Visual C# project node. MyProjectNode appears as a child node of Visual C# just under the Windows node (picture).

See Also

Continued at New Project Generation: Under the Hood, Part Two (to be posted).

-- Martin Tracy

This posting is provided "AS IS" with no warranties, and confers no rights.

Search

This Blog

Syndication

Page view tracker