[# VS2010] HowTo: Debug an AddIn for OneNote

image47dd1de4

Good,

I cannot begin to explain the reason for the creation of an AddIn for OneNote. If any known theory of bad luck, because you can see that OneNote is the only element of the suite of Microsoft Office 2010 that does not have a template for the creation of AddIns in Visual Studio 2010. I had to throw the bad memories with IDTExtensibility2, a bit of diving by the registry in order to create an AddIn. That, once created the AddIn for OneNote in Windows8 is very cool, but… I found the head against the wall when I tried to debug it.

It turns out that if well on the list of Windows processes, there is active a process that has all the earmarks of being of OneNote called ONENOTE.EXE; so this process no is hostea the notes in OneNote. As an AddIn is a COM, it is not running in the context of the exe file in OneNote, but not executed within a DLLHOST (bad memories by God!)

image

But hey, attaching the appropriate dllhost process already can debug our AddIns for OneNote.

For this I have to thank Daniel escape for his pursuit of a few years ago > >http://blogs.msdn.com/b/descapa/archive/2007/05/01/debugging-a-onenote-toolbar-addin-c.aspx

Greetings @ the estate

The Bruno

Reference: http://msdn.microsoft.com/en-us/library/extensibility.idtextensibility2.aspx

Thanks To http://blogs.msdn.com/b/descapa/archive/2007/05/01/debugging-a-onenote-toolbar-addin-c.aspx

[#VS2010] HowTo: Depurar un AddIn para OneNote

image47dd1de4

Buenas,

no voy a comenzar a explicar el porqué de la creación de un AddIn para OneNote. Si alguno conoce la teoría de la mala suerte, pues podrá ver que OneNote es el único elemento de la suite de Microsoft Office 2010 que no posee una plantilla para la creación de AddIns en Visual Studio 2010. Tuve que tirar de los malos recuerdos con IDTExtensibility2, de un poco de buceo por el registro para poder crear un AddIn. Eso si, una vez creado el AddIn para OneNote en Windows8 queda muy chulo, pero …. me topé la cabeza contra la pared cuando intenté depurar el mismo.

Resulta que si bien en la lista de procesos de Windows, hay activo un proceso que tiene toda la pinta de ser el de OneNote, llamado ONENOTE.EXE; pues este proceso no es el que hostea las notas de OneNote. Como un AddIn es un COM, el mismo no se ejecuta en el contexto del EXE de OneNote sino que no se ejecuta dentro de un DLLHOST (que malos recuerdos por dios !!!)

image

Pero bueno, adjuntando el proceso al dllhost correspondiente ya podremos depurar nuestros AddIns para OneNote.

Para esto tengo que agradecer a Daniel Escapa por su pos de hace unos años >> http://blogs.msdn.com/b/descapa/archive/2007/05/01/debugging-a-onenote-toolbar-addin-c.aspx

 

Saludos @ La Finca

El Bruno

   

Referencia: http://msdn.microsoft.com/en-us/library/extensibility.idtextensibility2.aspx

Thanks To http://blogs.msdn.com/b/descapa/archive/2007/05/01/debugging-a-onenote-toolbar-addin-c.aspx

[OPINION] Visual Studio Achievements, some scary achievements !

image47dd1de4

Good,

in my previous post I mentioned the launch of Visual Studio Achievements, an interesting plugin that brings the concept of achievements or points to the world of development. Now, if we analyze the achievements that have been put into Channel 9, because we see that there is a Division in 6 categories for types of achievements. There is one in particular has achievements of zero points, but that scary just find someone possessing them. For example

image

Do we really want to teach the ruling goto to those people who do not know?. But well, I understand that this is an example of a bad practice and only serves as a reference. For example, the person who holds more achievements at this time (http://channel9.msdn.com/niners/DotNetNuzzi/achievements/visualstudio) has this achievement and I wonder:

Will have achieved the achievement to have points in this programme or really use the GOTO statement?

Both scenarios are equally dangerous. Other achievements that frightened include

Finally, Hadi Hariri is responsible for end to finish the poor implementation of the programme in this post (http://hadihariri.com/2011/11/25/visual-studio-achievements-who-needs-clean-code-anyway/ )).

I think that the idea is very good, that is carried forward a little bit of promotion tools that complement Visual Studio 2010, such as FxCop and profiling tools. But as says Hadi, could not have taken the opportunity and think of achievements that actually promote a development based on good practices and clean.

Greetings @ Home

The Bruno

Download: http://visualstudiogallery.msdn.microsoft.com/bc7a433b-b594-48d4-bba2-a2f24774d02f

References: http://hadihariri.com/2011/11/25/visual-studio-achievements-who-needs-clean-code-anyway/

[OPINION] Visual Studio Achievements, algunos logros dan miedo !!!

image47dd1de4

Buenas,

en mi post anterior comenté el lanzamiento de Visual Studio Achievements, un interesante plugin que trae el concepto de logros o puntos al mundo del desarrollo. Ahora bien, si analizamos los logros que se han puesto dentro de Channel 9, pues vemos que hay una división en 6 categorías para tipos de logros. Hay una en particular que tiene logros de cero puntos, pero que dan miedo de solo encontrar a alguien que los posea. Por ejemplo

image

De verdad queremos enseñar la sentencia goto a aquellas personas que no lo conocen?. Pero bueno, entiendo que esto es un ejemplo de una mala práctica y solo sirve como referencia. Por ejemplo, la persona que más logros posee en este momento (http://channel9.msdn.com/niners/DotNetNuzzi/achievements/visualstudio) posee este logro y yo me pregunto:

¿Habrá conseguido el logro para tener puntos en este programa o REALMENTE UTILIZA LA SENTENCIA GOTO?

Ambos escenarios son igual de peligrosos. Otros logros que asustan son los siguientes

Finalmente, Hadi Hariri se encarga de terminar de rematar la mala implementación del programa en este post (http://hadihariri.com/2011/11/25/visual-studio-achievements-who-needs-clean-code-anyway/).

Yo creo que la idea es muy buena, que se trata de llevar adelante un poco de promoción de herramientas que complementan a Visual Studio 2010, como FxCop o las herramientas de profiling. Pero como dice Hadi, no podrían haber aprovechado la ocasión y pensar en logros que realmente promuevan un desarrollo limpio y basado en buenas prácticas.

 

Saludos @ Home

El Bruno

   

Download: http://visualstudiogallery.msdn.microsoft.com/bc7a433b-b594-48d4-bba2-a2f24774d02f

References: http://hadihariri.com/2011/11/25/visual-studio-achievements-who-needs-clean-code-anyway/

[# VS2010] Visual Studio Achievements, achievements for each developer

image47dd1de4

Good,

These days I have not had time to write, nor to try many new things. But the idea of Visual Studio Achievements it caught my attention (although when seen the achievements I am stick!). But we are going to those who come on, this extension install you a plugin in the IDE of Visual Studio that is responsible for analyzing developments that you’re doing and gives you achievements based on them.

Once authenticated against Channel9, we can see how it can be integrated within the IDE.

image

Only now is a matter of leaving to do his work in analyzing behind and begin to count the achievements that we added,

image

I after playing with the tool a couple of minutes I found several unlocked achievements (some of which I am not particularly proud) Guiño)

image

As well, the idea seems great, he format too, although somewhat improve the accomplishments that are being promoted.That goes to the next post.

Greetings @ Home

The Bruno

Home: http://channel9.msdn.com/achievements/visualstudio

Download: http://visualstudiogallery.msdn.microsoft.com/bc7a433b-b594-48d4-bba2-a2f24774d02f

[#VS2010] Visual Studio Achievements, logros para cada developer

image47dd1de4

Buenas,

estos días no he tenido tiempo para escribir, ni tampoco para probar muchas cosas nuevas. Pero la idea de Visual Studio Achievements me llamó mucho la atención (aunque cuando visto los achievements me he quedado de palo!). Pero vamos a los que vamos, esta extensión te instala un plugin en el de IDE de Visual Studio que se encarga de analizar los desarrollos que estás haciendo y te brinda logros en base  a los mismos.

Una vez autenticado contra Channel9, podemos ver como se integra dentro del IDE.

image

A partir de este momento solo es cuestión de dejar que haga su trabajo de análisis por detrás y que comience a contar los logros que vamos sumado,

image

Yo después de jugar con la herramienta un par de minutos me encontré con varios logros desbloqueados (algunos de los que no me siento especialmente orgulloso Guiño)

image

Pues bueno, la idea me parece genial, él formato también, aunque mejoraría un poco los logros que se promueven. Eso va para el próximo post.

 

 

Saludos @ Home

El Bruno

   

Home: http://channel9.msdn.com/achievements/visualstudio

Download: http://visualstudiogallery.msdn.microsoft.com/bc7a433b-b594-48d4-bba2-a2f24774d02f

[# PERSONAL] Tomorrow elbruno.com will be down (you know why!)

Good,

today I turn write Kinect, ALM, Team Foundation, etc.

I just put this post to do my mini bit low giving a blog that surely that doesn’t read anyone for a whole day.

Tomorrow elbruno.com will be given low and stating that I prefer always > share to censor Enfadado

image

Greetings @ Home

El Bruno

Image Source: http://www.zazzle.com/angry_code_monkey_tshirt-235123079804333018

[#PERSONAL] Mañana elbruno.com estará caído (you know why!)

Buenas,

hoy paso de escribir de Kinect, ALM, Team Foundation, etc.

Simplemente pongo este post para aportar mi mini grano de arena dando de baja un blog que seguro que no lee nadie durante todo un día.

Mañana elbruno.com estará dado de baja y que conste que prefiero siempre > compartir a censurar Enfadado 

image

Saludos @ Home

El Bruno

   

Image Source: http://www.zazzle.com/angry_code_monkey_tshirt-235123079804333018

[#ALM] How often do we must make a CheckIn?

Hi,

Christmas and new year with the Javi were the only ones on The farm work. He played the pleasant task of preparing scripts of deployment, test them at local, then see how they fail in the test environment and not to mention in PRE and PRO. But hey, as the Javi is nicotinero, I was with him that you quench your Vice and between one thing and another we started to talk about the interesting and recurring themes

How often is recommended to make CheckIn while I modify codeshare? (or protect code in the repository)

But the issue was rather more specific, talking about what happens if we take a large portion of code and begin to work and improve it. In this case, can I protect my code at the end of the process of refactoring? do or do it more often when I apply will apply small changes? Here are some examples:

In the first case, it is common to see how a person takes a piece of code for a couple of days, is devoted to playing with them, and 48 hours after decides protect changes he has made. If you are working in a team together and you have modified common elements as for example the definition of a project, because it is very likely need to do one or moreMERGEactions. If in addition you have modified classes that were being used by other colleagues, then the MERGE would be more delicate.

After presenting this example, someone might think that the solution is to protect more frequently. Suppose that for each modification "mild" that we apply in our process of refactoring, and perform a CheckIn. In this case, we must very tuned the operation of the development team, as it is at that moment when other members should evaluate whether they need to get the latest version of SC and the same question should be the person who is doing the refactoring.

As we see none of the two cases it is a complete solution for this scenario. I from my humble opinion I can suggest the following for this example:

  • Evaluates the changes that you make and tries to them to be significant for the code. I.e. it’s not a line of commentary, nor the destruction and total replacement of 20 lessons per 7 different projects.
  • You must always comply with the basic premises prior to protect code > verify to compile and pass the latest version of unit testing.
  • If you find yourself frequently with "classes" which are working 2 people (or more), assesses whether you are serving the SOLIDprinciples. 2 People to work on the same classes usually indicator that this class is taking too much responsibility
  • If you fulfill the SOLIDprinciples, but you still find 2 people working on the same class; then give the person divides the tasks on the computer that we are sure that there is something that does not fit a touch.
  • He says this work with your classmates. The daily meeting of "updating" is an ideal time to discuss this work.
  • Finally, remember that a team must respect the principle of the shared ownership of the code. Each change that you apply affects the work of your peers and nobody is responsible and "master" of a single piece of code.

And to close, the classic of every day when we pass these things… (sourcehttp://geekandpoke.typepad.com/.a/6a00d8341d3df553ef0162fe399bd1970d-pi ))

image

Greetings @ Here

The Bruno

Geek And Poke: http://geekandpoke.typepad.com

[#ALM] Cada cuanto es recomendable hacer un CheckIn?

Buenas,

en navidades y año nuevo con el Javi éramos los únicos en La Finca trabajando. Nos tocaba la agradable tarea de preparar scripts de despliegue, probarlos en local, después ver como fallan en el entorno de pruebas y ni hablar en PRE y PRO. Pero bueno, como el Javi es nicotinero, yo lo acompañaba a que sacie su vicio y entre una cosa y otra nos pusimos  a hablar del interesante y recurrente tema

¿Cada cuánto es recomendable hacer CheckIn mientras modifico código compartido? (o proteger código en el repositorio)

Pero el tema era bastante más específico, ya que hablamos de lo que sucede si tomamos una gran porción de código y comenzamos a trabajar y mejorar la misma. En este caso, ¿debo proteger mi código al final del proceso de refactoring?¿o hacerlo más frecuentemente cuando aplico voy aplicando pequeños cambios? Veamos algunos ejemplos:

En el primer caso, es bastante frecuente ver cómo una persona toma una porción de código durante un par de días, se dedica a jugar con las mismas, y al cabo de 48 horas decide proteger los cambios que ha realizado. Si está trabajando en un equipo conjunto y ha modificado elementos comunes como por ejemplo la definición de un proyecto, pues es muy probable que tenga que hacer una o más acciones de MERGE. Si además ha modificado clases que estaban siendo utilizadas por otros compañeros, pues el MERGE será más delicado.

Después de presentar este ejemplo, tal vez alguien piense que la solución es proteger más frecuentemente. Supongamos que por cada modificación “leve” que aplicamos en nuestro proceso de refactoring, y realizamos un CheckIn. En este caso, debemos tener muy afinado el funcionamiento del equipo de desarrollo, pues es en ese momento cuando los demás integrantes deberán evaluar si necesitan obtener la última versión de SC y la misma pregunta deberá hacerse la persona que está realizando el refactoring.

Como vemos ninguno de los dos casos es una solución completa para este escenario. Yo desde mi humilde opinión puedo sugerir lo siguiente para este ejemplo:

  • Evalúa los cambios que realizas e intenta que los mismos sean significativos para el código. Es decir que no sea una línea de comentario, ni la destrucción y reemplazo total de 20 clases por 7 nuevos proyectos diferentes .
  • Siempre debes cumplir con las premisas básicas antes de proteger código > verificar que compile y que se pase la última versión de las pruebas unitarias.
  • Si te encuentras frecuentemente con “clases” sobre las que están trabajando 2 personas (o más), evalúa si estás cumpliendo los principios SOLID. Que 2 personas trabajen sobre la misma clases suele ser indicador de que esa clase está asumiendo demasiadas responsabilidades
  • Si cumples los principios SOLID, pero todavía te encuentras con 2 personas trabajando sobre la misma clase; pues dale un toque a la persona que reparte las tareas en el equipo ya que seguro que hay algo que no cuadra.
  • Comenta este trabajo con tus compañeros. La reunión diaria de “puesta al día” es un momento ideal para comentar este trabajo.
  • Finalmente, recuerda que en un equipo se debe respetar el principio de la propiedad compartida del código. Cada cambio que aplicas repercute en el trabajo de tus compañeros y nadie es responsable y “amo” de una única porción de código.

Y para cerrar, el clásico de cada día cuando nos pasan estas cosas … (fuente http://geekandpoke.typepad.com/.a/6a00d8341d3df553ef0162fe399bd1970d-pi)

image

Saludos @ Here

El Bruno

   

Geek And Poke : http://geekandpoke.typepad.com