[# VS2010] Virtual machines for testing Visual Studio 2010 ALM and Visual Studio ALM 11


image47dd1de4

Hi,

already I do not know how many times I’ve written this post. But wherever I want to find the latest version of Visual Studio 2010 or Visual Studio 11virtual machines, then I get lost on the way and I have to give a turn by google or bing. So I said the links for the next 6 months:

Visual Studio 2010 ALM

  • Microsoft ® Visual Studio ® 2010 and Team Foundation Server ® 2010 RTM virtual machine for Windows Virtual PC

    http://www.Microsoft.com/download/en/details.aspx?displaylang=en & id = 240

  • Microsoft ® Visual Studio ® 2010 and Team Foundation Server ® 2010 RTM virtual machine for Windows Server 2008 Hyper-V

    http://www.Microsoft.com/download/en/details.aspx?ID=5363

  • Microsoft ® Team Foundation Server 2010 and Microsoft Project Server ® 2010 Integration Hyper-V Virtual Machine

    http://www.Microsoft.com/download/en/details.aspx?ID=22267

  • Visual Studio 11 ALM

    • Visual Studio 11 Application Lifecycle Management Virtual Machine and Hands-on-Labs / Demo Scripts

      http://blogs.msdn.com/b/briankel/archive/2011/09/16/Visual-Studio-11-application-lifecycle-management-virtual-machine-and-hands-on-Labs-demo-scripts.aspx

    • Greetings @ Home

      The Bruno

      [#VS2010] Maquinas virtuales para probar Visual Studio 2010 ALM y Visual Studio 11 ALM


      image47dd1de4

      Buenas,

      ya no sé la cantidad de veces que he escrito este post. Pero siempre que quiero buscar la última versión de las máquinas virtuales de Visual Studio 2010 o Visual Studio 11, pues me pierdo en el camino y tengo que dar una vuelta por google o bing. Así que me apunto los links para los próximos 6 meses:

       

      Visual Studio 2010 ALM

       

      Visual Studio 11 ALM

       

      Saludos @ Home

      El Bruno

         

      [# VNEXT] Visual Studio 11 and Team Foundation 11 available for MSDN subscribers


      image47dd1de4

      Good,

      to see if I get a most tremendous header for Visual Studio 11 (the next after Visual Studio 2010) because that is now available for download for MSDN subscribers, because we are sure that there will be much that posting on the matter. Do to the fact that the new interface is very nice of the site?

      image

       

      For the public in general, it will be available on September 16.

       

      Greetings @ Here

      The Bruno

      [#VNEXT] Visual Studio 11 y Team Foundation 11 disponibles para suscriptores de MSDN


      image47dd1de4

      Buenas,

      a ver si me consigo un header más molón para Visual Studio 11 (el siguiente después de Visual Studio 2010) porque ahora que está disponible para descargar para los suscriptores MSDN, pues seguro que habrá mucho que postear al respecto. A que es muy guapa la nueva interfaz del site?

      image

       

      Para el público en general, estará disponible el próximo 16 de Septiembre.

       

      Saludos @ Here

      El Bruno

         

      [# TFS2010] Regular expression fuzzing tool (death on a single line)


      image47dd1de4

      Good,

      I am no friend of the regular expressiones, it is probably because except the simplest, they tend to be a hell of characters in a single line that can save you work but give you more than one headache. Also added to the number of examples on the internet of different regex for all kinds of scenarios, because things can go very wrong almost without realizing.

      ¿Why it can go wrong?, because because more that seems it not, solving a RegExp, it must be processed the same and this process, depending on the input data may give rise to very long process times or inclisve memory leaks.

      ¿What now you looks so nice that copying a line of internet and put it in your code?

      The MSDN Magazinearticle: “Regular Expression Denial of Service Attacks and proactive” deals with this topic and also shows how bad RegExp implementation can lead to DoS attacks.

      In addition, the results of an evaluation of a RegExp we can create a bug directly in Team Foundation Server 2010. This tool is part of SDL (Security Development Lifecycle) and integration with TFS is minimal, us allows create Bugs in Team Foundation Server.

      For example, if we analyze the RegExp “^(\d|\d?)”+$“, with one of the more ugly forms I’ve seen in a long time ”:

      image

      From it we can create a Bug in our Team Project

      image

      with the fields:

      Title: Exponential execution time in regular expression pattern ^(\d|\d?)+$

      Description: The regular expression pattern ^(\d|\d?)+$ can operate in a worst – case exponential execution time, potentially causing a denial of service to the application.

      and leave it as a point to be solved without it slip Open-mouthed smile

      So now you know, before using a RegExp, give a review with this tool to analyze vulnerabilities.

       

      Greetings @ Here

      The Bruno

         

      Download: http://www.microsoft.com/download/en/details.aspx?id=20095

      Reference: http://msdn.microsoft.com/en-us/site/ff646973

      Security Development LifeCyclehttp://blogs.msdn.com/b/sdl/archive/2010/10/12/new-tool-sdl-regex-fuzzer.aspx

      [#TFS2010] Regular expression fuzzing tool (muerte en una línea)


      image47dd1de4

      Buenas,

      yo no soy muy amigo de las expressiones regulares, seguramente es porque salvo las más simples, suelen ser un infierno de caractéres en una single line que pueden ahorrarte trabajo pero darte más de un dolor de cabeza. Además sumado a la cantidad de ejemplos que hay en internet de diferentes expresiones regulares para todo tipo de escenarios, pues la cosa puede ir muy mal casi sin darte cuenta.

      ¿Por qué puede ir mal?, pues porque por más que no lo parezca, para resolver una RegExp, hay que procesar la misma y este proceso, dependiendo del dato de entrada puede dar lugar a tiempos de proceso muy largos o inclisve memory leaks.

      ¿A qué ahora no te parece tan bonito eso de copiar de internet una línea y ponerla en tu código?

      El artículo de la MSDN Magazine: “Regular Expression Denial of Service Attacks and Defenses” trata este tema y además nos muestra como la mala implementación de RegExp puede llevar a ataques DoS.

      Además, a partir del resultado de una evaluación de una RegExp podemos crear un bug directamente en Team Foundation Server 2010. Esta herramienta es parte de SDL (Security Development Lifecycle) y si bien la integración con TFS es mínima, nos pemite crear Bugs en Team Foundation Server.

      Por ejemplo si analizamos la RegExp “^(\d|\d?)+$”, con uno de los formularios más feos que he visto en mucho tiempo:

      image

      A partir de la misma podremos crear un Bug en nuestro Team Project

      image

      con los campos:

      Title: Exponential execution time in regular expression pattern ^(\d|\d?)+$

      Description: The regular expression pattern ^(\d|\d?)+$ can operate in a worst-case exponential execution time, potentially causing a denial of service to the application.

      y dejarlo como un punto a solucionar sin que se nos escape Open-mouthed smile

      Asi que ya sabes, antes de utlizar una RegExp, darle un repaso con esta herramienta para analizar vulnerabilidades.

       

      Saludos @ Here

      El Bruno

         

      Descarga: http://www.microsoft.com/download/en/details.aspx?id=20095

      Referencia: http://msdn.microsoft.com/en-us/site/ff646973

      Security Development LifeCycle: http://blogs.msdn.com/b/sdl/archive/2010/10/12/new-tool-sdl-regex-fuzzer.aspx

      [# TFS2010] Introduction to Team Foundation Server 2010 Training Kit


      image47dd1de4

      Hi,

      a few days ago the friends evangelists from microsoft, launched a new training kit, this time aimed at those people who want to know from zero Team Foundation Server. I say this from scratch, because the contents are of a very basic level;from how to protect a file in the source code repository, to create a work item or create a query of WorkItems. That’s why the name is

      Introduction to Team Foundation Server 2010 Training Kit

      What I liked is see that for the creation of their own Training Kits, they have used Team Foundation Server. It is good to deny that that House of blacksmith stick knife .

      Picture1

       

      Greetings @ Here

      The Bruno

         

      Download: http://www.microsoft.com/download/en/details.aspx?id=27152

      [#TFS2010] Introduction to Team Foundation Server 2010 Training Kit


      image47dd1de4

      Hi,

      hace unos días, los amigos evangelistas de microsoft, lanzaron un nuevo training kit, esta vez dirigido a aquellas personas que quieren conocer desde cero Team Foundation Server. Digo desde cero, porque los contenidos son de un nivel muy básico; desde como proteger un archivo en el repositorio de código fuente, hasta como crear un elemento de trabajo o crear una consulta de WorkItems. Es por eso que el nombre es

      Introduction to Team Foundation Server 2010 Training Kit

      Lo que si me ha gustado es ver que para la creación del propio Training Kit, han utilizado Team Foundation Server. Eso viene bien para desmentir eso de que en casa de herrero cuchillo de palo.

      Picture1

       

      Saludos @ Here

      El Bruno

         

      Descarga: http://www.microsoft.com/download/en/details.aspx?id=27152

      [TFS2010] HowTo: Create a WorkItem with custom fields using c#


      image47dd1de4

      Good,

      While the object model in Visual Studio 2010 to work with Team Foundation Server 2010 is not very complex, there are some particularities to be taken into account. For example, when we want to create a WorkItem that we changed you the structure of fields.

      For example, for the definition of a task we have added 2 more to the same text fields, named “version” and “scope”, and then we’ve added them visually to the edit form (if you want to see how it is possible to make this change, this post is for you). In the following image it is possible to see how the “version” field is required for the creation of a task.

      image

      If we take the example available from MSDN for the creation of a WorkItem using the Client Object Model, we see that the same not takes into account the use of custom fields. We modify it to save data from a task, as shown in the following code:

         1: using System;

      2: using Microsoft.TeamFoundation.Client;

      3: using Microsoft.TeamFoundation.WorkItemTracking.Client;

      4: 

      5: namespace ElBruno.CreateWiFromCode

      6: {

      7: class Program

      8: {

      9: static void Main(string[] args)

      10: {

      11: var collectionUri = new Uri(“http://localhost:8080/tfs/tpb”);

      12: var tpc = new TfsTeamProjectCollection(collectionUri);

      13: var workItemStore = tpc.GetService<WorkItemStore>();

      14: var teamProject = workItemStore.Projects["AgileLabs"];

      15: var workItemType = teamProject.WorkItemTypes["Task"];

      16: 

      17: var task = new WorkItem(workItemType)

      18: {

      19: Title = “Sample Title”,

      20: Description = “Sample desc”

      21: };

      22: task.Save();

      23: 

      24: Console.WriteLine(@”WorkItem id: ” + task.Id);

      25: Console.ReadLine();

      26: }

      27: }

      28: }

      When you want to save the WI line (22), we find the following exception:

      image

         1: Microsoft.TeamFoundation.WorkItemTracking.Client.ValidationException was unhandled

      2: Message=TF237124: Work Item is not ready to save

      3: Source=Microsoft.TeamFoundation.WorkItemTracking.Client

      4: IsRemoteException=false

      5: ErrorId=0

      6: LogException=false

      7: StackTrace:

      8: at Microsoft.TeamFoundation.WorkItemTracking.Client.WorkItem.Save(SaveFlags saveFlags)

      9: at Microsoft.TeamFoundation.WorkItemTracking.Client.WorkItem.Save()

      10: at ElBruno.CreateWiFromCode.Program.Main(String[] args) in

      11: at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)

      12: at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)

      13: at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()

      14: at System.Threading.ThreadHelper.ThreadStart_Context(Object state)

      15: at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)

      16: at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)

      17: at System.Threading.ThreadHelper.ThreadStart()

      18: InnerException:

       

      The solution is to define the value of the “version” field in order to thus fulfil the fields required for the task. One of the possible ways to view the status of an WI, is analyzing the IsDirty field of the same. In this case we can perform the following validation

         1: var task = new WorkItem(workItemType)

      2: {

      3: Title = “Sample Title”,

      4: Description = “Sample desc”

      5: };

      6: if(task.IsDirty)

      7: Console.WriteLine(“Can’t save WorkItem”);

      8: else

      9: task.Save();

       

      The objective of the post was to explain how to add values to the custom fields, in this case the magic performed again, line 22.

         1: using System;

      2: using Microsoft.TeamFoundation.Client;

      3: using Microsoft.TeamFoundation.WorkItemTracking.Client;

      4: 

      5: namespace ElBruno.CreateWiFromCode

      6: {

      7: class Program

      8: {

      9: static void Main(string[] args)

      10: {

      11: var collectionUri = new Uri(“http://localhost:8080/tfs/tpb&#8221;);

      12: var tpc = new TfsTeamProjectCollection(collectionUri);

      13: var workItemStore = tpc.GetService<WorkItemStore>();

      14: var teamProject = workItemStore.Projects["AgileLabs"];

      15: var workItemType = teamProject.WorkItemTypes["Task"];

      16: 

      17: var task = new WorkItem(workItemType)

      18: {

      19: Title = “Sample Title”,

      20: Description = “Sample desc”

      21: };

      22: task.Fields["ElBruno.Version"].Value = “version 01″;

      23: task.Save();

      24: 

      25: Console.WriteLine(@”WorkItem id: ” + task.Id);

      26: Console.ReadLine();

      27: }

      28: }

      29: }

       

      Greetings @ Here

      The Bruno

         

      Source: http://msdn.microsoft.com/en-us/library/bb130322.aspx#Y697

      [TFS2010] HowTo: Crear un WorkItem con campos personalizados en C#


      image47dd1de4

      Buenas,

      si bien el modelo de objetos para Visual Studio 2010 para trabajar con Team Foundation Server 2010 no es muy complejo, hay algunas particularidades a tener en cuenta. Por ejemplo, cuando queremos crear un WorkItem al que le hemos modificado su estructura de campos.

      Por ejemplo, para la definición de una tarea hemos agregado 2 campos de texto más a la misma, llamados “Version” y “Scope”, y luego los hemos agregado visualmente al formulario de edición (si quieres ver como es posible realizar este cambio, este post es para ti). En al siguiente imagen es posible ver como el campo “versión” es requerido para la creación de una tarea.

      image

      Si tomamos el ejemplo disponible desde MSDN para la creaciòn de un WorkItem utilizando el Client Object Model, veremos que en el mismo no se tiene en cuenta la utilización de campos personalizados. Modificamos el mismo para que guarde los datos de una tarea, como muestra el siguiente código:

         1: using System;

         2: using Microsoft.TeamFoundation.Client;

         3: using Microsoft.TeamFoundation.WorkItemTracking.Client;

         4:  

         5: namespace ElBruno.CreateWiFromCode

         6: {

         7:     class Program

         8:     {

         9:         static void Main(string[] args)

        10:         {

        11:             var collectionUri = new Uri("http://localhost:8080/tfs/tpb");

        12:             var tpc = new TfsTeamProjectCollection(collectionUri);

        13:             var workItemStore = tpc.GetService<WorkItemStore>();

        14:             var teamProject = workItemStore.Projects["AgileLabs"];

        15:             var workItemType = teamProject.WorkItemTypes["Task"];

        16:  

        17:             var task = new WorkItem(workItemType)

        18:             {

        19:                 Title = "Sample Title",

        20:                 Description = "Sample desc"

        21:             };

        22:             task.Save();

        23:  

        24:             Console.WriteLine(@"WorkItem id: " + task.Id);

        25:             Console.ReadLine();

        26:         }

        27:     }

        28: }

       

       

      Cuando se quiere guardar el WI (línea 22), nos encontramos con la siguiente excepción:

      image

         1: Microsoft.TeamFoundation.WorkItemTracking.Client.ValidationException was unhandled

         2:   Message=TF237124: Work Item is not ready to save

         3:   Source=Microsoft.TeamFoundation.WorkItemTracking.Client

         4:   IsRemoteException=false

         5:   ErrorId=0

         6:   LogException=false

         7:   StackTrace:

         8:        at Microsoft.TeamFoundation.WorkItemTracking.Client.WorkItem.Save(SaveFlags saveFlags)

         9:        at Microsoft.TeamFoundation.WorkItemTracking.Client.WorkItem.Save()

        10:        at ElBruno.CreateWiFromCode.Program.Main(String[] args) in 

        11:        at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)

        12:        at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)

        13:        at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()

        14:        at System.Threading.ThreadHelper.ThreadStart_Context(Object state)

        15:        at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)

        16:        at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)

        17:        at System.Threading.ThreadHelper.ThreadStart()

        18:   InnerException: 

      La solución consiste en definir el valor del campo “version” para poder de esta forma cumplir con los campos requeridos para la tarea. Una de las formas posibles de ver el estado de un WI, es analizando el campo IsDirty del mismo. Para este caso podemos realizar la siguiente validación

         1: var task = new WorkItem(workItemType)

         2: {

         3:     Title = "Sample Title",

         4:     Description = "Sample desc"

         5: };

         6: if(task.IsDirty)

         7:     Console.WriteLine("Can't save WorkItem");

         8: else

         9:     task.Save();

       

      El objetivo del post era explicar como agregar valores a los campos personalizados, en este caso la magia la realiza una vez más, la línea 22.

         1: using System;

         2: using Microsoft.TeamFoundation.Client;

         3: using Microsoft.TeamFoundation.WorkItemTracking.Client;

         4:  

         5: namespace ElBruno.CreateWiFromCode

         6: {

         7:     class Program

         8:     {

         9:         static void Main(string[] args)

        10:         {

        11:             var collectionUri = new Uri("http://localhost:8080/tfs/tpb");

        12:             var tpc = new TfsTeamProjectCollection(collectionUri);

        13:             var workItemStore = tpc.GetService<WorkItemStore>();

        14:             var teamProject = workItemStore.Projects["AgileLabs"];

        15:             var workItemType = teamProject.WorkItemTypes["Task"];

        16:  

        17:             var task = new WorkItem(workItemType)

        18:             {

        19:                 Title = "Sample Title",

        20:                 Description = "Sample desc"

        21:             };

        22:             task.Fields["ElBruno.Version"].Value = "version 01";

        23:             task.Save();

        24:  

        25:             Console.WriteLine(@"WorkItem id: " + task.Id);

        26:             Console.ReadLine();

        27:         }

        28:     }

        29: }

       

       

      Saludos @ Here

      El Bruno

         

      Fuente: http://msdn.microsoft.com/en-us/library/bb130322.aspx#Y697