<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>3metas &#187; Gustavo Hurtado</title>
	<atom:link href="http://www.3metas.com/es/author/ghurtado/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.3metas.com/es</link>
	<description></description>
	<lastBuildDate>Wed, 14 Jul 2010 19:16:36 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Imágenes del toolbar del Crystal ReportViewer no se muestran</title>
		<link>http://www.3metas.com/es/blog/technical/imagenes-del-toolbar-del-crystal-reportviewer-no-se-muestran/</link>
		<comments>http://www.3metas.com/es/blog/technical/imagenes-del-toolbar-del-crystal-reportviewer-no-se-muestran/#comments</comments>
		<pubDate>Wed, 28 Apr 2010 20:57:02 +0000</pubDate>
		<dc:creator>Gustavo Hurtado</dc:creator>
				<category><![CDATA[3Metas Blog]]></category>
		<category><![CDATA[Technical]]></category>
		<category><![CDATA[aspnet_client]]></category>
		<category><![CDATA[Crystal ReportViewer]]></category>
		<category><![CDATA[Reporte Embebido]]></category>

		<guid isPermaLink="false">http://www.3metas.com/es/?p=583</guid>
		<description><![CDATA[Esta semana cuando uno de nuestros clientes estaba realizando las pruebas de un proyecto en asp.net que tenía un conjunto de reportes embebidos, las imágenes del toolbar del Crystal ReportViewer no se mostraban o se perdían.
Teniendo en cuenta la experiencia que habíamos tenido ya una en un cliente con algo parecido revisamos nuestro anterior post [...]]]></description>
			<content:encoded><![CDATA[<p>Esta semana cuando uno de nuestros clientes estaba realizando las pruebas de un proyecto en asp.net que tenía un conjunto de reportes embebidos, las imágenes del toolbar del Crystal ReportViewer no se mostraban o se perdían.</p>
<p>Teniendo en cuenta la experiencia que habíamos tenido ya una en un cliente con algo parecido revisamos nuestro anterior post sobre: <a href="../blog/technical/iis7/publicar-un-reporte-usando-reportviewer-embebido-en-una-pagina-aspx-y-con-iiis7/">Como publicar un reporte embebiendo ReportViewer en una página aspx sobre IIS7</a>, realizamos todos los pasos allí descritos, pero esto no solucionó el tema de las imágenes. Así que decimos investigar un poco más en internet y <a href="http://social.msdn.microsoft.com/Forums/en-US/vscrystalreports/thread/e2dc93b3-e594-4ae6-ba92-9440ccc7f6be ">nos encontramos</a> que este problema se presenta comúnmente cuando el sitio web se ha creado en una ruta de disco diferente a: <strong>..\inetpub\wwwroot</strong>, debido a que la aplicación trata de buscar los recursos que corresponden al ReportViewer en la carpeta: <strong>..\inetpub\wwwroot\aspnet_client\system_web\2_0_50727</strong></p>
<p>Así que una solución muy útil y práctica para este caso fue copiar la carpeta <strong>aspnet_client</strong> dentro de la carpeta de la aplicación, de tal forma que ahora está también en una ruta como esta: <strong>D:\\MiAplicacionWeb\aspnet_client</strong></p>
<p>El truco nos funcionó, pero de repente no es la solución no es la solución más idónea para el tema, así que si alguien conoce alguna otra forma de hacerlo, por favor ¡cuéntenos! nos gustaría mucho que la compartiera aquí.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.3metas.com/es/blog/technical/imagenes-del-toolbar-del-crystal-reportviewer-no-se-muestran/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Entender el negocio del cliente</title>
		<link>http://www.3metas.com/es/blog/about-3metas/entender-el-negocio-del-cliente/</link>
		<comments>http://www.3metas.com/es/blog/about-3metas/entender-el-negocio-del-cliente/#comments</comments>
		<pubDate>Wed, 24 Feb 2010 10:03:02 +0000</pubDate>
		<dc:creator>Gustavo Hurtado</dc:creator>
				<category><![CDATA[About 3Metas]]></category>
		<category><![CDATA[3Metas]]></category>
		<category><![CDATA[Emprendimiento]]></category>
		<category><![CDATA[Gestión de Empresas de Software]]></category>
		<category><![CDATA[Innovación]]></category>

		<guid isPermaLink="false">http://www.3metas.com/es/?p=371</guid>
		<description><![CDATA[He tenido la oportunidad de trabajar para algunas compañías de software en proyectos de diferente naturaleza.  De cada uno he adquirido conocimientos que de no ser por esta profesión no las hubiera aprendido nunca. Al principio, debo reconocer que sólo me preocupaba hacer mi trabajo sin deparar en detalles. Quizás por mi falta de experiencia, [...]]]></description>
			<content:encoded><![CDATA[<p>He tenido la oportunidad de trabajar para algunas compañías de software en proyectos de diferente naturaleza.  De cada uno he <strong>adquirido conocimientos que de no ser por esta profesión no las hubiera aprendido nunca</strong>. Al principio, debo reconocer que sólo me preocupaba hacer mi trabajo sin deparar en detalles. Quizás por mi falta de experiencia, porque eran muy complicados de entender o porque el negocio en general no era de mi total agrado y eso disminuía mi interés.</p>
<p>Hoy me doy cuenta que esto fue un gran error que no me permitió avanzar al ritmo que quería y al empezar una compañía en este mismo sector tuve que aprenderlo todo ya en el campo de batalla. De ahí que <strong>nuestra</strong> <strong>premisa en 3Metas desde el primer día ha sido entender el negocio del cliente a tal nivel de detalle que eso apalanque el éxito del mismo</strong>.</p>
<p>Esto no sólo es una ganancia para la compañía, por la oportunidad de que sus empleados aprendan cosas diferentes a las de su oficio, sino también para el cliente que puede contar con un equipo más involucrado con su negocio. Desde mi experiencia estos son algunos de los beneficios a resaltar una vez se logra esta habilidad.</p>
<ul>
<li>Mayor participación en las decisiones cruciales para el proyecto.</li>
<li>Más alternativas en el momento de solución de los problemas.</li>
<li>Mayor entendimiento de los requerimientos de los usuarios.</li>
<li>Mejor relación con los usuarios que tienen la información.</li>
<li>Mejor relación con los implicados en el proyecto, tanto los usuarios finales como aquellos que toman las decisiones que afectan el proyecto.</li>
<li>Una oportunidad para seguir trabajando con el cliente o aplicar en proyectos similares.</li>
<li>Fortalecimiento del trabajo en equipo y un mejor seguimiento del proyecto.</li>
<li>Avances significativos  y menor número de retrocesos en las entregas parciales.</li>
<li>Una ficha que jugarse en los momentos difíciles o de crisis del proyecto.</li>
</ul>
<p>Es posible que se me escapen más aspectos, sin embargo mi intención es <strong>motivar a que las empresas se preocupen por apropiarse del negocio del cliente</strong>. Esto implicará dedicar más tiempo, mejorar el proceso de reclutamiento, involucrar al cliente más en el proyecto y estar consientes que esa actitud puede marcar la diferencia para triunfar como empresa, para abrirse mercado y para ser reconocidos como unos verdaderos expertos.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.3metas.com/es/blog/about-3metas/entender-el-negocio-del-cliente/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Error: Sys.WebForms PageRequestManager TimeoutException</title>
		<link>http://www.3metas.com/es/blog/technical/web-development/error-sys-webforms-pagerequestmanagertimeoutexception/</link>
		<comments>http://www.3metas.com/es/blog/technical/web-development/error-sys-webforms-pagerequestmanagertimeoutexception/#comments</comments>
		<pubDate>Sat, 23 Jan 2010 18:43:16 +0000</pubDate>
		<dc:creator>Gustavo Hurtado</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[AsyncPostBackTimeout]]></category>
		<category><![CDATA[error]]></category>
		<category><![CDATA[exception]]></category>
		<category><![CDATA[PageRequestManagerTimeoutException]]></category>
		<category><![CDATA[ScriptManager]]></category>
		<category><![CDATA[Timeout]]></category>
		<category><![CDATA[ToolkitScriptManager]]></category>

		<guid isPermaLink="false">http://blog.3metas.com/2010/01/23/error-sys-webforms-pagerequestmanagertimeoutexception/</guid>
		<description><![CDATA[Esta semana realizando la migración de código de un sitio web en un cliente, en el cual dentro de los múltiples cambios modificamos la interfaz gráfica de la aplicación para que utilizara Ajax e integramos además un Master Page en el diseño. Esto no debería afectar la funcionalidad, pero en especial una de las páginas [...]]]></description>
			<content:encoded><![CDATA[<p>Esta semana realizando la migración de código de un sitio web en un cliente, en el cual dentro de los múltiples cambios modificamos la interfaz gráfica de la aplicación para que utilizara Ajax e integramos además un Master Page en el diseño. Esto no debería afectar la funcionalidad, pero en especial una de las páginas empezó a presentar un problema, el cual se presentaba cuando se enviaba a realizar una operación que tarda más de 2 minutos contra la base de datos.</p>
<p>El error era del tipo: Sys.WebForms.PageRequestManagerTimeoutException, y por ser un error de Ajax se presentaba en el cargue de la pagina para su respectiva actualización luego de la ejecución del evento. Para resolver entonces este problema se debe incrementar el timeout para la página, y para esto se debe adicionar la propiedad AsyncPostBackTimeout al control ToolkitScriptManager o al control ScriptManager, asignándole un valor en segundos que depende del tiempo necesario para la operación.</p>
<pre class="brush:xml">&lt;AT:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server" EnablePartialRendering="true" AsyncPostBackTimeout="360000" ScriptMode="Release"&gt;</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.3metas.com/es/blog/technical/web-development/error-sys-webforms-pagerequestmanagertimeoutexception/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Page level locking is disabled</title>
		<link>http://www.3metas.com/es/blog/technical/sql-server/page-level-locking-is-disabled/</link>
		<comments>http://www.3metas.com/es/blog/technical/sql-server/page-level-locking-is-disabled/#comments</comments>
		<pubDate>Sat, 09 Jan 2010 20:37:15 +0000</pubDate>
		<dc:creator>Gustavo Hurtado</dc:creator>
				<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://blog.3metas.com/2010/01/09/page-level-locking-is-disabled/</guid>
		<description><![CDATA[El día de hoy estábamos tratando en hacer el plan de mantenimiento de la base de datos de uno de nuestros clientes con el Maintenance Plan Wizard de SQL Server 2008. Crear el plan a través de esta herramienta es bastante sencillo, pero las pocas ocasiones que lo he utilizado siempre me encuentro con algo [...]]]></description>
			<content:encoded><![CDATA[<p>El día de hoy estábamos tratando en hacer el plan de mantenimiento de la base de datos de uno de nuestros clientes con el Maintenance Plan Wizard de SQL Server 2008. Crear el plan a través de esta herramienta es bastante sencillo, pero las pocas ocasiones que lo he utilizado siempre me encuentro con algo en el momento de ejecutar el plan de mantenimiento. Dentro de las opciones del plan de mantenimiento seleccionamos la opción Reorganize Index, el cual cuando se iba a ejecutar nos presentaba un error que decía:</p>
<p><em>The index &#8220;INDEX_NAME&#8221; (partition 1) on table &#8220;TABLE_NAME&#8221; cannot be reorganized because page level locking is disabled. </em></p>
<p>El cual luego de revisar un poco en internet y la ayuda de SQL Server encontramos que se puede solucionar con la siguiente instrucción SQL:</p>
<pre class="brush:sql">Alter Index &lt;index name&gt; On &lt;table name&gt; Set (ALLOW_PAGE_LOCKS = ON)</pre>
<p>Y bueno es una excelente solución, hasta el momento en que seguimos ejecutando el plan de mantenimiento y el error vuelve a aparecer una y otra vez para diferentes índices, así que decidimos buscar una nueva solución, en la cual gracias al poder de T-SQL y de internet construimos el siguiente query que nos permite realizar un SQL dinámico para cada uno de los índices con el mismo problema:</p>
<pre class="brush:sql">SET NOCOUNT ON
DECLARE @DBName nvarchar(50), @INName nvarchar(50)
DECLARE @ODBName nvarchar(50), @OINName nvarchar(50)
Declare @execstr nvarchar(200)
--PRINT '-------- Index with page level locking disabled --------'
DECLARE Index_cursor CURSOR FOR
SELECT idx.Name AS InName, sch.Name + '.' + obj.Name AS DBName
FROM sys.indexes idx left outer join sys.objects obj ON
obj.object_id = idx.Object_id left outer join sys.schemas sch ON
obj.schema_id = sch.schema_id
WHERE allow_page_locks=0 and obj.type='U'
-- Select only allow_page_locks 0 and User Tables
OPEN Index_cursor
FETCH NEXT FROM Index_cursor
INTO @INName, @DBName
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT @DBName +' ' + @INName
--PRINT @INName
SET @ODBName = ltrim(rtrim(@DBName))
SET @OINName = ltrim(rtrim(@INName))
SELECT @execstr = 'ALTER INDEX ' + @OINName + ' ON ' +
@ODBName + ' SET (ALLOW_PAGE_LOCKS = ON)';
EXEC (@execstr);
FETCH NEXT FROM Index_cursor
INTO @INName, @DBName
END
CLOSE Index_cursor
DEALLOCATE Index_cursor
</pre>
<p>Luego de haber solucionado el problema de los índices nos encontramos con que el tamaño del log de eventos de la base de datos era demasiado grande, y excedía el tamaño disponible en la unidad de disco donde se encontraba, así que luego de buscar un poco en internet nos encontramos con <a href="http://www.dbrunas.com.ar/2009/07/14/sql-server-backup-log-with-truncate_only/">este post</a> muy útil para solucionar este problema.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.3metas.com/es/blog/technical/sql-server/page-level-locking-is-disabled/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Configurando DateTime Formats en SQL Server</title>
		<link>http://www.3metas.com/es/blog/technical/sql-server/configurando-datetime-formats-en-sql-server/</link>
		<comments>http://www.3metas.com/es/blog/technical/sql-server/configurando-datetime-formats-en-sql-server/#comments</comments>
		<pubDate>Sat, 07 Nov 2009 16:39:49 +0000</pubDate>
		<dc:creator>Gustavo Hurtado</dc:creator>
				<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[collation]]></category>
		<category><![CDATA[conversion of a varchar data type]]></category>
		<category><![CDATA[DateTime Formats]]></category>
		<category><![CDATA[lenguaje]]></category>

		<guid isPermaLink="false">http://blog.3metas.com/2009/11/07/configurando-datetime-formats-en-sql-server/</guid>
		<description><![CDATA[Muchos de los problemas que se presentan en el proceso de desarrollo de parte de la base de datos tienes que ver con los formatos de fechas y estos principalmente están dados por el lenguaje de la base de datos o el Collation establecido para esta. Por ejemplo, algunos de los errores comunes es:
La conversión [...]]]></description>
			<content:encoded><![CDATA[<p>Muchos de los problemas que se presentan en el proceso de desarrollo de parte de la base de datos tienes que ver con los formatos de fechas y estos principalmente están dados por el lenguaje de la base de datos o el Collation establecido para esta. Por ejemplo, algunos de los errores comunes es:</p>
<p>La conversión del tipo de datos varchar en datetime produjo un valor fuera de intervalo / The conversion of a varchar data type to a datetime data type resulted in an out-of-range value.</p>
<p><strong>1. </strong>El servidor de base de datos tiene un lenguaje establecido por defecto, el cual es posible visualizarlo a partir de la ventana de propiedades del servidor o a través de una consulta TSQL:</p>
<p style="text-align: center;"><a href="http://www.3metas.com/wp-content/uploads/2009/11/clip_image002.jpg"><img class="aligncenter" style="display: inline; border: 0px;" title="clip_image002" src="http://www.3metas.com/wp-content/uploads/2009/11/clip_image002_thumb.jpg" border="0" alt="clip_image002" width="244" height="220" /></a></p>
<p>El comando sería:</p>
<pre class="brush:sql">SP_CONFIGURE 'default language'</pre>
<p>Al ejecutar esta consulta en el resultado en la columna <strong><em>config_value</em></strong> nos muestra el código del lenguaje configurado por defecto en el servidor de la base de datos. Para poder saber ese código a cual lenguaje hace referencia ejecutamos el stored procedure (SP): SP_HELPLANGUAGE el cual nos dará una lista descriptiva de todos los lenguajes soportados.</p>
<p>Ya con esta lista podemos modificar el lenguaje configurado por defecto, el cual afectará a todos los nuevos logins que se creen de ahora en adelante. Para realizar esta modificación basta con ejecutar el SP:</p>
<pre class="brush:sql">USE master;

GO

SP_CONFIGURE 'default language', 5

RECONFIGURE;

EXEC sp_configure;</pre>
<p>Donde 5 sería el identificador para el idioma español. (<a href="http://technet.microsoft.com/en-us/library/ms188787.aspx">http://technet.microsoft.com/en-us/library/ms188787.aspx</a>)</p>
<p>Luego de realizar el cambio podemos verificar este a través del procedimiento almacenado antes mencionado SP_CONFIGURE &#8216;default language&#8217;o a través de la ventana de propiedades del servidor de la base de datos. Cabe anotar que esta nueva configuración solo aplicará para los nuevos logins que se creen.</p>
<p><strong>2. </strong>Ahora bien es posible modificar el formato Date (<a href="http://technet.microsoft.com/en-us/library/ms189491.aspx">http://technet.microsoft.com/en-us/library/ms189491.aspx</a>) para la sesión actual abierta a través del siguiente comando:</p>
<pre class="brush:sql">SET DATEFORMAT ydm</pre>
<p>Es posible verificar los cambios en el lenguaje para la anterior instrucción al ejecutar el siguiente comando:</p>
<pre class="brush:sql">SELECT SYSDATETIME()</pre>
<p>Un ejemplo muy tipico donde se presentan problemas para el formato de las fechas es el siguiente, en el cual dependiendo del formato <strong>yyyy/dd/mm</strong> la siguiente consulta puede ejecutarse satisfactoriamente:</p>
<pre class="brush:sql">Select DATEDIFF(Month,'2008/4/6','2008/12/31')</pre>
<p>Si la configuración de la sesion actual esta en ingles por ejemplo, esta consulta funcionará pero si está en español nos arrojará un error del tipo:</p>
<p>The conversion of a varchar data type to a datetime data type resulted in an out-of-range value.</p>
<p>Con lo cual debemos modificar primero el tipo de lenguaje de la sesión o cambiar la consulta por:</p>
<pre class="brush:sql">Select DATEDIFF(Month,'2008/6/4','2008/31/12')</pre>
<p><strong>3. </strong>Si lo que deseamos es modificar el lenguaje la sesión actual abierta ejecutamos el SP:</p>
<pre class="brush:sql">SET LANGUAGE 'español'</pre>
<p>Para poder verificar el cambio podemos realizar alguna de las siguientes consultas SQL:</p>
<pre class="brush:sql">SET LANGUAGE 'us_english'

SELECT CONVERT(DATETIME, '4/6/2006'),

DATENAME(weekday, '4/6/2006'),

DATENAME(MONTH, '4/6/2006')

SET LANGUAGE 'español'

SELECT CONVERT(DATETIME, '4/6/2006'),

DATENAME(Weekday, '4/6/2006'),

DATENAME(MONTH, '4/6/2006')</pre>
<p><strong>4. </strong>No obstante si lo que deseamos es cambiar el lenguaje de alguno de los login ya creados, con lo cual cada inicio de sesión con esa cuenta se conserve la nueva configuración del lenguaje, vamos hasta la ventana de configuración de los login creados para la base de datos o ejecutamos un comando TSQL:</p>
<p style="text-align: center;"><a href="http://www.3metas.com/wp-content/uploads/2009/11/clip_image004.jpg"><img class="aligncenter" style="display: inline; border: 0px;" title="clip_image004" src="http://www.3metas.com/wp-content/uploads/2009/11/clip_image004_thumb.jpg" border="0" alt="clip_image004" width="244" height="220" /></a></p>
<p>El comando sería:</p>
<pre class="brush:sql">EXEC sp_defaultlanguage 'GustavoH-PC\GustavoH', 'español'</pre>
<p>El cual por ejemplo para este caso está cambiando el lenguaje del login <em>GustavoH</em>. Con lo cual cada inicio de sesión para esta cuenta de usuario tendrá como lenguaje seleccionado español, así el lenguaje por defecto para el servidor de la base de datos sea otro.</p>
<p>Lo más importante en estos temas de lenguaje es saber a qué nivel queremos aplicarlos, si es a nivel de consulta, base de datos o del servidor de la base de datos, con lo cual se deberá utilizar algunas de las consultas antes definidas o realizar el cambio respectivo a través del administrador de SQL Server.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.3metas.com/es/blog/technical/sql-server/configurando-datetime-formats-en-sql-server/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Depurando gadgets con Visual Studio</title>
		<link>http://www.3metas.com/es/blog/technical/depurando-gadgets-con-visual-studio-2008/</link>
		<comments>http://www.3metas.com/es/blog/technical/depurando-gadgets-con-visual-studio-2008/#comments</comments>
		<pubDate>Fri, 10 Jul 2009 06:31:19 +0000</pubDate>
		<dc:creator>Gustavo Hurtado</dc:creator>
				<category><![CDATA[Technical]]></category>
		<category><![CDATA[Depuración]]></category>
		<category><![CDATA[Gadget]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Sidebar]]></category>
		<category><![CDATA[Visual Studio 2008]]></category>

		<guid isPermaLink="false">http://blog.3metas.com/2009/07/10/depurando-gadgets-con-visual-studio-2008/</guid>
		<description><![CDATA[Los gadgets son aplicaciones web que se ejecutan a través del sidebar de Windows Vista y Windows 7. Su funcionalidad puede ser tan potente como la creatividad y experiencia de los desarrolladores se lo permitan. Gracias a la inclusión de JScript, Ajax y JQuery el alcance de estas aplicaciones se incrementa gradualmente.
Personalmente creo que dos [...]]]></description>
			<content:encoded><![CDATA[<p>Los gadgets son aplicaciones web que se ejecutan a través del sidebar de Windows Vista y Windows 7. Su funcionalidad puede ser tan potente como la creatividad y experiencia de los desarrolladores se lo permitan. Gracias a la inclusión de JScript, Ajax y JQuery el alcance de estas aplicaciones se incrementa gradualmente.</p>
<p>Personalmente creo que dos de los principales inconvenientes para desarrollar este tipo de aplicaciones es lograr tener una idea que encaje en unos cuantos pixeles y realizar la depuración. Este último punto es la idea de este post.</p>
<p>Lo primero que debemos hacer es r<strong>ealizar el deployment del gadget que deseamos </strong><strong>depurar</strong>, para esta tarea usamos Visual Studio 2008 realizando la publicación del gadget en el folder del sistema operativo donde por defecto se hospedan los gadgets:</p>
<p>· %<strong>USERPROFILE%\AppData\Local\Microsoft\Windows Sidebar\Gadgets</strong> (gadgets del usuario)</p>
<p>· <strong>%SYSTEM_ROOT%\Program Files\Windows Sidebar\Gadgets</strong> (gadgets globales)</p>
<p>Así que sobre el proyecto del gadget, damos click derecho y seleccionamos la opción <strong>Publish</strong></p>
<p style="text-align: center;"><a href="http://www.3metas.com/wp-content/uploads/2009/07/clip_image0011.jpg"><img class="aligncenter" style="display: inline; border: 0px;" title="clip_image001" src="http://www.3metas.com/wp-content/uploads/2009/07/clip_image001_thumb1.jpg" border="0" alt="clip_image001" width="215" height="244" /></a></p>
<p>Esto nos mostrará la ventana de publicación, en la cual colocamos en el <strong>path de publicación</strong> la ruta de instalación del gadget y seleccionamos la opción <strong>Delete all existing files prior to publish</strong>.</p>
<p style="text-align: center;"><a href="http://www.3metas.com/wp-content/uploads/2009/07/clip_image0022.jpg"><img class="aligncenter" style="display: inline; border: 0px;" title="clip_image002" src="http://www.3metas.com/wp-content/uploads/2009/07/clip_image002_thumb2.jpg" border="0" alt="clip_image002" width="244" height="180" /></a></p>
<p>Una vez terminada la publicación procedemos a realizar la instalación del gadget en el sidebar dando click derecho sobre la zona de sidebar del escritorio y <strong>seleccionando la opción Agregar gadgets</strong> y agregando el que acabamos de publicar.</p>
<p style="text-align: center;"><a href="http://www.3metas.com/wp-content/uploads/2009/07/clip_image0042.jpg"><img class="aligncenter" style="display: inline; border: 0px;" title="clip_image004" src="http://www.3metas.com/wp-content/uploads/2009/07/clip_image004_thumb2.jpg" border="0" alt="clip_image004" width="244" height="162" /></a></p>
<p>Con el gadget ya en el sidebar procedemos a configurar las opciones del browser para que se habilite la depuración de Scripts. Ejecutando entonces Internet Explorer, seleccionamos<strong> la opción Herramientas, seguida de </strong><strong>Opciones de Internet y luego la pestaña </strong><strong>Opciones Avanzadas, donde desmarcamos el check </strong><strong>Deshabilitar la depuración de scripts (otros).</strong></p>
<p style="text-align: center;"><a href="http://www.3metas.com/wp-content/uploads/2009/07/clip_image0052.jpg"><img class="aligncenter" style="display: inline; border: 0px;" title="clip_image005" src="http://www.3metas.com/wp-content/uploads/2009/07/clip_image005_thumb2.jpg" border="0" alt="clip_image005" width="181" height="244" /></a></p>
<p>Procedemos ahora a configurar Visual Studio 2008 para iniciar el proceso de depuración. Para lo cual colocamos los <strong>break point</strong> necesarios donde deseamos que se detenga la ejecución de la aplicación y luego seleccionamos en el menú principal la opción <strong>Debug</strong>, seguida de <strong>Attach to Process<em>.</em></strong></p>
<p style="text-align: center;"><a href="http://www.3metas.com/wp-content/uploads/2009/07/clip_image0072.jpg"><img class="aligncenter" style="display: inline; border: 0px;" title="clip_image007" src="http://www.3metas.com/wp-content/uploads/2009/07/clip_image007_thumb2.jpg" border="0" alt="clip_image007" width="244" height="149" /></a></p>
<p>Esto nos mostrará la ventana de procesos disponibles que actualmente se están ejecutando en el sistema operativo de nuestra máquina. En esta ventana buscamos el proceso que hace referencia al gadget que deseamos depurar y se está ejecutando en la Sidebar de Windows. Seleccionamos el proceso que hace referencia al gadget y luego damos click en el botón <strong>Attach</strong>.</p>
<p style="text-align: center;"><a href="http://www.3metas.com/wp-content/uploads/2009/07/clip_image0092.jpg"><img class="aligncenter" style="display: inline; border: 0px;" title="clip_image009" src="http://www.3metas.com/wp-content/uploads/2009/07/clip_image009_thumb2.jpg" border="0" alt="clip_image009" width="244" height="169" /></a></p>
<p>Finalmente realizamos las acciones necesarias sobre el gadget que está en la sidebar para que se detenga la aplicación en los <strong>break points</strong> que hayamos establecido.</p>
<p style="text-align: center;"><a href="http://www.3metas.com/wp-content/uploads/2009/07/clip_image0111.jpg"><img class="aligncenter" style="display: inline; border: 0px;" title="clip_image011" src="http://www.3metas.com/wp-content/uploads/2009/07/clip_image011_thumb1.jpg" border="0" alt="clip_image011" width="244" height="148" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.3metas.com/es/blog/technical/depurando-gadgets-con-visual-studio-2008/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Usando WinMerge con Visual Studio</title>
		<link>http://www.3metas.com/es/blog/technical/usando-winmerge-con-visual-studio-team-system/</link>
		<comments>http://www.3metas.com/es/blog/technical/usando-winmerge-con-visual-studio-team-system/#comments</comments>
		<pubDate>Mon, 06 Jul 2009 18:49:55 +0000</pubDate>
		<dc:creator>Gustavo Hurtado</dc:creator>
				<category><![CDATA[Technical]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Visual Studio Team System]]></category>
		<category><![CDATA[VSTS]]></category>
		<category><![CDATA[WinMerge]]></category>

		<guid isPermaLink="false">http://blog.3metas.com/2009/07/06/usando-winmerge-con-visual-studio-team-system/</guid>
		<description><![CDATA[WinMerge es una excelente herramienta para comparar archivos que puede facilitar en gran medida esta tarea en Visual Studio Team System (VSTS). Aunque VSTS ya cuenta con una herramienta de comparación desde mi punto de vista no es muy práctica ni intuitiva.]]></description>
			<content:encoded><![CDATA[<p>WinMerge es una excelente herramienta para comparar archivos que puede facilitar en gran medida esta tarea en Visual Studio Team System. Aunque VSTS ya cuenta con una herramienta de comparación desde mi punto de vista no es muy práctica ni intuitiva.</p>
<p>Lo primero que tenemos que hacer es realizar la descarga de WinMerge la cual la pueden hacer <a href="http://winmerge.org/downloads/" target="_blank">acá</a>. Una vez hecha la descarga, procedemos a la instalación de la herramienta.</p>
<p><strong>Configuración de WinMerge en VSTS</strong></p>
<p>1. Abrir <strong>Visual Studio Team System</strong> y en la barra de Menús, seleccione la opción <strong>Tools</strong> y luego <strong>Options</strong>.</p>
<p style="text-align: center;"><a href="http://www.3metas.com/wp-content/uploads/2009/07/clip_image002.jpg"><img class="aligncenter" style="display: inline; border-width: 0px;" title="clip_image002" src="http://www.3metas.com/wp-content/uploads/2009/07/clip_image002_thumb.jpg" border="0" alt="clip_image002" width="244" height="143" /></a></p>
<p>2. En la ventana <strong>Options</strong>, seleccione la opción <strong>Source Control</strong> y luego Visual Studio <strong>Team Foundation Server</strong>.</p>
<p>3. Ahora damos Click en el botón del lado derecho <strong>Configure User Tools</strong>.</p>
<p>4. Este botón nos muestra la ventana para poder configurar WinMerge como herramienta de <strong>Merge y Compare</strong>.</p>
<p style="text-align: center;"><a href="http://www.3metas.com/wp-content/uploads/2009/07/clip_image003.jpg"><img class="aligncenter" style="display: inline; border-width: 0px;" title="clip_image003" src="http://www.3metas.com/wp-content/uploads/2009/07/clip_image003_thumb.jpg" border="0" alt="clip_image003" width="244" height="146" /></a></p>
<p>5. Seleccionamos el botón <strong>Add</strong> y esto nos mostrará la ventana donde ingresamos la información de configuración necesaria.</p>
<p style="text-align: center;"><a href="http://blog.3metas.com/wp-content/uploads/2009/07/clip_image004.jpg"><img class="aligncenter" style="display: inline; border-width: 0px;" title="clip_image004" src="http://www.3metas.com/wp-content/uploads/2009/07/clip_image004_thumb.jpg" border="0" alt="clip_image004" width="244" height="130" /></a></p>
<p>6. Ingresamos la siguiente información para configurar la herramienta de <strong>Compare</strong>:</p>
<p>· <strong>Extension</strong>, escribir <strong>*</strong></p>
<p>· <strong>Operation</strong>, seleccione <strong>Compare</strong></p>
<p>· <strong>Command</strong>, seleccione el <strong>path</strong> donde quedó instalado WinMerge <strong>C:\Program Files\WinMerge\WinMerge.exe</strong></p>
<p>· <strong>Arguments</strong>, escribir <strong>/e /x /s /wl /dl %6 /dr %7 %1 %2</strong></p>
<p>· Click en <strong>OK</strong> para aceptar</p>
<p style="text-align: center;"><a href="http://www.3metas.com/wp-content/uploads/2009/07/clip_image005.jpg"><img class="aligncenter" style="display: inline; border-width: 0px;" title="clip_image005" src="http://www.3metas.com/wp-content/uploads/2009/07/clip_image005_thumb.jpg" border="0" alt="clip_image005" width="244" height="130" /></a></p>
<p>7. Ingresamos la siguiente información para configurar la herramienta de <strong>Merge</strong>:</p>
<p>· <strong>Extension</strong>, escribir <strong>*</strong></p>
<p>· <strong>Operation</strong>, seleccione <strong>Merge</strong></p>
<p>· <strong>Command</strong>, seleccione el <strong>path</strong> donde quedó instalado WinMerge <strong>C:\Program Files\WinMerge\WinMerge.exe</strong></p>
<p>· <strong>Arguments</strong>, escribir <strong>/e /s /x /ub /dl %6 /dr %7 %1 %2 %4 </strong></p>
<p>· Click en <strong>OK</strong> para aceptar</p>
<p style="text-align: center;"><a href="http://www.3metas.com/wp-content/uploads/2009/07/clip_image006.jpg"><img class="aligncenter" style="display: inline; border-width: 0px;" title="clip_image006" src="http://www.3metas.com/wp-content/uploads/2009/07/clip_image006_thumb.jpg" border="0" alt="clip_image006" width="244" height="130" /></a></p>
<p>8. Ahora tenemos ya configurada las WinMerge como herramienta de Merge y Compare en VSTS</p>
<p style="text-align: center;"><a href="http://www.3metas.com/wp-content/uploads/2009/07/clip_image007.jpg"><img class="aligncenter" style="display: inline; border-width: 0px;" title="clip_image007" src="http://www.3metas.com/wp-content/uploads/2009/07/clip_image007_thumb.jpg" border="0" alt="clip_image007" width="244" height="146" /></a></p>
<p>Con esta configuración ahora cuando necesitemos hacer tareas de <strong>Merge</strong> o <strong>Compare</strong> se harán a través de WinMerge.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.3metas.com/es/blog/technical/usando-winmerge-con-visual-studio-team-system/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
