Welcome!

Microsoft Cloud Authors: Elizabeth White, Mihai Corbuleac, Pat Romanski, David Bermingham, Steven Mandel

Related Topics: Microsoft Cloud

Microsoft Cloud: Article

Extending Visual Studio 2005

Build and integrate new features into Visual Studio 2005

The Visual Studio 2005 Beta 2 SDK allows you to build rich, deeply integrated new features into Visual Studio. The functionality you have access to through the SDK is identical to the functionality used by many teams within the Visual Studio organization here in Microsoft to develop new features for Visual Studio. Essentially, using our SDK will give you the same access to the Visual Studio Platform that is used to build in the majority of cool new features you'll find in Visual Studio 2005.

Have you ever thought of a killer feature you would love to see in Visual Studio? Maybe you want to add support for a new programming language, or you have an idea for a new GUI designer tool. You can add support for virtually anything to Visual Studio through the SDK.

This article will get you up to speed on downloading, installing, and familiarizing yourself with the Visual Studio SDK. We will walk through the fundamental parts of the SDK, and then build our first Package, which will be a customized version of the Visual Studio Task List.

The Task List (see Figure 1) stores several types of data. First, it stores tasks you create, like Outlook. Second, it parses your solution's source code for special tokens in comments like "TODO," "HACK," "UNDONE," and "UnresolvedMergeConflict," and dynamically adds these to its list.

The Visual Studio SDK provides deep, feature-rich access to virtually every part of Visual Studio. This includes all of the data used by the Task List, which we will end up using later on.

To get started you will need the Visual Studio 2005 Beta 2 SDK. Go to http://msdn.microsoft.com/vstudio/extend/ and look for the link entitled Download Visual Studio 2005 SDK 2005 Beta 2. Once you have downloaded the SDK, go ahead and install it.

The SDK installer will add several new components to Visual Studio. A new SDK help collection will be added to Visual Studio's Help System to provide you with conceptual information and specific technical details on using all of the functionality in the SDK. Several new project templates will be added to Visual Studio; these can be accessed through the New Project Dialog's Project Types tree under Other Project Types:Extensibility. Finally, a new entry will be added to the Start Menu.

After installing the SDK, the Start Menu will have two shortcuts to Visual Studio. One is entitled Visual Studio 2005 Beta 2, and the other is Microsoft Visual Studio 2005 Experimental. The normal version - the same one you use for Winforms and ASP.Net apps - is where you will write your extensions to Visual Studio. The Experimental version is where you will go to test them.

The Experimental version isolates its Registry data from the rest of Visual Studio 2005. If you examine the Registry hive HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio you will find a hive for 8.0 and one for 8.0Exp, an exact clone used for VS SDK development. This "sandbox" gives you the freedom to experiment without worrying about destroying your normal VS installation.

You can launch the Experimental version of Visual Studio in three different ways. First, by running Visual Studio with the command line switch "/RootSuffix Exp," like this: Devenv /RootSuffix Exp. Second, when you debug an SDK Project it will load up under the Experimental version by default. Third, you can choose the Start Menu link to Visual Studio 2005 Experimental.

Visual Studio Extensibility Methods
There are three means by which you can extend Visual Studio. The first is by writing a Macro. They are created through the Macros IDE, which is available under the Tools menu inside Visual Studio. Macros are written in Visual Basic.

Second, you can write an Add-in. These are built as DLLs, and can be written in several different languages, including C#, Visual Basic, and native C++. You can create a new Add-in by choosing the Visual Studio Add-in project type in the New Project Dialog.

Both Macros and Add-ins use Visual Studio's Automation Object Model to customize Visual Studio. The Automation system can be used to add new commands to toolbars and menus, create new tool windows, or automate certain tasks that you perform regularly in Visual Studio.

The third way in which you can extend Visual Studio is by creating a Visual Studio Package. The Package approach allows you to integrate far more deeply into Visual Studio. For example, it gives you the ability to add new programming languages to Visual Studio. For our purposes here we will be working at the Package level.

Creating Your Package
Launch the normal, non-Experi-mental, version of Visual Studio 2005. First, you will want to create a new Visual Studio Package. Open the New Project Dialog (File -> New -> New Project). Drill down into the Project Types tree view by expanding the Other Project Types node and selecting Extensibility. You will find four Project Templates available in this category:

  • Visual Studio Add-in lets you create an Add-in for Visual Studio, as discussed above
  • Shared Add-in lets you create an Add-in that usable inside of Microsoft Office
  • Visual Studio Language Package gives you the ability to integrate new languages into Visual Studio
  • Visual Studio Integration Package creates a new Package in either native C++ or managed C# that can be used to build custom editors, tool windows, or anything else that you can imagine adding to Visual Studio.
For our purposes, we will create a new Visual Studio Integration Package. Select the Visual Studio Integration Package project type, as shown in Figure 2. Give it the name Tasklist Sample, and press OK.

Next we'll walk through the Visual Studio Integration Package wizard. The first page of the Wizard introduces you to the SDK development experience; press Next. The Wizard's second page asks you to choose the programming language you want to use for development. Select C# here. The default options for assembly signing are sufficient (see Figure 3).

The third page will ask you for detailed information about your project. Enter an appropriate company name in the provided field. Under VSPackage name, enter "Tasklist Sample." VSPackage version can be left at 1.0. Minimum Visual Studio edition allows you to choose which editions of Visual Studio your Package will work under. For our purposes, this should be set to Standard, but if your project depended on functionality only available in certain editions, you would be able to set this restriction here. Finally, enter some descriptive text in the Detailed information textbox, which will be shown in the Help.About dialog. Press Next.

More Stories By Aaron Brethorst

Aaron Brethorst is a program manager on the Visual Studio Core team, where he is responsible for Accessibility and User Experience across the Visual Studio IDE. Aaron joined Microsoft in 2003 after graduating from the University of Minnesota with a degree in Computer Science. When he's not developing software, you can usually find him in a Seattle coffee shop with a good book.

Comments (0)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


@ThingsExpo Stories
You think you know what’s in your data. But do you? Most organizations are now aware of the business intelligence represented by their data. Data science stands to take this to a level you never thought of – literally. The techniques of data science, when used with the capabilities of Big Data technologies, can make connections you had not yet imagined, helping you discover new insights and ask new questions of your data. In his session at @ThingsExpo, Sarbjit Sarkaria, data science team lead ...
The IoT has the potential to create a renaissance of manufacturing in the US and elsewhere. In his session at 18th Cloud Expo, Florent Solt, CTO and chief architect of Netvibes, will discuss how the expected exponential increase in the amount of data that will be processed, transported, stored, and accessed means there will be a huge demand for smart technologies to deliver it. Florent Solt is the CTO and chief architect of Netvibes. Prior to joining Netvibes in 2007, he co-founded Rift Technol...
Join IBM June 8 at 18th Cloud Expo at the Javits Center in New York City, NY, and learn how to innovate like a startup and scale for the enterprise. You need to deliver quality applications faster and cheaper, attract and retain customers with an engaging experience across devices, and seamlessly integrate your enterprise systems. And you can't take 12 months to do it.
Machine Learning helps make complex systems more efficient. By applying advanced Machine Learning techniques such as Cognitive Fingerprinting, wind project operators can utilize these tools to learn from collected data, detect regular patterns, and optimize their own operations. In his session at 18th Cloud Expo, Stuart Gillen, Director of Business Development at SparkCognition, will discuss how research has demonstrated the value of Machine Learning in delivering next generation analytics to im...
This is not a small hotel event. It is also not a big vendor party where politicians and entertainers are more important than real content. This is Cloud Expo, the world's longest-running conference and exhibition focused on Cloud Computing and all that it entails. If you want serious presentations and valuable insight about Cloud Computing for three straight days, then register now for Cloud Expo.
So, you bought into the current machine learning craze and went on to collect millions/billions of records from this promising new data source. Now, what do you do with them? Too often, the abundance of data quickly turns into an abundance of problems. How do you extract that "magic essence" from your data without falling into the common pitfalls? In her session at @ThingsExpo, Natalia Ponomareva, Software Engineer at Google, will provide tips on how to be successful in large scale machine lear...
IoT device adoption is growing at staggering rates, and with it comes opportunity for developers to meet consumer demand for an ever more connected world. Wireless communication is the key part of the encompassing components of any IoT device. Wireless connectivity enhances the device utility at the expense of ease of use and deployment challenges. Since connectivity is fundamental for IoT device development, engineers must understand how to overcome the hurdles inherent in incorporating multipl...
The paradigm has shifted. A Gartner survey shows that 43% of organizations are using or plan to implement the Internet of Things in 2016. However, not just a handful of companies are still using the old-style ad-hoc trial-and-error ways, unaware of the critical barriers, paint points, traps, and hidden roadblocks. How can you become a winner? In his session at @ThingsExpo, Tony Shan will present a methodical approach to guide the holistic adoption and enablement of IoT implementations. This ov...
We’ve worked with dozens of early adopters across numerous industries and will debunk common misperceptions, which starts with understanding that many of the connected products we’ll use over the next 5 years are already products, they’re just not yet connected. With an IoT product, time-in-market provides much more essential feedback than ever before. Innovation comes from what you do with the data that the connected product provides in order to enhance the customer experience and optimize busi...
The IETF draft standard for M2M certificates is a security solution specifically designed for the demanding needs of IoT/M2M applications. In his session at @ThingsExpo, Brian Romansky, VP of Strategic Technology at TrustPoint Innovation, will explain how M2M certificates can efficiently enable confidentiality, integrity, and authenticity on highly constrained devices.
Artificial Intelligence has the potential to massively disrupt IoT. In his session at 18th Cloud Expo, AJ Abdallat, CEO of Beyond AI, will discuss what the five main drivers are in Artificial Intelligence that could shape the future of the Internet of Things. AJ Abdallat is CEO of Beyond AI. He has over 20 years of management experience in the fields of artificial intelligence, sensors, instruments, devices and software for telecommunications, life sciences, environmental monitoring, process...
SYS-CON Events announced today that Ericsson has been named “Gold Sponsor” of SYS-CON's @ThingsExpo, which will take place on June 7-9, 2016, at the Javits Center in New York, New York. Ericsson is a world leader in the rapidly changing environment of communications technology – providing equipment, software and services to enable transformation through mobility. Some 40 percent of global mobile traffic runs through networks we have supplied. More than 1 billion subscribers around the world re...
SYS-CON Events announced today that Stratoscale, the software company developing the next generation data center operating system, will exhibit at SYS-CON's 18th International Cloud Expo®, which will take place on June 7-9, 2016, at the Javits Center in New York City, NY. Stratoscale is revolutionizing the data center with a zero-to-cloud-in-minutes solution. With Stratoscale’s hardware-agnostic, Software Defined Data Center (SDDC) solution to store everything, run anything and scale everywhere...
Angular 2 is a complete re-write of the popular framework AngularJS. Programming in Angular 2 is greatly simplified – now it's a component-based well-performing framework. This immersive one-day workshop at 18th Cloud Expo, led by Yakov Fain, a Java Champion and a co-founder of the IT consultancy Farata Systems and the product company SuranceBay, will provide you with everything you wanted to know about Angular 2.
SYS-CON Events announced today that Men & Mice, the leading global provider of DNS, DHCP and IP address management overlay solutions, will exhibit at SYS-CON's 18th International Cloud Expo®, which will take place on June 7-9, 2016, at the Javits Center in New York City, NY. The Men & Mice Suite overlay solution is already known for its powerful application in heterogeneous operating environments, enabling enterprises to scale without fuss. Building on a solid range of diverse platform support,...
In his session at @ThingsExpo, Chris Klein, CEO and Co-founder of Rachio, will discuss next generation communities that are using IoT to create more sustainable, intelligent communities. One example is Sterling Ranch, a 10,000 home development that – with the help of Siemens – will integrate IoT technology into the community to provide residents with energy and water savings as well as intelligent security. Everything from stop lights to sprinkler systems to building infrastructures will run ef...
You deployed your app with the Bluemix PaaS and it's gaining some serious traction, so it's time to make some tweaks. Did you design your application in a way that it can scale in the cloud? Were you even thinking about the cloud when you built the app? If not, chances are your app is going to break. Check out this webcast to learn various techniques for designing applications that will scale successfully in Bluemix, for the confidence you need to take your apps to the next level and beyond.
Manufacturers are embracing the Industrial Internet the same way consumers are leveraging Fitbits – to improve overall health and wellness. Both can provide consistent measurement, visibility, and suggest performance improvements customized to help reach goals. Fitbit users can view real-time data and make adjustments to increase their activity. In his session at @ThingsExpo, Mark Bernardo Professional Services Leader, Americas, at GE Digital, will discuss how leveraging the Industrial Interne...
Whether your IoT service is connecting cars, homes, appliances, wearable, cameras or other devices, one question hangs in the balance – how do you actually make money from this service? The ability to turn your IoT service into profit requires the ability to create a monetization strategy that is flexible, scalable and working for you in real-time. It must be a transparent, smoothly implemented strategy that all stakeholders – from customers to the board – will be able to understand and comprehe...
Increasing IoT connectivity is forcing enterprises to find elegant solutions to organize and visualize all incoming data from these connected devices with re-configurable dashboard widgets to effectively allow rapid decision-making for everything from immediate actions in tactical situations to strategic analysis and reporting. In his session at 18th Cloud Expo, Shikhir Singh, Senior Developer Relations Manager at Sencha, will discuss how to create HTML5 dashboards that interact with IoT devic...