7

Hola chicos, en relación con this stackoverflow question, ¿cómo podría crear mi propio complemento de Visual Studio 2008?Visual Studio 2008 Plug-in/Complemento de desarrollo - Primeros pasos

He comprobado el Visual Studio Developer Center en MSDN, pero la cantidad de información es abrumadora. Hay montones de tipos de proyectos, y ni siquiera sé por dónde empezar.

Dónde debería empezar a buscar si quiero escribir algo que cumpla con los siguientes requisitos:

  1. Un plug-in que funciona como un "servicio" en Visual Studio, y es capaz de sondear Visual Estudio para obtener información y manejar eventos de Visual Studio.
  2. La información a la que me gustaría acceder desde VS es cosas como, qué proyectos están actualmente abiertos, quién los tiene abiertos y otra información basada en archivos de proyectos/soluciones.
  3. Los eventos que me gustaría poder manejar son cosas como, la apertura/cierre/edición/creación/eliminación de soluciones/proyectos/archivos individuales.
  4. También me gustaría ser capaz de manejar cualquier interacción con VS por solución. Por lo tanto, me gustaría manejar cualquier interacción con archivos, incluso la edición de código, pero también, solo otra interacción, como con los menús, o simplemente el IDE mismo.

Además de estos, también me gustaría poder almacenar datos en alguna parte. ¿Dónde se hace esto generalmente? ¿Puedo agregar Metadatos al archivo de Solución? O, ¿tiene sentido guardar esta información en una pequeña instancia local de una base de datos, que de alguna manera está asociada a la solución ...?

Sólo necesito un empujón en la dirección correcta, ¿Es esto posible? ¿En qué parte del Visual Studio Developer Center debería centrarme? ¿Qué API debería consultar?

aplausos!

+0

Qué irónico ... Estoy trabajando en algo que hace precisamente eso: seguir cuánto tiempo pasas trabajando en una solución/archivo determinado en VS. ¿Cómo viene? –

+0

@dave: genial, en realidad ni siquiera comencé ... aunque estaría realmente interesado en cómo lo estás haciendo. ¿Será un proyecto de código abierto? Si no, te encantaría saber los enfoques de mayor nivel que estás tomando. ¡aclamaciones! – andy

+0

@andy: Acabo de terminar un prototipo, todavía estoy decidiendo si convertirlo en código abierto. En cualquier caso, estaré buscando beta testers pronto ... :) –

Respuesta

6

Un complemento puede hacer la mayor parte de eso. Hay una plantilla en VS2008 para crear un complemento base.

Tengo un complemento que puedes descargar que engancha en los eventos de carga de la solución/proyecto, etc. - es gratis y viene con el código fuente (http://www.huagati.com/projectloader/download/huagatiprojectloader.zip). Este complemento en particular detecta cuándo se cargan los proyectos/soluciones y precarga los ensambles a los que se hace referencia para solucionar un error de CLR que puede causar la falla del VS2008. De todos modos, el código fuente muestra cómo detectar algunos de los eventos que estás buscando.

Aparte de eso, el recurso definitivo en el desarrollo complemento y todos los caprichos y trucos en cuestión es el blog de Carlos Quintero (http://msmvps.com/blogs/carlosq/) y el "comos" serie de artículos en su sitio web (http://www.mztools.com/resources_vsnet_addins.aspx).

El blog de Craig Skibo (http://blogs.msdn.com/craigskibo/) también tiene algunos consejos útiles.

+0

@kristoferA: hey kristofer, increíble, gracias por el código fuente, muy apreciado – andy

2
+1

genial, gracias Saunders, no soy muy bueno aprendiendo de los libros, simplemente no hace clic en mí, llámalo dislexia, ADD o ... .lazyness ... seguramente no. Necesito probarlo o hablar con alguien sobre eso. Si me quedo atrapado, definitivamente lo verificaré. – andy

+0

Vas a tener un problema en esta área, entonces. Es extremadamente rico, pero no limpio. El siguiente paso serían las muestras en el SDK VS2008, pero buena suerte aprendiendo esta área sin una cierta estructura. Por cierto, soy la última persona en la Tierra que probablemente llame a esto pereza. –