<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>El lado oscuro de la fuerza</title>
	<atom:link href="http://eloyparedes.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://eloyparedes.wordpress.com</link>
	<description>Mi blog sobre .NET</description>
	<lastBuildDate>Wed, 25 Jan 2012 23:45:36 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='eloyparedes.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>El lado oscuro de la fuerza</title>
		<link>http://eloyparedes.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://eloyparedes.wordpress.com/osd.xml" title="El lado oscuro de la fuerza" />
	<atom:link rel='hub' href='http://eloyparedes.wordpress.com/?pushpress=hub'/>
		<item>
		<title>&#8220;Trabajando con Datos Espaciales en SQL Server 2008 &#8211; 2012: PARTE 1 &#8211; Definiendo la informaci&#243;n Espacial (Spatial).&#8221;</title>
		<link>http://eloyparedes.wordpress.com/2012/01/21/trabajando-con-datos-espaciales-en-sql-server-2008-2012-parte-1-definiendo-la-informacin-espacial-spatial/</link>
		<comments>http://eloyparedes.wordpress.com/2012/01/21/trabajando-con-datos-espaciales-en-sql-server-2008-2012-parte-1-definiendo-la-informacin-espacial-spatial/#comments</comments>
		<pubDate>Sat, 21 Jan 2012 16:55:29 +0000</pubDate>
		<dc:creator>eloyparedes</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">https://eloyparedes.wordpress.com/?p=62</guid>
		<description><![CDATA[Primer artículo de una serie donde se muestran las capacidades de este gestor de bases de datos relacional para manejar datos espaciales. Parte 1 – Definiendo la información Espacial (Spatial) Vía GEOCAT CONSULTORES SRL. Filed under: Uncategorized<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eloyparedes.wordpress.com&amp;blog=971514&amp;post=62&amp;subd=eloyparedes&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Primer artículo de una serie donde se muestran las capacidades de este gestor de bases de datos relacional para manejar datos espaciales.</p>
<p><a href="http://www.geocatgis.com/blog/2012/01/21/trabajando-con-datos-espaciales-en-sql-server-2008-2012-parte-1-definiendo-la-informacin-espacial-spatial/" target="_blank">Parte 1 – Definiendo la información Espacial (Spatial)</a></p>
<p>Vía <a href="http://www.geocatgis.com/" target="_blank">GEOCAT CONSULTORES SRL.</a></p>
<br />Filed under: <a href='http://eloyparedes.wordpress.com/category/uncategorized/'>Uncategorized</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/eloyparedes.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/eloyparedes.wordpress.com/62/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/eloyparedes.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/eloyparedes.wordpress.com/62/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/eloyparedes.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/eloyparedes.wordpress.com/62/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/eloyparedes.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/eloyparedes.wordpress.com/62/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/eloyparedes.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/eloyparedes.wordpress.com/62/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/eloyparedes.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/eloyparedes.wordpress.com/62/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/eloyparedes.wordpress.com/62/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/eloyparedes.wordpress.com/62/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eloyparedes.wordpress.com&amp;blog=971514&amp;post=62&amp;subd=eloyparedes&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://eloyparedes.wordpress.com/2012/01/21/trabajando-con-datos-espaciales-en-sql-server-2008-2012-parte-1-definiendo-la-informacin-espacial-spatial/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d87b6c6b7edee90a2981c7a5c4ff02d5?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">eloyparedes</media:title>
		</media:content>
	</item>
		<item>
		<title>&#8220;Una Mirada al Impuesto Predial en la Ciudad del Cusco &#8211; Per&#250;&#8221;</title>
		<link>http://eloyparedes.wordpress.com/2012/01/18/una-mirada-al-impuesto-predial-en-la-ciudad-del-cusco-per/</link>
		<comments>http://eloyparedes.wordpress.com/2012/01/18/una-mirada-al-impuesto-predial-en-la-ciudad-del-cusco-per/#comments</comments>
		<pubDate>Wed, 18 Jan 2012 15:44:22 +0000</pubDate>
		<dc:creator>eloyparedes</dc:creator>
				<category><![CDATA[Tributacion y Rentas]]></category>
		<category><![CDATA[RENTAS TRIBUTACION CATASTRO MUNICIPIO FINANCIAMIENTO GOBIERNO LOCAL IMPUESTO PREDIAL]]></category>

		<guid isPermaLink="false">https://eloyparedes.wordpress.com/?p=60</guid>
		<description><![CDATA[Excelente artículo que muestra una mirada inicial al impuesto predial en la Ciudad del Cusco – Perú. Una Mirada al Impuesto Predial Vía GEOCAT CONSULTORES SRL. Filed under: Tributacion y Rentas Tagged: RENTAS TRIBUTACION CATASTRO MUNICIPIO FINANCIAMIENTO GOBIERNO LOCAL IMPUESTO PREDIAL<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eloyparedes.wordpress.com&amp;blog=971514&amp;post=60&amp;subd=eloyparedes&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Excelente artículo que muestra una mirada inicial al impuesto predial en la Ciudad del Cusco – Perú.</p>
<p><a href="http://www.geocatgis.com/blog/2012/01/18/una-mirada-al-impuesto-predial-en-la-ciudad-del-cusco-peru/">Una Mirada al Impuesto Predial</a></p>
<p>Vía <a href="http://www.geocatgis.com/" target="_blank">GEOCAT CONSULTORES SRL.</a></p>
<br />Filed under: <a href='http://eloyparedes.wordpress.com/category/tributacion-y-rentas/'>Tributacion y Rentas</a> Tagged: <a href='http://eloyparedes.wordpress.com/tag/rentas-tributacion-catastro-municipio-financiamiento-gobierno-local-impuesto-predial/'>RENTAS TRIBUTACION CATASTRO MUNICIPIO FINANCIAMIENTO GOBIERNO LOCAL IMPUESTO PREDIAL</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/eloyparedes.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/eloyparedes.wordpress.com/60/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/eloyparedes.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/eloyparedes.wordpress.com/60/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/eloyparedes.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/eloyparedes.wordpress.com/60/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/eloyparedes.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/eloyparedes.wordpress.com/60/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/eloyparedes.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/eloyparedes.wordpress.com/60/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/eloyparedes.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/eloyparedes.wordpress.com/60/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/eloyparedes.wordpress.com/60/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/eloyparedes.wordpress.com/60/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eloyparedes.wordpress.com&amp;blog=971514&amp;post=60&amp;subd=eloyparedes&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://eloyparedes.wordpress.com/2012/01/18/una-mirada-al-impuesto-predial-en-la-ciudad-del-cusco-per/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d87b6c6b7edee90a2981c7a5c4ff02d5?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">eloyparedes</media:title>
		</media:content>
	</item>
		<item>
		<title>&#8220;El Software y el Catastro&#8221;</title>
		<link>http://eloyparedes.wordpress.com/2011/12/19/el-software-y-el-catastro/</link>
		<comments>http://eloyparedes.wordpress.com/2011/12/19/el-software-y-el-catastro/#comments</comments>
		<pubDate>Mon, 19 Dec 2011 17:41:35 +0000</pubDate>
		<dc:creator>eloyparedes</dc:creator>
				<category><![CDATA[Catastro]]></category>
		<category><![CDATA[GIS]]></category>
		<category><![CDATA[GIS CATASTRO GEOCAT ARCGIS AUTOCAD MAP GOBIERNO LOCAL REGIONAL]]></category>

		<guid isPermaLink="false">http://eloyparedes.wordpress.com/?p=54</guid>
		<description><![CDATA[Artículo que describe que software es necesario, para implementar un sistema de  información territorial para gestionar información catastral en un gobierno local o regional. El Software y el Catastro Vía GEOCAT CONSULTORES SRL. Filed under: Catastro, GIS Tagged: GIS CATASTRO GEOCAT ARCGIS AUTOCAD MAP GOBIERNO LOCAL REGIONAL<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eloyparedes.wordpress.com&amp;blog=971514&amp;post=54&amp;subd=eloyparedes&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Artículo que describe que software es necesario, para implementar un sistema de  información territorial para gestionar información catastral en un gobierno local o regional.</p>
<p><a title="El Software y el Catastro" href="http://www.geocatgis.com/blog/2011/12/19/el-software-y-el-catastro/">El Software y el Catastro</a></p>
<p>Vía<a href="http://www.geocatgis.com/"> GEOCAT CONSULTORES SRL.</a></p>
<br />Filed under: <a href='http://eloyparedes.wordpress.com/category/catastro/'>Catastro</a>, <a href='http://eloyparedes.wordpress.com/category/gis/'>GIS</a> Tagged: <a href='http://eloyparedes.wordpress.com/tag/gis-catastro-geocat-arcgis-autocad-map-gobierno-local-regional/'>GIS CATASTRO GEOCAT ARCGIS AUTOCAD MAP GOBIERNO LOCAL REGIONAL</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/eloyparedes.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/eloyparedes.wordpress.com/54/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/eloyparedes.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/eloyparedes.wordpress.com/54/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/eloyparedes.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/eloyparedes.wordpress.com/54/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/eloyparedes.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/eloyparedes.wordpress.com/54/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/eloyparedes.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/eloyparedes.wordpress.com/54/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/eloyparedes.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/eloyparedes.wordpress.com/54/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/eloyparedes.wordpress.com/54/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/eloyparedes.wordpress.com/54/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eloyparedes.wordpress.com&amp;blog=971514&amp;post=54&amp;subd=eloyparedes&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://eloyparedes.wordpress.com/2011/12/19/el-software-y-el-catastro/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d87b6c6b7edee90a2981c7a5c4ff02d5?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">eloyparedes</media:title>
		</media:content>
	</item>
		<item>
		<title>Autodesk AutoCAD Map 2011 y .NET Framework 4.0</title>
		<link>http://eloyparedes.wordpress.com/2010/11/07/autodesk-autocad-map-2011-y-net-framework-4-0/</link>
		<comments>http://eloyparedes.wordpress.com/2010/11/07/autodesk-autocad-map-2011-y-net-framework-4-0/#comments</comments>
		<pubDate>Mon, 08 Nov 2010 01:57:29 +0000</pubDate>
		<dc:creator>eloyparedes</dc:creator>
				<category><![CDATA[Código C#]]></category>
		<category><![CDATA[GIS]]></category>
		<category><![CDATA[.NET Framework 4.0]]></category>
		<category><![CDATA[Autocad]]></category>
		<category><![CDATA[Autocad Map]]></category>
		<category><![CDATA[Autodesk]]></category>
		<category><![CDATA[C#]]></category>

		<guid isPermaLink="false">https://eloyparedes.wordpress.com/2010/11/07/autodesk-autocad-map-2011-y-net-framework-4-0/</guid>
		<description><![CDATA[Hace unos cuantos meses, cuando me dispuse a realizar mis primeros módulos en AutoCAD Map 2011, me puse en la disyuntiva de que versión del .NET Framework debería utilizar; dado que recientemente, migramos todo el proyecto GIS de Catastro que estamos desarrollando al .NET Framework 4.0 y Visual Studio 2010; la primera opción era la [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eloyparedes.wordpress.com&amp;blog=971514&amp;post=49&amp;subd=eloyparedes&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p align="justify">Hace unos cuantos meses, cuando me dispuse a realizar mis primeros módulos en AutoCAD Map 2011, me puse en la disyuntiva de que versión del .NET Framework debería utilizar; dado que recientemente, migramos todo el proyecto GIS de Catastro que estamos desarrollando al .NET Framework 4.0 y Visual Studio 2010; la primera opción era la de utilizar la versión 4.0 del .NET Framework, pero el temor principal era la compatibilidad de AutoCAD Map 2011 con la última versión del .NET Framework.</p>
<p align="justify">Llegado a este punto, la única manera de despojarnos de estos temores es haciendo las usuales pruebas, así que me dispuse a programar mi clásico “Hola Mundo”, y grande fue mi sorpresa al encontrarme con este hermoso error de AutoCAD que parecía confirmar todos mis temores.</p>
<p><a href="http://eloyparedes.files.wordpress.com/2010/11/errorensambladonosoportado.jpg"><img style="background-image:none;border-bottom:0;border-left:0;padding-left:0;padding-right:0;display:inline;border-top:0;border-right:0;padding-top:0;" title="ErrorEnsambladoNoSoportado" border="0" alt="ErrorEnsambladoNoSoportado" src="http://eloyparedes.files.wordpress.com/2010/11/errorensambladonosoportado_thumb.jpg?w=502&#038;h=309" width="502" height="309" /></a></p>
<p>la siguiente línea del mensaje de error fue el que me hizo sudar frio: “This assembly is built by a runtime newer than the currently loaded runtime and connot be loaded”, parecía indicar claramente que el ensamblado que intentaba ejecutar había sido compilado por una versión del .NET Framework mas nueva de la que podía soportar AutoCAD Map 2011; pero esa interpretación inicial traducida en el calor del momento, no era correcta, ya que en realidad dice que el ensamblado que intento ejecutar es mas nuevo que el .NET Framework que actualmente esta cargado; entonces alentado con esta pisca de esperanza me puse en la labor de buscar como cargar el Framework 4.0 en AutoCAD Map 2011 para que pueda ejecutar el ensamblado de prueba que acababa de crear.</p>
<p>Como es usual en estos casos, luego de buscar en interminables sitios web, haber revisado muchos manuales de Autodesk, y haber leído innumerables foros, nadie podía decirme exactamente cual era la manera de solucionar mi problema, pero en muchos de esos lugares encontré pistas importantes, como por ejemplo la existencia del archivo “acad.exe.config”, si señores como los archivos de configuración que toda una vida usamos al desarrollar nuestras aplicaciones .NET, así que nada mejor que echarle una mirada a este archivo haber si encontramos alguna pista adicional.</p>
<p><a href="http://eloyparedes.files.wordpress.com/2010/11/acad-exe_-config_original.jpg"><img style="background-image:none;border-bottom:0;border-left:0;padding-left:0;padding-right:0;display:inline;border-top:0;border-right:0;padding-top:0;" title="acad.exe.config_original" border="0" alt="acad.exe.config_original" src="http://eloyparedes.files.wordpress.com/2010/11/acad-exe_-config_original_thumb.jpg?w=501&#038;h=124" width="501" height="124" /></a></p>
<p>Analizando detenidamente la primera sección de configuración, podemos leer claramente que “&lt;supportedRuntime version=“v4.0”/&gt;” está comentada. así que todo parece indicar que ahora podemos decir Bingo!!!.</p>
<p>Al realizar una instalación por defecto de AutoCAD Map 2011, esta sección de configuración siempre esta comentada, por tanto solo nos queda descomentar esta sección, de tal manera que el archivo de configuración “acad.exe.config”, que dicho sea de paso se encuentra en la carpeta de instalación de AutoCAD Map 2011, quede de la siguiente manera:</p>
<p><a href="http://eloyparedes.files.wordpress.com/2010/11/acad-exe_-config_modificado.jpg"><img style="background-image:none;border-bottom:0;border-left:0;padding-left:0;padding-right:0;display:inline;border-top:0;border-right:0;padding-top:0;" title="acad.exe.config_modificado" border="0" alt="acad.exe.config_modificado" src="http://eloyparedes.files.wordpress.com/2010/11/acad-exe_-config_modificado_thumb.jpg?w=502&#038;h=126" width="502" height="126" /></a></p>
<p>Con la configuración anterior, ahora podemos proceder a ejecutar nuevamente nuestro “Hola Mundo” y esta vez AutoCAD nos deja cargar el ensamblado sin ningún mensaje de error y permite mostrar en tan ansiado mensaje:</p>
<p><a href="http://eloyparedes.files.wordpress.com/2010/11/holamundo.jpg"><img style="background-image:none;border-bottom:0;border-left:0;padding-left:0;padding-right:0;display:inline;border-top:0;border-right:0;padding-top:0;" title="HolaMundo" border="0" alt="HolaMundo" src="http://eloyparedes.files.wordpress.com/2010/11/holamundo_thumb.jpg?w=504&#038;h=452" width="504" height="452" /></a></p>
<p>Para concluir, seguramente que todos ya sabrán con que versión del .NET Framework estoy trabajando mis módulos de AutoCAD Map, por supuesto la 4.0 y no podría ser de otra manera que con C#. También cabe aclarar que si bien esta prueba la realicé con AutoCAD Map 2011, esto funciona igual para AutoCAD 2011, AutoCAD Civil 2011, etc. Para versiones anteriores de AutoCAD, queda como tarea para el lector, averiguar si esto funciona.</p>
<br />Filed under: <a href='http://eloyparedes.wordpress.com/category/codigo-c/'>Código C#</a>, <a href='http://eloyparedes.wordpress.com/category/gis/'>GIS</a> Tagged: <a href='http://eloyparedes.wordpress.com/tag/net-framework-4-0/'>.NET Framework 4.0</a>, <a href='http://eloyparedes.wordpress.com/tag/autocad/'>Autocad</a>, <a href='http://eloyparedes.wordpress.com/tag/autocad-map/'>Autocad Map</a>, <a href='http://eloyparedes.wordpress.com/tag/autodesk/'>Autodesk</a>, <a href='http://eloyparedes.wordpress.com/tag/c/'>C#</a>, <a href='http://eloyparedes.wordpress.com/tag/gis/'>GIS</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/eloyparedes.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/eloyparedes.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/eloyparedes.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/eloyparedes.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/eloyparedes.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/eloyparedes.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/eloyparedes.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/eloyparedes.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/eloyparedes.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/eloyparedes.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/eloyparedes.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/eloyparedes.wordpress.com/49/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/eloyparedes.wordpress.com/49/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/eloyparedes.wordpress.com/49/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eloyparedes.wordpress.com&amp;blog=971514&amp;post=49&amp;subd=eloyparedes&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://eloyparedes.wordpress.com/2010/11/07/autodesk-autocad-map-2011-y-net-framework-4-0/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d87b6c6b7edee90a2981c7a5c4ff02d5?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">eloyparedes</media:title>
		</media:content>

		<media:content url="http://eloyparedes.files.wordpress.com/2010/11/errorensambladonosoportado_thumb.jpg" medium="image">
			<media:title type="html">ErrorEnsambladoNoSoportado</media:title>
		</media:content>

		<media:content url="http://eloyparedes.files.wordpress.com/2010/11/acad-exe_-config_original_thumb.jpg" medium="image">
			<media:title type="html">acad.exe.config_original</media:title>
		</media:content>

		<media:content url="http://eloyparedes.files.wordpress.com/2010/11/acad-exe_-config_modificado_thumb.jpg" medium="image">
			<media:title type="html">acad.exe.config_modificado</media:title>
		</media:content>

		<media:content url="http://eloyparedes.files.wordpress.com/2010/11/holamundo_thumb.jpg" medium="image">
			<media:title type="html">HolaMundo</media:title>
		</media:content>
	</item>
		<item>
		<title>Comentarios XML con GhostDoc en C#</title>
		<link>http://eloyparedes.wordpress.com/2008/03/21/comentarios-xml-con-ghostdoc-en-c/</link>
		<comments>http://eloyparedes.wordpress.com/2008/03/21/comentarios-xml-con-ghostdoc-en-c/#comments</comments>
		<pubDate>Fri, 21 Mar 2008 20:36:18 +0000</pubDate>
		<dc:creator>eloyparedes</dc:creator>
				<category><![CDATA[Código C#]]></category>
		<category><![CDATA[Herramientas para Visual Studio]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Comentarios]]></category>
		<category><![CDATA[Documentación]]></category>
		<category><![CDATA[GhostDoc]]></category>
		<category><![CDATA[Herramientas]]></category>
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">http://eloyparedes.wordpress.com/?p=31</guid>
		<description><![CDATA[Ya sé, no tienen que decírmelo, hacer comentarios en el código aburre y ni que hablar de los comentarios XML donde uno tiene que estar recordando las etiquetas necesarias lo cual nos hace perder tiempo y productividad a la hora de programar (Excelente excusa, espero que me lo crea mi jefa). El único problema es [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eloyparedes.wordpress.com&amp;blog=971514&amp;post=31&amp;subd=eloyparedes&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Ya sé, no tienen que decírmelo, hacer comentarios en el código aburre y ni que hablar de los comentarios XML donde uno tiene que estar recordando las etiquetas necesarias lo cual nos hace perder tiempo y productividad a la hora de programar (<strike>Excelente excusa, espero que me lo crea mi jefa</strike>).</p>
<p>El único problema es que existen herramientas para asistirnos en la laboriosa tarea de escribir nuestros amados comentarios XML, sí esos que hay que comenzar con “/// “. Una de esas herramientas se denomina como ya habrán adivinado GhostDoc, la existencia de este tipo de herramientas tira por los suelos nuestras mejores excusas para no escribir comentarios.</p>
<p>Bueno ahora que no tenemos más excusas nos vemos obligados a ver cuál es la funcionalidad de esta herramienta.</p>
<p><strong>GhostDoc<br />
</strong> GhostDoc es un plug-in compatible tanto con Visual Studio 2005  y Visual Studio 2008 creado por Roland Weigelt, cuya utilidad es (<strike>Obligarnos a escribir comentarios</strike>), automatizar la escritura de comentarios XML, generando toda la estructura del comentario, lo único que tenemos que hacer es modificar el texto que necesitemos para que todo esté más entendible, gracias a este plug-in nos ahorramos de escribir una cantidad impresionantes de texto y podemos realizar los comentarios XML muy rápido; repito ahora ya no hay excusas.</p>
<p><strong>¿Cómo Funciona?<br />
</strong>La mejor manera para comprender su funcionamiento es con un pequeño ejemplo, donde mostraremos su utilidad. Asumamos que estamos escribiendo un sistema altamente complejo donde tenemos que implementar la clase calculadora de la siguiente manera:</p>
<p><a href="http://eloyparedes.files.wordpress.com/2008/03/fig0_clasecalculadora.jpg" title="ClaseCalculadora"><img src="http://eloyparedes.files.wordpress.com/2008/03/fig0_clasecalculadora.jpg?w=480" alt="ClaseCalculadora" /></a></p>
<p>Como verán es una clase muy compleja y por lo tanto casi imposible de usar si es que no se tiene la documentación de:</p>
<ul>
<li>
<div>¿Para qué sirve la clase?</div>
</li>
<li>
<div>¿Para qué sirve cada método?</div>
</li>
<li>
<div>¿Que representa cada parámetro?</div>
</li>
</ul>
<p>Para proceder con nuestra tarea de documentación asistida tenemos que realizar los siguientes pasos:</p>
<ol>
<li>
<div>Descargar la versión que corresponda de GhostDoc de la siguiente dirección: <a href="http://www.roland-weigelt.de/ghostdoc/"><strong>Roland Weigelt&#8217;s  GhostDoc</strong></a>. Luego procedemos a instalarlo dejando los valores por defecto.</div>
</li>
<li>
<div>Al iniciar Visual Studio se nos pedirá que seleccionemos algunas opciones como combinación de teclas para acceso directo, donde también pueden dejar los valores por defecto, para verificar que esté instalado el plug-in, revisar en el menú principal la opción “Tools”, bajo la que ahora debería estar GhostDoc.</div>
</li>
<li>
<div>Ya tenemos todo listo así que nos queda comenzar a generar los comentarios XML, en primer lugar comentaremos la clase, para lo cual pulsamos clic derecho sobre el nombre de la clase y en el menú contextual seleccionamos: “Document this” (también podemos utilizar la combinación de teclas de acceso rápido, si es que dejaron los valores por defecto serán: ctrl + shift + D) </div>
<p><a href="http://eloyparedes.files.wordpress.com/2008/03/fig1_menucontextual.jpg" title="MenuContextual"><img src="http://eloyparedes.files.wordpress.com/2008/03/fig1_menucontextual.jpg?w=480" alt="MenuContextual" /></a></p>
<div>Esto genera la estructura del comentario completa incluida las etiquetas de resumen, poniendo el cursor en posición para escribir la descripción de la clase:</div>
<p><a href="http://eloyparedes.files.wordpress.com/2008/03/fig2_comentarioclasegenerado.jpg" title="ComentarioClaseGenerado"><img src="http://eloyparedes.files.wordpress.com/2008/03/fig2_comentarioclasegenerado.jpg?w=480" alt="ComentarioClaseGenerado" /></a></p>
<div>A continuación solo nos queda escribir la descripción de la clase:</div>
<p><a href="http://eloyparedes.files.wordpress.com/2008/03/fig3_comentarioclaseescrito.jpg" title="ComentarioClaseEscrito"><img src="http://eloyparedes.files.wordpress.com/2008/03/fig3_comentarioclaseescrito.jpg?w=480" alt="ComentarioClaseEscrito" /></a>
</li>
<li>
<div>Ahora nos toca generar los comentarios XML para los métodos, el proceso es el mismo, pulsamos clic derecho sobre el nombre del método y del menú contextual seleccionamos: “Document this”, lo cual genera toda la estructura necesaria para la descripción del método los parámetros de entrada y la salida del método, como se muestra en la siguiente figura:</div>
<p><a href="http://eloyparedes.files.wordpress.com/2008/03/fig4_comentariometodogenerado.jpg" title="ComentarioMetodoGenerado"><img src="http://eloyparedes.files.wordpress.com/2008/03/fig4_comentariometodogenerado.jpg?w=480" alt="ComentarioMetodoGenerado" /></a></p>
<div>Ahora solo nos queda escribir la descripción del método, los parámetros y el valor de salida, repetimos el procedimiento para todos los métodos.</div>
<p> <a href="http://eloyparedes.files.wordpress.com/2008/03/fig5_comentariometodoescrito.jpg" title="ComentarioMetodoEscrito"><img src="http://eloyparedes.files.wordpress.com/2008/03/fig5_comentariometodoescrito.jpg?w=480" alt="ComentarioMetodoEscrito" /></a>
</li>
<li>
<div>Ahora ya tenemos nuestra clase completamente comentada, cabe aclarar que en este caso solo utilizamos comentarios para la clase y para métodos, pero también se pueden generar comentarios para otros miembros de clases como propiedades y eventos. GhostDoc también tiene numerosas opciones de configuración avanzadas, para las cuales tendrán que profundizar más en el estudio de esta herramienta.</div>
</li>
</ol>
<p><strong>¿Y para qué sirven esos comentarios XML?<br />
</strong>Ahora ya tenemos nuestra clase completamente comentada, y ¿para qué nos sirve esto?, pues si pensamos en lo más inmediato, sirve para que las personas que revisen el código de la clase “Calculadora”  puedan guiarse por estos comentarios y entender la funcionalidad de los miembros de la clase, esta no es su única utilidad, también sirve para que los usuarios de nuestra clase “Calculadora” sepan cómo utilizar los miembros públicos de la clase, los comentarios XML que escribimos se presentarán como ayudas de IntelliSense al momento de escribir el código como se muestra en las siguientes figuras:</p>
<p> <a href="http://eloyparedes.files.wordpress.com/2008/03/fig6_intellisensemetodo.jpg" title="IntelliSenseMetodo"><img src="http://eloyparedes.files.wordpress.com/2008/03/fig6_intellisensemetodo.jpg?w=480" alt="IntelliSenseMetodo" /></a></p>
<p> <a href="http://eloyparedes.files.wordpress.com/2008/03/fig7_intellisenseparametros.jpg" title="IntelliSenseParametros"><img src="http://eloyparedes.files.wordpress.com/2008/03/fig7_intellisenseparametros.jpg?w=480" alt="IntelliSenseParametros" /></a></p>
<p>La utilidad de los comentarios XML no termina aquí, en el siguiente artículo veremos cómo generar los archivos de ayuda a partir de estos comentarios XML.<br />
Espero que esta excelente herramienta los motive a escribir más comentarios XML.</p>
<p><strong>Enlaces</strong><br />
Página Oficial de GhostDoc: <a href="http://www.roland-weigelt.de/ghostdoc/"><strong>Roland Weigelt&#8217;s  GhostDoc</strong></a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/eloyparedes.wordpress.com/31/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/eloyparedes.wordpress.com/31/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/eloyparedes.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/eloyparedes.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/eloyparedes.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/eloyparedes.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/eloyparedes.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/eloyparedes.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/eloyparedes.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/eloyparedes.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/eloyparedes.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/eloyparedes.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/eloyparedes.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/eloyparedes.wordpress.com/31/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/eloyparedes.wordpress.com/31/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/eloyparedes.wordpress.com/31/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eloyparedes.wordpress.com&amp;blog=971514&amp;post=31&amp;subd=eloyparedes&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://eloyparedes.wordpress.com/2008/03/21/comentarios-xml-con-ghostdoc-en-c/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d87b6c6b7edee90a2981c7a5c4ff02d5?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">eloyparedes</media:title>
		</media:content>

		<media:content url="http://eloyparedes.files.wordpress.com/2008/03/fig0_clasecalculadora.jpg" medium="image">
			<media:title type="html">ClaseCalculadora</media:title>
		</media:content>

		<media:content url="http://eloyparedes.files.wordpress.com/2008/03/fig1_menucontextual.jpg" medium="image">
			<media:title type="html">MenuContextual</media:title>
		</media:content>

		<media:content url="http://eloyparedes.files.wordpress.com/2008/03/fig2_comentarioclasegenerado.jpg" medium="image">
			<media:title type="html">ComentarioClaseGenerado</media:title>
		</media:content>

		<media:content url="http://eloyparedes.files.wordpress.com/2008/03/fig3_comentarioclaseescrito.jpg" medium="image">
			<media:title type="html">ComentarioClaseEscrito</media:title>
		</media:content>

		<media:content url="http://eloyparedes.files.wordpress.com/2008/03/fig4_comentariometodogenerado.jpg" medium="image">
			<media:title type="html">ComentarioMetodoGenerado</media:title>
		</media:content>

		<media:content url="http://eloyparedes.files.wordpress.com/2008/03/fig5_comentariometodoescrito.jpg" medium="image">
			<media:title type="html">ComentarioMetodoEscrito</media:title>
		</media:content>

		<media:content url="http://eloyparedes.files.wordpress.com/2008/03/fig6_intellisensemetodo.jpg" medium="image">
			<media:title type="html">IntelliSenseMetodo</media:title>
		</media:content>

		<media:content url="http://eloyparedes.files.wordpress.com/2008/03/fig7_intellisenseparametros.jpg" medium="image">
			<media:title type="html">IntelliSenseParametros</media:title>
		</media:content>
	</item>
		<item>
		<title>Desarrollo de Aplicaciones con el ORM  .netTiers Parte I: Introducción</title>
		<link>http://eloyparedes.wordpress.com/2007/09/25/desarrollo-de-aplicaciones-con-el-orm-nettiers-parte-i-introduccion/</link>
		<comments>http://eloyparedes.wordpress.com/2007/09/25/desarrollo-de-aplicaciones-con-el-orm-nettiers-parte-i-introduccion/#comments</comments>
		<pubDate>Tue, 25 Sep 2007 20:33:39 +0000</pubDate>
		<dc:creator>eloyparedes</dc:creator>
				<category><![CDATA[ASP .NET]]></category>
		<category><![CDATA[Código C#]]></category>
		<category><![CDATA[ORM]]></category>
		<category><![CDATA[.netTiers]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[CodeSmith]]></category>

		<guid isPermaLink="false">http://eloyparedes.wordpress.com/2007/09/25/desarrollo-de-aplicaciones-con-el-orm-nettiers-parte-i-introduccion/</guid>
		<description><![CDATA[En un post anterior hace algún tiempo hablamos sobre los ORMs más conocidos entre los cuales mencionamos a .netTiers que es una plantilla para CodeSmith. En esta ocasión iniciaremos una serie de artículos para mostrar como utilizar este excelente ORM. Introducción a netTiers .netTiers es una plantilla de código abierto para CodeSmith escrito en C#. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eloyparedes.wordpress.com&amp;blog=971514&amp;post=28&amp;subd=eloyparedes&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>En un post anterior hace algún tiempo hablamos sobre los ORMs más conocidos entre los cuales mencionamos a <a href="http://www.nettiers.com/">.netTiers</a> que es una plantilla para <a href="http://www.codesmithtools.com/">CodeSmith</a>. En esta ocasión iniciaremos una serie de artículos para mostrar como utilizar este excelente ORM.</p>
<p><strong>Introducción a netTiers</strong><br />
.netTiers es una plantilla de código abierto  para CodeSmith escrito en C#. La intención de esta plantilla es asistir a los desarrolladores eliminando el código repetitivo, que tenemos que escribir cada vez que desarrollamos una aplicación con conexión a datos. Al mismo tiempo nos provee de un framework completo para comenzar a trabajar en las partes más importantes de nuestra aplicación, como son la capa de presentación, la lógica empresarial, el flujo de trabajo de nuestra aplicación, etc.</p>
<p><strong>Conjunto de características actuales de netTiers</strong><br />
A continuación presentamos un listado de las características generales de .netTiers:</p>
<ul>
<li>Genera una solución completa con proyectos separados y un framework basado en capas para su aplicación. Puede comenzar a trabajar con la aplicación inmediatamente terminado el proceso de generación.</li>
<li>Crea un conjunto completo de procedimientos almacenados que están especializados en el dominio de su aplicación. Este código se puede ejecutar como SQL en línea o como procedimiento almacenado, lo cual es configurable.</li>
<li>Genera automáticamente objetos de entidad y las relaciones entre estos objetos del dominio, basado en las tablas y relaciones de la base de datos.</li>
<li>Avanzado motor de validación de reglas de entidad, el cual puede utilizar las reglas creadas en el proceso de generación o utilizar delegados para cualquier regla de validación personalizada.</li>
<li>Las clases generadas incluyen dos partes, una parcial y una concreta, por lo tanto puede personalizar la lógica de cualquier clase sin que este código se sobrescriba cuando se ejecuta el proceso de generación nuevamente.</li>
<li>Utiliza una lista genérica personalizada para las colecciones (TList) que soporta toda la interfaz del modelo de componentes de .NET y más, y soporta enlace, ordenación y filtrado (Bindable, Sortable and Filterable).</li>
<li>Crea un sitio web completo, ya pre-configurado y listo para comenzar a escribir código  conectable a datos inmediatamente.</li>
<li>Crea un conjunto completo de controles web de administración, que pueden servir como una consola de administración web completamente funcional para base de datos.</li>
<li>Crea un conjunto completo de controles DataSource con tipo para toda la API de acceso a datos, con soporte en tiempo de diseño, estos controles son similares a los ObjectDataSource, pero con más características propias del dominio.</li>
<li>Crea una API de servicios web completa para el dominio, perfecto para clientes .Net WinForms o dispositivos móviles, y su configuración es bastante simple.</li>
<li>Crea un conjunto completo de pruebas de unidad para los proveedores de datos y provee aproximadamente un 50% de cobertura. Estas pruebas pueden ser para nUnit o Visual Studio Team System.</li>
<li>El código que se genera está completamente comentado y listo para sus necesidades de documentación, además de seguir las directivas de Microsoft para la nomenclatura.</li>
<li>Cualquier código que se encuentre en una carpeta especial en cualquiera de los proyectos, que por defecto se llama App_Code, será automáticamente incluido en el proyecto generado.</li>
<li>Las consultas que se incluyen en la API de accedo a datos, se pueden realizar por: Clave primaria, clave foránea, índices, relaciones de muchos a muchos, todos, selección paginada con filtro y búsqueda; así también métodos de escritura en la base de datos como Inserción/Actualización/Eliminación.</li>
<li>Puede crear sus propios procedimientos almacenados personalizados, para las entidades y .netTiers generará los métodos que sirven como envoltorio de ese procedimiento almacenado y todo lo que se necesite, esto permite tener su propia lógica dentro de la API de .netTiers.</li>
<li>y mucho más.</li>
</ul>
<p><strong>Arquitectura de .netTiers</strong><br />
La arquitectura de .netTiers está basada en las guías de Microsoft patterns &amp; practices, específicamente de: <a href="http://msdn2.microsoft.com/en-us/library/ms978496.aspx"><strong>Designing Data Tier Components and Passing Data Through Tiers</strong></a></p>
<p><a href='http://eloyparedes.wordpress.com/2007/09/25/desarrollo-de-aplicaciones-con-el-orm-nettiers-parte-i-introduccion/arquitectura-microsoft/' rel='attachment wp-att-29' title='Arquitectura Microsoft'><img src='http://eloyparedes.files.wordpress.com/2007/09/arquitectura.gif?w=480' alt='Arquitectura Microsoft' /></a></p>
<p>Este concepto de capa de datos está compuesto por componentes de entidad del negocio personalizadas (que representan a los datos propiamente dichos), y componentes de lógica de acceso a datos (la lógica de persistencia).</p>
<p><strong>Bases de datos y SQL</strong><br />
¿Cómo sabe .netTiers que generar? .netTiers utiliza el proveedor de metadata de CodeSmith  que analiza una base de datos con el fin de crear un completo dominio de objetos,  basado en las relaciones de la base de datos. El explorador de esquemas provee información sobre bases de datos, tablas, vistas, índices, procedimientos almacenados y más.</p>
<p><strong>Buenas prácticas para diseñar bases de datos</strong><br />
En un mundo perfecto sería muy conveniente utilizar las siguientes recomendaciones para que la generación de código con .netTiers y CodeSmith sea óptima:</p>
<ul>
<li>Los nombres de las tablas deben de estar en singular y en notación Pascal (primera letra de cada palabra compuesta en mayúsculas), ejemplo: Orden, DetalleOrden, Producto, etc.</li>
<li>Las descripciones para tablas, columnas y claves deben estar establecidas como atributos extendidos, para Microsoft SQL Server se utiliza la clave “MS_Description” para atributos extendidos.</li>
<li>.netTiers no asume relaciones, es necesario que se creen las relaciones de clave foránea a clave primaria específicamente en la base de datos.</li>
</ul>
<p><strong>Procedimientos almacenados personalizados</strong><br />
Existen muchos casos en los que se necesita extender la API de acceso a datos, sin perder las características de generación de la capa de datos. .netTiers ofrece la capacidad de escribir sus propios procedimientos almacenados, proporcionando la posibilidad de  incrementar la funcionalidad que no ha sido generada automáticamente o las características que son especializadas de una aplicación en particular, un ejemplo sencillo sería el caso de necesitar la creación de un  procedimiento almacenado personalizado para obtener un listado de productos con stock por debajo de un determinado límite. Cuando se inicia el proceso de generación, el explorador de esquemas de CodeSmith intenta descubrir toda la metadata para determinar el conjunto de resultados de un procedimiento almacenado así como también los parámetros que requiere tanto de entrada como de salida con sus respectivos tipos de datos, en base a esta información puede crear los métodos de las clases necesarias para realizar el mapeo.</p>
<p>Existen algunos casos en los que los procedimientos almacenados no retornan los resultados esperados, los procedimientos almacenados personalizados no funcionan cuando se utilizan tablas temporales dentro del procedimiento, esto se produce porque cuando el explorador de esquemas de CodeSmith está analizando la información  no tiene los privilegios suficientes para crear las tablas temporales; una solución alternativa es utilizar variables de tabla en lugar de las tablas temporales.</p>
<p>Un detalle importante a tener en cuenta es que si queremos retornar entidades del dominio desde los  procedimientos almacenados personalizados, necesitamos devolver en la consulta todos los datos de la tabla y en el orden correcto para que coincida con una entidad del dominio, cuando los resultados de un procedimiento almacenado personalizado no coincide con algún objeto entidad del dominio, se mapea como un DataSet genérico o como un objeto DataReader, lo cual es configurable.</p>
<p>Hasta aquí la parte introductoria de esta serie de artículos, en la que vimos una descripción un tanto más detallada de las bases de .netTiers, toda esta información fue obtenida de la documentación oficial de .netTiers que puede ser consultada en la siguiente dirección: <a href="http://docs.nettiers.com/"><strong>.netTiers Documentation Wiki</strong></a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/eloyparedes.wordpress.com/28/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/eloyparedes.wordpress.com/28/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/eloyparedes.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/eloyparedes.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/eloyparedes.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/eloyparedes.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/eloyparedes.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/eloyparedes.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/eloyparedes.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/eloyparedes.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/eloyparedes.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/eloyparedes.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/eloyparedes.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/eloyparedes.wordpress.com/28/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/eloyparedes.wordpress.com/28/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/eloyparedes.wordpress.com/28/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eloyparedes.wordpress.com&amp;blog=971514&amp;post=28&amp;subd=eloyparedes&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://eloyparedes.wordpress.com/2007/09/25/desarrollo-de-aplicaciones-con-el-orm-nettiers-parte-i-introduccion/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d87b6c6b7edee90a2981c7a5c4ff02d5?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">eloyparedes</media:title>
		</media:content>

		<media:content url="http://eloyparedes.files.wordpress.com/2007/09/arquitectura.gif" medium="image">
			<media:title type="html">Arquitectura Microsoft</media:title>
		</media:content>
	</item>
		<item>
		<title>Proyectos de Aplicación Web vs.  Proyectos de Sitio Web (Web Application Projects vs. Web Site Projects)</title>
		<link>http://eloyparedes.wordpress.com/2007/07/17/proyectos-de-aplicacion-web-vs-proyectos-de-sitio-web-web-application-projects-vs-web-site-projects/</link>
		<comments>http://eloyparedes.wordpress.com/2007/07/17/proyectos-de-aplicacion-web-vs-proyectos-de-sitio-web-web-application-projects-vs-web-site-projects/#comments</comments>
		<pubDate>Tue, 17 Jul 2007 14:50:27 +0000</pubDate>
		<dc:creator>eloyparedes</dc:creator>
				<category><![CDATA[ASP .NET]]></category>

		<guid isPermaLink="false">http://eloyparedes.wordpress.com/2007/07/17/proyectos-de-aplicacion-web-vs-proyectos-de-sitio-web-web-application-projects-vs-web-site-projects/</guid>
		<description><![CDATA[Los proyectos de Aplicación Web hicieron su aparición como un add-in para Visual Studio 2005, luego debido a su gran difusión se incorporó como parte del Service Pack 1 para visual Studio 2005. Provee un modelo de proyecto Web similar al modelo de proyecto Web de Visual Studio 2003. Proporciona la posibilidad de definir una [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eloyparedes.wordpress.com&amp;blog=971514&amp;post=26&amp;subd=eloyparedes&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Los proyectos de Aplicación Web hicieron su aparición como un add-in para Visual Studio 2005, luego debido a su gran difusión se incorporó como parte del Service Pack 1 para visual Studio 2005. Provee un modelo de proyecto Web similar al modelo de proyecto Web de Visual Studio 2003. Proporciona la posibilidad de definir una aplicación Web mediante un proyecto (.csproj o .vbproj), tal como era habitual en las versiones previas del .NET Framework, lo cual garantiza que todo el proyecto se compilará en un único ensamblado.</p>
<p>El objetivo de los proyectos de aplicación Web es dar respuesta a las peticiones de los usuarios. Algunos desarrolladores encontraron que la migración de aplicaciones de Visual Studio 2003 hacia el nuevo modelo de sitios web de Visual Studio 2005 presentaba muchos problemas haciéndolo en algunos casos impracticables, especialmente porque la compilación en el nuevo modelo de sitios Web de Visual Studio 2005 creaba múltiples ensamblados.</p>
<p>El nuevo modelo de proyectos de aplicación Web provee la misma semántica de los proyectos Webs de Visual Studio 2003. Esto incluye la estructura basadas en archivos de proyecto y el modelo de compilación donde todo el código del proyecto es compilado en un único ensamblado. Sin embargo, el nuevo tipo de proyecto pone a nuestra disposición todas las nuevas  características de Visual Studio 2005 (Refactoring, diagramas de clase, desarrollo de pruebas, genéricos, etc.) y de ASP .NET 2.0 (páginas maestras, controles de datos, membresía e identidad,  administración de roles, Web Parts, personalización, navegación de sitio, temas, etc.).</p>
<p>El modelo de  proyectos de aplicación Web en visual Studio 2005 también hace innecesario  dos requerimientos de Visual Studio 2003.</p>
<p>•	Uso de extensiones de servidor de FrontPage. Ahora ya no es un requisito, aunque aún es soportado si el sitio Web aún utiliza estas extensiones.<br />
•	Uso de Internet Information Server (IIS). El nuevo tipo de proyectos soporta tanto IIS como el servidor ASP .NET de desarrollo incluido en Visual Studio 2005.</p>
<p><strong>¿Cuál de los tipos de proyectos Web debemos utilizar?</strong><br />
Las siguientes tablas comparativas describen las diferencias entre los dos tipos de proyectos Web. </p>
<table border="1" cellpadding="0" cellspacing="0">
<tr>
<td width="331" valign="top">
<p><strong>Opción</strong><strong> o tarea</strong><strong> </strong></p>
</td>
<td width="132" valign="top">
<p><strong>Proyectos</strong><strong> de </strong><strong>Aplicación</strong><strong> Web</strong></p>
</td>
<td width="113" valign="top">
<p><strong>Proyectos</strong><strong> de Sitio</strong><strong> Web</strong></p>
</td>
</tr>
<tr>
<td width="331" valign="top">
<p>Necesita migrar aplicaciones grandes de Visual Studio 2003.</p>
</td>
<td width="132">
<p align="center">X</p>
</td>
<td width="113">&nbsp;</td>
</tr>
<tr>
<td width="331" valign="top">
<p>Preferencia por el modelo de página simple sobre el modelo de código    detrás.</p>
</td>
<td width="132">&nbsp;</td>
<td width="113">
<p align="center">X</p>
</td>
</tr>
<tr>
<td width="331" valign="top">
<p>Preferencia por la compilación dinámica y por trabajar sin    generar todo el sitio por cada página modificada.</p>
</td>
<td width="132">&nbsp;</td>
<td width="113">
<p align="center">X</p>
</td>
</tr>
<tr>
<td width="331" valign="top">
<p>Necesita controlar los nombres de los ensamblados de salida.</p>
</td>
<td width="132">
<p align="center">X</p>
</td>
<td width="113">&nbsp;</td>
</tr>
<tr>
<td width="331" valign="top">
<p>Necesita generar un ensamblado por cada página</p>
</td>
<td width="132">&nbsp;</td>
<td width="113">
<p align="center">X</p>
</td>
</tr>
<tr>
<td width="331" valign="top">
<p>Necesita que clases independientes hagan referencia a páginas y controles    de usuario Web.</p>
</td>
<td width="132">
<p align="center">X</p>
</td>
<td width="113">&nbsp;</td>
</tr>
<tr>
<td width="331" valign="top">
<p>Necesita generar una aplicación Web utilizando múltiples proyectos Web.</p>
</td>
<td width="132">
<p align="center">X</p>
</td>
<td width="113">&nbsp;</td>
</tr>
<tr>
<td width="331" valign="top">
<p>Necesita agregar pasos antes de generar (pre-build) y después de generar    (post-build), durante el proceso de compilación.</p>
</td>
<td width="132">
<p align="center">X</p>
</td>
<td width="113">&nbsp;</td>
</tr>
<tr>
<td width="331" valign="top">
<p>Necesita abrir y editar cualquier directorio, como un proyecto Web, sin    crear un archivo de proyecto.</p>
</td>
<td width="132">&nbsp;</td>
<td width="113">
<p align="center">X</p>
</td>
</tr>
</table>
<table border="1" cellpadding="0" cellspacing="0">
<tr>
<td width="82" valign="top">
<p><strong>Escenario</strong></p>
</td>
<td width="237" valign="top">
<p><strong>Proyectos</strong><strong> de </strong><strong>Aplicación</strong><strong> Web</strong></p>
</td>
<td width="257" valign="top">
<p><strong>Proyectos</strong><strong> de Sitio</strong><strong> Web</strong></p>
</td>
</tr>
<tr>
<td width="82" valign="top">
<p>Definición de proyecto</p>
</td>
<td width="237" valign="top">
<p>Similar a Visual Studio 2003. Solo archivos que son referenciados en el    archivo de proyecto forman parte del proyecto, se muestran en el explorador    de soluciones, y son compilados durante el proceso de generación. Debido a    que existe un archivo de proyecto, algunos escenarios son más fáciles de    implementar.</p>
<p>Se puede excluir archivos del proyecto y    del programa de control de versiones con facilidad.</p>
</td>
<td width="257" valign="top">
<p>Los Proyectos de Sitio Web utilizan la estructura de directorios para    definir los contenidos del proyecto. No existe archivo de proyecto y todos    los archivos de la carpeta forman parte del proyecto.</p>
<p>Este tipo de proyecto es deseable si se tiene una estructura de carpetas    que representa una aplicación ASP .NET, que se necesita editar en Visual    Studio 2005 sin crear explícitamente un archivo de proyecto. </p>
</td>
</tr>
<tr>
<td width="82" valign="top">
<p>Compilación y    resultado de generación.</p>
</td>
<td width="237" valign="top">
<p>El modelo de compilación para proyectos de aplicación Web es muy similar    al modelo de Visual Studio 2003.</p>
<p>Todos los archivos de  clases de    código detrás y los archivos de clases independientes en el proyecto son    compilados en un único ensamblado, el cual es colocado en la carpeta Bin.    Puesto que se trata de un ensamblado único se puede especificar atributos    como el nombre y versión del ensamblado, así como la localización del    ensamblado de salida.</p>
<p>Otros tipos de escenarios son mejor implementados, como el patrón Modelo    Vista Controlador (MVC), puesto que permite que las clases independientes en    el proyecto hagan referencia a páginas y controles de usuario web.</p>
</td>
<td width="257" valign="top">
<p>El comando de Generación compila el proyecto de sitio Web únicamente para    verificar errores de sintaxis. Para ejecutar el proyecto de sitio Web, se    despliega los archivos de código fuente y se confía en la compilación    dinámica de ASP .NET para compilar las páginas y clases de la aplicación. </p>
<p>Alternativamente, se puede precompilar el sitio para mejorar la    performance, para lo cual se utiliza la misma semántica de la compilación    dinámica.</p>
</td>
</tr>
<tr>
<td width="82" valign="top">
<p>Desarrollo    iterativo</p>
</td>
<td width="237" valign="top">
<p>Para ejecutar y depurar páginas, se necesita generar todo el proyecto de    aplicación Web.  Generar todo el    proyecto de aplicación Web usualmente es rápido, puesto que Visual Studio    emplea un modelo de generación incremental, el cual compila solo los archivos    que han sido modificados.</p>
</td>
<td width="257" valign="top">
<p>Se pueden configurar las opciones de generación de Visual Studio 2005    para cuando se ejecute un sitio web: Generar sitio web, una página    individual, o ninguno en absoluto, en el último caso, cuando se ejecuta un    sitio Web, Visual Studio simplemente lanza el explorador y le pasa la página    actual o la página de inicio. La solicitud luego invoca la compilación    dinámica de ASP .NET.</p>
<p>Por defecto, Visual Studio compila el proyecto de sitio Web completo en    cualquier momento que se ejecute o depure una página. Esto se efectúa para    identificar los errores de tiempo de compilación en cualquier lugar del    sitio. Sin embargo una generación completa del sitio puede disminuir    significativamente  la velocidad del    proceso iterativo de desarrollo, por tal motivo se recomienda cambiar las    opciones de generación del proyecto para que compile sólo la página actual    cuando se ejecute o depure.</p>
</td>
</tr>
<tr>
<td width="82" valign="top">
<p>Despliegue</p>
</td>
<td width="237" valign="top">
<p>Peusto que todos los archivos de clases son compilados en un ensamblado único,    solo se necesita desplegar este ensamblado, junto con los archivos .aspx y    .ascx, además de otros archivos estáticos de contenido.</p>
<p>En este modelo, los archivos .aspx no son compilados hasta que son    ejecutados en el navegador. Sin embargo cuando se utiliza un proyecto de    instalación Web, los archivos .aspx también pueden ser compilados e incluidos    en el único ensamblado para su despliegue.</p>
<p>Cada vez que se despliegue el ensamblado único producido en este modelo,    se reemplaza el código para todas las páginas del proyecto.</p>
</td>
<td width="257" valign="top">
<p>Tanto los archivos .aspx como los archivos de código detrás pueden ser    compilados en ensamblados utilizando el comando “Publicar Sitio Web” de    Visual Studio (El comando “Generar” no crea un conjunto de ensamblados que se    puedan desplegar). Las opciones actualizables de publicación soportan    únicamente compilación de archivos de código detrás, mientras que deja sin    cambios a los archivos .aspx para el despliegue.</p>
<p>El modo de precompilado por defecto produce varios ensamblados en la    carpeta Bin, típicamente uno por carpeta. La opción de nombres-fijos produce    un ensamblado por página o control de usuario Web y pueden ser utilizadas    para crear versiones desplegables de páginas individuales. Sin embargo, la    opción de  nombres-fijos incrementa el    número de ensamblados y puede resultar en un incremento del uso de memoria.</p>
</td>
</tr>
<tr>
<td width="82" valign="top">
<p>Migración a partir de Visual Studio .NET 2003</p>
</td>
<td width="237" valign="top">
<p>Puesto que el modelo de proyecto de aplicación Web es el mismo que el de    Visual Studio .NET 2003, la migración es generalmente simple y usualmente no    requiere ninguna reestructuración de la aplicación.</p>
</td>
<td width="257" valign="top">
<p>La opción de compilación para Proyectos de Sitio Web es    significativamente diferente a Visual Studio .NET 2003. Un asistente de    conversión está disponible para migrar proyectos web  existentes de Visual Studio 2003 a proyectos de sitios    Web. Por razones obvias es usual la necesidad de arreglos manuales    adicionales después de la conversión.</p>
<p>Para la mayoría de los escenarios, es preferible migrar a proyectos de    aplicación Web.</p>
</td>
</tr>
</table>
<p>Los cuadros comparativos muestran en detalle las diferencias entre los dos tipos de proyectos, para proyectos nuevos yo prefiero usar el nuevo modelo: Proyectos de Aplicación Web (Web Application Projects),  en el caso de tener proyectos ya avanzados con el modelo de Proyectos de Sitio Web (Web Site Projects) no recomiendo la migración al nuevo modelo porque esta labor no es trivial y a menudo hay que realizar cambios manuales.</p>
<p>Puede consultar el artículo original en Ingles en el siguiente enlace: <a href="http://msdn2.microsoft.com/en-us/library/aa730880(VS.80).aspx"><strong>Introduction to Web Application Projects</strong><br />
</a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/eloyparedes.wordpress.com/26/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/eloyparedes.wordpress.com/26/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/eloyparedes.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/eloyparedes.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/eloyparedes.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/eloyparedes.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/eloyparedes.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/eloyparedes.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/eloyparedes.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/eloyparedes.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/eloyparedes.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/eloyparedes.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/eloyparedes.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/eloyparedes.wordpress.com/26/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/eloyparedes.wordpress.com/26/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/eloyparedes.wordpress.com/26/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eloyparedes.wordpress.com&amp;blog=971514&amp;post=26&amp;subd=eloyparedes&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://eloyparedes.wordpress.com/2007/07/17/proyectos-de-aplicacion-web-vs-proyectos-de-sitio-web-web-application-projects-vs-web-site-projects/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d87b6c6b7edee90a2981c7a5c4ff02d5?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">eloyparedes</media:title>
		</media:content>
	</item>
		<item>
		<title>Evento Load de Página ASPX Solo se Ejecuta la Primera Vez, Cuando se Abre la Página con JavaScript en Modo Modal.</title>
		<link>http://eloyparedes.wordpress.com/2007/06/13/evento-load-de-pagina-aspx-solo-se-ejecuta-la-primera-vez-cuando-se-abre-la-pagina-con-javascript-en-modo-modal/</link>
		<comments>http://eloyparedes.wordpress.com/2007/06/13/evento-load-de-pagina-aspx-solo-se-ejecuta-la-primera-vez-cuando-se-abre-la-pagina-con-javascript-en-modo-modal/#comments</comments>
		<pubDate>Wed, 13 Jun 2007 23:47:21 +0000</pubDate>
		<dc:creator>eloyparedes</dc:creator>
				<category><![CDATA[ASP .NET]]></category>
		<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://eloyparedes.wordpress.com/2007/06/13/evento-load-de-pagina-aspx-solo-se-ejecuta-la-primera-vez-cuando-se-abre-la-pagina-con-javascript-en-modo-modal/</guid>
		<description><![CDATA[Nuevamente uno de esos problemas que a uno lo ponen a pensar, y como ya es costumbre proviene de una amiga (que bueno que me hagan estas consultas, así tengo material para el Blog). El Problema Cuando abrimos una página ASP .Net en modo modal (diálogo), mediante la instrucción de JavaScript: showModalDialog(); El código que [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eloyparedes.wordpress.com&amp;blog=971514&amp;post=25&amp;subd=eloyparedes&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Nuevamente uno de esos problemas que a uno lo ponen a pensar, y como ya es costumbre proviene de una amiga (<del datetime="2007-06-13T23:42:40+00:00">que bueno que me hagan estas consultas, así tengo material para el Blog</del>).</p>
<p><strong>El Problema</strong><br />
Cuando abrimos una página ASP .Net en modo modal (diálogo), mediante la instrucción de JavaScript:</p>
<p>showModalDialog();</p>
<p>El código que ponemos en el controlador del evento load de la página que estamos abriendo, se ejecuta solo la primera vez que abrimos la página; en las siguientes veces, simplemente no ejecuta nada, es decir no se produce el evento load de la página.</p>
<p><strong>La Solución</strong><br />
Como es costumbre lo primero que hice, fue reproducir el problema, y me pareció bastante extraño el comportamiento que tenía, luego pase a depurar el programa poniendo un punto de interrupción en la primera instrucción del controlador del evento Load de la página, ejecute el programa y como se esperaba se detuvo en el punto de interrupción, desde ahí comencé a ejecutarlo paso a paso presionando la tecla F10, hasta que se muestre la página por completo, luego cerré la página para abrirla de nuevo, y al abrir de nuevo la página, ¡o sorpresa!, ingresó nuevamente al controlador del evento Load donde estaba el punto de interrupción, y donde se suponía ya no debería de entrar. Así que detuve el proceso de depuración, ejecuté el programa y todo funcionó a la perfección.</p>
<p>Le comenté esto a mi amiga y le dije que después de depurar el programa, todo funcionaba a la perfección, pero ella no puedo reproducir lo que yo había logrado. Rato después cuando probé nuevamente el programa, surgió nuevamente el problema y como era de esperar, mi amiga se rió en mi cara.</p>
<p>Así que me puse a buscar la solución definitiva, luego de probar con muchas posibles soluciones y claro después de buscar en San Google, recordé que cuando una página es servida desde la caché de salida, no se ejecuta ningún código del lado del servidor. Así que procedí a desactivar la caché de salida de la página en cuestión, y que creen, eso solucionó el problema definitivamente, resulta que en las páginas que se muestran como diálogo (Modal), la caché de salida se activa de forma automática y claro no hay manera que se ejecute nuestro controlador de evento Load. Para desactivar la caché de salida de una página basta con colocar la siguiente declaración en el archivo apsx de la página:</p>
<p>&lt;%@ OutputCache Location=&#8221;None&#8221; VaryByParam=&#8221;None&#8221; %&gt;</p>
<p>Justo después de la directiva @Page.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/eloyparedes.wordpress.com/25/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/eloyparedes.wordpress.com/25/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/eloyparedes.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/eloyparedes.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/eloyparedes.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/eloyparedes.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/eloyparedes.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/eloyparedes.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/eloyparedes.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/eloyparedes.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/eloyparedes.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/eloyparedes.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/eloyparedes.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/eloyparedes.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/eloyparedes.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/eloyparedes.wordpress.com/25/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eloyparedes.wordpress.com&amp;blog=971514&amp;post=25&amp;subd=eloyparedes&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://eloyparedes.wordpress.com/2007/06/13/evento-load-de-pagina-aspx-solo-se-ejecuta-la-primera-vez-cuando-se-abre-la-pagina-con-javascript-en-modo-modal/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d87b6c6b7edee90a2981c7a5c4ff02d5?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">eloyparedes</media:title>
		</media:content>
	</item>
		<item>
		<title>Error de Codificación al Recuperar Datos con Caracteres Especiales Como la Letra Ñ de Gridview a un TextBox</title>
		<link>http://eloyparedes.wordpress.com/2007/06/11/error-de-codificacion-al-recuperar-datos-con-caracteres-especiales-como-la-letra-n-de-gridview-a-un-textbox/</link>
		<comments>http://eloyparedes.wordpress.com/2007/06/11/error-de-codificacion-al-recuperar-datos-con-caracteres-especiales-como-la-letra-n-de-gridview-a-un-textbox/#comments</comments>
		<pubDate>Tue, 12 Jun 2007 03:28:28 +0000</pubDate>
		<dc:creator>eloyparedes</dc:creator>
				<category><![CDATA[ASP .NET]]></category>
		<category><![CDATA[Código C#]]></category>

		<guid isPermaLink="false">http://eloyparedes.wordpress.com/2007/06/11/error-de-codificacion-al-recuperar-datos-con-caracteres-especiales-como-la-letra-n-de-gridview-a-un-textbox/</guid>
		<description><![CDATA[Como es costumbre este post se origina con la consulta de una amiga, que me solicitó ayuda con un pequeño problema que se le presentó (el problema parecía tan pequeño que hasta se sonrojaba al hacer la consulta). El Problema Al recuperar los datos de un campo de la fila seleccionada en un GridView, a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eloyparedes.wordpress.com&amp;blog=971514&amp;post=24&amp;subd=eloyparedes&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Como es costumbre este post se origina con la consulta de una amiga, que me solicitó ayuda con un pequeño problema que se le presentó (<del datetime="2007-06-12T03:11:49+00:00">el problema parecía tan pequeño que hasta se sonrojaba al hacer la consulta</del>).</p>
<p><strong>El Problema</strong><br />
Al recuperar los datos de un campo de la fila seleccionada en un GridView, a un control TextBox, manda caracteres extraños cuando se tratan de letras especiales como la “ñ” o las vocales con tilde, para recuperar los datos se utiliza el siguiente código en el evento RowCommand, del GridView. </p>
<p>protected void GridView1_RowCommand(object sender,<br />
&nbsp;&nbsp;&nbsp;&nbsp;GridViewCommandEventArgs e)<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp; if(e.CommandName == &#8220;Select&#8221;)<br />
&nbsp;&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//Seleccionamos la Fila Actual<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GridView1.SelectedIndex =<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Convert.ToInt32(e.CommandArgument.ToString());</p>
<p>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//Recuperamos el valor de la segunda celda<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TextBox1.Text = GridView1.SelectedRow.Cells[1].Text;<br />
&nbsp;&nbsp;&nbsp;&nbsp; }<br />
}</p>
<p><strong>La Solución</strong><br />
Desde el inicio sospeché que el problema se trataba de la codificación de la página, recordé un post que había leído solo hace un momento donde se mostraba la forma de poner la codificación por defecto, seguí los pasos que se indicaban, pero no solucionó el problema.</p>
<p>Entonces hice la prueba cambiando el control TextBox por un control Label, grande fue mi sorpresa cuando todo funcionó a la perfección, entonces el problema estaba en el TextBox que por alguna razón no decodificaba los caracteres especiales.</p>
<p>Luego recordé que había una función para codificar texto que se utilizaba en seguridad, para evitar que el usuario ingrese caracteres especiales HttpUtility.HtmlEncode() y su correspondiente método para decodificarlo HttpUtility.HtmlDecode(). Como el problema es que los caracteres están codificados y por alguna razón extraña que no llego a entender no se decodifica al asignarlo a un TextBox, para solucionarlo tenemos que utilizar HttpUtility.HtmlDecode(), para decodificarlo manualmente. </p>
<p>protected void GridView1_RowCommand(object sender,<br />
&nbsp;&nbsp;&nbsp;&nbsp;GridViewCommandEventArgs e)<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;if(e.CommandName == &#8220;Select&#8221;)<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//Seleccionamos la Fila Actual<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GridView1.SelectedIndex =<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Convert.ToInt32(e.CommandArgument.ToString());</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//Recuperamos el valor de la segunda celda decodific&aacute;ndola<br />
<strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TextBox1.Text =<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HttpUtility.HtmlDecode(GridView1.SelectedRow.Cells[1].Text);</strong><br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
}</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/eloyparedes.wordpress.com/24/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/eloyparedes.wordpress.com/24/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/eloyparedes.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/eloyparedes.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/eloyparedes.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/eloyparedes.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/eloyparedes.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/eloyparedes.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/eloyparedes.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/eloyparedes.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/eloyparedes.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/eloyparedes.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/eloyparedes.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/eloyparedes.wordpress.com/24/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/eloyparedes.wordpress.com/24/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/eloyparedes.wordpress.com/24/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eloyparedes.wordpress.com&amp;blog=971514&amp;post=24&amp;subd=eloyparedes&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://eloyparedes.wordpress.com/2007/06/11/error-de-codificacion-al-recuperar-datos-con-caracteres-especiales-como-la-letra-n-de-gridview-a-un-textbox/feed/</wfw:commentRss>
		<slash:comments>28</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d87b6c6b7edee90a2981c7a5c4ff02d5?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">eloyparedes</media:title>
		</media:content>
	</item>
		<item>
		<title>Temas y Skins  con CSS para Mostrar una Interfaz de Usuario Consistente en ASP .NET 2.0</title>
		<link>http://eloyparedes.wordpress.com/2007/06/09/temas-y-skins-con-css-para-mostrar-una-interfaz-de-usuario-consistente-en-asp-net-20/</link>
		<comments>http://eloyparedes.wordpress.com/2007/06/09/temas-y-skins-con-css-para-mostrar-una-interfaz-de-usuario-consistente-en-asp-net-20/#comments</comments>
		<pubDate>Sun, 10 Jun 2007 04:26:35 +0000</pubDate>
		<dc:creator>eloyparedes</dc:creator>
				<category><![CDATA[ASP .NET]]></category>

		<guid isPermaLink="false">http://eloyparedes.wordpress.com/2007/06/09/temas-y-skins-con-css-para-mostrar-una-interfaz-de-usuario-consistente-en-asp-net-20/</guid>
		<description><![CDATA[Una primera aproximación para lograr un interfaz de usuario consistente en ASP NET son las hojas de estilo CSS (Cascading Style Sheets), que nos ofrecen una gran mejora al centralizar la información sobre el estilo que nuestros Controles Web lucirán en archivos de hoja de estilos, en lugar de estar poniendo la información de estilo [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eloyparedes.wordpress.com&amp;blog=971514&amp;post=17&amp;subd=eloyparedes&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Una primera aproximación para lograr un interfaz de usuario consistente en ASP NET son las hojas de estilo CSS (Cascading Style Sheets), que nos ofrecen una gran mejora al centralizar la información sobre el estilo que nuestros Controles Web lucirán en archivos de hoja de estilos, en lugar de estar poniendo la información de estilo directamente en las propiedades de los controles, colocamos el nombre de estilo CSS. La ventaja de esta aproximación es que al cambiar el archivo de hojas de estilo, el cambio se verá reflejado en todos los controles que utilicen dicha hoja de estilos. La desventaja es que aún hay que colocar en cada propiedad de los controles el nombre del estilo CSS.</p>
<p>Para superar las limitaciones de las hojas de estilo CSS, utilizaremos Temas y Skins.</p>
<p><strong>Tema.-</strong> Un tema es una colección de valores de propiedades que nos permiten definir la apariencia de páginas y controles, para luego aplicar esta apariencia a través de toda la aplicación Web asegurando la consistencia de la interfaz de usuario.</p>
<p>Los temas están compuestos por un conjunto de elementos como: Skins, hojas de estilo (CSS), imágenes y otros recursos; como mínimo un tema debe contener skins; los temas se crean en carpetas especiales del Sitio Web (App_Themes).</p>
<p><strong>Skin.-</strong> Son archivos con extensión .skin y contiene valores para propiedades de controles individuales como GridView, DetailsView, etc. En la definición del skin se indica a qué control le corresponde.</p>
<p>Ejemplo.- El ejemplo que presentamos es bastante sencillo para ver como agregar  temas a un Sitio Web.</p>
<p><strong>1.</strong> Agregar un nuevo archivo de hoja de estilos, le podemos poner como nombre “Estilos.css”, en este archivo definimos los estilos que tendrá nuestro sitio web por ejemplo:</p>
<p>.SelectedDayStyle<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;background-color: #41519A;<br />
&nbsp;&nbsp;&nbsp;&nbsp;font-weight: bold;<br />
&nbsp;&nbsp;&nbsp;&nbsp;color: White;<br />
}</p>
<p>Así todos los estimos que vamos a necesitar para definir nuestros skins.</p>
<p><strong>2.</strong> Luego agregamos un nuevo skin mediante, agregar nuevo elemento de Visual Studio, como nombre le podemos poner “GridView.skin”, visual estudio nos alertara que estamos intentando crear un skin dentro del sitio web, y nos sugiere crear una carpeta especial para los temas a lo cual respondemos que si; si todavía no existía ningún skin, visual Studio creará la carpeta “App_Themes” y dentro de esta carpeta creará un tema con el mismo nombre del skin, y el nuevo skin dentro del tema, el contenido del skin es similar al siguiente:</p>
<p>&lt;asp:GridView runat=&quot;server&quot; CssClass=&quot;DataWebControlStyle&quot;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp; &lt;AlternatingRowStyle CssClass=&quot;AlternatingRowStyle&quot; /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp; &lt;RowStyle CssClass=&quot;RowStyle&quot; /&gt; <br />
&nbsp;&nbsp;&nbsp;&nbsp; &lt;HeaderStyle CssClass=&quot;HeaderStyle&quot; /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp; &lt;FooterStyle CssClass=&quot;FooterStyle&quot; /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp; &lt;PagerStyle CssClass=&quot;PagerStyle&quot; /&gt;&nbsp;&nbsp; <br />
&lt;/asp:GridView&gt;</p>
<p>Todos los estilos a los que se hace referencia en el skin deben estar previamente definidos en el archivo de hojas de estilo.</p>
<p>Este skin se encargará de poner automáticamente los estilos a los GridView de nuestro sitio web.</p>
<p><strong>3.</strong> Una vez creado el tema con sus respectivos skins, es hora de aplicar los temas a nuestro sitio web, podemos aplicar los temas página por página o aplicarlo a todo el sitio web, mediante el archivo de configuración, utilizaremos la segunda forma para lo cual tenemos que agregar en el archivo de configuración la siguiente línea, suponiendo que el tema se llama “Estandar”.</p>
<p>&lt;pages styleSheetTheme=&quot;Estandar&quot; /&gt;</p>
<p><strong>4.</strong> Finalmente tenemos que hacer una referencia al archivo de hojas de estilo desde nuestra página:</p>
<p>&lt;head runat=&quot;server&quot;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp; &lt;title&gt;Demos Skins&lt;/title&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp; &lt;link href=&quot;Estilos.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot; /&gt;<br />
&lt;/head&gt;</p>
<p>Ahora dependiendo de los skins que hayamos creado para los temas al agregar los controles a nuestra página tomarán automáticamente los estilos del tema.</p>
<p><a href='http://eloyparedes.files.wordpress.com/2007/06/temasaplicado.jpg' title='Temas'><img src='http://eloyparedes.files.wordpress.com/2007/06/temasaplicado.jpg?w=480' alt='Temas' /></a></p>
<p><strong>Descargar Ejemplo: <a href='http://eloyparedes.files.wordpress.com/2007/06/demoskinzip.doc' title='Ejemplo Temas y Skins'>Ejemplo Temas y Skins</a></strong><br />
Favor de darle clic derecho y guardar destino como…, una vez descargado cambiar la extensión a .zip, y descomprimirlo (todo esto porque no me dejan subir archivos zip).</p>
<p>De la siguiente página se puede descargar un sitio web con algunos temas listos para utilizar: <a href="http://www.dotnettreats.com/tools/Default.aspx"><strong>.Net Treats &amp; Tricks</strong></a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/eloyparedes.wordpress.com/17/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/eloyparedes.wordpress.com/17/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/eloyparedes.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/eloyparedes.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/eloyparedes.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/eloyparedes.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/eloyparedes.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/eloyparedes.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/eloyparedes.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/eloyparedes.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/eloyparedes.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/eloyparedes.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/eloyparedes.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/eloyparedes.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/eloyparedes.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/eloyparedes.wordpress.com/17/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eloyparedes.wordpress.com&amp;blog=971514&amp;post=17&amp;subd=eloyparedes&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://eloyparedes.wordpress.com/2007/06/09/temas-y-skins-con-css-para-mostrar-una-interfaz-de-usuario-consistente-en-asp-net-20/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/d87b6c6b7edee90a2981c7a5c4ff02d5?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">eloyparedes</media:title>
		</media:content>

		<media:content url="http://eloyparedes.files.wordpress.com/2007/06/temasaplicado.jpg" medium="image">
			<media:title type="html">Temas</media:title>
		</media:content>
	</item>
	</channel>
</rss>
