Mostrando entradas con la etiqueta Debugging. Mostrar todas las entradas
Mostrando entradas con la etiqueta Debugging. Mostrar todas las entradas

sábado, 3 de enero de 2015

IntelliTrace Collector–Sharepoint 2013

Siempre es útil debuggear apps en producción, pero no siempre nos dejan instalar Visual Studio para hacer el debugging. En estos casos podemos usar IntelliTrace collector para guardar información de diagnóstico en un Intellitrace log file (.iTrace files). Nos permite registrar que pasa en nuestra app sin instalar Visual Studio o hacer cambios en el ambiente.

image

Folder: C:\IntelliTraceCollector

Abro una consola de powershell con permisos de administrador, y ejecuto lo siguiente:

cd C:\IntelliTraceCollector

expand /f:* IntelliTraceCollection.cab. C:\IntelliTraceCollector

image

Ejecuto el siguiente comando en la consola de powershell:
Import-Module C:\IntelliTraceCollector\Microsoft.VisualStudio.IntelliTrace.PowerShell.dll

image

Para saber sobre que App Pool voy a ejecutar el tracer, ejecuto el siguiente comando:

[Microsoft.SharePoint.Administration.SPWebService]::ContentService.ApplicationPools | ft Name

Este nos retorna todos los app pools de los web application. En el caso que quieras debuggear alguna feature del Central Administration, ejecuta el siguiente comando:

[Microsoft.SharePoint.Administration.SPWebService]::AdministrationService.ApplicationPools | ft Name

El mismo nos retorna el nombre del pool del Central Administration.

Ahora ejecuto lo siguiente:

Start-IntelliTraceCollection "DefaultAppPool (6.20.2014 10.27.31 AM)" "C:\IntelliTraceCollector\collection_plan.ASP.NET.default.xml" "C:\IntelliTraceCollector"

image

Ahora ejecuto el siguiente comando

Get-IntelliTraceCollectionStatus

El cual nos lista todos los App Pool y el estado del trace.

image

collection_plan.ASP.NET.default.xml: Colecciona solo IntelliTrace events y SharePoint events, incluyendo exceptions, database calls, y Web server requests. Si queres tener un trace más detallado tenes que ejecutarlo con collection_plan.ASP.NET.trace.xml

DefaultAppPool (6.20.2014 10.27.31 AM) –> es el nombre del Pool

C:\IntelliTraceCollector –> es el output de salida del archivo iTrace

Después de haber verificado que está OK el trace , reproduzco el problema, y recorro un poco el sitio de Sharepoint para coleccionar datos.

Una vez que reproduje el error, ejecuto el siguiente comando:

Checkpoint-IntelliTraceCollection "DefaultAppPool (6.20.2014 10.27.31 AM)"

image

Para finalizar el trace, ejecuto el comando:

Stop-IntelliTraceCollection "DefaultAppPool (6.20.2014 10.27.31 AM)"

Get-IntelliTraceCollectionStatus

En el directorio, está el archivo iTrace. El cual se puede abrir con Visual Studio 2013.

image

Después puedo recorrer el trace

image

Por ejemplo, puedes agregar el correlation ID de la excepción de Sharepoint para buscar la sección del trace que le corresponde.

Puedes ver las excepciones, web request, la información del sistema en el momento que ejecutaste el trace, la lista de threads que se dispararon y los modulos que se cargaron (.dll)

image

image

image

image

image

Para mayor información: http://msdn.microsoft.com/en-us/library/vstudio/hh398365.aspx

http://blogs.msdn.com/b/visualstudioalm/archive/2012/12/11/debugging-sharepoint-apps-with-intellitrace-in-visual-studio.aspx

domingo, 21 de septiembre de 2014

Cómo utilizar el debugger de Visual Studio con client side rendering

Primero verifico que esté desmarcado las siguientes opciones en las propiedades avanzadas del IE.

image

(function () {
    var itemCtx = {};
    itemCtx.Templates = {};
   
    itemCtx.Templates.Header = "<table>";
    itemCtx.Templates.Footer = "</table>";
    itemCtx.Templates.Fields = { 'Title': { 'View': ItemOverrideFun}};
    itemCtx.BaseViewID = 1;
    itemCtx.ListTemplateType = 101;         
    SPClientTemplates.TemplateManager.RegisterTemplateOverrides(itemCtx);
})();

function ItemOverrideFun(ctx) {   
   debugger;
    var title = ctx.CurrentItem.Title;
    var fileRef = ctx.CurrentItem["FileRef"];
    var fileLeafRef = ctx.CurrentItem["FileLeafRef"];  
       var htmlToDeploy = "<a style='color:#000; font-weight:bold' href='" + ctx.CurrentItem["FileRef"] + "'>" + ctx.CurrentItem.Title + "</a><br><span>" + formattedDate(ctx.CurrentItem.Modified)  + " for <b><font color='#f58228'> "+ ctx.CurrentItem.Customer[0].lookupValue +"</font></b></span>";
 
    return htmlToDeploy;
}

En la función ItemOverrideFun, vemos la palabra debugger, esta es una palabra reservada que permite invocar el JIT (just in time) debugger

Al ejecutarse esta línea en el IE, me lanza la siguiente ventana

image

Al abrir el Visual Studio 2013, veo el stack de llamadas y me permite debuggear con VS

image

Si marca la variable htmlToDeploy, y selecciono Add Watch

image

image

Puedo ver el html que se renderiza en la página de forma fácil

image

Si veo en la página como queda,

image

viernes, 8 de junio de 2012

Tips/info #29 Sharepoint 2010

1-Algunas cosas del media web part de Sharepoint 2010

Formatos de archivos que soporta: http://msdn.microsoft.com/en-us/library/cc189080(VS.95).aspx

No soporta flash.

Permite streaming de otros sitios

Es una feature de Publishing

Más info: http://blogs.msdn.com/b/sanjaynarang/archive/2010/05/20/media-web-part-in-sharepoint-2010-faq.aspx

2-Ejecutar todos los jobs del Health Analyzer mediante PowerShell

Get-SPTimerJob | Where {$_.Name -like "*Health*" -and $_.Name -like "*-all-*"} | Start-SPTimerJob

3-Debugging de timer de jobs

Hay veces que el debugging de atachar el proceso de w3wp no funciona, para ello se puede usar:

System.Diagnostics.Debugger.Launch();

Esta instrucción hará que salte el típico cuadro de diálogo que nos permite seleccionar el depurador que queremos adjunta a nuestro servicio. Evidentemente la podemos usar en aplicaciones que no sean servicios para tener la oportunidad de ajuntar un depurador cuando se ejecute determinado código

image_a7457bd8-76d6-49f4-b605-de1b14a3aaef

3-Export web con la seguridad y las últimas 3 versiones de los archivos

Export-SPWeb -Identity http://servidor/sitio -Path "C:\Backup.bak" –IncludeUserSecurity -IncludeVersions 3

IncludeUserSecurity: Conserva la configuración de seguridad del usuario.

IncludeVersions: Indica qué tipo de historial de versiones de archivos y elementos de lista debe incluirse en la exportación. Si el parámetro IncludeVersions no está presente, el cmdlet Export-SPWeb usará el valor 1 como predeterminado.

4-Cambiar los iconos de los tipos de archivos

Estos pasos se deben hacer en cada WFE, ir a :

C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\IMAGES\

    Subir el icono deseado.

    Después ir a

    C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\XML\

    y editar el archivo docIcon.xml, encontrar el elemento <ByExtension>, y cambiarle el atributo de la imagen con el nombre que subimos en el paso 1.

    <Mapping Key="pdf" Value="pdf-small.png"/>

    5-Borrar site huérfanos

    Ejecutar enumweb sobre todas las base de datos para checkear sites huérfanos.
    stsadm –o enumallwebs –databasename "databasename" –databaseserver

    stsadm -o deletesite -siteid "GUID" -databaseserver "SQLServerame" -databasename "databasename" –force

    6-Borrar web parts huérfanos

    Abrir la página en modo mantenimiento (?content=1) y borrar el web part huérfano (no usar Remove)

    The error "Missing server side dependencies" came up with an explanation saying "WebPart class [GUID] is referenced [x] times in the database [ContentDB], but is not installed on the current farm."

    Usar la siguiente consulta SQL para saber en que lugar está el web part huérfano.

    SELECT Id, SiteId, DirName, LeafName, WebId, ListId, tp_ZoneID, tp_DisplayName

    from AllDocs

    inner join AllWebParts on AllDocs.Id = AllWebParts.tp_PageUrlID

    where AllWebParts.tp_WebPartTypeID = 'GUID’;

    7-Agregar palabras custom al spell check (corrector ortográfico) de Sharepoint 2010

    Crear una document library a nivel del root site, es decir a nivel de site collection llamada ‘Spelling’.

    Crear un archivo .txt con términos custom que se agregaran al diccionarion– un término por línea y guardalo con el nombre “Custom Dictionary.txt”.

    Y subí el txt a la librería “Spelling”.

    8-Relink los forms de infopath después de migrar

  • Abrir la libreria de forms
  • Click “Modify Columns and Settings”
  • En la sección General Settings, click Relink forms to this form library.
  • En la vista presentada, seleccionar todos los forms que se quieren relinkear.
  • Click el botón Relink

  • También se puede usar el siguiente comando de powershell;


     Update-SPInfoPathAdminFileURL -find <OldUURLtoReplace> -replace <NewURL>


    9-Jquery y SPServices


    Si se usa una versión más grande de SPServices que 0.7.1a usarlo de la siguiente manera:


    jQuery(xData.responseXML).SPFilterNode(“z:row”)


    Sino usar:


    jQuery(xData.responseXML).find(“z\\:row’”)


    10-Desactivar una feature en todos los sitios de una site collection

    $url = "http://sharepoint_site"
    $sitio = Get-SPsitio $url
    foreach($web in $sitio.AllWebs)
    {
    $url = $web.Url
    if($url -ne $url){
    foreach($feature in Get-SPFeature -Web $url)
    {
    $featureName = $feature.DisplayName
    if($featureName -eq "NOMBRE_FEATURE")
    {
    "Desactivo al feature en la web"
    Disable-SPFeature -Identity NOMBRE_FEATURE -Url $url -Confirm:$false
    break;
    }
    }
    }
    }



    domingo, 3 de junio de 2012

    Tips/info #27 Sharepoint 2010

    1-Saber la url relativa o absoluta de una lista o libreria

    SPList miLista = miSitio.Lists["Libreria"];

    miLista .RootFolder.ServerRelativeUrl  //url relativa

    miSitio.MakeFullUrl(miLista .RootFolder.ServerRelativeUrl) //url absoluta

    string fullDisplayFormUrl = SPUtility.GetFullUrl(miSitio, miLista .DefaultDisplayFormUrl); // url absoluta para el disp form

    2-Error al ingresar a la sección “Manage and content structure”

    Failed to retrieve the list schema for feature xxxxxxx, list template xxxxxxx; expected to find it at: ""

    System.NullReferenceException: Object reference not set to an instance of an object. at - Microsoft.SharePoint.Publishing.Internal.WebControls.ObjectSerializer.DeleteAllowed(Boolean checkPermissions)

    List does not exist. The page you selected contains a list that does not exist. It may have been deleted by another user.

    Esto se debe a que una lista o librería este corrupta o huérfana, para ello se debe ejecutar el siguiente comando de powershell

    stsadm.exe -o forcedeletelist -url <url de la lista>

    3-Error: The Taxonomy feature (Feature ID "73EF14B1-13A9-416b-A9B5-ECECA2B0604C") has not been activated.

    Enable-SPFeature -identity "73EF14B1-13A9-416b-A9B5-ECECA2B0604C" -url <Your Site URL Here>

    4-No cargar archivos debug.js

    Ej:

  • cui.debug.js
  • core.debug.js
  • sp.debug.js
  • sp.ribbon.debug.js
  • init.debug.js

    Para ello se deberá cambiar el ScriptMode a Release

    <asp:ScriptManager id="ScriptManager" runat="server" ScriptMode="Release" EnablePageMethods="false" EnablePartialRendering="true" EnableScriptGlobalization="false" EnableScriptLocalization="true" />

    5-Un administrador de site no puede guardar un template de lista

    Esto se debe a que la lista “List Template Gallery” tiene permisos únicos y los cuales no incluyen al usuario actual. (site > site actions > site settings > Galleries > List template gallery )

    6-Ocultar el icono de “Ir hacia arriba/breadcrumb”

    <style>
    .s4-breadcrumb-anchor
    {
    visibility: hidden;
    }
    </style>



    7-Usar web services para obtener datos de una lista de otro sitio


    http://blog.concurrency.com/sharepoint/sharepoint-2010-cross-site-content-rollup-using-sharepoint-designer-2010-and-a-dataview-web-part/


    8-Botón desactivado para activar una sandboxed solutions


    Verifique que el servicio “Microsoft SharePoint Foundation Sandboxed Code Service” esté activado (started).


    También verifique que el “SharePoint 2010 User Code Host” esté iniciado.


    9-“Upload Multiple Documents” deshabilitado o grisado



  • uploaddisabled1


    Primero verifica si tienes habilitada la opción “enable Client Integration” en el central administration: Abre el Central Administration, ir a Manage web applications, seleccionar el web application donde la feature se requiere habilitar click sobre Authentication providers, click sobre la zona correcta.


    clientintegration1


    También habilita la opción de Presence en la sección General Setting.


    presencesettings1


    Una vez que se activo la feature del lado del servidor, ahora requiere activar algunas cosas del lado del cliente.


    El cliente deberá tener framework NET 3.5 o superior.


    Si el control de ActiveX llamado STSUpld.UploadCtl (http://msdn.microsoft.com/en-us/library/ms456628.aspx) está deshabilitado, la opción de “Upload multiple Documents” aparecerá grisada.


    addon1


    Esta dll se registra cuando se instala el office, pero puede ser que esté corrupta.



    Una posibilidad es instalar el Sharepoint Designer, ya que instala esta dll.


    Otra posibilidad es descargar la dll: http://www.dlldump.com/download-dll-files_new.php/dllfiles/S/STSUPLD.DLL/11.0.5523/download.html



    10-Clave de registro donde se almacena el connection string de la base de datos ConfigDB de Sharepoint 2010


    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\Web Server Extensions\14.0\Secure\ConfigDb


    viernes, 18 de mayo de 2012

    Tips/Info #22 Sharepoint 2010

    1-Error: "There was a problem retrieving data for this field. Updating values in this field is disabled temporarily. You can still update values in other fields."

    Al tratar de actualizar el perfil del usuario en Sharepoint 2010 obtenemos este error,

    clip_image002_2

    El "Managed Metadata Web Service" es compartido entre granjas, se solucionaría el error activando la "This service application is the default storage location for Keywords." para el " Managed Metadata Web Service Proxy".

    1884.Untitled

    Las propiedades contienen esos campos linkeados al Managed Metadata Service Application. Por lo tanto el Managed Metadata Web Service debe esta iniciado.

    clip_image005_2

    2-Managed Metadata Navigation

    Usando esta caractueristica los usuarios puede ser filtrar data en list view web parts. MetaData Navigation Panel aparece cuando el usuario ve cualquier vista de una librería.

    2010-06-04-ManagedMetadataFocusOnContentOrganizer-21

    3-Si usas SSRS en modo integrado con Sharepoint 2010, un error puede ocurrir a usar parámetros de reportes que tienen una gran cantidad de números de items en ellos.

    System.Web.HttpException:
    The URL-encoded form data is not valid. —> System.InvalidOperationException: Operation is not valid due to the current state of the object.
    at System.Web.HttpValueCollection.ThrowIfMaxHttpCollectionKeysExceeded()
    at System.Web.HttpValueCollection.FillFromEncodedBytes(Byte[] bytes, Encoding encoding)
    at System.Web.HttpRequest.FillInFormCollection()
    — End of inner exception stack trace —
    at System.Web.HttpRequest.FillInFormCollection()
    at System.Web.HttpRequest.get_Form()

    Lo que se debe hacer es agregar lo siguiente en el web.config y hacer un iisreset

    <appSettings>
    <add key=”aspnet:MaxHttpCollectionKeys” value=”5000″ />
    </appSettings>

    4-Debuggear errores en Sharepoint 2010

    Ir al Web.Config de tu web application

  • Cambiar Debug=”true”
  • Cambiar CallStack=”true”
  • cambiar CustomErrors=”Off”
  • Tambien editar el web.config en la carpeta drive:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\LAYOUTS , seteando la opción customErrors en off

    5-Visual Studio no empaqueta la solución de Sharepoint después de un build

    Abrir el archivo de proyecto con Notepad, y buscar por CreatePackage. Si no está la sección, se debe agregar lo siguiente debajo del elemento Project.<PropertyGroup>
       <BuildDependsOn>$(BuildDependsOn);CreatePackage</BuildDependsOn>
    </PropertyGroup>

    Recargar el pryecto en Visual Studio, y ya empezará a el Visual Studio hacer paquetes de Sharepoint.

    6-Las carpetas de Sharepoint con un caracter de underscore no aparecen en la vista del explorar

    eliminar el underscore y aparecerá en la vista del explorador. En la vista web sin embargo aparece en los dos casos.

    7-Formularios de infopath no pueden llenarse de forma web (online)

    El problema es que no está habilitado el rendering para los usuarios.

    Abrir una consola de powershell

    Set-SPInfoPathFormsService -AllowUserFormBrowserRendering $true

    Otra manera es haciendolo desde el CA: desde la configuración del InfoPath Forms Services, en la sección User Browser-enabled Form Templates.

    8-Error:  There are no addresses available for this application al agregar el web part de Web Analytics

    Central Admin > System Settings > Manage Services On Server verificar si el  “Managed Metadata Web Service” está iniciado

    9- “The current page has been customized from its template.”

    Se puede ocultar ese mensaje con lo siguiente:

    <style type="text/css">
                  body #pageStatusBar{height:0px; font-size:0px; padding:0px; border-style:none;}
    </style>

    10- Archivo DocIcon.xml

    Está localizado en %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\TEMPLATE\XML\DocIcon.xml

    Este archivo esta presente en cada front end. Su objetivo es proporcionar una forma de especificar el icono que aparece para cualquier tipo de archivo determinado que se puede cargar a una lista o biblioteca de documentos y, opcionalmente, una forma de especificar si un control ActiveX debe usarse para abrir el archivo.

    El objetivo de este archivo es asociar tipos de archivo con los siguientes elementos:

  • El icono de documento que representa un tipo de archivo en las listas y los resultados de búsqueda.

  • (Opcional) El control ActiveX que abre un archivo de este tipo para verlo o modificarlo.

  • (Opcional) El texto que aparece en los menús desplegables como el elemento de edición (“Editar en nombre de aplicación”) para un archivo que se cargó en una lista.

  • Las opciones de configuración de DocIcon.xml son globales para una implementación de SharePoint Foundation y afectan a todas las definiciones de sitio en todos los servidores front-end web.Si modifica DocIcon.xml, debe realizar cambios idénticos en cada servidor front-end web para que todos los servidores permanezcan sincronizados.

    Al modificarlo, debe hacer un iisreset para que tome los cambios.

    11-Borrar una lista corrupta (desde la interface web no se puede)

    stsadm.exe -o forcedeletelist -url http://miservidor/Lists/Tasks

    sábado, 24 de marzo de 2012

    Links útiles #12 – Sharepoint 2010

    1-Search multilenguaje Sharepoint 2010

    http://blogs.msdn.com/b/opal/archive/2010/06/28/multilingual-search-in-sharepoint-server-2010-and-fast-search-server-2010.aspx

    2-Crear un slider de contenido con Sharepoint y Jquery

    https://www.nothingbutsharepoint.com/sites/eusp/pages/creating-your-own-content-slider-for-sharepoint.aspx

    3-Alias de SQL Server 2008 R2 con Sharepoint 2010

    http://www.sharepointassist.com/2010/02/02/configure-a-sql-server-alias-for-sharepoint-sql-server-2008/

    4-Filtrar una lista de Sharepoint con jquery y un combo

    http://request4it.wordpress.com/2012/03/13/filter-a-sharepoint-list-with-jquery/

    5-Puertos necesarios para un farm de Sharepoint 2010

    http://geeks.ms/blogs/ciin/archive/2012/03/21/sharepoint-2010-puertos-necesarios-para-un-despliegue-en-modo-granja.aspx

    6-Script para habilitar todas las features de IIS para usar Sharepoint 2010

    http://otak-otak-it.blogspot.com.ar/2012/03/automatic-iis-configuration-script-for.html

    7-Eligiendo la tecnología de reportes correcta

    http://devinknightsql.wordpress.com/2012/03/01/choosing-the-right-microsoft-reporting-technology-part-1-report-services/

    http://devinknightsql.wordpress.com/2012/03/06/choosing-the-right-microsoft-reporting-technology-part-2-excel/

    http://devinknightsql.wordpress.com/2012/03/15/choosing-the-right-microsoft-reporting-technology-part-3-powerpivot/

    http://devinknightsql.wordpress.com/2012/03/21/choosing-the-right-microsoft-reporting-technology-part-4-performancepoint/

    8-Reglas: Analizador/mantenimiento de base de datos de Sharepoint 2010

    http://www.mssqltips.com/sqlservertip/2648/sharepoint-2010-databases-maintenance-health-analyzer-rules/

    9-Configurando el Panel de refinamiento Sharepoint 2010

    http://geeks.ms/blogs/marchena/archive/2012/03/22/configuraci-243-n-del-panel-de-refinamiento-en-los-resultados-de-b-250-squeda.aspx

    10-Configurar el servicio de user profile

    http://www.anhero.org/how-to-configuration-the-user-profile-service-in-sharepoint-2010/

    11- Extendiendo la parte social de Sharepoint

    http://www.sharepointnutsandbolts.com/2012/03/extending-sharepoint-2010-social.html?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+ChrisObrien+%28Chris+O%27Brien+%5BMVP+SharePoint%5D%29

    12-Crear una columna autoincremental con formato definido

    http://dlairman.wordpress.com/2011/01/10/add-a-unique-auto-incrementing-column-to-a-sharepoint-list/

    13-Desarrollando un BCS de Sharepoint 2010 con Visual Studio 2010

    http://www.sharepointbriefing.com/spcode/develop-a-business-data-connectivity-model-for-sps-2010-using-vs-2010.html

    14-Almacenar datos de configuración para los jobs

    http://blogs.microsoft.co.il/blogs/itaysk/archive/2012/03/23/storing-configuration-settings-for-timer-jobs.aspx

    15-Acceder a Sharepoint 2010 vía tecnologías de cliente.

    http://platinumdogs.wordpress.com/2012/03/20/sharepoint-displaying-list-data-with-client-side-technology-spservices-jquery-jsrender/

    16-Cómo saber a que proceso atachar el debbuger en Visual Studio 2010 y Sharepoint 2010

    http://ybbest.wordpress.com/2012/03/22/how-to-find-which-w3wp-exe-to-attach-when-debugging-your-sharepiont2010-project/

    17-Servicios disponibles en las dos versiones de Sharepoint 2010 (Standart & Enterprise)

    http://www.etechplanet.com/blog/service-applications-available-out-of-the-box-with-sharepoint-2010-products.aspx

    18-Importar las managed property y crawled property

    http://gallery.technet.microsoft.com/Import-Search-CrawledManage-1fa3d94b

    19-Optimizando la performance de reporting services

    http://sqlcat.com/sqlcat/b/technicalnotes/archive/2009/01/14/reporting-services-performance-optimizations.aspx

    20-Mejores prácticas para backups & restore de Sharepoint 2010

    http://smallcitydesign.com/sharepoint-2010-backup-and-recovery-best-practices/

    martes, 7 de febrero de 2012

    SharePoint 2010: Debugging Visual Studio 2010

    Method I:

    1. Go to “Debug” and select “Attach to Process”
    2. Make sure “Show processes in all sessions” checkbox is checked
    3. Select all “w3wp.exe” processes and click on “Attach” button

    If it does not work,

    1. Go to “Debug” and select “Attach to Process”
    2. Click on “Select…”.”Select Code Type” window will appear
    3. Select “Debug these codes types” and check “Managed (v2.0, v1.1, v1.0)” only

    Method II:

    1. Write “System.Diagnostics.Debugger.Launch()” in the code where you want to attach debugger
    2. When you run the code, a popup window will appear asking for attaching debugger.
    3. Click “Yes” and guide to appropriate instance of Visual Studio

    Method III:

    Use third party software like:

    1. Visual Studio 2010 extension for helping SharePoint 2010 debugging

     

    Fuente:

    http://farhanfaiz.wordpress.com/2012/02/07/sharepoint-2010-debugging-visual-studio-2010/