1 / 45

Microsoft Visual Studio: Customizing And Extending Your Development Environment

TL32. Microsoft Visual Studio: Customizing And Extending Your Development Environment .  Tim Wagner Visual Studio Platform Dev Manager Microsoft Corporation. Agenda. Extending Visual Studio Finding extensions on VS Gallery Using the SDK to create packages

Jims
Download Presentation

Microsoft Visual Studio: Customizing And Extending Your Development Environment

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. TL32 Microsoft Visual Studio: Customizing And Extending Your Development Environment  Tim Wagner Visual Studio Platform Dev Manager Microsoft Corporation

  2. Agenda • Extending Visual Studio • Finding extensions on VS Gallery • Using the SDK to create packages • Creating branded, standalone apps • Visual Studio 10 Extensibility • Customizing the start page • Building “drop in” components with MEF • Extending the VS 10 editor • Managing extensions and downloads

  3. Extend Your Development Experience • Find Tools • Online Gallery • CodePlex • New Visual Studio 10 download manager • Customize Tools • Templates • Code Snippets • Macros • Start Page • Debugger visualizations • Build Tools • Add-ins • Packages • Designers • DSLs • Editor components

  4. Find Extensions In The Gallery

  5. demo Power Commands

  6. Custom Package: Tool Window • Create custom tool window • Content • XAML viewer • DTE actions • Use SDK sample browser to initiate • Visual Studio 10 changes • WPF shell

  7. Aside: "DTE" • Development Tools Extensibility • High-level APIs for controlling Visual Studio: • Drive the UI • Create and manage projects • Open, edit, save files • Invoke commands • Used by macros and addins, but useful for packages as well • Our tool window will hook up a WPF button to a DTE command

  8. demo XAML Tool Window

  9. Visual Studio Shell

  10. Deployment Options • Empty IDE • Free redistribution • Great foundation for standalone tools VS Extension

  11. Steps To Build And Deploy

  12. How Does it Work?

  13. Join Us At The VS Extensibility Center

  14. Resources • VSX Developer Centerhttp://msdn.com/vsx • VSX Forums on MSDNhttp://social.msdn.microsoft.com/forums/en-US/vsx/threads • VSX Team Bloghttp://blogs.msdn.com/vsxteam • Visual Studio Galleryhttp://visualstudiogallery.com/

  15. What's new?

  16. Agenda • Extending Visual Studio • Finding extensions on VS Gallery • Using the SDK to create packages • Creating branded, standalone apps • Visual Studio 10 Extensibility Offerings • Customizing the start page • Building “drop in” components with MEF • Extending the VS 10 editor • Managing extensions and downloads

  17. Customizing the New Start Page

  18. Customizing The New Start Page

  19. demo Custom Start Page (XAML)

  20. Coming Up: Components! • New managed extensibility mechanism designed from the ground up • All managed – no COM artifacts • Component and contract based • Used for emerging Visual Studio architecture • Appears first in the editor • Characterized by ease of construction and deployment… • Self describing payloads, “xcopy” semantics • DILU (drop-in, light up) deployment • *Not* focused on hot deploy in first release

  21. Component Model Part A I need "Foo" I need "Foo" I provide "Foo" Part B Part C

  22. MEF Example: Host and Contract static void Main(string[] args) { var container = new CompositionContainer(); varconsoleWriter = new ConsoleWriter(); container.AddPart(consoleWriter); container.AddPart(new DateOutputFormatter()); container.Compose(); consoleWriter.Write("Hello MEF, my first MEF app"); Console.ReadLine(); } public interface IOutputFormatter { string Format(string message); }

  23. MEF Example: Provide/Consume [Export(typeof(IOutputFormatter))] public class DateOutputFormatter : IOutputFormatter { public string Format(string message) {   return string.Format("{0}: {1}", DateTime.Now, message);   } } public class ConsoleWriter { [Import]   public IOutputFormatter Formatter { get; set; }   public void Write(string message) { Console.WriteLine(Formatter.Format(message));   } }

  24. Catalogs Discover Parts Container Catalog Catalog

  25. MEF In The Visual Studio Editor • The new editor is built entirely from MEF components • Extending or modifying the editor amounts to providing your own components • Many extensibility points designed to capture common paradigms…

  26. Allows Us To Go From This…

  27. To This!

  28. Classification: Rich Text Formatting • Rich reading experience • Multiple fonts • Font styles and effects • Opacity • Higher performance • Fewer coloring requests to language services • Composable • 3rd party “mixins” easily supported • Per-line transforms

  29. Adornments: Powerful Graphics • Any WPF visual • Drawn on one of several planes • Two tracking modes • Associate with text • Associate with screen • Animation and behavior

  30. Margin And Scrollbar Control • Replace or customize existing margins and scrollbar • Define new margins • All four sides • Support for spatial mapping

  31. Intellisense And Smart Tags • Any 3rd party (not just language services) can: • Contribute to Completion • Override the presentation of Parameter Help or Quick Info • Add menu items to Smart Tags

  32. demo Editor Components –Highlight Word

  33. Managing Your Extensions • What if you could discover and search for extensions within the IDE? • What if you could install, manage, and update extensions there as well? • What if we could make publishing IDE extensions (of all flavors) easy, fast, and fun?

  34. Extension Manager • New “in situ” experience for extensions… • Discover (via VS Gallery) • Download/install/manage • Update • Simplified packaging and deployment • Same DILU semantics, but for both existing and new extensibility mechanisms • Xcopy deploy; no magic, no hidden state • Think unzip and a manifest in XML • VS SDK will deliver simplified authoring and “one step” publication story • Used by Visual Studio and 3rd parties

  35. Tools -> Extension Manager

  36. [Dis]Able, Uninstall, Update

  37. Agenda • Extending Visual Studio • Finding extensions on VS Gallery • Using the SDK to create packages • Creating branded, standalone apps • Visual Studio 10 Extensibility • Customizing the start page • Building “drop in” components with MEF • Extending the VS 10 editor • Managing extensions and downloads • Your turn! • Download the 2008 SDK and try the 2010 CTP

  38. Microsoft Visual Studio: Customizing and Extending Your Development Environment Q&A

  39. Evals & Recordings Please fill out your evaluation for this session at: This session will be available as a recording at: www.microsoftpdc.com

  40. © 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

More Related