<?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>Tecnologias Microsoft</title>
	<atom:link href="http://mredison.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://mredison.wordpress.com</link>
	<description>Edison Garcia</description>
	<lastBuildDate>Tue, 20 Dec 2011 23:12:54 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='mredison.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://0.gravatar.com/blavatar/4f83dd579c74f7f47cf6fbb9887673ce?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>Tecnologias Microsoft</title>
		<link>http://mredison.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://mredison.wordpress.com/osd.xml" title="Tecnologias Microsoft" />
	<atom:link rel='hub' href='http://mredison.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Configurar el Recycling de los Application Pools en un horario no productivo</title>
		<link>http://mredison.wordpress.com/2011/09/27/configurar-el-recycling-de-los-application-pools-en-un-horario-no-productivo/</link>
		<comments>http://mredison.wordpress.com/2011/09/27/configurar-el-recycling-de-los-application-pools-en-un-horario-no-productivo/#comments</comments>
		<pubDate>Tue, 27 Sep 2011 06:23:34 +0000</pubDate>
		<dc:creator>mredison</dc:creator>
				<category><![CDATA[IIS 7]]></category>
		<category><![CDATA[IIS6]]></category>
		<category><![CDATA[IIS]]></category>

		<guid isPermaLink="false">https://mredison.wordpress.com/2011/09/27/configurar-el-recycling-de-los-application-pools-en-un-horario-no-productivo/</guid>
		<description><![CDATA[Dejar por default esta configuración (1740 minutos) puede afectar el aplicativo cada 29 hrs, ya sea que se cumpla está condición en un horario de producción o no, se reciclará el Application Pool, perdiendo sesiones y liberando memoria y procesamiento. Lo recomendable es colocar un horario espécifico que no afecte a producción. Recomendación para (IIS [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mredison.wordpress.com&amp;blog=1322336&amp;post=3236&amp;subd=mredison&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Dejar por default esta configuración (1740 minutos) puede afectar el aplicativo cada 29 hrs, ya sea que se cumpla está condición en un horario de producción o no, se reciclará el Application Pool, perdiendo sesiones y liberando memoria y procesamiento. Lo recomendable es colocar un horario espécifico que no afecte a producción.</p>
<p><b>Recomendación para (IIS 6.0)</b></p>
<p>- Seleccione el Application Pool – Click derecho Properties</p>
<p><a href="http://mredison.files.wordpress.com/2011/09/image4.png"><img style="display:inline;margin:0 2px;" title="image" alt="image" src="http://mredison.files.wordpress.com/2011/09/image_thumb4.png?w=610&#038;h=337" width="610" height="337" /></a></p>
<p>Se ha colocado por ejemplo un valor de 02:00 A.M., si existen más de un Application Pool, puede configurar un rango de 5 o 10 mins entre cada uno. Ejemplo:</p>
<ul>
<li>· DefaultAppPool – 2:00 a.m </li>
<li>· WCFAppPool – 2:10 a.m </li>
<li>· AnotherAppPool – 2:20 a.m </li>
</ul>
<p><b>Recomendación para (IIS 7.0 / 7.5)</b></p>
<p>- Seleccione el Application Pool y de click en la opción de Recycling…</p>
<p><a href="http://mredison.files.wordpress.com/2011/09/image5.png"><img style="display:inline;margin:0 2px;" title="image" alt="image" src="http://mredison.files.wordpress.com/2011/09/image_thumb5.png?w=610&#038;h=288" width="610" height="288" /></a></p>
<p>Saludos.</p>
<p>EG.</p>
<br />Filed under: <a href='http://mredison.wordpress.com/category/iis-7/'>IIS 7</a>, <a href='http://mredison.wordpress.com/category/iis6/'>IIS6</a> Tagged: <a href='http://mredison.wordpress.com/tag/iis/'>IIS</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mredison.wordpress.com/3236/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mredison.wordpress.com/3236/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mredison.wordpress.com/3236/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mredison.wordpress.com/3236/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mredison.wordpress.com/3236/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mredison.wordpress.com/3236/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mredison.wordpress.com/3236/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mredison.wordpress.com/3236/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mredison.wordpress.com/3236/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mredison.wordpress.com/3236/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mredison.wordpress.com/3236/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mredison.wordpress.com/3236/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mredison.wordpress.com/3236/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mredison.wordpress.com/3236/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mredison.wordpress.com&amp;blog=1322336&amp;post=3236&amp;subd=mredison&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mredison.wordpress.com/2011/09/27/configurar-el-recycling-de-los-application-pools-en-un-horario-no-productivo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/dba15c0598f013d1f1eb9faf2da1ef57?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">student</media:title>
		</media:content>

		<media:content url="http://mredison.files.wordpress.com/2011/09/image_thumb4.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://mredison.files.wordpress.com/2011/09/image_thumb5.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>Demasiados errores de crypt32 en tu servidor</title>
		<link>http://mredison.wordpress.com/2011/09/06/demasiados-errores-de-crypt32-en-tu-servidor/</link>
		<comments>http://mredison.wordpress.com/2011/09/06/demasiados-errores-de-crypt32-en-tu-servidor/#comments</comments>
		<pubDate>Tue, 06 Sep 2011 18:15:43 +0000</pubDate>
		<dc:creator>mredison</dc:creator>
				<category><![CDATA[Event Viewer]]></category>
		<category><![CDATA[Windows Server]]></category>

		<guid isPermaLink="false">https://mredison.wordpress.com/2011/09/06/demasiados-errores-de-crypt32-en-tu-servidor/</guid>
		<description><![CDATA[Uno de los errores más frecuentes en servidores web es el siguiente: Error: Tipo de suceso: error Origen del suceso: crypt32 Categoría del suceso: ninguna Id. de suceso: 8 Fecha: fecha Hora: hora Usuario: nombre de usuario Equipo: nombre de equipo Descripción: Error de recuperación de actualización automática del número de secuencia de la lista [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mredison.wordpress.com&amp;blog=1322336&amp;post=3231&amp;subd=mredison&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Uno de los errores más frecuentes en servidores web es el siguiente:</p>
<p><a href="http://mredison.files.wordpress.com/2011/09/eventvw-1.png"><img style="display:inline;margin:0 2px;" title="EventVW-1" alt="EventVW-1" src="http://mredison.files.wordpress.com/2011/09/eventvw-1_thumb.png?w=610&#038;h=375" width="610" height="375" /></a></p>
<p><strong>Error:</strong></p>
<blockquote><p>Tipo de suceso: error      <br />Origen del suceso: crypt32       <br />Categoría del suceso: ninguna       <br />Id. de suceso: 8       <br />Fecha: <i>fecha</i>       <br />Hora: <i>hora</i>       <br />Usuario: <i>nombre de usuario</i>       <br />Equipo: <i>nombre de equipo</i>       <br />Descripción:       <br />Error de recuperación de actualización automática del número de secuencia de la lista raíz de terceros de: &lt;http://www.download.windowsupdate.com/msdownload/update/v3/static/trustedr/en/authrootseq.txt&gt; con el error: Esta operación ha regresado debido a que el tiempo de espera ha caducado.       <br />Para obtener más información al respecto, vea el Centro de ayuda y soporte técnico en http://support.microsoft.com. </p>
</blockquote>
<p align="justify">La causa de este tipo de error es cuando el componente de Actualización de certificados raíz está activado y el server no se puede conectar con el servidor de Windows Update en internet, para actualizar automaticamente las entidades emisores de estos certificados. Si se tiene un servidor web con aplicativos que ocupan certificados y si se requiere actualizar las definiciones, entonces lo más recomendable es conectarse a internet, de lo contrario es mejor desactivarlo.</p>
<p>Para desactivar el componente Actualización de certificados raíz, siga estos pasos: </p>
<ol>
<li>En el Panel de control, haga doble clic en <b>Agregar o quitar programas</b>. </li>
<li>Haga clic en <b>Agregar o quitar componentes de Windows</b>. </li>
<li>Desactive la casilla de verificación <b>Actualización de certificados raíz</b> y continúe con el Asistente para componentes de Windows. </li>
</ol>
<p><a href="http://mredison.files.wordpress.com/2011/09/image3.png"><img style="display:inline;margin:0 2px;" title="image" alt="image" src="http://mredison.files.wordpress.com/2011/09/image_thumb3.png?w=426&#038;h=350" width="426" height="350" /></a></p>
<p>Referencia Web: <a title="http://support.microsoft.com/kb/317541/es" href="http://support.microsoft.com/kb/317541/es">http://support.microsoft.com/kb/317541/es</a></p>
<p>Saludos!.</p>
<br />Filed under: <a href='http://mredison.wordpress.com/category/event-viewer/'>Event Viewer</a>, <a href='http://mredison.wordpress.com/category/windows-server/'>Windows Server</a> Tagged: <a href='http://mredison.wordpress.com/tag/event-viewer/'>Event Viewer</a>, <a href='http://mredison.wordpress.com/tag/windows-server/'>Windows Server</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mredison.wordpress.com/3231/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mredison.wordpress.com/3231/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mredison.wordpress.com/3231/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mredison.wordpress.com/3231/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mredison.wordpress.com/3231/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mredison.wordpress.com/3231/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mredison.wordpress.com/3231/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mredison.wordpress.com/3231/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mredison.wordpress.com/3231/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mredison.wordpress.com/3231/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mredison.wordpress.com/3231/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mredison.wordpress.com/3231/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mredison.wordpress.com/3231/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mredison.wordpress.com/3231/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mredison.wordpress.com&amp;blog=1322336&amp;post=3231&amp;subd=mredison&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mredison.wordpress.com/2011/09/06/demasiados-errores-de-crypt32-en-tu-servidor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/dba15c0598f013d1f1eb9faf2da1ef57?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">student</media:title>
		</media:content>

		<media:content url="http://mredison.files.wordpress.com/2011/09/eventvw-1_thumb.png" medium="image">
			<media:title type="html">EventVW-1</media:title>
		</media:content>

		<media:content url="http://mredison.files.wordpress.com/2011/09/image_thumb3.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>No habilites el debugging en producci&#243;n (ASP.NET)</title>
		<link>http://mredison.wordpress.com/2011/09/05/no-habilites-el-debugging-en-produccin-asp-net/</link>
		<comments>http://mredison.wordpress.com/2011/09/05/no-habilites-el-debugging-en-produccin-asp-net/#comments</comments>
		<pubDate>Mon, 05 Sep 2011 23:20:55 +0000</pubDate>
		<dc:creator>mredison</dc:creator>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[Perfomance Monitor]]></category>
		<category><![CDATA[ASPNET]]></category>
		<category><![CDATA[Perfomance]]></category>

		<guid isPermaLink="false">https://mredison.wordpress.com/?p=3225</guid>
		<description><![CDATA[Tu jefe se queja de que tu aplicación esta lenta en producción y en tu PC vuela sin límites. Antes de colocar tu aplicación web en Producción, deshabilita el debugging en todos los webconfigs que tengas. Si no lo haces, esto provoca que tu aplicativo se degrade y exista un bajo rendimiento. Es muy recomendable [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mredison.wordpress.com&amp;blog=1322336&amp;post=3225&amp;subd=mredison&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p align="justify">Tu jefe se queja de que tu aplicación esta lenta en producción y en tu PC vuela sin límites. Antes de colocar tu aplicación web en Producción, deshabilita el debugging en todos los webconfigs que tengas. Si no lo haces, esto provoca que tu aplicativo se degrade y exista un bajo rendimiento. Es muy recomendable para ambientes de desarrollo pero no para productivos.</p>
<p align="justify">Cuando el debugging está habilitado, las peticiones de ASP.NET nunca terminan. Es decir cuando lo ocupamos en un ambiente de desarrollo podemos realizar un buen debugging con Visual Studio por que sabemos que dicha petición tiene un timeout definido por nosotros y que desaparecerá cuando hayamos realizado otra operación o terminemos el debugging por puntos. Pero en ambientes productivos eso es fatal, las peticiones no pueden tener timeouts infinitos. </p>
<p align="justify">Cuando el debugging está habilitado podemos crear mas de 100 dlls compiladas (Librerias), como es esto posible?</p>
<p align="justify">Bien. Cuando una página .aspx, asax o ascx es solicitada por primera vez, ASP.NET las compila dentro de un assembly. Este assembly tiene un nombre de 8 caracteres como 3ks0rnwz.dll o similar y guarda las clases de la página actual (No guarda el Code Behind). Esta dll se guarda en una carpeta llamada:</p>
<p align="justify"><strong>C:\WINDOWS\Microsoft.NET\Framework\NoVersion\Temporary ASP.NET Files</strong></p>
<p align="justify">El code behind es compilado aparte en una librería principal, independiente de las dlls que se copiaron en la carpeta anterior.</p>
<p>Entonces si tenemos habilitado el debugging, se creará una dll por cada página que sea solicitada por primera vez y estará en modo debug. Si tenemos 100 paginas web, tendremos 100 dlls.</p>
<p>En cambio si tenemos deshabilitado el debugging cuando se realice alguna petición en cualquier página de nuestro aplicativo web, ASP.NET compilará todo dentro de un gran assembly. Las páginas ascx se compilarán en un emsamblado diferente de las páginas .aspx y estas páginas .aspx son compiladas en grupos basados en otros archivos si incluyen UserControls. Si tu aplicativo tiene diferentes subdirectorios, la compilación se llevará acabo en cada uno de ellos de manera separada. Es decir al final de tener 100 dlls, podrás tener solamente de 3 a 4, de acuerdo a lo que te comenté anteriormente.</p>
<p>Es muy fácil de detectar con un memory dump que aplicaciones (App Domains, librerias) están siendo utilizadas en modo debug.</p>
<pre class="brush: xml;">0:016&gt; !finddebugtrue
Debug set to true for Runtime: 61b48dc, AppDomain: /MyDebugApplication
Debug set to true for Runtime: 1f50e6d8, AppDomain: /MemoryIssues
Total 16 HttpRuntime objects</pre>
<p>En un ambiente productivo es recomendable deshabilitar el debugging en todos los web.configs, lo podemos hacer manual por cada web.config </p>
<pre class="brush: xml;">&lt;compilation  debug=&quot;false&quot;/&gt;</pre>
<p>o de forma general a nivel servidor.</p>
<pre class="brush: xml;">&lt;configuration&gt;
    &lt;system.web&gt;
          &lt;deployment retail=”true”/&gt;
    &lt;/system.web&gt;
&lt;/configuration&gt;</pre>
<ul>
<li>Referencia KB: <a title="http://support.microsoft.com/kb/815157" href="http://support.microsoft.com/kb/815157">http://support.microsoft.com/kb/815157</a> </li>
<li>Referencia Web: <a title="http://weblogs.asp.net/scottgu/archive/2006/04/11/442448.aspx" href="http://weblogs.asp.net/scottgu/archive/2006/04/11/442448.aspx">http://weblogs.asp.net/scottgu/archive/2006/04/11/442448.aspx</a> </li>
</ul>
<ul>Saludos!.</ul>
<br />Filed under: <a href='http://mredison.wordpress.com/category/aspnet/'>ASP.NET</a>, <a href='http://mredison.wordpress.com/category/perfomance-monitor/'>Perfomance Monitor</a> Tagged: <a href='http://mredison.wordpress.com/tag/aspnet-2/'>ASPNET</a>, <a href='http://mredison.wordpress.com/tag/perfomance/'>Perfomance</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mredison.wordpress.com/3225/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mredison.wordpress.com/3225/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mredison.wordpress.com/3225/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mredison.wordpress.com/3225/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mredison.wordpress.com/3225/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mredison.wordpress.com/3225/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mredison.wordpress.com/3225/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mredison.wordpress.com/3225/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mredison.wordpress.com/3225/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mredison.wordpress.com/3225/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mredison.wordpress.com/3225/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mredison.wordpress.com/3225/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mredison.wordpress.com/3225/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mredison.wordpress.com/3225/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mredison.wordpress.com&amp;blog=1322336&amp;post=3225&amp;subd=mredison&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mredison.wordpress.com/2011/09/05/no-habilites-el-debugging-en-produccin-asp-net/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<georss:point>18.139791 -94.429011</georss:point>
		<geo:lat>18.139791</geo:lat>
		<geo:long>-94.429011</geo:long>
		<media:content url="http://1.gravatar.com/avatar/dba15c0598f013d1f1eb9faf2da1ef57?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">student</media:title>
		</media:content>
	</item>
		<item>
		<title>Mostrando los IDs de los Procesos en el Perfomance Monitor</title>
		<link>http://mredison.wordpress.com/2011/09/05/mostrando-los-ids-de-los-procesos-en-el-perfomance-monitor/</link>
		<comments>http://mredison.wordpress.com/2011/09/05/mostrando-los-ids-de-los-procesos-en-el-perfomance-monitor/#comments</comments>
		<pubDate>Mon, 05 Sep 2011 16:40:17 +0000</pubDate>
		<dc:creator>mredison</dc:creator>
				<category><![CDATA[Perfomance Monitor]]></category>
		<category><![CDATA[Perfomance]]></category>

		<guid isPermaLink="false">https://mredison.wordpress.com/2011/09/05/mostrando-los-ids-de-los-procesos-en-el-perfomance-monitor/</guid>
		<description><![CDATA[Cuando nos disponemos a realizar un análisis con contadores de perfomance, nos encontramos con procesos que vienen enumerados (#1 ,#2….) en el momento en que realizamos la captura el log se registrará dichos procesos y realmente no vamos a poder conocer el id del proceso para realizar un buen troubleshooting. Solo basta crear un nuevo [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mredison.wordpress.com&amp;blog=1322336&amp;post=3224&amp;subd=mredison&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Cuando nos disponemos a realizar un análisis con contadores de perfomance, nos encontramos con procesos que vienen enumerados (#1 ,#2….) en el momento en que realizamos la captura el log se registrará dichos procesos y realmente no vamos a poder conocer el id del proceso para realizar un buen troubleshooting.</p>
<p><a href="http://mredison.files.wordpress.com/2011/09/image1.png"><img style="display:inline;margin:0 2px;" title="image" alt="image" src="http://mredison.files.wordpress.com/2011/09/image_thumb1.png?w=302&#038;h=298" width="302" height="298" /></a></p>
<p>Solo basta crear un nuevo valor DWORD en el registro de Windows.</p>
<p>Para habilitar o deshabilitar el PID en nombres de los procesos, siga estos pasos: </p>
<ol>
<li>Haga clic en <strong>Inicio </strong>, haga clic en <strong>Ejecutar </strong>, escriba regedit y, a continuación, haga clic en <strong>Aceptar </strong>. </li>
<li>Busque y haga clic en la siguiente subclave del Registro:
<p><strong><font size="3">HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PerfProc\Performance</font></strong></p>
</li>
<li>En el menú <strong>Edición </strong>, haga clic en <strong>nuevo </strong>y, a continuación, haga clic en <strong>Valor DWORD </strong>. </li>
<li>Haga clic con el botón secundario en <strong>nuevo valor # 1 </strong>, haga clic en <strong>Cambiar nombre </strong>y, a continuación, escriba ProcessNameFormat para nombrar el nuevo valor. </li>
<li>Haga clic con el botón secundario del mouse en <strong>ProcessNameFormat </strong>y, a continuación, haga clic en <strong>Modificar </strong>. </li>
<li>En el cuadro <strong>valor </strong>, escriba uno de los valores siguientes y, a continuación, haga clic en <strong>Aceptar </strong>: </li>
<ul>
<li><b>1 </b>: deshabilita el datos de PID. Este valor es el valor predeterminado. </li>
<li><font><b>2 </b>: permite el PID de datos.</font> </li>
</ul>
<p>   <a href="http://mredison.files.wordpress.com/2011/09/image2.png"><img style="display:inline;margin:0;" title="image" alt="image" src="http://mredison.files.wordpress.com/2011/09/image_thumb2.png?w=305&#038;h=300" width="305" height="300" /></a></ol>
<p>Saludos!.</p>
<p>Referencia KB:&#160; <a title="http://support.microsoft.com/kb/281884" href="http://support.microsoft.com/kb/281884">http://support.microsoft.com/kb/281884</a></p>
<br />Filed under: <a href='http://mredison.wordpress.com/category/perfomance-monitor/'>Perfomance Monitor</a> Tagged: <a href='http://mredison.wordpress.com/tag/perfomance/'>Perfomance</a>, <a href='http://mredison.wordpress.com/tag/perfomance-monitor/'>Perfomance Monitor</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mredison.wordpress.com/3224/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mredison.wordpress.com/3224/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mredison.wordpress.com/3224/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mredison.wordpress.com/3224/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mredison.wordpress.com/3224/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mredison.wordpress.com/3224/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mredison.wordpress.com/3224/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mredison.wordpress.com/3224/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mredison.wordpress.com/3224/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mredison.wordpress.com/3224/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mredison.wordpress.com/3224/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mredison.wordpress.com/3224/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mredison.wordpress.com/3224/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mredison.wordpress.com/3224/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mredison.wordpress.com&amp;blog=1322336&amp;post=3224&amp;subd=mredison&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mredison.wordpress.com/2011/09/05/mostrando-los-ids-de-los-procesos-en-el-perfomance-monitor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/dba15c0598f013d1f1eb9faf2da1ef57?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">student</media:title>
		</media:content>

		<media:content url="http://mredison.files.wordpress.com/2011/09/image_thumb1.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://mredison.files.wordpress.com/2011/09/image_thumb2.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>Procesos en C#</title>
		<link>http://mredison.wordpress.com/2011/09/02/procesos-en-c/</link>
		<comments>http://mredison.wordpress.com/2011/09/02/procesos-en-c/#comments</comments>
		<pubDate>Fri, 02 Sep 2011 06:57:38 +0000</pubDate>
		<dc:creator>mredison</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Troubleshooting]]></category>
		<category><![CDATA[Perfomance]]></category>

		<guid isPermaLink="false">https://mredison.wordpress.com/2011/09/02/procesos-en-c/</guid>
		<description><![CDATA[Como ingenieros de troubleshooting en aplicaciones funcionales, uno de los problemas más comunes son los hangs de las mismas ( No responde, muy lento, crasheó ). Lo primero que debemos revisar es que proceso está consumiendo demasiada memoria. Existe un producto de Microsoft que se llama ProcessExplorer, el cual te ayuda a visualizar estos valores [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mredison.wordpress.com&amp;blog=1322336&amp;post=3219&amp;subd=mredison&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Como ingenieros de troubleshooting en aplicaciones funcionales, uno de los problemas más comunes son los hangs de las mismas ( No responde, muy lento, crasheó ). Lo primero que debemos revisar es que proceso está consumiendo demasiada memoria. Existe un producto de Microsoft que se llama <a href="http://technet.microsoft.com/en-us/sysinternals/bb896653">ProcessExplorer</a>, el cual te ayuda a visualizar estos valores de memoria fisica, virtual, paginación, etc por proceso.</p>
<p>En este post es muy fácil sacar dicha información desde C# .NET, veamos como:</p>
<p><strong>Código</strong>:</p>
<p>Se crea una clase para guardar la info de cada proceso.</p>
<div style="display:inline;float:none;margin:0;padding:0;" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:e98c025f-b177-47d8-a126-c15c986d29cf" class="wlWriterEditableSmartContent">
<div style="border:#000080 1px solid;color:#000;font-family:'Courier New', Courier, Monospace;font-size:10pt;">
<div style="background-color:#ffffff;max-height:400px;overflow:auto;padding:2px 5px;"> <span style="color:#0000ff;">public</span> <span style="color:#0000ff;">class</span> <span style="color:#2b91af;">ProcessData</span><br />     {<br />         <span style="color:#0000ff;">public</span> <span style="color:#2b91af;">Int32</span> Id { <span style="color:#0000ff;">get</span>; <span style="color:#0000ff;">set</span>; }<br />         <span style="color:#0000ff;">public</span> <span style="color:#2b91af;">String</span> Name { <span style="color:#0000ff;">get</span>; <span style="color:#0000ff;">set</span>; }<br />         <span style="color:#0000ff;">public</span> <span style="color:#2b91af;">Int64</span> WorkingSet { <span style="color:#0000ff;">get</span>; <span style="color:#0000ff;">set</span>; }<br />         <span style="color:#0000ff;">public</span> <span style="color:#2b91af;">Int32</span> HandleCount { <span style="color:#0000ff;">get</span>; <span style="color:#0000ff;">set</span>; }<br />         <span style="color:#0000ff;">public</span> <span style="color:#2b91af;">Int32</span> Threads { <span style="color:#0000ff;">get</span>; <span style="color:#0000ff;">set</span>; }<br />         <span style="color:#0000ff;">public</span> <span style="color:#2b91af;">Int64</span> PrivateMemory { <span style="color:#0000ff;">get</span>; <span style="color:#0000ff;">set</span>; }<br />         <span style="color:#0000ff;">public</span> <span style="color:#2b91af;">Int64</span> VirtualMemorySize { <span style="color:#0000ff;">get</span>; <span style="color:#0000ff;">set</span>; }<br />         <span style="color:#0000ff;">public</span> <span style="color:#2b91af;">Int64</span> NonpagedSystemMemorySize { <span style="color:#0000ff;">get</span>; <span style="color:#0000ff;">set</span>; }<br />         <br />     }</div>
</p></div>
</p></div>
<p>Utilizamos la libreria <strong>using System.Diagnostics</strong> para realizar consultas de todos los procesos que estén en el servidor o PC.</p>
<div style="display:inline;float:none;margin:0;padding:0;" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:02a5304a-88e2-4614-8bac-c7e55fa4a30a" class="wlWriterEditableSmartContent">
<div style="border:#000080 1px solid;color:#000;font-family:'Courier New', Courier, Monospace;font-size:10pt;">
<div style="background-color:#ffffff;max-height:400px;overflow:auto;padding:2px 5px;"><span style="color:#0000ff;">private</span> <span style="color:#0000ff;">void</span> button1_Click(<span style="color:#0000ff;">object</span> sender, <span style="color:#2b91af;">RoutedEventArgs</span> e)<br />         {<br />             <span style="color:#0000ff;">var</span> processes = <span style="color:#0000ff;">new</span> <span style="color:#2b91af;">List</span>&lt;<span style="color:#2b91af;">ProcessData</span>&gt;();<br />             <span style="color:#0000ff;">foreach</span> (<span style="color:#0000ff;">var</span> process <span style="color:#0000ff;">in</span> <span style="color:#2b91af;">Process</span>.GetProcesses())<br />             {<br />                 <span style="color:#0000ff;">var</span> data = <span style="color:#0000ff;">new</span> <span style="color:#2b91af;">ProcessData</span>();<br />                 data.Id = process.Id;<br />                 data.Name = process.ProcessName;<br />                 data.WorkingSet = process.WorkingSet64;<br />                 data.HandleCount = process.HandleCount;<br />                 data.PrivateMemory = process.PrivateMemorySize64;<br />                 data.VirtualMemorySize = process.VirtualMemorySize64;<br />                 data.NonpagedSystemMemorySize = process.NonpagedSystemMemorySize64;<br />                 data.Threads = process.Threads.Count;<br />                 processes.Add(data);<br />             }<br />             dataGrid1.DataContext = processes;<br />         }</div>
</p></div>
</p></div>
<p>Figura:</p>
<p><a href="http://mredison.files.wordpress.com/2011/09/image.png"><img style="display:inline;margin:0 2px;" title="image" alt="image" src="http://mredison.files.wordpress.com/2011/09/image_thumb.png?w=533&#038;h=257" width="533" height="257" /></a></p>
<p> Saludos!</p>
<br />Filed under: <a href='http://mredison.wordpress.com/category/c/'>C#</a>, <a href='http://mredison.wordpress.com/category/troubleshooting/'>Troubleshooting</a> Tagged: <a href='http://mredison.wordpress.com/tag/c/'>C#</a>, <a href='http://mredison.wordpress.com/tag/perfomance/'>Perfomance</a>, <a href='http://mredison.wordpress.com/tag/troubleshooting/'>Troubleshooting</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mredison.wordpress.com/3219/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mredison.wordpress.com/3219/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mredison.wordpress.com/3219/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mredison.wordpress.com/3219/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mredison.wordpress.com/3219/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mredison.wordpress.com/3219/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mredison.wordpress.com/3219/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mredison.wordpress.com/3219/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mredison.wordpress.com/3219/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mredison.wordpress.com/3219/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mredison.wordpress.com/3219/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mredison.wordpress.com/3219/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mredison.wordpress.com/3219/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mredison.wordpress.com/3219/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mredison.wordpress.com&amp;blog=1322336&amp;post=3219&amp;subd=mredison&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mredison.wordpress.com/2011/09/02/procesos-en-c/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/dba15c0598f013d1f1eb9faf2da1ef57?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">student</media:title>
		</media:content>

		<media:content url="http://mredison.files.wordpress.com/2011/09/image_thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>Contadores de Perfomance para ASP.NET y sus recomendaciones</title>
		<link>http://mredison.wordpress.com/2011/08/17/contadores-de-perfomance-para-asp-net-y-sus-recomendaciones/</link>
		<comments>http://mredison.wordpress.com/2011/08/17/contadores-de-perfomance-para-asp-net-y-sus-recomendaciones/#comments</comments>
		<pubDate>Wed, 17 Aug 2011 07:17:29 +0000</pubDate>
		<dc:creator>mredison</dc:creator>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[Perfomance Monitor]]></category>
		<category><![CDATA[ASPNET]]></category>

		<guid isPermaLink="false">https://mredison.wordpress.com/2011/08/17/contadores-de-perfomance-para-asp-net-y-sus-recomendaciones/</guid>
		<description><![CDATA[ASP.NET Contadores Específicos de ASP.NET Nombre Contador Descripción Recomendación Application Restarts Número de veces en que la aplicación se reinicia Si este valor es constante dentro de la gráfica. Se debe de checar los siguientes puntos: Si existió una modificación en el machine.config, web.config, global.asax. Si existió una modificación en la carpeta Bin del aplicativo. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mredison.wordpress.com&amp;blog=1322336&amp;post=3216&amp;subd=mredison&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><b>ASP.NET</b></p>
<p><b>Contadores Específicos de ASP.NET</b></p>
<p><b></b><br />
<table border="1" cellspacing="0" cellpadding="0" width="631">
<tbody>
<tr>
<td valign="top" width="140">
<p><b><i>Nombre Contador</i></b></p>
</td>
<td valign="top" width="154">
<p><b><i>Descripción</i></b></p>
</td>
<td valign="top" width="335">
<p><b><i>Recomendación</i></b></p>
</td>
</tr>
<tr>
<td valign="top" width="133">
<p><b>Application Restarts</b></p>
</td>
<td valign="top" width="147">
<p>Número de veces en que la aplicación se reinicia</p>
</td>
<td valign="top" width="335">
<p>Si este valor es constante dentro de la gráfica. Se debe de checar los siguientes puntos:</p>
<p>Si existió una modificación en el machine.config, web.config, global.asax.</p>
<p>Si existió una modificación en la carpeta Bin del aplicativo.</p>
<p>Cuando el número de compilaciones (ASPX,ASCX,ASAX) excede del límite especificado en el tag </p>
<p>&lt;compilation numRecompilesBeforeAppRestart=/&gt;.</p>
<p>Revisar si el antivirus no está reiniciando la aplicación.</p>
<p><a href="http://support.microsoft.com/?id=820746">http://support.microsoft.com/?id=820746</a></p>
</td>
</tr>
<tr>
<td valign="top" width="131">
<p><b>Requests Current</b></p>
</td>
<td valign="top" width="146">
<p>Número de peticiones ejecutándose.</p>
</td>
<td valign="top" width="335">
<p>Si este contador no baja del 100%. Se debe incrementar el número de la cola de peticiones. Por que si ASP.NET excede del número por default empezará a rechazar peticiones, mandando mensajes de 500 en el navegador.</p>
<p><b>IIS 7.0</b> – Incrementar la cola en el registro de Windows.</p>
<p>1. Ir al directorio: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ASP.NET\2.0.50727.0</p>
<p>2. Crear un valor de tipo DWORD (Decimal) con el nombre de MaxConcurrentRequestsPerCPU</p>
<p>3. Establecer el valor de 5000</p>
<p>4. Reiniciar el IIS (iisreset).</p>
<p><b>IIS 7.0</b> &#8211; Establecer un límite de peticiones concurrentes a nivel aplicación.</p>
<p>1.- Ir a la línea de comandos, ejecutar como Administrador.</p>
<p>2. &#8211; Ir al directorio the C:\Windows\System32\InetSrv</p>
<p>3.- Colocar el siguiente commando en lugar de “Sitio Web” será el nombre del sitio web</p>
<p><font size="1">appcmd.exe set config &quot;SitioWeb&quot; -section:system.webServer/serverRuntime /appConcurrentRequestLimit:&quot;5000&quot; /commit:apphost</font> </p>
<p><b>IIS 6.0</b> – Establecer un límete de cola de peticiones en el Application Pool</p>
<p>1.- Seleccionar el aplicación Pool click derecho Propierties.</p>
<p>2.- Ir al tab Perfomance, editar la opción Request queue limit cambiar el valor a 5000</p>
</td>
</tr>
<tr>
<td valign="top" width="131">
<p><b>Request Execution Time</b></p>
</td>
<td valign="top" width="146">
<p>Número de milisegundos que se tomaron para ejecutar la última petición.</p>
</td>
<td valign="top" width="335">
<p>Si este contador está muy elevado, checar el web.config de la aplicación en el tag compilation, colocarlo en FALSE. Tener el modo debug habilitado tiene un gran impacto en el rendimiento de una aplicación ASP.NET, y sólo se debe utilizar en etapas de desarrollo.</p>
<p>No se recomienda su utilización en aplicaciones en producción, o cuando se quieren tomar mediciones de rendimiento.</p>
<p>&lt;compilation debug=FALSE/&gt;</p>
</td>
</tr>
<tr>
<td valign="top" width="131">
<p><b>Requests Queued</b></p>
</td>
<td valign="top" width="146">
<p>Número de peticiones que están actualmente en cola.</p>
</td>
<td valign="top" width="335">
<p>Si este contador está muy elevado se recomienda aplicar las mismas recomendaciones que el contador <b>Requests Current</b></p>
</td>
</tr>
<tr>
<td valign="top" width="131">
<p><b>Requests Rejected</b></p>
</td>
<td valign="top" width="146">
<p>Número de peticiones que están siendo rechazadas.</p>
</td>
<td valign="top" width="335">
<p>Cuando rebasa el límite de cola permitido por ASP.NET puede ser por varias razones:</p>
<p>Bajo rendimiento de SQL Server</p>
<p>Cuando se incrementa el número de instancias de Pipeline (Buffers, Listas,Colas) </p>
<p>Cuando degrada la utilización del CPU.</p>
<p>El valor de este contador debe ser 0. Se debe revisar estos contadores, si tienen un número elevado:</p>
<p>· Process\% Processor Time</p>
<p>· Process\Private Bytes</p>
<p>· Process\Thread Count</p>
<p>· Web Service\ISAPI Extension Requests/sec</p>
<p>· ASP.NET\Requests Current</p>
<p>· ASP.NET\Requests Queued</p>
<p>· ASP.NET\Request Wait Time</p>
<p>· ASP.NET Applications\Pipeline Instance Count</p>
<p>· ASP.NET Applications\Requests in Application Queue</p>
<p>Se recomienda aplicar las mismas recomendaciones que el contador <b>Requests Current </b>y volver a realizar un trace de contadores.</p>
</td>
</tr>
<tr>
<td valign="top" width="131">
<p><b>Worker Process Restarts</b></p>
</td>
<td valign="top" width="146">
<p>Número de veces que el proceso aspnet_wp se reinicia.</p>
</td>
<td valign="top" width="335">
<p>Revisar si no existe un reinicio forzado dentro de las opciones de Reciclado del Application Pool. Revisar la configuración en el machine.config del tag ProcessModel.</p>
<p><a href="http://msdn.microsoft.com/en-us/library/7w2sway1.aspx">http://msdn.microsoft.com/en-us/library/7w2sway1.aspx</a></p>
</td>
</tr>
</tbody>
</table>
<p>Saludos!.</p>
<br />Filed under: <a href='http://mredison.wordpress.com/category/aspnet/'>ASP.NET</a>, <a href='http://mredison.wordpress.com/category/perfomance-monitor/'>Perfomance Monitor</a> Tagged: <a href='http://mredison.wordpress.com/tag/aspnet-2/'>ASPNET</a>, <a href='http://mredison.wordpress.com/tag/perfomance-monitor/'>Perfomance Monitor</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mredison.wordpress.com/3216/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mredison.wordpress.com/3216/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mredison.wordpress.com/3216/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mredison.wordpress.com/3216/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mredison.wordpress.com/3216/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mredison.wordpress.com/3216/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mredison.wordpress.com/3216/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mredison.wordpress.com/3216/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mredison.wordpress.com/3216/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mredison.wordpress.com/3216/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mredison.wordpress.com/3216/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mredison.wordpress.com/3216/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mredison.wordpress.com/3216/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mredison.wordpress.com/3216/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mredison.wordpress.com&amp;blog=1322336&amp;post=3216&amp;subd=mredison&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mredison.wordpress.com/2011/08/17/contadores-de-perfomance-para-asp-net-y-sus-recomendaciones/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/dba15c0598f013d1f1eb9faf2da1ef57?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">student</media:title>
		</media:content>
	</item>
		<item>
		<title>Contadores de Perfomance para .NET Framework y sus recomendaciones</title>
		<link>http://mredison.wordpress.com/2011/08/17/contadores-de-perfomance-para-net-framework-y-sus-recomendaciones/</link>
		<comments>http://mredison.wordpress.com/2011/08/17/contadores-de-perfomance-para-net-framework-y-sus-recomendaciones/#comments</comments>
		<pubDate>Wed, 17 Aug 2011 07:09:21 +0000</pubDate>
		<dc:creator>mredison</dc:creator>
				<category><![CDATA[NET Framework 3.5]]></category>
		<category><![CDATA[NET Framework 4]]></category>
		<category><![CDATA[Perfomance Monitor]]></category>
		<category><![CDATA[NET Framework]]></category>

		<guid isPermaLink="false">https://mredison.wordpress.com/2011/08/17/contadores-de-perfomance-para-net-framework-y-sus-recomendaciones/</guid>
		<description><![CDATA[.NET Framework Exceptions Nombre Contador Descripción Recomendación .NET CLR Exceptions(*)\# of Exceps Thrown / sec Número de excepciones lanzadas por Segundo. Esto incluye excepciones de .NET y excepciones de código no administrado. Administrar los errores con excepciones personalizadas try{}catch(Exception){}. Revisar si la aplicación no realiza demasiadas llamadas al método Response.Redirect, Server.Transfer o a Response.End http://support.microsoft.com/default.aspx?scid=kb;[LN];312629 [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mredison.wordpress.com&amp;blog=1322336&amp;post=3215&amp;subd=mredison&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h3>.NET Framework</h3>
<h4>Exceptions</h4>
<p><b></b><br />
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top" width="174">
<p><b>Nombre Contador</b></p>
</td>
<td valign="top" width="171">
<p><b>Descripción</b></p>
</td>
<td valign="top" width="294">
<p><b>Recomendación</b></p>
</td>
</tr>
<tr>
<td valign="top" width="174">
<p><b>.NET CLR Exceptions(*)\# of Exceps Thrown / sec</b></p>
</td>
<td valign="top" width="171">
<p>Número de excepciones lanzadas por Segundo. Esto incluye excepciones de .NET y excepciones de código no administrado. </p>
</td>
<td valign="top" width="294">
<p>Administrar los errores con excepciones personalizadas try{}catch(Exception){}. Revisar si la aplicación no realiza demasiadas llamadas al método Response.Redirect, Server.Transfer o a Response.End</p>
<p><a href="http://support.microsoft.com/default.aspx?scid=kb;%5bLN%5d;312629">http://support.microsoft.com/default.aspx?scid=kb;[LN];312629</a></p>
</td>
</tr>
<tr>
<td valign="top" width="174">
<p><b># of Exceps Thrown</b></p>
</td>
<td valign="top" width="171">
<p>Número de excepciones lanzadas desde que se inició la aplicación.</p>
</td>
<td valign="top" width="294">
<p>Administrar los errores con excepciones personalizadas try{}catch(Exception){}. Revisar si la aplicación no realiza demasiadas llamadas al método Response.Redirect, Server.Transfer o a Response.End</p>
<p><a href="http://support.microsoft.com/default.aspx?scid=kb;%5bLN%5d;312629">http://support.microsoft.com/default.aspx?scid=kb;[LN];312629</a></p>
</td>
</tr>
</tbody>
</table>
<p> Referencia URL:</p>
<p><a href="http://msdn.microsoft.com/en-us/library/kfhcywhs%28v=VS.90%29.aspx">http://msdn.microsoft.com/en-us/library/kfhcywhs%28v=VS.90%29.aspx</a></p>
<h4>CLR Loading</h4>
<p><b></b><br />
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top" width="174">
<p><b><i>Nombre Contador</i></b></p>
</td>
<td valign="top" width="171">
<p><b><i>Descripción</i></b></p>
</td>
<td valign="top" width="294">
<p><b><i>Recomendación</i></b></p>
</td>
</tr>
<tr>
<td valign="top" width="174">
<p><b>Current AppDomains</b></p>
</td>
<td valign="top" width="171">
<p>Número de AppDomains que el CLR está cargando en procesamiento.</p>
</td>
<td valign="top" width="294">
<p>El valor recomendado debe ser el mismo que el número de Aplicaciones Web + 1. Este valor no debe de sobrepasar este límite.</p>
</td>
</tr>
<tr>
<td valign="top" width="174">
<p><b>Current Assemblies</b></p>
</td>
<td valign="top" width="171">
<p>Número ensamblados cargados en el CLR.</p>
</td>
<td valign="top" width="294">
<p>Si existe un gran número de sitios web hospedados en el IIS, este número de contador debe ser normal. Pero de lo contrario si es un rango pequeño de aplicaciones y este contador está elevado, la recomendación es dividir el número de aplicaciones en Application Poolsen o colocarlos en otro servidor web.</p>
</td>
</tr>
<tr>
<td valign="top" width="174">
<p><b>Total # of Load Failures</b></p>
</td>
<td valign="top" width="171">
<p>Muestra elpico de clases que han fallado en cargar desde que se inició la aplicación.</p>
</td>
<td valign="top" width="294">
<p>Si este contador se encuentra elevado, se requiere revisar las llamadas a librería, si se registro algun evento dentro del event viewer que no encuentra ciertos métodos o dlls. Rectificar en desarrollo el cargado de las mismas.</p>
</td>
</tr>
</tbody>
</table>
<p> Referencia URL:</p>
<p><a href="http://msdn.microsoft.com/en-us/library/ekec01h3.aspx">http://msdn.microsoft.com/en-us/library/ekec01h3.aspx</a></p>
<h4>.NET CLR Memory</h4>
<p><b></b><br />
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top" width="174">
<p><b><i>Nombre Contador</i></b></p>
</td>
<td valign="top" width="171">
<p><b><i>Descripción</i></b></p>
</td>
<td valign="top" width="294">
<p><b><i>Recomendación</i></b></p>
</td>
</tr>
<tr>
<td valign="top" width="174">
<p><b># Bytes in all Heaps</b></p>
</td>
<td valign="top" width="171">
<p>Número de bytes comprometidos por objetos administrados.</p>
</td>
<td valign="top" width="294">
<p>Este valor tiene que ser siempre menor que el contador Process\Private Bytes. Si está elevado checar los siguientes contadores. # Gen 0, # Gen 1, etc. Revisar en código si no existen variables de tipo String que estén concatenándose, si hay ciclos en donde existan variables que no sé estén liberando con null, algun proceso o método que esté sobrecargando la memoria.</p>
</td>
</tr>
<tr>
<td valign="top" width="174">
<p><b># Gen 0 Collections</b></p>
</td>
<td valign="top" width="171">
<p>Colección creada por el Garbage Collector</p>
</td>
<td valign="top" width="294">
<p>Cuando el garbage collector llena su colección por default se crea una instancia más de GC, para colocar los objetos para posteriormente liberarlos de la memoria, cuando se crean varias colecciones, es por que el GC está siendo excesivamente utilizado por las aplicaciones. Utilizar sentencias Using, para mandar a llamar al método Dispose(), no llamar directamente al GC desde código. La misma recomendación que el primero. </p>
</td>
</tr>
<tr>
<td valign="top" width="174">
<p><b>.NET CLR Memory(*)\% Time in GC</b></p>
</td>
<td valign="top" width="171">
<p>Tiempo de Gargabe Collector, Utilización en memoria.</p>
</td>
<td valign="top" width="294">
<p>Este contador es muy notorio cuando se utiliza demasiado el GC para la liberación de recursos. La recomendación es estar debajo de un 30% en la gráfica.Una aplicación saludable tiene un 5% de utilización en GC. Volver con null los buffers creados.No guardar grandes cantidades de datos en ASP.NET cache.Utilizar StringBuilders para concatenar cadenas de caracteres.</p>
<p>Las mismas recomendaciones anteriores.</p>
</td>
</tr>
</tbody>
</table>
<p> Referencia URL:</p>
<p><a href="http://msdn.microsoft.com/en-us/library/x2tyfybc%28v=vs.80%29.aspx">http://msdn.microsoft.com/en-us/library/x2tyfybc%28v=vs.80%29.aspx</a></p>
<p>Saludos!</p>
<br />Filed under: <a href='http://mredison.wordpress.com/category/net-framework-35/'>NET Framework 3.5</a>, <a href='http://mredison.wordpress.com/category/net-framework-4/'>NET Framework 4</a>, <a href='http://mredison.wordpress.com/category/perfomance-monitor/'>Perfomance Monitor</a> Tagged: <a href='http://mredison.wordpress.com/tag/net-framework/'>NET Framework</a>, <a href='http://mredison.wordpress.com/tag/perfomance-monitor/'>Perfomance Monitor</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mredison.wordpress.com/3215/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mredison.wordpress.com/3215/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mredison.wordpress.com/3215/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mredison.wordpress.com/3215/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mredison.wordpress.com/3215/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mredison.wordpress.com/3215/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mredison.wordpress.com/3215/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mredison.wordpress.com/3215/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mredison.wordpress.com/3215/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mredison.wordpress.com/3215/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mredison.wordpress.com/3215/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mredison.wordpress.com/3215/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mredison.wordpress.com/3215/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mredison.wordpress.com/3215/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mredison.wordpress.com&amp;blog=1322336&amp;post=3215&amp;subd=mredison&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mredison.wordpress.com/2011/08/17/contadores-de-perfomance-para-net-framework-y-sus-recomendaciones/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/dba15c0598f013d1f1eb9faf2da1ef57?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">student</media:title>
		</media:content>
	</item>
		<item>
		<title>Mover un objeto del directorio a un grupo de seguridad (C# Tip)</title>
		<link>http://mredison.wordpress.com/2011/08/17/mover-un-objeto-del-directorio-a-un-grupo-de-seguridad-c-tip/</link>
		<comments>http://mredison.wordpress.com/2011/08/17/mover-un-objeto-del-directorio-a-un-grupo-de-seguridad-c-tip/#comments</comments>
		<pubDate>Wed, 17 Aug 2011 07:00:56 +0000</pubDate>
		<dc:creator>mredison</dc:creator>
				<category><![CDATA[Active Directory]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Tips C#]]></category>

		<guid isPermaLink="false">https://mredison.wordpress.com/2011/08/17/mover-un-objeto-del-directorio-a-un-grupo-de-seguridad-c-tip/</guid>
		<description><![CDATA[Este método lo reutilizo demasiado en desarrollos para Active Directory, en el cual puedes agregar usuarios o computadoras a un grupo de seguridad para aplicar algunas políticas de la empresa. Veamos el método y la implementación. Código: public void AddToGroup(string CompDn, string groupDn, string User, string Pass, string ip)         {                 DirectoryEntry dirEntry = new DirectoryEntry(&#34;LDAP://&#34;  +ip+ [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mredison.wordpress.com&amp;blog=1322336&amp;post=3214&amp;subd=mredison&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Este método lo reutilizo demasiado en desarrollos para Active Directory, en el cual puedes agregar usuarios o computadoras a un grupo de seguridad para aplicar algunas políticas de la empresa. Veamos el método y la implementación.</p>
<p><strong>Código:</strong></p>
<div style="display:inline;float:none;margin:0;padding:0;" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:ef30d15e-06fa-4a28-abc0-efd9b3b91855" class="wlWriterEditableSmartContent">
<div style="border:#000080 1px solid;color:#000;font-family:'Courier New', Courier, Monospace;font-size:10pt;">
<div style="background-color:#ffffff;max-height:300px;overflow:auto;white-space:nowrap;padding:2px 5px;"><span style="color:#0000ff;">public</span> <span style="color:#0000ff;">void</span> AddToGroup(<span style="color:#0000ff;">string</span> CompDn, <span style="color:#0000ff;">string</span> groupDn, <span style="color:#0000ff;">string</span> User, <span style="color:#0000ff;">string</span> Pass, <span style="color:#0000ff;">string</span> ip)<br />         {<br />                 <span style="color:#2b91af;">DirectoryEntry</span> dirEntry = <span style="color:#0000ff;">new</span> <span style="color:#2b91af;">DirectoryEntry</span>(<span style="color:#a31515;">&quot;LDAP://&quot;</span>  +ip+ <span style="color:#a31515;">&quot;/&quot;</span> + groupDn, User, Pass);<br />                 dirEntry.Properties[<span style="color:#a31515;">&quot;member&quot;</span>].Add(CompDn);<br />                 dirEntry.CommitChanges();<br />                 dirEntry.Close();<br />         }</div>
</p></div>
</p></div>
<p>Por ejemplo aquí tengo una lista de computadoras que agregaré a un grupo especial para asignarles políticias de Antivirus.</p>
<div style="display:inline;float:none;margin:0;padding:0;" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:3f2f606a-c44a-48dd-a485-777d504a5949" class="wlWriterEditableSmartContent">
<div style="border:#000080 1px solid;color:#000;font-family:'Courier New', Courier, Monospace;font-size:10pt;">
<div style="background-color:#ffffff;max-height:400px;overflow:auto;white-space:nowrap;padding:2px 5px;"><span style="color:#0000ff;">if</span> (<span style="color:#2b91af;">File</span>.Exists(strFile))<br />                 {<br />                     <span style="color:#2b91af;">XDocument</span> xDoc = <span style="color:#2b91af;">XDocument</span>.Load(strFile);<br />                     <span style="color:#2b91af;">IEnumerable</span>&lt;<span style="color:#2b91af;">XElement</span>&gt; computers = xDoc.Element(<span style="color:#a31515;">&quot;Computers&quot;</span>).Element(<span style="color:#a31515;">&quot;Windows2000&quot;</span>).Elements();<br />                     <span style="color:#0000ff;">string</span> path = <span style="color:#2b91af;">String</span>.Empty;</p>
<p>                     OuPath = GetOUs(txtOUWindows2000.Text) + <span style="color:#a31515;">&quot;,&quot;</span> + GetDomain(txtDomainName.Text);<br />                         <span style="color:#0000ff;">foreach</span> (<span style="color:#0000ff;">var</span> computer <span style="color:#0000ff;">in</span> computers)<br />                         {<br />                             path = computer.Element(<span style="color:#a31515;">&quot;Path&quot;</span>).Value.ToString();<br />                             <span style="color:#0000ff;">try</span><br />                             {<br />                                 AddToGroup(path, OuPath, txtUserName.Text, txtPassword.Text, txtServerIP.Text);<br />                             }<br />                             <span style="color:#0000ff;">catch</span> (<span style="color:#2b91af;">Exception</span> ex)<br />                             {<br />                             }</p>
<p>                         }<br />                         <span style="color:#2b91af;">MessageBox</span>.Show(<span style="color:#a31515;">&quot;Proceso completado&quot;</span>);<br />                 }</div>
</p></div>
</p></div>
<p>Otro método es el de mover objetos a otra dirección en este caso puede ser una OU (Unidad Organizacional).</p>
<div style="display:inline;float:none;margin:0;padding:0;" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:c248feb8-d43a-4f5c-8071-ff8ed28208ea" class="wlWriterEditableSmartContent">
<div style="border:#000080 1px solid;color:#000;font-family:'Courier New', Courier, Monospace;font-size:10pt;">
<div style="background-color:#ffffff;max-height:400px;overflow:auto;white-space:nowrap;padding:2px 5px;"> <span style="color:#0000ff;">public</span> <span style="color:#0000ff;">void</span> MoveComp(<span style="color:#0000ff;">string</span> objectLocation, <span style="color:#0000ff;">string</span> newLocation, <span style="color:#0000ff;">string</span> User, <span style="color:#0000ff;">string</span> Pass, <span style="color:#0000ff;">string</span> ip)<br />         {<br />             <span style="color:#2b91af;">DirectoryEntry</span> eLocation = <span style="color:#0000ff;">new</span> <span style="color:#2b91af;">DirectoryEntry</span>(<span style="color:#a31515;">&quot;LDAP://&quot;</span> +ip+ <span style="color:#a31515;">&quot;/&quot;</span> +objectLocation, User, Pass);<br />             <span style="color:#2b91af;">DirectoryEntry</span> nLocation = <span style="color:#0000ff;">new</span> <span style="color:#2b91af;">DirectoryEntry</span>(<span style="color:#a31515;">&quot;LDAP://&quot;</span> +ip+<span style="color:#a31515;">&quot;/&quot;</span>+ newLocation, User, Pass);<br />             eLocation.MoveTo(nLocation, eLocation.Name);<br />             nLocation.Close();<br />             eLocation.Close();<br />         }</div>
</p></div>
</p></div>
<p>Referencia: <a title="http://ewebmx.com/2011/08/mover-un-objeto-del-directorio-a-un-grupo-de-seguridad-c-tip/" href="http://ewebmx.com/2011/08/mover-un-objeto-del-directorio-a-un-grupo-de-seguridad-c-tip/">http://ewebmx.com/2011/08/mover-un-objeto-del-directorio-a-un-grupo-de-seguridad-c-tip/</a></p>
<br />Filed under: <a href='http://mredison.wordpress.com/category/active-directory/'>Active Directory</a>, <a href='http://mredison.wordpress.com/category/c/'>C#</a> Tagged: <a href='http://mredison.wordpress.com/tag/active-directory/'>Active Directory</a>, <a href='http://mredison.wordpress.com/tag/c/'>C#</a>, <a href='http://mredison.wordpress.com/tag/tips-c/'>Tips C#</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mredison.wordpress.com/3214/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mredison.wordpress.com/3214/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mredison.wordpress.com/3214/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mredison.wordpress.com/3214/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mredison.wordpress.com/3214/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mredison.wordpress.com/3214/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mredison.wordpress.com/3214/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mredison.wordpress.com/3214/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mredison.wordpress.com/3214/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mredison.wordpress.com/3214/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mredison.wordpress.com/3214/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mredison.wordpress.com/3214/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mredison.wordpress.com/3214/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mredison.wordpress.com/3214/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mredison.wordpress.com&amp;blog=1322336&amp;post=3214&amp;subd=mredison&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mredison.wordpress.com/2011/08/17/mover-un-objeto-del-directorio-a-un-grupo-de-seguridad-c-tip/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/dba15c0598f013d1f1eb9faf2da1ef57?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">student</media:title>
		</media:content>
	</item>
		<item>
		<title>Algunas mejores pr&#225;cticas para trabajar con ADO.NET y Oracle</title>
		<link>http://mredison.wordpress.com/2011/08/17/algunas-mejores-prcticas-para-trabajar-con-ado-net-y-oracle/</link>
		<comments>http://mredison.wordpress.com/2011/08/17/algunas-mejores-prcticas-para-trabajar-con-ado-net-y-oracle/#comments</comments>
		<pubDate>Wed, 17 Aug 2011 06:39:39 +0000</pubDate>
		<dc:creator>mredison</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[ADO.NET]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[NET Framework]]></category>
		<category><![CDATA[Tips C#]]></category>

		<guid isPermaLink="false">https://mredison.wordpress.com/2011/08/17/algunas-mejores-prcticas-para-trabajar-con-ado-net-y-oracle/</guid>
		<description><![CDATA[1.- Utilizar sentencias using para liberar y cerrar las conexiones. Siempre cerrar las conexiones que se realicen a Oracle y también con objetos de tipo DataReader al terminar de utilizarlas. Aunque el garbage collector eventualmente libera objetos, conexiones y otros recursos no manejados, siempre se deben de cerrar las conexiones para que retornen al pool. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mredison.wordpress.com&amp;blog=1322336&amp;post=3213&amp;subd=mredison&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><b>1.- Utilizar sentencias using para liberar y cerrar las conexiones.</b></p>
<p>Siempre cerrar las conexiones que se realicen a Oracle y también con objetos de tipo DataReader al terminar de utilizarlas. Aunque el garbage collector eventualmente libera objetos, conexiones y otros recursos no manejados, siempre se deben de cerrar las conexiones para que retornen al pool. </p>
<p>No se recomienda mandar a llamar el método .Close () o .Dispose () en un objeto de tipo Connection o DataReader u otro objeto no administrado en el método Finalize (). </p>
<p>Se recomienda utilizar bloques using para cerrar conexiones y objetos, automáticamente llama al método Dispose del objeto, liberando los recursos al finalizar.</p>
<div style="display:inline;float:none;margin:0;padding:0;" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:5af34195-1b4e-4294-834a-44180c92f650" class="wlWriterEditableSmartContent">
<div style="border:#000080 1px solid;color:#000;font-family:'Courier New', Courier, Monospace;font-size:10pt;">
<div style="background-color:#ffffff;max-height:400px;overflow:auto;padding:2px 5px;"><span style="color:#0000ff;">string</span> ConnectionString = <span style="color:#a31515;">&quot;Data Source=orcl.17.1.23;User ID=SYSTEM;Password=****&quot;</span>;<br />       <br />         <span style="color:#0000ff;">try</span><br />         {<br />             <span style="color:#0000ff;">using</span> (<span style="color:#2b91af;">OracleConnection</span> _connection = <span style="color:#0000ff;">new</span> <span style="color:#2b91af;">OracleConnection</span>(ConnectionString))<br />             {<br />                 _connection.Open();<br />                 Response.Write(<span style="color:#a31515;">&quot;Connection Successful&quot;</span>);<br />             }<br />         }<br />         <span style="color:#0000ff;">catch</span> (<span style="color:#2b91af;">Exception</span> ex)<br />         {<br />             Response.Write(ex.Message.ToString());<br />         }</div>
</p></div>
</p></div>
<p><b>2.- Cuando utilizar DataSet y DataReader.</b></p>
<p>Para determinar cuando utilizar estos objetos, se debe considerar el nivel de funcionalidad que se necesita en el aplicativo.</p>
<p>Utilizar <b>DataSet</b> cuando:</p>
<p>· Se navegue entre multiples resultados de tablas.</p>
<p>· Se manipula información de múltiples recursos (Por ejemplo, base de datos, archivos XML, etc).</p>
<p>· Se reutiliza la misma información de filas en caché para operaciones como, ordenamiento, búsqueda o filtrado de información.</p>
<p>· Se manipula información utilizando métodos XML como Extensible Stylesheet Language Transformations (XSLT transformations) o consultas XPath.</p>
<p>Utilizar <b>DataReader</b> cuando:</p>
<p>· No se necesita almacenar en caché la información.</p>
<p>· Cuando esté procesando una serie de resultados muy grandes que consumen demasiada memoria.</p>
<p>· Cuando requiere acceder rápidamente a datos de una sola vez, de manera forward-only y de solo lectura.</p>
<p><b>Nota</b>: El <b>DataAdapter</b> utiliza un DataReader al llenar un DataSet. El perfomance en utilizar un DataReader en lugar de un DataSet es que usted consumirá menos memoria, de lo que consume un objeto de DataSet. Recuerde que este perfomance es en base a las decisiones de diseño y funcionalidad que requiera.</p>
<div style="display:inline;float:none;margin:0;padding:0;" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:a1d93470-1b80-49b9-8dd2-dcf6a4d18306" class="wlWriterEditableSmartContent">
<div style="border:#000080 1px solid;color:#000;font-family:'Courier New', Courier, Monospace;font-size:10pt;">
<div style="background-color:#ffffff;max-height:500px;overflow:auto;padding:2px 5px;"><span style="color:#0000ff;">try</span><br />         {<br />             <span style="color:#0000ff;">using</span> (<span style="color:#2b91af;">OracleConnection</span> _connection = <span style="color:#0000ff;">new</span> <span style="color:#2b91af;">OracleConnection</span>(ConnectionString))<br />             {<br />                 _connection.Open();<br />                 <span style="color:#0000ff;">using</span> (<span style="color:#2b91af;">OracleCommand</span> _command = _connection.CreateCommand())<br />                 {<br />                     _command.CommandText = <span style="color:#a31515;">&quot;SELECT * FROM [Products]&quot;</span>;<br />                     _command.CommandType = <span style="color:#2b91af;">CommandType</span>.Text;<br />                     <span style="color:#0000ff;">using</span>(<span style="color:#2b91af;">OracleDataReader</span> _reader = _command.ExecuteReader())<br />                     {<br />                         <span style="color:#0000ff;">while</span> (_reader.Read())<br />                         { <br />                           <span style="color:#008000;">//Operation</span><br />                         }<br />                     }<br />                 }<br />             }<br />         }<br />         <span style="color:#0000ff;">catch</span> (<span style="color:#2b91af;">OracleException</span> ex)<br />         {<br />             Response.Write(ex.Message.ToString());<br />         }</div>
</p></div>
</p></div>
<p><b>3. &#8211; Paginación</b></p>
<p>Realizar una consulta con demasiados registros y luego retornarlo a cache dentro de un DataSet. Se requiere procesamiento, por eso se recomienda realizar consultas con un mínimo y máximo de registros como parámetros.</p>
<p>Existen varios métodos:</p>
<p>· Controlar el número de registros desde la consulta de texto o procedimiento almacenado.</p>
<table cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td>
<p>SELECT TOP 10 * FROM (SELECT TOP 30 * FROM Customers ORDER BY Id ASC) AS Table1 ORDER BY Id DESC</p>
</td>
</tr>
</tbody>
</table>
<p>· desde código:</p>
<div style="display:inline;float:none;margin:0;padding:0;" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:4fabb1ce-eb79-40ef-b59b-d2d6258d889b" class="wlWriterEditableSmartContent">
<div style="border:#000080 1px solid;color:#000;font-family:'Courier New', Courier, Monospace;font-size:10pt;">
<div style="background-color:#ffffff;max-height:300px;overflow:auto;padding:2px 5px;">_command.CommandType = <span style="color:#a31515;">&quot;SELECT TOP &quot;</span> + pageSize +<br />   <span style="color:#a31515;">&quot; * FROM Orders ORDER BY OrderID&quot;</span>;<br /> <span style="color:#2b91af;">OracleDataAdapter</span> adapter = <span style="color:#0000ff;">new</span> <span style="color:#2b91af;">OracleDataAdapter</span>(_command);</p>
<p> <span style="color:#2b91af;">DataSet</span> dataSet = <span style="color:#0000ff;">new</span> <span style="color:#2b91af;">DataSet</span>();<br /> adapter.Fill(dataSet, <span style="color:#a31515;">&quot;Orders&quot;</span>);</div>
</p></div>
</p></div>
<p>· Controlar el número de registros desde el método OracelDataAdapter.Fill()</p>
<div style="display:inline;float:none;margin:0;padding:0;" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:543cd8b8-b1df-47f8-afc2-d32fdaf8b4a9" class="wlWriterEditableSmartContent">
<div style="border:#000080 1px solid;color:#000;font-family:'Courier New', Courier, Monospace;font-size:10pt;">
<div style="background-color:#ffffff;max-height:300px;overflow:auto;padding:2px 5px;"><span style="color:#0000ff;">public</span> <span style="color:#0000ff;">int</span> Fill(<br />      DataSet dataSet,<br />      <span style="color:#0000ff;">int</span> startRecord,<br />      <span style="color:#0000ff;">int</span> maxRecords,<br />      <span style="color:#0000ff;">string</span> srcTable<br />  )</div>
</p></div>
</p></div>
<p>Con este método se controla el número de registros que se guardarán en cache dentro de un DataSet, consumiendo mucho menos memoria y procesamiento tanto del CLR (Common Language Runtime) y no generando memory leaks.</p>
<div style="display:inline;float:none;margin:0;padding:0;" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:9934e58b-ced6-47c2-a5ed-6f0d5b300ad6" class="wlWriterEditableSmartContent">
<div style="border:#000080 1px solid;color:#000;font-family:'Courier New', Courier, Monospace;font-size:10pt;">
<div style="background-color:#ffffff;max-height:500px;overflow:auto;padding:2px 5px;">DataSet _dsProducts = <span style="color:#0000ff;">null</span>;<br /> <span style="color:#0000ff;">int</span> currentIndex = 0;<br /> <span style="color:#0000ff;">int</span> pageSize = 5;</p>
<p> <span style="color:#0000ff;">try</span><br /> {<br />     <span style="color:#0000ff;">using</span> (<span style="color:#2b91af;">OracleConnection</span> _connection = <span style="color:#0000ff;">new</span> <span style="color:#2b91af;">OracleConnection</span>(ConnectionString))<br />     {<br />         _connection.Open();<br />         <span style="color:#0000ff;">using</span> (<span style="color:#2b91af;">OracleCommand</span> _command = _connection.CreateCommand())<br />         {<br />             _command.CommandText = <span style="color:#a31515;">&quot;SELECT * FROM Orders&quot;</span>;<br />             _command.CommandType = <span style="color:#2b91af;">CommandType</span>.Text;<br />             <span style="color:#2b91af;">OracleDataAdapter</span> _da = <span style="color:#0000ff;">new</span> <span style="color:#2b91af;">OracleDataAdapter</span>(_command);<br />             _da.Fill(_dsProducts,currentIndex, pageSize, <span style="color:#a31515;">&quot;Orders&quot;</span>);<br />         }<br />     }<br /> }<br /> <span style="color:#0000ff;">catch</span> (OracleException ex)<br /> {<br />     Response.Write(ex.Message.ToString());<br /> }</div>
</p></div>
</p></div>
<p><b>4 – Utilizar OracleConnectionStringBuilder</b></p>
<p>Este objeto permite a los desarrolladores crear cadenas de conexiones dinámicamente, utilizar cadenas de conexión existentes y reconstruirlas, utilizando las propiedades y métodos de la clase. Es recomendable su utilización para facilitar el manejo de las cadenas de conexión dentro del web.config o app.config. Es decir puede tomar la cadena de conexión que está actualmente en el web.config y agregar más parámetros.</p>
<div style="display:inline;float:none;margin:0;padding:0;" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:42c0b822-b9e8-463f-8984-863e8d1e1c9c" class="wlWriterEditableSmartContent">
<div style="border:#000080 1px solid;color:#000;font-family:'Courier New', Courier, Monospace;font-size:10pt;">
<div style="background-color:#ffffff;max-height:300px;overflow:auto;padding:2px 5px;">        OracleConnectionStringBuilder builder = <span style="color:#0000ff;">new</span> OracleConnectionStringBuilder();<br />         builder.ConnectionString = <br /> ConfigurationManager.ConnectionStrings[<span style="color:#a31515;">&quot;ConnectionString&quot;</span>].ConnectionString.ToString();<br />         builder[<span style="color:#a31515;">&quot;User ID&quot;</span>] = <span style="color:#a31515;">&quot;SYSTEM&quot;</span>;<br />         builder[<span style="color:#a31515;">&quot;Password&quot;</span>] = <span style="color:#a31515;">&quot;*****&quot;</span>;<br />         builder[<span style="color:#a31515;">&quot;Pooling&quot;</span>] =<span style="color:#0000ff;">true</span>;</div>
</p></div>
</p></div>
<p>Que tipo de elementos se pueden manipular en este objeto:</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top" width="291">
<p><b>Elemento</b></p>
</td>
<td valign="top" width="189">
<p><b>Propiedad</b></p>
</td>
<td valign="top" width="159">
<p><b>Valor por Default</b></p>
</td>
</tr>
<tr>
<td valign="top" width="291">
<p>Data Source (or server)</p>
</td>
<td valign="top" width="189">
<p><a href="http://msdn.microsoft.com/en-us/library/system.data.oracleclient.oracleconnectionstringbuilder.datasource%28v=VS.80%29.aspx">DataSource</a></p>
</td>
<td valign="top" width="159">
<p>Empty string</p>
</td>
</tr>
<tr>
<td valign="top" width="291">
<p>Persist Security Info (or persistsecurityinfo)</p>
</td>
<td valign="top" width="189">
<p><a href="http://msdn.microsoft.com/en-us/library/system.data.oracleclient.oracleconnectionstringbuilder.persistsecurityinfo%28v=VS.80%29.aspx">PersistSecurityInfo</a></p>
</td>
<td valign="top" width="159">
<p>False</p>
</td>
</tr>
<tr>
<td valign="top" width="291">
<p>Integrated Security</p>
</td>
<td valign="top" width="189">
<p><a href="http://msdn.microsoft.com/en-us/library/system.data.oracleclient.oracleconnectionstringbuilder.integratedsecurity%28v=VS.80%29.aspx">IntegratedSecurity</a></p>
</td>
<td valign="top" width="159">
<p>False</p>
</td>
</tr>
<tr>
<td valign="top" width="291">
<p>User ID (or user or uid)</p>
</td>
<td valign="top" width="189">
<p><a href="http://msdn.microsoft.com/en-us/library/system.data.oracleclient.oracleconnectionstringbuilder.userid%28v=VS.80%29.aspx">UserID</a></p>
</td>
<td valign="top" width="159">
<p>Empty string</p>
</td>
</tr>
<tr>
<td valign="top" width="291">
<p>Password</p>
</td>
<td valign="top" width="189">
<p><a href="http://msdn.microsoft.com/en-us/library/system.data.oracleclient.oracleconnectionstringbuilder.password%28v=VS.80%29.aspx">Password</a></p>
</td>
<td valign="top" width="159">
<p>Empty string</p>
</td>
</tr>
<tr>
<td valign="top" width="291">
<p>Enlist</p>
</td>
<td valign="top" width="189">
<p><a href="http://msdn.microsoft.com/en-us/library/system.data.oracleclient.oracleconnectionstringbuilder.enlist%28v=VS.80%29.aspx">Enlist</a></p>
</td>
<td valign="top" width="159">
<p>True</p>
</td>
</tr>
<tr>
<td valign="top" width="291">
<p>Pooling</p>
</td>
<td valign="top" width="189">
<p><a href="http://msdn.microsoft.com/en-us/library/system.data.oracleclient.oracleconnectionstringbuilder.pooling%28v=VS.80%29.aspx">Pooling</a></p>
</td>
<td valign="top" width="159">
<p>True</p>
</td>
</tr>
<tr>
<td valign="top" width="291">
<p>Min Pool Size</p>
</td>
<td valign="top" width="189">
<p><a href="http://msdn.microsoft.com/en-us/library/system.data.oracleclient.oracleconnectionstringbuilder.minpoolsize%28v=VS.80%29.aspx">MinPoolSize</a></p>
</td>
<td valign="top" width="159">
<p>0</p>
</td>
</tr>
<tr>
<td valign="top" width="291">
<p>Max Pool Size</p>
</td>
<td valign="top" width="189">
<p><a href="http://msdn.microsoft.com/en-us/library/system.data.oracleclient.oracleconnectionstringbuilder.maxpoolsize%28v=VS.80%29.aspx">MaxPoolSize</a></p>
</td>
<td valign="top" width="159">
<p>100</p>
</td>
</tr>
<tr>
<td valign="top" width="291">
<p>Omit Oracle Connection Name</p>
</td>
<td valign="top" width="189">
<p><a href="http://msdn.microsoft.com/en-us/library/system.data.oracleclient.oracleconnectionstringbuilder.omitoracleconnectionname%28v=VS.80%29.aspx">OmitOracleConnectionName</a></p>
</td>
<td valign="top" width="159">
<p>False</p>
</td>
</tr>
<tr>
<td valign="top" width="291">
<p>Unicode</p>
</td>
<td valign="top" width="189">
<p><a href="http://msdn.microsoft.com/en-us/library/system.data.oracleclient.oracleconnectionstringbuilder.unicode%28v=VS.80%29.aspx">Unicode</a></p>
</td>
<td valign="top" width="159">
<p>False</p>
</td>
</tr>
<tr>
<td valign="top" width="291">
<p>Load Balance Timeout (or connection lifetime)</p>
</td>
<td valign="top" width="189">
<p><a href="http://msdn.microsoft.com/en-us/library/system.data.oracleclient.oracleconnectionstringbuilder.loadbalancetimeout%28v=VS.80%29.aspx">LoadBalanceTimeout</a></p>
</td>
<td valign="top" width="159">
<p>0</p>
</td>
</tr>
</tbody>
</table>
<p><b>5 – Utilizar CommandType mejora el perfomance</b> </p>
<p><b></b></p>
<p>Siempre especificar el tipo de comando que se ejecutará dentro del <b>OracleDataAdapter</b> o del <b>OracleDataReader</b>. Si no se especifica, el assembly realizará un parse del comando antes de su ejecución y determina si es de tipo texto, procedimiento almacenado o de tipo tabla. Esto también generá consumo de recursos aunque sea muy diminuto, la mejor práctica es especificar el tipo de comando:</p>
<div style="display:inline;float:none;margin:0;padding:0;" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:8116a3e1-a513-4b6a-ad36-d3b1e2a5e386" class="wlWriterEditableSmartContent">
<div style="border:#000080 1px solid;color:#000;font-family:'Courier New', Courier, Monospace;font-size:10pt;">
<div style="background-color:#ffffff;max-height:300px;overflow:auto;padding:2px 5px;"><span style="color:#0000ff;">using</span> (OracleCommand _command = _connection.CreateCommand())<br /> {<br />     _command.CommandType = CommandType.StoredProcedure;<br />     _command.CommandText = <span style="color:#a31515;">&quot;GetOrders&quot;</span>;<br />     OracleDataAdapter _da = <span style="color:#0000ff;">new</span> OracleDataAdapter(_command);<br />     _da.Fill(_dsProducts, <span style="color:#a31515;">&quot;Orders&quot;</span>);<br /> }</div>
</p></div>
</p></div>
<p><b>6 – Utilizar Connection Pooling</b> </p>
<p>Se recomienda utilizar connection pooling para operaciones de perfomance, permite que las conexiones de base de datos sean cachadas para reutilizarse. Cuando una nueva conexión es requerida. El assembly de Oracle obtiene la conexión del cache, y cuando es cerrada mediante un bloque using, que físicamente no es cerrada, la regresa al pool de donde la tomo de cache. </p>
<p><b>Min Pool Size</b>: Este atributo define el número mínimo de conexiones que deben permanecer en el pool. Cuando se crea por primera vez el connection pool, abrirá el número de conexiones definido y las mantendrá en cache. </p>
<p><b>Max Pool Size</b>: Este atributo define el número máximo de conexiones que pueden estar dentro del pool. El valor por default es 100. Si sobrepasa el número definido, mandará una excepción al cliente de timeout, por eso es importante cerrar las conexiones para que sean reutilizadas. El valor recomendable es 100, depende mucho de las operaciones que se realicen en el aplicativo y las características del servidor. </p>
<p><b>Connection Lifetime:</b> Cuando una conexión es retornada al pool, su tiempo de creación es comparada con el tiempo actual y es destruida si el tiempo de respuesta en segundos excede el valor especificado en este atributo. El valor 0 causará que las conexiones en el pool no tengan un time-out máximo. </p>
<p>· Se pueden manipular directamente desde el web.config del aplicativo</p>
<div style="display:inline;float:none;margin:0;padding:0;" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:2784059f-cf94-4b67-bc4d-aea71b89354f" class="wlWriterEditableSmartContent">
<div style="border:#000080 1px solid;color:#000;font-family:'Courier New', Courier, Monospace;font-size:10pt;">
<div style="background-color:#ffffff;max-height:300px;overflow:auto;padding:2px 5px;"><span style="color:#0000ff;">&lt;</span><span style="color:#800000;">connectionStrings</span><span style="color:#0000ff;">&gt;</span><br />     <span style="color:#0000ff;">&lt;</span><span style="color:#800000;">add</span> <span style="color:#ff0000;">connectionString</span><span style="color:#0000ff;">=&quot;Data Source=NEWDB;User ID=SYSTEM;Min Pool Size=10;</span><br />     <span style="color:#0000ff;">Max Pool Size=100;Connection Lifetime=120;&quot;</span> <span style="color:#ff0000;">name</span><span style="color:#0000ff;">=&quot;ConnectionStringOracle&quot;</span><br />      <span style="color:#ff0000;">providerName</span><span style="color:#0000ff;">=&quot;System.Data.OracleClient&quot;</span> <span style="color:#0000ff;">/&gt;</span><br /> <span style="color:#0000ff;">&lt;/</span><span style="color:#800000;">connectionStrings</span><span style="color:#0000ff;">&gt;</span></div>
</p></div>
</p></div>
<p>· Ocupando las mejores prácticas desde el web.config y utilizar <b>OracleConnectionStringBuilder </b>definido en el punto 5 de forma dinámica. </p>
<p>· Modificar dichos valores dentro del IIS, en el tab de ASP.NET Configuration Settings. Agregando los parámetros en el Connection String establecido en el web.config. </p>
<p>Referencia Web:<a title="http://ewebmx.com/2011/08/algunas-mejores-prcticas-para-trabajar-con-ado-net-y-oracle/" href="http://ewebmx.com/2011/08/algunas-mejores-prcticas-para-trabajar-con-ado-net-y-oracle/">http://ewebmx.com/2011/08/algunas-mejores-prcticas-para-trabajar-con-ado-net-y-oracle/</a></p>
<br />Filed under: <a href='http://mredison.wordpress.com/category/ado-net/'>ADO.NET</a>, <a href='http://mredison.wordpress.com/category/c/'>C#</a>, <a href='http://mredison.wordpress.com/category/oracle/'>Oracle</a> Tagged: <a href='http://mredison.wordpress.com/tag/net-framework/'>NET Framework</a>, <a href='http://mredison.wordpress.com/tag/oracle/'>Oracle</a>, <a href='http://mredison.wordpress.com/tag/tips-c/'>Tips C#</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mredison.wordpress.com/3213/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mredison.wordpress.com/3213/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mredison.wordpress.com/3213/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mredison.wordpress.com/3213/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mredison.wordpress.com/3213/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mredison.wordpress.com/3213/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mredison.wordpress.com/3213/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mredison.wordpress.com/3213/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mredison.wordpress.com/3213/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mredison.wordpress.com/3213/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mredison.wordpress.com/3213/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mredison.wordpress.com/3213/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mredison.wordpress.com/3213/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mredison.wordpress.com/3213/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mredison.wordpress.com&amp;blog=1322336&amp;post=3213&amp;subd=mredison&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mredison.wordpress.com/2011/08/17/algunas-mejores-prcticas-para-trabajar-con-ado-net-y-oracle/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/dba15c0598f013d1f1eb9faf2da1ef57?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">student</media:title>
		</media:content>
	</item>
		<item>
		<title>Eliminando los Unhandled Exceptions ASP.NET en el EventViewer</title>
		<link>http://mredison.wordpress.com/2011/08/12/eliminando-los-unhandled-exceptions-asp-net-en-el-eventviewer/</link>
		<comments>http://mredison.wordpress.com/2011/08/12/eliminando-los-unhandled-exceptions-asp-net-en-el-eventviewer/#comments</comments>
		<pubDate>Fri, 12 Aug 2011 20:37:11 +0000</pubDate>
		<dc:creator>mredison</dc:creator>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[Troubleshooting]]></category>
		<category><![CDATA[ASPNET]]></category>

		<guid isPermaLink="false">https://mredison.wordpress.com/2011/08/12/eliminando-los-unhandled-exceptions-asp-net-en-el-eventviewer/</guid>
		<description><![CDATA[Evento Registrado: Event code:&#160; 1309 Event message: An unhandled exception has occurred. Event time: 5/8/2011 4:40:56 PM Event time (UTC): 5/8/2011 9:40:56 PM Cuando se registran&#160; advertencias de errores que no son administrados dentro de la aplicación, como se muestra en la siguiente figura: Causa: Existen excepciones que son lanzadas desde alguna .dll o webservice [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mredison.wordpress.com&amp;blog=1322336&amp;post=3212&amp;subd=mredison&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><font>Evento Registrado:</font></p>
<blockquote><p>Event code:&#160; 1309</p>
<p>Event message: An unhandled exception has occurred. </p>
<p>Event time: 5/8/2011 4:40:56 PM </p>
<p>Event time (UTC): 5/8/2011 9:40:56 PM </p>
</blockquote>
<p>Cuando se registran&#160; advertencias de errores que no son administrados dentro de la aplicación, como se muestra en la siguiente figura:</p>
<p><a href="http://mredison.files.wordpress.com/2011/08/image6.png"><img style="display:inline;" title="image" alt="image" src="http://mredison.files.wordpress.com/2011/08/image_thumb6.png?w=461&#038;h=334" width="461" height="334" /></a></p>
<p><strong><font>Causa:</font></strong></p>
<p>Existen excepciones que son lanzadas desde alguna .dll o webservice o dentro de la misma aplicación, que no están siendo administrados correctamente mediante un try – catch.</p>
<p>Ejemplo:</p>
<p>Librería (.dll) //En donde ocurrirá la excepción.</p>
<div style="display:inline;float:none;margin:0;padding:0;" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:59d89513-1a95-4fa6-a6b8-79e71f8dd487" class="wlWriterEditableSmartContent">
<div style="border:#000080 1px solid;color:#000;font-family:'Courier New', Courier, Monospace;font-size:10pt;">
<div style="background-color:#ffffff;max-height:300px;overflow:auto;padding:2px 5px;"><span style="color:#0000ff;">using</span> System;<br /> <span style="color:#0000ff;">namespace</span> Library<br /> {<br />     <span style="color:#0000ff;">public</span> <span style="color:#0000ff;">class</span> <span style="color:#2b91af;">Data</span><br />     { <br />         <span style="color:#0000ff;">public</span> <span style="color:#0000ff;">static</span> <span style="color:#0000ff;">void</span> Example()<br />         {<br />              <span style="color:#0000ff;">throw</span> <span style="color:#0000ff;">new</span> System.<span style="color:#2b91af;">Exception</span>(<span style="color:#a31515;">&quot;Error&quot;</span>);<br />         }<br />     }<br /> }</div>
</p></div>
</p></div>
<p>Página donde se consume la librería o webservice.</p>
<div style="display:inline;float:none;margin:0;padding:0;" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:dc87ec25-12af-4d42-9a7d-fbd7448c20be" class="wlWriterEditableSmartContent">
<div style="border:#000080 1px solid;color:#000;font-family:'Courier New', Courier, Monospace;font-size:10pt;">
<div style="background-color:#ffffff;max-height:300px;overflow:auto;padding:2px 5px;"><span style="color:#0000ff;">using</span> System;<br /> <span style="color:#0000ff;">using</span> System.Collections.Generic;<br /> <span style="color:#0000ff;">using</span> System.Linq;<br /> <span style="color:#0000ff;">using</span> System.Web;<br /> <span style="color:#0000ff;">using</span> System.Web.UI;<br /> <span style="color:#0000ff;">using</span> System.Web.UI.WebControls;<br /> <span style="color:#0000ff;">public</span> <span style="color:#0000ff;">partial</span> <span style="color:#0000ff;">class</span> <span style="color:#2b91af;">_Default</span> : System.Web.UI.Page<br /> {<br />     <span style="color:#0000ff;">protected</span> <span style="color:#0000ff;">void</span> btnGenerateException_Click(<span style="color:#0000ff;">object</span> sender, <span style="color:#2b91af;">EventArgs</span> e)<br />     {<br />         Library.Data.Example();<br />     }<br /> }</div>
</p></div>
</p></div>
<p>Al momento de llamar el método ocurre la excepción como se muestra en la figura:</p>
<p><a href="http://mredison.files.wordpress.com/2011/08/image7.png"><img style="display:inline;" title="image" alt="image" src="http://mredison.files.wordpress.com/2011/08/image_thumb7.png?w=554&#038;h=405" width="554" height="405" /></a></p>
<p>Al momento de haber una excepción en la aplicación, el event viewer registra lo siguiente:</p>
<p><a href="http://mredison.files.wordpress.com/2011/08/image8.png"><img style="display:inline;" title="image" alt="image" src="http://mredison.files.wordpress.com/2011/08/image_thumb8.png?w=578&#038;h=396" width="578" height="396" /></a></p>
<p><b><font>Recomendación 1:</font></b> A todas las llamadas a los métodos colocar un try catch, ya desea dentro del mismo método o al momento de llamarlo.</p>
<p><b><font>Recomendación 2:</font></b> Si dentro del aplicativo se utilizan variables u objetos que derivan de la interfaz IDisposable, es preferible utilizarlo dentro de un bloque using.</p>
<p><b><font>Referencias URL:</font></b></p>
<p>Utilizar using para objetos IDisposable.</p>
<p><a href="http://msdn.microsoft.com/en-us/library/yh598w02.aspx">http://msdn.microsoft.com/en-us/library/yh598w02.aspx</a></p>
<p>Implementing Finalize and Dispose to Clean Up Unmanaged Resources</p>
<p><a href="http://msdn.microsoft.com/en-us/library/b1yfkh5e(v=VS.80).aspx">http://msdn.microsoft.com/en-us/library/b1yfkh5e(v=VS.80).aspx</a></p>
<p>Referencia URL: <a title="http://ewebmx.com/2011/08/eliminando-los-unhandled-exceptions-asp-net-en-el-eventviewer/" href="http://ewebmx.com/2011/08/eliminando-los-unhandled-exceptions-asp-net-en-el-eventviewer/">http://ewebmx.com/2011/08/eliminando-los-unhandled-exceptions-asp-net-en-el-eventviewer/</a></p>
<p>Saludos!</p>
<br />Filed under: <a href='http://mredison.wordpress.com/category/aspnet/'>ASP.NET</a>, <a href='http://mredison.wordpress.com/category/troubleshooting/'>Troubleshooting</a> Tagged: <a href='http://mredison.wordpress.com/tag/aspnet-2/'>ASPNET</a>, <a href='http://mredison.wordpress.com/tag/troubleshooting/'>Troubleshooting</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mredison.wordpress.com/3212/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mredison.wordpress.com/3212/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mredison.wordpress.com/3212/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mredison.wordpress.com/3212/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mredison.wordpress.com/3212/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mredison.wordpress.com/3212/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mredison.wordpress.com/3212/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mredison.wordpress.com/3212/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mredison.wordpress.com/3212/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mredison.wordpress.com/3212/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mredison.wordpress.com/3212/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mredison.wordpress.com/3212/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mredison.wordpress.com/3212/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mredison.wordpress.com/3212/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mredison.wordpress.com&amp;blog=1322336&amp;post=3212&amp;subd=mredison&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mredison.wordpress.com/2011/08/12/eliminando-los-unhandled-exceptions-asp-net-en-el-eventviewer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/dba15c0598f013d1f1eb9faf2da1ef57?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">student</media:title>
		</media:content>

		<media:content url="http://mredison.files.wordpress.com/2011/08/image_thumb6.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://mredison.files.wordpress.com/2011/08/image_thumb7.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://mredison.files.wordpress.com/2011/08/image_thumb8.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>&#191;Que hacer si tu Application Pool en IIS 6.0 se recicla cada 8 o 9 mins?</title>
		<link>http://mredison.wordpress.com/2011/08/12/qu-hacer-si-tu-application-pool-en-iis-6-0-se-recicla-cada-8-o-9-mins/</link>
		<comments>http://mredison.wordpress.com/2011/08/12/qu-hacer-si-tu-application-pool-en-iis-6-0-se-recicla-cada-8-o-9-mins/#comments</comments>
		<pubDate>Fri, 12 Aug 2011 19:27:05 +0000</pubDate>
		<dc:creator>mredison</dc:creator>
				<category><![CDATA[IIS6]]></category>
		<category><![CDATA[Troubleshooting]]></category>
		<category><![CDATA[IIS]]></category>

		<guid isPermaLink="false">https://mredison.wordpress.com/2011/08/12/qu-hacer-si-tu-application-pool-en-iis-6-0-se-recicla-cada-8-o-9-mins/</guid>
		<description><![CDATA[Evento Detectado: Event Type: Information Event Source: W3SVC Event Category: None Event ID: 1074 Date: 5/31/2011 Time: 5:01:42 PM User: N/A Computer: ESMBAMAPASAPP03 Description: A worker process with process id of &#8217;36860&#8242; serving application pool &#8216;DefaultAppPool&#8217; has requested a recycle because the worker process reached its allowed processing time limit. Causa: El problema ocurre cuando [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mredison.wordpress.com&amp;blog=1322336&amp;post=3204&amp;subd=mredison&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><strong><font>Evento Detectado:</font></strong></p>
<blockquote><p>Event Type: Information</p>
<p>Event Source: W3SVC</p>
<p>Event Category: None</p>
<p>Event ID: 1074</p>
<p>Date: 5/31/2011</p>
<p>Time: 5:01:42 PM</p>
<p>User: N/A</p>
<p>Computer: ESMBAMAPASAPP03</p>
<p>Description:</p>
<p>A worker process with process id of &#8217;36860&#8242; serving application pool &#8216;DefaultAppPool&#8217; has requested a recycle because the worker process reached its allowed processing time limit.</p>
</blockquote>
<p><a href="http://mredison.files.wordpress.com/2011/08/image2.png"><img style="display:inline;" title="image" alt="image" src="http://mredison.files.wordpress.com/2011/08/image_thumb2.png?w=417&#038;h=250" width="417" height="250" /></a></p>
<p><strong><font>Causa:</font></strong></p>
<p>El problema ocurre cuando un worker process en un application pool no tiene los suficientes permisos para acceder y escribir en el siguiente registro:</p>
<p><i></i><i>HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\&lt;ASP.NETVersion&gt;\Names</i></p>
<p><strong><font>Solución:</font></strong></p>
<p><strong>A) Agregar la identidad al grupo IIS_WPG</strong></p>
<ol>
<li>Doble click en Computer – Manage </li>
<li>Ir al tab Local Users and Groups </li>
<li>Seleccionar Groups </li>
<li>Buscar y seleccionar <strong>IIS_WPG</strong> </li>
<li>Click derecho en IIS_WPG seleccionar Propiedades </li>
<li>Agregar el usuario ligado a la identidad del Application Pool&#160; (Por default es <strong>NETWORKSERVICE</strong>) al grupo. </li>
<li>Click en OK. </li>
</ol>
<p><a href="http://mredison.files.wordpress.com/2011/08/image3.png"><img style="display:inline;" title="image" alt="image" src="http://mredison.files.wordpress.com/2011/08/image_thumb3.png?w=701&#038;h=260" width="701" height="260" /></a></p>
<p>[Click en la imagen para visualizar mejor]</p>
<p><strong>B) Asegurarse de que el grupo IIS_WPG tenga los permisos necesarios para acceder al registro ASP.NET Names.</strong></p>
<ol>
<li>Click en Run – Regedit </li>
<li>Localizar el registro: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ASP.NET_2.0.50727\Names </li>
<li>Después de ubicarlo, dar click derecho – Permissions </li>
<li>Agregar el grupo IIS_WPG </li>
<li>Dar click en el botón de Advanced </li>
<li>En la otra ventana seleccionar IIS_WPG y dar click en Edit. </li>
</ol>
<p><a href="http://mredison.files.wordpress.com/2011/08/image4.png"><img style="display:inline;" title="image" alt="image" src="http://mredison.files.wordpress.com/2011/08/image_thumb4.png?w=699&#038;h=341" width="699" height="341" /></a></p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; 7.- En la ventana de Permission Entry for Names, asegurarse que en IIS_WPG estén seleccionados estos valores:</p>
<ul>
<li><strong>Query Value</strong> </li>
<li><strong>Set Value</strong> </li>
<li><strong>Create Subkey</strong> </li>
<li><strong>Enumerate Subkeys</strong> </li>
<li><strong>Notify</strong> </li>
<li><strong>Read Control</strong> </li>
</ul>
<p><a href="http://mredison.files.wordpress.com/2011/08/image5.png"><img style="display:inline;" title="image" alt="image" src="http://mredison.files.wordpress.com/2011/08/image_thumb5.png?w=266&#038;h=337" width="266" height="337" /></a></p>
<p>Referencia URL:<a title="http://ewebmx.com/2011/08/qu-hacer-si-tu-application-pool-en-iis-6-0-se-recicla-cada-8-o-9-mins/" href="http://ewebmx.com/2011/08/qu-hacer-si-tu-application-pool-en-iis-6-0-se-recicla-cada-8-o-9-mins/">http://ewebmx.com/2011/08/qu-hacer-si-tu-application-pool-en-iis-6-0-se-recicla-cada-8-o-9-mins/</a></p>
<p>Saludos!.</p>
<br />Filed under: <a href='http://mredison.wordpress.com/category/iis6/'>IIS6</a>, <a href='http://mredison.wordpress.com/category/troubleshooting/'>Troubleshooting</a> Tagged: <a href='http://mredison.wordpress.com/tag/iis/'>IIS</a>, <a href='http://mredison.wordpress.com/tag/troubleshooting/'>Troubleshooting</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mredison.wordpress.com/3204/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mredison.wordpress.com/3204/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mredison.wordpress.com/3204/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mredison.wordpress.com/3204/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mredison.wordpress.com/3204/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mredison.wordpress.com/3204/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mredison.wordpress.com/3204/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mredison.wordpress.com/3204/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mredison.wordpress.com/3204/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mredison.wordpress.com/3204/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mredison.wordpress.com/3204/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mredison.wordpress.com/3204/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mredison.wordpress.com/3204/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mredison.wordpress.com/3204/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mredison.wordpress.com&amp;blog=1322336&amp;post=3204&amp;subd=mredison&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mredison.wordpress.com/2011/08/12/qu-hacer-si-tu-application-pool-en-iis-6-0-se-recicla-cada-8-o-9-mins/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/dba15c0598f013d1f1eb9faf2da1ef57?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">student</media:title>
		</media:content>

		<media:content url="http://mredison.files.wordpress.com/2011/08/image_thumb2.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://mredison.files.wordpress.com/2011/08/image_thumb3.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://mredison.files.wordpress.com/2011/08/image_thumb4.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://mredison.files.wordpress.com/2011/08/image_thumb5.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>Comandos &#250;tiles para ingenieros de soporte (Run Command)</title>
		<link>http://mredison.wordpress.com/2011/08/12/comandos-tiles-para-ingenieros-de-soporte-run-command/</link>
		<comments>http://mredison.wordpress.com/2011/08/12/comandos-tiles-para-ingenieros-de-soporte-run-command/#comments</comments>
		<pubDate>Fri, 12 Aug 2011 08:10:09 +0000</pubDate>
		<dc:creator>mredison</dc:creator>
				<category><![CDATA[Commands]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">https://mredison.wordpress.com/2011/08/12/comandos-tiles-para-ingenieros-de-soporte-run-command/</guid>
		<description><![CDATA[UTILERIA COMANDO Hardware/ Device Manager hdwwiz.cpl&#160; ó devmgmt.msc Programs and Features appwiz.cpl Administrative Tools control admintools Certificates certmgr.msc Component Services dcomcnfg Computer Management compmgmt.msc Control Panel control Date and Time Properties timedate.cpl Driver Verifier Utility verifier Event Viewer eventvwr.msc Group Policy gpedit.msc Internet Properties inetcpl.cpl Internet Information Services inetmgr.exe Local Users and Groups lusrmgr.msc Malicious [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mredison.wordpress.com&amp;blog=1322336&amp;post=3195&amp;subd=mredison&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<table border="1" cellspacing="0" cellpadding="2" width="574">
<tbody>
<tr>
<td valign="top" width="371"><strong>UTILERIA</strong></td>
<td valign="top" width="201"><strong>COMANDO</strong></td>
</tr>
<tr>
<td valign="top" width="407">Hardware/ Device Manager</td>
<td valign="top" width="208">hdwwiz.cpl&#160; ó devmgmt.msc</td>
</tr>
<tr>
<td valign="top" width="415">Programs and Features</td>
<td valign="top" width="210">appwiz.cpl </td>
</tr>
<tr>
<td valign="top" width="416">Administrative Tools</td>
<td valign="top" width="212">control admintools </td>
</tr>
<tr>
<td valign="top" width="415">Certificates</td>
<td valign="top" width="213">certmgr.msc</td>
</tr>
<tr>
<td valign="top" width="414">Component Services</td>
<td valign="top" width="214">dcomcnfg</td>
</tr>
<tr>
<td valign="top" width="413">Computer Management</td>
<td valign="top" width="215">compmgmt.msc</td>
</tr>
<tr>
<td valign="top" width="413">Control Panel</td>
<td valign="top" width="215">control</td>
</tr>
<tr>
<td valign="top" width="413">Date and Time Properties</td>
<td valign="top" width="215">timedate.cpl</td>
</tr>
<tr>
<td valign="top" width="413">Driver Verifier Utility</td>
<td valign="top" width="215">verifier</td>
</tr>
<tr>
<td valign="top" width="413">Event Viewer</td>
<td valign="top" width="215">eventvwr.msc</td>
</tr>
<tr>
<td valign="top" width="413">Group Policy</td>
<td valign="top" width="215">gpedit.msc</td>
</tr>
<tr>
<td valign="top" width="413">Internet Properties</td>
<td valign="top" width="215">inetcpl.cpl</td>
</tr>
<tr>
<td valign="top" width="413">Internet Information Services</td>
<td valign="top" width="215">inetmgr.exe</td>
</tr>
<tr>
<td valign="top" width="413">Local Users and Groups</td>
<td valign="top" width="215">lusrmgr.msc</td>
</tr>
<tr>
<td valign="top" width="413">Malicious Software Removal Tool</td>
<td valign="top" width="215">mrt</td>
</tr>
<tr>
<td valign="top" width="413">Network Connections</td>
<td valign="top" width="215">control netconnections ó ncpa.cpl </td>
</tr>
<tr>
<td valign="top" width="413">Performance Monitor</td>
<td valign="top" width="215">perfmon</td>
</tr>
<tr>
<td valign="top" width="413">Regional Settings </td>
<td valign="top" width="215">intl.cpl</td>
</tr>
<tr>
<td valign="top" width="413">Registry Editor</td>
<td valign="top" width="215">regedit</td>
</tr>
<tr>
<td valign="top" width="413">Remote Desktop </td>
<td valign="top" width="215">mstsc</td>
</tr>
<tr>
<td valign="top" width="413">Scheduled Tasks</td>
<td valign="top" width="215">control schedtasks</td>
</tr>
<tr>
<td valign="top" width="413">Action Center</td>
<td valign="top" width="215">wscui.cpl</td>
</tr>
<tr>
<td valign="top" width="413">Services</td>
<td valign="top" width="215">services.msc</td>
</tr>
<tr>
<td valign="top" width="413">Shared Folders</td>
<td valign="top" width="215">fsmgmt.msc</td>
</tr>
<tr>
<td valign="top" width="413">SQL Client Configuration </td>
<td valign="top" width="215">cliconfg</td>
</tr>
<tr>
<td valign="top" width="413">System Configuration Utility</td>
<td valign="top" width="215">msconfig</td>
</tr>
<tr>
<td valign="top" width="413">System Information</td>
<td valign="top" width="215">msinfo32</td>
</tr>
<tr>
<td valign="top" width="413">System Properties</td>
<td valign="top" width="215">sysdm.cpl </td>
</tr>
<tr>
<td valign="top" width="413">Task Manager</td>
<td valign="top" width="215">taskmgr</td>
</tr>
<tr>
<td valign="top" width="413">Windows Firewall</td>
<td valign="top" width="215">firewall.cpl</td>
</tr>
<tr>
<td valign="top" width="413">&#160;</td>
<td valign="top" width="215">&#160;</td>
</tr>
</tbody>
</table>
<p><strong>Referencia Web</strong>: <a title="http://ewebmx.com/2011/08/comandos-tiles-para-ingenieros-de-soporte-run-command/" href="http://ewebmx.com/2011/08/comandos-tiles-para-ingenieros-de-soporte-run-command/">http://ewebmx.com/2011/08/comandos-tiles-para-ingenieros-de-soporte-run-command/</a></p>
<br />Filed under: <a href='http://mredison.wordpress.com/category/commands/'>Commands</a>, <a href='http://mredison.wordpress.com/category/windows/'>Windows</a> Tagged: <a href='http://mredison.wordpress.com/tag/commands/'>Commands</a>, <a href='http://mredison.wordpress.com/tag/windows/'>Windows</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mredison.wordpress.com/3195/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mredison.wordpress.com/3195/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mredison.wordpress.com/3195/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mredison.wordpress.com/3195/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mredison.wordpress.com/3195/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mredison.wordpress.com/3195/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mredison.wordpress.com/3195/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mredison.wordpress.com/3195/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mredison.wordpress.com/3195/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mredison.wordpress.com/3195/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mredison.wordpress.com/3195/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mredison.wordpress.com/3195/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mredison.wordpress.com/3195/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mredison.wordpress.com/3195/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mredison.wordpress.com&amp;blog=1322336&amp;post=3195&amp;subd=mredison&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mredison.wordpress.com/2011/08/12/comandos-tiles-para-ingenieros-de-soporte-run-command/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/dba15c0598f013d1f1eb9faf2da1ef57?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">student</media:title>
		</media:content>
	</item>
		<item>
		<title>Como leer un archivo de Excel 2010 en C#</title>
		<link>http://mredison.wordpress.com/2011/08/10/como-leer-un-archivo-de-excel-2010-en-c/</link>
		<comments>http://mredison.wordpress.com/2011/08/10/como-leer-un-archivo-de-excel-2010-en-c/#comments</comments>
		<pubDate>Wed, 10 Aug 2011 04:31:52 +0000</pubDate>
		<dc:creator>mredison</dc:creator>
				<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[CSharp]]></category>
		<category><![CDATA[Excel]]></category>

		<guid isPermaLink="false">https://mredison.wordpress.com/2011/08/10/como-leer-un-archivo-de-excel-2010-en-c/</guid>
		<description><![CDATA[Paso 1: Descargar el setup de Access Database Engine 2010 Redistributable http://www.microsoft.com/download/en/details.aspx?displaylang=en&#38;id=13255 Paso 2: Ocupar “Microsoft Excel Driver” con las clases de Odbc indicando la ruta del archivo. Importamos la libreria System.Data.Odbc y listo Código: string CadenaConexion = @&#34;driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};             driverid=1046;dbq=C:&#092;Users&#092;v-edisga&#092;Desktop&#092;Libro1.xlsx;&#34;;         DataSet ds = null;         try         {             using (OdbcConnection conn [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mredison.wordpress.com&amp;blog=1322336&amp;post=3183&amp;subd=mredison&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Paso 1: Descargar el setup de Access Database Engine 2010 Redistributable</p>
<p><a title="http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;id=13255" href="http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;id=13255">http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;id=13255</a></p>
<p>Paso 2: Ocupar “Microsoft Excel Driver” con las clases de Odbc indicando la ruta del archivo.</p>
<p>Importamos la libreria <strong>System.Data.Odbc</strong> y listo</p>
<p><strong>Código:</strong></p>
<div style="display:inline;float:none;margin:0;padding:0;" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:8b135e75-2f12-442b-9412-1d8bc3529c64" class="wlWriterEditableSmartContent">
<div style="border:#000080 1px solid;color:#000;font-family:'Courier New', Courier, Monospace;font-size:10pt;">
<div style="background-color:#ffffff;max-height:500px;overflow:auto;padding:2px 5px;"> <span style="color:#0000ff;">string</span> CadenaConexion = <span style="color:#a31515;">@&quot;driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};</span><br />             <span style="color:#a31515;">driverid=1046;dbq=C:&#092;Users&#092;v-edisga&#092;Desktop&#092;Libro1.xlsx;&quot;</span>;</p>
<p>         <span style="color:#2b91af;">DataSet</span> ds = <span style="color:#0000ff;">null</span>;<br />         <span style="color:#0000ff;">try</span><br />         {<br />             <span style="color:#0000ff;">using</span> (<span style="color:#2b91af;">OdbcConnection</span> conn = <span style="color:#0000ff;">new</span> <span style="color:#2b91af;">OdbcConnection</span>(CadenaConexion))<br />             {<br />                 conn.Open();<br />                 <span style="color:#0000ff;">using</span> (<span style="color:#2b91af;">OdbcCommand</span> command = conn.CreateCommand())<br />                 {<br />                     command.CommandText = <span style="color:#a31515;">&quot;SELECT * FROM [Hoja1$]&quot;</span>;<br />                     <span style="color:#2b91af;">OdbcDataAdapter</span> ad = <span style="color:#0000ff;">new</span> <span style="color:#2b91af;">OdbcDataAdapter</span>(command);<br />                     ds = <span style="color:#0000ff;">new</span> <span style="color:#2b91af;">DataSet</span>();<br />                     ad.Fill(ds);<br />                     GridView1.DataSource = ds.Tables[0];<br />                     GridView1.DataBind();<br />                 }<br />             }<br />         }<br />         <span style="color:#0000ff;">catch</span> (<span style="color:#2b91af;">Exception</span> ex)<br />         {<br />             Response.Write(ex.Message.ToString());<br />         }</div>
</p></div>
</p></div>
<p>Referencia: <a title="http://ewebmx.com/2011/08/como-leer-un-archivo-de-excel-2010-en-c/" href="http://ewebmx.com/2011/08/como-leer-un-archivo-de-excel-2010-en-c/">http://ewebmx.com/2011/08/como-leer-un-archivo-de-excel-2010-en-c/</a></p>
<p>Saludos.</p>
<br />Filed under: <a href='http://mredison.wordpress.com/category/microsoft/'>Microsoft</a> Tagged: <a href='http://mredison.wordpress.com/tag/csharp/'>CSharp</a>, <a href='http://mredison.wordpress.com/tag/excel-2/'>Excel</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mredison.wordpress.com/3183/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mredison.wordpress.com/3183/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mredison.wordpress.com/3183/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mredison.wordpress.com/3183/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mredison.wordpress.com/3183/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mredison.wordpress.com/3183/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mredison.wordpress.com/3183/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mredison.wordpress.com/3183/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mredison.wordpress.com/3183/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mredison.wordpress.com/3183/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mredison.wordpress.com/3183/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mredison.wordpress.com/3183/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mredison.wordpress.com/3183/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mredison.wordpress.com/3183/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mredison.wordpress.com&amp;blog=1322336&amp;post=3183&amp;subd=mredison&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mredison.wordpress.com/2011/08/10/como-leer-un-archivo-de-excel-2010-en-c/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/dba15c0598f013d1f1eb9faf2da1ef57?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">student</media:title>
		</media:content>
	</item>
		<item>
		<title>&#191;Cu&#225;ntas computadoras con Windows XP existen en el Active Directory?</title>
		<link>http://mredison.wordpress.com/2011/08/05/cuntas-computadoras-con-xp-existen-en-el-active-directory/</link>
		<comments>http://mredison.wordpress.com/2011/08/05/cuntas-computadoras-con-xp-existen-en-el-active-directory/#comments</comments>
		<pubDate>Fri, 05 Aug 2011 06:47:54 +0000</pubDate>
		<dc:creator>mredison</dc:creator>
				<category><![CDATA[Active Directory]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[ActiveDirectory]]></category>

		<guid isPermaLink="false">https://mredison.wordpress.com/?p=3173</guid>
		<description><![CDATA[Ah pues es muy fácil saberlo, todo con una simple consulta utilizando LDAP. ¿Pero como hacerlo desde C# y guardar el resultado en un archivo .xml para mejor visualización? Realizo el siguiente formulario para poder conectarme al Active Directory desde un cliente y poder generar el archivo esperado. Formulario: Código: /// &#60;summary&#62; /// /// &#60;/summary&#62; [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mredison.wordpress.com&amp;blog=1322336&amp;post=3173&amp;subd=mredison&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Ah pues es muy fácil saberlo, todo con una simple consulta utilizando LDAP.</p>
<p><a href="http://mredison.files.wordpress.com/2011/08/image.png"><img style="display:inline;" title="image" alt="image" src="http://mredison.files.wordpress.com/2011/08/image_thumb.png?w=591&#038;h=376" width="591" height="376" /></a></p>
<p>¿Pero como hacerlo desde C# y guardar el resultado en un archivo .xml para mejor visualización?</p>
<p>Realizo el siguiente formulario para poder conectarme al Active Directory desde un cliente y poder generar el archivo esperado.</p>
<p><strong>Formulario:</strong></p>
<p><a href="http://mredison.files.wordpress.com/2011/08/image1.png"><img style="display:inline;" title="image" alt="image" src="http://mredison.files.wordpress.com/2011/08/image_thumb1.png?w=240&#038;h=176" width="240" height="176" /></a></p>
<p><strong>Código:</strong></p>
<p>
<div style="display:inline;float:none;margin:0;padding:0;" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:42c60872-16a2-487c-a648-8e79f20bb23d" class="wlWriterEditableSmartContent">
<div style="border:#000080 1px solid;color:#000;font-family:'Courier New', Courier, Monospace;font-size:10pt;">
<div style="background-color:#ffffff;max-height:500px;overflow:auto;padding:2px 5px;"><span style="color:#808080;">///</span><span style="color:#008000;"> </span><span style="color:#808080;">&lt;summary&gt;</span><br /> <span style="color:#808080;">///</span><span style="color:#008000;"> </span><br /> <span style="color:#808080;">///</span><span style="color:#008000;"> </span><span style="color:#808080;">&lt;/summary&gt;</span><br /> <span style="color:#808080;">///</span><span style="color:#008000;"> </span><span style="color:#808080;">&lt;param name=&quot;sender&quot;&gt;&lt;/param&gt;</span><br /> <span style="color:#808080;">///</span><span style="color:#008000;"> </span><span style="color:#808080;">&lt;param name=&quot;e&quot;&gt;&lt;/param&gt;</span><br /> <span style="color:#0000ff;">private</span> <span style="color:#0000ff;">void</span> btnGetComputers_Click(<span style="color:#0000ff;">object</span> sender, <span style="color:#2b91af;">EventArgs</span> e)<br /> {<br />     <span style="color:#008000;">//Variable para guardar el Usuario</span><br />     <span style="color:#0000ff;">string</span> strUserName = txtUserName.Text;<br />     <span style="color:#008000;">//Variable para guardar el Password</span><br />     <span style="color:#0000ff;">string</span> strPassword = txtPassword.Text;<br />     <span style="color:#008000;">//Variable que dara formato al Dominio</span><br />     <span style="color:#008000;">//Ejemplo: DC=Domain,DC=com </span><br />     <span style="color:#0000ff;">string</span> strDomainName = GetDomain(txtDomainName.Text);<br />     <span style="color:#008000;">//Variable para guardar la IP del Servidor</span><br />     <span style="color:#0000ff;">string</span> strServerIP = txtServerIP.Text;<br />     <span style="color:#008000;">//Variable para guardar el archivo .xml</span><br />     <span style="color:#0000ff;">string</span> strDirectory = txtDirectory.Text;</p>
<p>     <span style="color:#0000ff;">try</span><br />     {<br />         <span style="color:#008000;">//Se utilizar&#225; un escritor para generar el .xml</span><br />         <span style="color:#0000ff;">using</span> (<span style="color:#2b91af;">XmlWriter</span> writer = <span style="color:#2b91af;">XmlWriter</span>.Create(strDirectory + <span style="color:#a31515;">@&quot;&#092;ComputersSO.xml&quot;</span>))<br />         {<br />             <span style="color:#008000;">//Escribe un comentario</span><br />             writer.WriteComment(<span style="color:#a31515;">&quot;Listas de Computadoras con atributo de Sistemas Operativo&quot;</span>);<br />             <span style="color:#008000;">//Abre un nuevo tag llamado Computers</span><br />             writer.WriteStartElement(<span style="color:#a31515;">&quot;Computers&quot;</span>);<br />             <span style="color:#008000;">//Almacenada el directorio general del AD.</span><br />             <span style="color:#0000ff;">string</span> directoryPath = <span style="color:#2b91af;">String</span>.Empty;<br />             directoryPath = <span style="color:#2b91af;">String</span>.Format(<span style="color:#a31515;">&quot;LDAP://{0}/{1}&quot;</span>, strServerIP, strDomainName);</p>
<p>             <span style="color:#0000ff;">try</span><br />             {<br />                 <span style="color:#008000;">//Se conecta al AD en el directorio gral de forma jerarquica.</span><br />                 <span style="color:#0000ff;">using</span> (<span style="color:#2b91af;">DirectoryEntry</span> principalDirectory = <span style="color:#0000ff;">new</span> <span style="color:#2b91af;">DirectoryEntry</span>(directoryPath,strUserName,strPassword))<br />                 {<br />                     <span style="color:#008000;">//Agrega el tag WindowsXP</span><br />                     writer.WriteStartElement(<span style="color:#a31515;">&quot;WindowsXP&quot;</span>);<br />                     <span style="color:#008000;">//Se utiliza un buscador de directorios.</span><br />                     <span style="color:#0000ff;">using</span> (<span style="color:#2b91af;">DirectorySearcher</span> principalSearcher = <span style="color:#0000ff;">new</span> <span style="color:#2b91af;">DirectorySearcher</span>(principalDirectory))<br />                     {<br />                         <span style="color:#008000;">//Se coloca el query LDAP.</span><br />                         principalSearcher.Filter = <span style="color:#a31515;">&quot;(&amp;(objectCategory=computer)(operatingSystem=Windows XP Professional))&quot;</span>;<br />                         <span style="color:#008000;">//No hay l&#237;mites para el resultado.</span><br />                         principalSearcher.SizeLimit = 0;<br />                         <span style="color:#008000;">//Se colocaran en paquetes de 1000</span><br />                         <span style="color:#008000;">//Ya que el AD solo permite 1000 resultados de una consulta.</span><br />                         principalSearcher.PageSize = 1000;</p>
<p>                         <span style="color:#008000;">//Se cargaran las siguientes propiedades del objeto computer</span><br />                         principalSearcher.PropertiesToLoad.Add(<span style="color:#a31515;">&quot;name&quot;</span>);<br />                         principalSearcher.PropertiesToLoad.Add(<span style="color:#a31515;">&quot;distinguishedName&quot;</span>);<br />                         principalSearcher.PropertiesToLoad.Add(<span style="color:#a31515;">&quot;operatingSystem&quot;</span>);<br />                        <br />                         <span style="color:#008000;">//Contador de registros encontrados.</span><br />                         <span style="color:#0000ff;">int</span> counterWindowsXP = principalSearcher.FindAll().Count;<br />                         <span style="color:#0000ff;">int</span> counterWXP = 1;</p>
<p>                         <span style="color:#2b91af;">MessageBox</span>.Show(<span style="color:#a31515;">&quot;N&#250;mero de computadoras con Windows XP :&quot;</span> + counterWindowsXP.ToString());</p>
<p>                         <span style="color:#008000;">//Ciclo para buscar dentro de los registros.</span><br />                         <span style="color:#0000ff;">foreach</span> (<span style="color:#2b91af;">SearchResult</span> result <span style="color:#0000ff;">in</span> principalSearcher.FindAll())<br />                         {<br />                             <span style="color:#0000ff;">if</span> (counterWindowsXP &gt; 0)<br />                             {<br />                                 <span style="color:#0000ff;">try</span><br />                                 {<br />                                     <span style="color:#008000;">//Si la computadora contiene la propiedad operatingSystem</span><br />                                     <span style="color:#0000ff;">if</span> (result.Properties.Contains(<span style="color:#a31515;">&quot;operatingSystem&quot;</span>))<br />                                     {<br />                                         <span style="color:#008000;">//Agrega el tag Computer</span><br />                                         writer.WriteStartElement(<span style="color:#a31515;">&quot;Computer&quot;</span>);<br />                                         <span style="color:#008000;">//Escribe el nombre.</span><br />                                         writer.WriteElementString(<span style="color:#a31515;">&quot;Name&quot;</span>, result.Properties[<span style="color:#a31515;">&quot;name&quot;</span>][0].ToString());<br />                                         <span style="color:#008000;">//Escribe la ruta del objeto</span><br />                                         writer.WriteElementString(<span style="color:#a31515;">&quot;Path&quot;</span>,result.Properties[<span style="color:#a31515;">&quot;distinguishedName&quot;</span>][0].ToString()); <br />                                         <span style="color:#008000;">//Escribe el Sistema Operativo</span><br />                                         writer.WriteElementString(<span style="color:#a31515;">&quot;OperatingSystem&quot;</span>, result.Properties[<span style="color:#a31515;">&quot;operatingSystem&quot;</span>][0].ToString());<br />                                         <span style="color:#008000;">//Escribe el n&#250;mero consecutivo</span><br />                                         writer.WriteElementString(<span style="color:#a31515;">&quot;Number&quot;</span>, counterWXP.ToString());<br />                                         writer.WriteEndElement();<br />                                         counterWXP++;<br />                                     }<br />                                 }<br />                                 <span style="color:#0000ff;">catch</span> (<span style="color:#2b91af;">Exception</span> ex)<br />                                 { <br />                                 }<br />                             }<br />                             <span style="color:#0000ff;">else</span><br />                             {<br />                                 <span style="color:#2b91af;">MessageBox</span>.Show(<span style="color:#a31515;">&quot;No existen computadoras con Windows XP&quot;</span>);<br />                             }<br />                         }<br />                     }<br />                     writer.WriteEndElement(); <br />                 }<br />             }<br />             <span style="color:#0000ff;">catch</span> (<span style="color:#2b91af;">Exception</span> ex)<br />             {<br />                 <span style="color:#2b91af;">MessageBox</span>.Show(<span style="color:#a31515;">&quot;Error: &quot;</span> + ex.Message.ToString());<br />             }<br />             writer.WriteEndElement(); <br />             writer.Flush();<br />             <span style="color:#2b91af;">MessageBox</span>.Show(<span style="color:#a31515;">&quot;Documento Creado&quot;</span>);<br />         }<br />     }<br />     <span style="color:#0000ff;">catch</span> (<span style="color:#2b91af;">Exception</span> ex)<br />     {<br />         <span style="color:#2b91af;">MessageBox</span>.Show(<span style="color:#a31515;">&quot;Error: &quot;</span> + ex.Message.ToString());<br />     }<br /> }</div>
</p></div>
</p></div>
<p>   <strong></strong></p>
<p><strong>Métodos Auxiliares:</strong></p>
<p>
<div style="display:inline;float:none;margin:0;padding:0;" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:0d10a4ca-e1a3-470b-8156-a00d3096674c" class="wlWriterEditableSmartContent">
<div style="border:#000080 1px solid;color:#000;font-family:'Courier New', Courier, Monospace;font-size:10pt;">
<div style="background-color:#ffffff;max-height:500px;overflow:auto;padding:2px 5px;"><span style="color:#808080;">///</span><span style="color:#008000;"> </span><span style="color:#808080;">&lt;summary&gt;</span><br /> <span style="color:#808080;">///</span><span style="color:#008000;"> </span><br /> <span style="color:#808080;">///</span><span style="color:#008000;"> </span><span style="color:#808080;">&lt;/summary&gt;</span><br /> <span style="color:#808080;">///</span><span style="color:#008000;"> </span><span style="color:#808080;">&lt;param name=&quot;DomainName&quot;&gt;&lt;/param&gt;</span><br /> <span style="color:#808080;">///</span><span style="color:#008000;"> </span><span style="color:#808080;">&lt;returns&gt;&lt;/returns&gt;</span><br /> <span style="color:#0000ff;">private</span> <span style="color:#0000ff;">static</span> <span style="color:#0000ff;">string</span> GetDomain(<span style="color:#0000ff;">string</span> DomainName)<br /> {<br />     <span style="color:#0000ff;">string</span>[] domainParts = <span style="color:#0000ff;">null</span>;<br />     <span style="color:#0000ff;">string</span> DomainNameSB = <span style="color:#2b91af;">String</span>.Empty;<br />     domainParts = DomainName.Split(<span style="color:#a31515;">&#039;.&#039;</span>);<br />     <span style="color:#2b91af;">StringBuilder</span> strBuilderDC = <span style="color:#0000ff;">new</span> <span style="color:#2b91af;">StringBuilder</span>();<br />     <span style="color:#0000ff;">foreach</span> (<span style="color:#0000ff;">string</span> dc <span style="color:#0000ff;">in</span> domainParts)<br />     {<br />         strBuilderDC.Append(<span style="color:#a31515;">&quot;DC=&quot;</span> + dc + <span style="color:#a31515;">&quot;,&quot;</span>);<br />     }<br />     DomainNameSB = strBuilderDC.Remove(strBuilderDC.Length &#8211; 1, 1).ToString();<br />     <span style="color:#0000ff;">return</span> DomainNameSB;<br /> }</div>
</p></div>
</p></div>
</p>
<p><strong>Resultado:</strong></p>
<div style="display:inline;float:none;margin:0;padding:0;" id="scid:9ce6104f-a9aa-4a17-a79f-3a39532ebf7c:bf3b0198-9a1b-4427-a296-5db78977959e" class="wlWriterEditableSmartContent">
<div style="border:#000080 1px solid;color:#000;font-family:'Courier New', Courier, Monospace;font-size:10pt;">
<div style="background-color:#ffffff;max-height:500px;overflow:auto;padding:2px 5px;"><span style="color:#0000ff;">&lt;?</span><span style="color:#a31515;">xml</span><span style="color:#0000ff;"> </span><span style="color:#ff0000;">version</span><span style="color:#0000ff;">=</span>&quot;<span style="color:#0000ff;">1.0</span>&quot;<span style="color:#0000ff;"> </span><span style="color:#ff0000;">encoding</span><span style="color:#0000ff;">=</span>&quot;<span style="color:#0000ff;">utf-8</span>&quot;<span style="color:#0000ff;">?&gt;</span><br /> <span style="color:#0000ff;">&lt;!&#8211;</span><span style="color:#008000;">Listas de Computadoras con atributo de Sistemas Operativo</span><span style="color:#0000ff;">&#8211;&gt;</span><br /> <span style="color:#0000ff;">&lt;</span><span style="color:#a31515;">Computers</span><span style="color:#0000ff;">&gt;</span><br />     <span style="color:#0000ff;">&lt;</span><span style="color:#a31515;">WindowsXP</span><span style="color:#0000ff;">&gt;</span><br />         <span style="color:#0000ff;">&lt;</span><span style="color:#a31515;">Computer</span><span style="color:#0000ff;">&gt;</span><br />             <span style="color:#0000ff;">&lt;</span><span style="color:#a31515;">Name</span><span style="color:#0000ff;">&gt;</span>Demo1<span style="color:#0000ff;">&lt;/</span><span style="color:#a31515;">Name</span><span style="color:#0000ff;">&gt;</span><br />             <span style="color:#0000ff;">&lt;</span><span style="color:#a31515;">Path</span><span style="color:#0000ff;">&gt;</span>CN=Demo1,DC=banamex,DC=com<span style="color:#0000ff;">&lt;/</span><span style="color:#a31515;">Path</span><span style="color:#0000ff;">&gt;</span><br />             <span style="color:#0000ff;">&lt;</span><span style="color:#a31515;">OperatingSystem</span><span style="color:#0000ff;">&gt;</span>Windows XP Professional<span style="color:#0000ff;">&lt;/</span><span style="color:#a31515;">OperatingSystem</span><span style="color:#0000ff;">&gt;</span><br />             <span style="color:#0000ff;">&lt;</span><span style="color:#a31515;">Number</span><span style="color:#0000ff;">&gt;</span>1<span style="color:#0000ff;">&lt;/</span><span style="color:#a31515;">Number</span><span style="color:#0000ff;">&gt;</span><br />         <span style="color:#0000ff;">&lt;/</span><span style="color:#a31515;">Computer</span><span style="color:#0000ff;">&gt;</span><br />         <span style="color:#0000ff;">&lt;</span><span style="color:#a31515;">Computer</span><span style="color:#0000ff;">&gt;</span><br />             <span style="color:#0000ff;">&lt;</span><span style="color:#a31515;">Name</span><span style="color:#0000ff;">&gt;</span>Computer1<span style="color:#0000ff;">&lt;/</span><span style="color:#a31515;">Name</span><span style="color:#0000ff;">&gt;</span><br />             <span style="color:#0000ff;">&lt;</span><span style="color:#a31515;">Path</span><span style="color:#0000ff;">&gt;</span>CN=Computer1,DC=banamex,DC=com<span style="color:#0000ff;">&lt;/</span><span style="color:#a31515;">Path</span><span style="color:#0000ff;">&gt;</span><br />             <span style="color:#0000ff;">&lt;</span><span style="color:#a31515;">OperatingSystem</span><span style="color:#0000ff;">&gt;</span>Windows XP Professional<span style="color:#0000ff;">&lt;/</span><span style="color:#a31515;">OperatingSystem</span><span style="color:#0000ff;">&gt;</span><br />             <span style="color:#0000ff;">&lt;</span><span style="color:#a31515;">Number</span><span style="color:#0000ff;">&gt;</span>2<span style="color:#0000ff;">&lt;/</span><span style="color:#a31515;">Number</span><span style="color:#0000ff;">&gt;</span><br />         <span style="color:#0000ff;">&lt;/</span><span style="color:#a31515;">Computer</span><span style="color:#0000ff;">&gt;</span><br />     <span style="color:#0000ff;">&lt;/</span><span style="color:#a31515;">WindowsXP</span><span style="color:#0000ff;">&gt;</span><br /> <span style="color:#0000ff;">&lt;/</span><span style="color:#a31515;">Computers</span><span style="color:#0000ff;">&gt;</span></div>
</p></div>
</p></div>
<p><strong>Edison García </strong></p>
<p>Referencia Web: <a title="http://ewebmx.com/2011/08/cuntas-computadoras-con-xp-existen-en-el-active-directory/" href="http://ewebmx.com/2011/08/cuntas-computadoras-con-xp-existen-en-el-active-directory/">http://ewebmx.com/2011/08/cuntas-computadoras-con-xp-existen-en-el-active-directory/</a></p>
<br />Filed under: <a href='http://mredison.wordpress.com/category/active-directory/'>Active Directory</a>, <a href='http://mredison.wordpress.com/category/c/'>C#</a>, <a href='http://mredison.wordpress.com/category/microsoft/'>Microsoft</a> Tagged: <a href='http://mredison.wordpress.com/tag/activedirectory/'>ActiveDirectory</a>, <a href='http://mredison.wordpress.com/tag/c/'>C#</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mredison.wordpress.com/3173/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mredison.wordpress.com/3173/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mredison.wordpress.com/3173/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mredison.wordpress.com/3173/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mredison.wordpress.com/3173/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mredison.wordpress.com/3173/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mredison.wordpress.com/3173/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mredison.wordpress.com/3173/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mredison.wordpress.com/3173/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mredison.wordpress.com/3173/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mredison.wordpress.com/3173/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mredison.wordpress.com/3173/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mredison.wordpress.com/3173/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mredison.wordpress.com/3173/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mredison.wordpress.com&amp;blog=1322336&amp;post=3173&amp;subd=mredison&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mredison.wordpress.com/2011/08/05/cuntas-computadoras-con-xp-existen-en-el-active-directory/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/dba15c0598f013d1f1eb9faf2da1ef57?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">student</media:title>
		</media:content>

		<media:content url="http://mredison.files.wordpress.com/2011/08/image_thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://mredison.files.wordpress.com/2011/08/image_thumb1.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>Programming Windows Phone 7 Free Ebook</title>
		<link>http://mredison.wordpress.com/2010/08/06/programming-windows-phone-7-free-ebook/</link>
		<comments>http://mredison.wordpress.com/2010/08/06/programming-windows-phone-7-free-ebook/#comments</comments>
		<pubDate>Fri, 06 Aug 2010 08:11:00 +0000</pubDate>
		<dc:creator>mredison</dc:creator>
				<category><![CDATA[Visual Studio 2010]]></category>
		<category><![CDATA[Windows Phone 7]]></category>
		<category><![CDATA[Visual Studio]]></category>

		<guid isPermaLink="false">https://mredison.wordpress.com/2010/08/06/programming-windows-phone-7-free-ebook/</guid>
		<description><![CDATA[&#160; Microsoft Press ha publicado su segunda edición del libro “Programming Windows Phone 7”&#160; de manera gratuita. La publicación final será en Octubre dentro del PDC en Redmond. Este es un buen comienzo para programar sobre Visual Studio 2010 y Windows Phone 7. Dentro de esta edición podemos encontrar los siguientes temas: &#160; Part I&#160;&#160; [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mredison.wordpress.com&amp;blog=1322336&amp;post=3075&amp;subd=mredison&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>&#160;<a href="http://download.microsoft.com/download/0/D/9/0D919C81-6E31-436C-8FB0-A75BBEBB6AEA/ProgrammingWindowsPhone7(SpecialExcerpt2).pdf"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;margin:0 20px;" title="WindowsPhone7Book" border="0" alt="WindowsPhone7Book" align="left" src="http://mredison.files.wordpress.com/2010/08/windowsphone7book.png?w=154&#038;h=188" width="154" height="188" /></a></p>
<p> Microsoft Press ha publicado su segunda edición del libro “Programming Windows Phone 7”&#160; de manera gratuita.</p>
<p> La publicación final será en Octubre dentro del PDC en Redmond.</p>
<p>Este es un buen comienzo para programar sobre Visual Studio 2010 y Windows Phone 7.</p>
<p>Dentro de esta edición podemos encontrar los siguientes temas:</p>
<p>&#160;</p>
<p><strong>Part I&#160;&#160; The Basics</strong></p>
<ul>
<li>Chapter 1&#160;&#160; Hello, Windows Phone 7</li>
<li>Chapter 2&#160;&#160; Getting Oriented</li>
<li>Chapter 3&#160;&#160; An Introduction to Touch</li>
<li>Chapter 4&#160;&#160; Bitmaps, Also Known as Textures</li>
<li>Chapter 5&#160;&#160; Sensors and Services</li>
<li>Chapter 6&#160;&#160; Issues in Application Architecture</li>
</ul>
<p><strong>Part II&#160;&#160; Silverlight</strong></p>
<ul>
<li>Chapter 7&#160;&#160; XAML Power and Limitations</li>
<li>Chapter 8&#160;&#160; Elements and Properties</li>
</ul>
<p><strong>Part III&#160;&#160; XNA</strong></p>
<ul>
<li>Chapter 20&#160;&#160; Principles of Movement</li>
<li>Chapter 21&#160;&#160; Textures and Sprites</li>
<li>Chapter 22&#160;&#160; Touch and Play</li>
</ul>
<ul>Descarga el libro gratuito:</ul>
<ul><a href="http://download.microsoft.com/download/0/D/9/0D919C81-6E31-436C-8FB0-A75BBEBB6AEA/ProgrammingWindowsPhone7(SpecialExcerpt2).pdf"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="pdfIcon" border="0" alt="pdfIcon" src="http://mredison.files.wordpress.com/2010/08/pdficon2.jpg?w=85&#038;h=85" width="85" height="85" /></a> </ul>
<blockquote><ul>
<p><a href="http://download.microsoft.com/download/0/D/9/0D919C81-6E31-436C-8FB0-A75BBEBB6AEA/ProgrammingWindowsPhone7(SpecialExcerpt2).pdf">Descargar para PDF</a></p>
<p><a href="http://download.microsoft.com/download/0/D/9/0D919C81-6E31-436C-8FB0-A75BBEBB6AEA/ProgrammingWindowsPhone7(SpecialExcerpt2).xps">Descargar para XPS</a></p>
<p>     <a href="http://download.microsoft.com/download/0/D/9/0D919C81-6E31-436C-8FB0-A75BBEBB6AEA/ProgrammingWindowsPhone7Code(SpecialExcerpt2).zip">Decargar el código de ejemplo.</a></ul>
</blockquote>
<p><strong>Edison Daniel García Chiñas | Tecnologías Microsoft</strong></p>
<p><a href="http://facebook.com/mredison"><img title="facebookIcon" alt="facebookIcon" src="http://mredison.files.wordpress.com/2010/07/facebookicon.png?w=38&#038;h=38&#038;h=38" width="38" height="38" /></a><a href="http://twitter.com/msedison"><img title="twitterIcon" alt="twitterIcon" src="http://mredison.files.wordpress.com/2010/07/twittericon.png?w=38&#038;h=38&#038;h=38" width="38" height="38" /></a><a href="http://mredison.wordpress.com/feed"><img title="rssIcon" alt="rssIcon" src="http://mredison.files.wordpress.com/2010/07/rssicon.png?w=38&#038;h=38&#038;h=38" width="38" height="38" /></a><a href="http://mredison.wordpress.com/"><img title="tecnologiasMicrosoft[4]" alt="tecnologiasMicrosoft[4]" src="http://mredison.files.wordpress.com/2010/07/tecnologiasmicrosoft4.png?w=240&#038;h=48&#038;h=48" width="240" height="48" /></a></p>
<br />Filed under: <a href='http://mredison.wordpress.com/category/visual-studio-2010/'>Visual Studio 2010</a>, <a href='http://mredison.wordpress.com/category/windows-phone-7/'>Windows Phone 7</a> Tagged: <a href='http://mredison.wordpress.com/tag/visual-studio/'>Visual Studio</a>, <a href='http://mredison.wordpress.com/tag/windows-phone-7/'>Windows Phone 7</a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mredison.wordpress.com/3075/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mredison.wordpress.com/3075/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mredison.wordpress.com/3075/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mredison.wordpress.com/3075/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mredison.wordpress.com/3075/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mredison.wordpress.com/3075/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mredison.wordpress.com/3075/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mredison.wordpress.com/3075/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mredison.wordpress.com/3075/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mredison.wordpress.com/3075/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mredison.wordpress.com/3075/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mredison.wordpress.com/3075/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mredison.wordpress.com/3075/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mredison.wordpress.com/3075/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mredison.wordpress.com&amp;blog=1322336&amp;post=3075&amp;subd=mredison&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mredison.wordpress.com/2010/08/06/programming-windows-phone-7-free-ebook/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/dba15c0598f013d1f1eb9faf2da1ef57?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">student</media:title>
		</media:content>

		<media:content url="http://mredison.files.wordpress.com/2010/08/windowsphone7book.png" medium="image">
			<media:title type="html">WindowsPhone7Book</media:title>
		</media:content>

		<media:content url="http://mredison.files.wordpress.com/2010/08/pdficon2.jpg" medium="image">
			<media:title type="html">pdfIcon</media:title>
		</media:content>

		<media:content url="http://mredison.files.wordpress.com/2010/07/facebookicon.png?w=38&#038;h=38&#038;h=38" medium="image">
			<media:title type="html">facebookIcon</media:title>
		</media:content>

		<media:content url="http://mredison.files.wordpress.com/2010/07/twittericon.png?w=38&#038;h=38&#038;h=38" medium="image">
			<media:title type="html">twitterIcon</media:title>
		</media:content>

		<media:content url="http://mredison.files.wordpress.com/2010/07/rssicon.png?w=38&#038;h=38&#038;h=38" medium="image">
			<media:title type="html">rssIcon</media:title>
		</media:content>

		<media:content url="http://mredison.files.wordpress.com/2010/07/tecnologiasmicrosoft4.png?w=240&#038;h=48&#038;h=48" medium="image">
			<media:title type="html">tecnologiasMicrosoft[4]</media:title>
		</media:content>
	</item>
		<item>
		<title>Utilizando LINQ Mapping con WCF en Visual Studio 2010 (ASP.NET C#) Parte 2</title>
		<link>http://mredison.wordpress.com/2010/08/05/utilizando-linq-mapping-con-wcf-en-visual-studio-2010-asp-net-c-parte-2/</link>
		<comments>http://mredison.wordpress.com/2010/08/05/utilizando-linq-mapping-con-wcf-en-visual-studio-2010-asp-net-c-parte-2/#comments</comments>
		<pubDate>Thu, 05 Aug 2010 01:01:55 +0000</pubDate>
		<dc:creator>mredison</dc:creator>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[LINQ]]></category>
		<category><![CDATA[Visual Studio 2010]]></category>
		<category><![CDATA[WCF]]></category>

		<guid isPermaLink="false">https://mredison.wordpress.com/2010/08/05/utilizando-linq-mapping-con-wcf-en-visual-studio-2010-asp-net-c-parte-2/</guid>
		<description><![CDATA[Descarga el Artículo Técnico Gratuito. Comparte este artículo con un amigo. Comentarios y sugerencias debajo de este post. Edison Daniel García Chiñas &#124; Tecnologías Microsoft Filed under: ASP.NET, C#, LINQ, Visual Studio 2010, WCF<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mredison.wordpress.com&amp;blog=1322336&amp;post=3066&amp;subd=mredison&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Descarga el Artículo Técnico Gratuito.</p>
<p><a href="http://mredison.files.wordpress.com/2010/08/utilizando-linq-con-wcf-2.pdf"><img title="pdfIcon" border="0" alt="pdfIcon" src="http://mredison.files.wordpress.com/2010/08/pdficon.jpg?w=96&#038;h=96&#038;h=96" width="96" height="96" /></a></p>
<blockquote><p><a href="http://mredison.files.wordpress.com/2010/08/utilizando-linq-con-wcf-2.pdf">Comparte este artículo con un amigo.</a></p>
</blockquote>
<p>Comentarios y sugerencias debajo de este post.</p>
<p><strong>Edison Daniel García Chiñas | Tecnologías Microsoft</strong></p>
<br />Filed under: <a href='http://mredison.wordpress.com/category/aspnet/'>ASP.NET</a>, <a href='http://mredison.wordpress.com/category/c/'>C#</a>, <a href='http://mredison.wordpress.com/category/linq/'>LINQ</a>, <a href='http://mredison.wordpress.com/category/visual-studio-2010/'>Visual Studio 2010</a>, <a href='http://mredison.wordpress.com/category/wcf/'>WCF</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mredison.wordpress.com/3066/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mredison.wordpress.com/3066/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mredison.wordpress.com/3066/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mredison.wordpress.com/3066/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mredison.wordpress.com/3066/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mredison.wordpress.com/3066/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mredison.wordpress.com/3066/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mredison.wordpress.com/3066/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mredison.wordpress.com/3066/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mredison.wordpress.com/3066/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mredison.wordpress.com/3066/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mredison.wordpress.com/3066/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mredison.wordpress.com/3066/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mredison.wordpress.com/3066/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mredison.wordpress.com&amp;blog=1322336&amp;post=3066&amp;subd=mredison&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mredison.wordpress.com/2010/08/05/utilizando-linq-mapping-con-wcf-en-visual-studio-2010-asp-net-c-parte-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/dba15c0598f013d1f1eb9faf2da1ef57?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">student</media:title>
		</media:content>

		<media:content url="http://mredison.files.wordpress.com/2010/08/pdficon.jpg?w=96&#038;h=96" medium="image">
			<media:title type="html">pdfIcon</media:title>
		</media:content>
	</item>
		<item>
		<title>Utilizando LINQ Mapping con WCF en Visual Studio 2010 (ASP.NET C#) Parte 1</title>
		<link>http://mredison.wordpress.com/2010/08/04/utilizando-linq-mapping-con-wcf-en-visual-studio-2010-asp-net-c-parte-1/</link>
		<comments>http://mredison.wordpress.com/2010/08/04/utilizando-linq-mapping-con-wcf-en-visual-studio-2010-asp-net-c-parte-1/#comments</comments>
		<pubDate>Wed, 04 Aug 2010 22:21:59 +0000</pubDate>
		<dc:creator>mredison</dc:creator>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[LINQ]]></category>
		<category><![CDATA[Visual Studio 2010]]></category>

		<guid isPermaLink="false">https://mredison.wordpress.com/2010/08/04/utilizando-linq-mapping-con-wcf-en-visual-studio-2010-asp-net-c-parte-1/</guid>
		<description><![CDATA[Descarga el Artículo Técnico Gratuito. &#160;&#160;&#160;&#160;&#160;&#160; Comparte este artículo con un amigo. Comentarios y sugerencias debajo de este post. Edison Daniel García Chiñas &#124; Tecnologías Microsoft Filed under: ASP.NET, LINQ, Visual Studio 2010<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mredison.wordpress.com&amp;blog=1322336&amp;post=3064&amp;subd=mredison&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Descarga el Artículo Técnico Gratuito.</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160; <a href="http://mredison.files.wordpress.com/2010/08/utilizando-linq-con-wcf.pdf"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="pdfIcon" border="0" alt="pdfIcon" src="http://mredison.files.wordpress.com/2010/08/pdficon.jpg?w=96&#038;h=96" width="96" height="96" /></a> </p>
<blockquote><p><a href="http://mredison.files.wordpress.com/2010/08/utilizando-linq-con-wcf.pdf">Comparte este artículo con un amigo.</a></p>
</blockquote>
<p>Comentarios y sugerencias debajo de este post.</p>
<p><strong>Edison Daniel García Chiñas | Tecnologías Microsoft</strong></p>
<p><a href="http://facebook.com/mredison"><img title="facebookIcon" alt="facebookIcon" src="http://mredison.files.wordpress.com/2010/07/facebookicon.png?w=38&#038;h=38&#038;h=38" width="38" height="38" /></a><a href="http://twitter.com/msedison"><img title="twitterIcon" alt="twitterIcon" src="http://mredison.files.wordpress.com/2010/07/twittericon.png?w=38&#038;h=38&#038;h=38" width="38" height="38" /></a><a href="http://mredison.wordpress.com/feed"><img title="rssIcon" alt="rssIcon" src="http://mredison.files.wordpress.com/2010/07/rssicon.png?w=38&#038;h=38&#038;h=38" width="38" height="38" /></a><img title="tecnologiasMicrosoft[4]" alt="tecnologiasMicrosoft[4]" src="http://mredison.files.wordpress.com/2010/07/tecnologiasmicrosoft4.png?w=240&#038;h=48&#038;h=48" width="240" height="48" /></p>
<br />Filed under: <a href='http://mredison.wordpress.com/category/aspnet/'>ASP.NET</a>, <a href='http://mredison.wordpress.com/category/linq/'>LINQ</a>, <a href='http://mredison.wordpress.com/category/visual-studio-2010/'>Visual Studio 2010</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mredison.wordpress.com/3064/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mredison.wordpress.com/3064/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mredison.wordpress.com/3064/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mredison.wordpress.com/3064/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mredison.wordpress.com/3064/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mredison.wordpress.com/3064/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mredison.wordpress.com/3064/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mredison.wordpress.com/3064/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mredison.wordpress.com/3064/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mredison.wordpress.com/3064/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mredison.wordpress.com/3064/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mredison.wordpress.com/3064/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mredison.wordpress.com/3064/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mredison.wordpress.com/3064/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mredison.wordpress.com&amp;blog=1322336&amp;post=3064&amp;subd=mredison&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mredison.wordpress.com/2010/08/04/utilizando-linq-mapping-con-wcf-en-visual-studio-2010-asp-net-c-parte-1/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/dba15c0598f013d1f1eb9faf2da1ef57?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">student</media:title>
		</media:content>

		<media:content url="http://mredison.files.wordpress.com/2010/08/pdficon.jpg" medium="image">
			<media:title type="html">pdfIcon</media:title>
		</media:content>

		<media:content url="http://mredison.files.wordpress.com/2010/07/facebookicon.png?w=38&#038;h=38&#038;h=38" medium="image">
			<media:title type="html">facebookIcon</media:title>
		</media:content>

		<media:content url="http://mredison.files.wordpress.com/2010/07/twittericon.png?w=38&#038;h=38&#038;h=38" medium="image">
			<media:title type="html">twitterIcon</media:title>
		</media:content>

		<media:content url="http://mredison.files.wordpress.com/2010/07/rssicon.png?w=38&#038;h=38&#038;h=38" medium="image">
			<media:title type="html">rssIcon</media:title>
		</media:content>

		<media:content url="http://mredison.files.wordpress.com/2010/07/tecnologiasmicrosoft4.png?w=240&#038;h=48&#038;h=48" medium="image">
			<media:title type="html">tecnologiasMicrosoft[4]</media:title>
		</media:content>
	</item>
		<item>
		<title>Routing de p&#225;ginas web ASP.NET 4.0 sin MVC</title>
		<link>http://mredison.wordpress.com/2010/07/28/routing-de-pginas-web-asp-net-4-0-sin-mvc/</link>
		<comments>http://mredison.wordpress.com/2010/07/28/routing-de-pginas-web-asp-net-4-0-sin-mvc/#comments</comments>
		<pubDate>Wed, 28 Jul 2010 07:02:05 +0000</pubDate>
		<dc:creator>mredison</dc:creator>
				<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[NET Framework 4]]></category>
		<category><![CDATA[Visual Studio 2010]]></category>

		<guid isPermaLink="false">https://mredison.wordpress.com/2010/07/28/routing-de-pginas-web-asp-net-4-0-sin-mvc/</guid>
		<description><![CDATA[Si tenemos un proyecto web ASP.NET podemos migrarlo a ASP.NET 4.0 y utilizar la parte del routing que nos ofrece el Framework de esta versión. Dentro de mi experiencia con esta característica es muy fácil utilizar e implementar, con tan solo agregar un archivo Global.asax y agregar la referencia System.Web.Routing Hemos visto que Visual Studio [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mredison.wordpress.com&amp;blog=1322336&amp;post=3056&amp;subd=mredison&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Si tenemos un proyecto web ASP.NET podemos migrarlo a ASP.NET 4.0 y utilizar la parte del routing que nos ofrece el Framework de esta versión.</p>
<p>Dentro de mi experiencia con esta característica es muy fácil utilizar e implementar, con tan solo agregar un archivo <strong><font color="#ff0000">Global.asax</font></strong> y agregar la referencia <strong><font color="#4bacc6">System.Web.Routing</font></strong></p>
<p>Hemos visto que Visual Studio 2010 integra el patrón MVC con ASP.NET, sin embargo no tan solo podemos implementar routing con MVC, tambien sin ese patrón podemos darle una nueva funcionalidad a nuestra aplicación web.</p>
<p>Veamos el ejemplo:</p>
<div style="background-color:white;color:black;">
<pre><span style="background-color:yellow;">&lt;%</span><span style="color:blue;">@</span> <span style="color:#a31515;">Application</span> <span style="color:red;">Language</span><span style="color:blue;">=</span><span style="color:blue;">&quot;C#&quot;</span> <span style="background-color:yellow;">%&gt;</span>
<span style="background-color:yellow;">&lt;%</span><span style="color:blue;">@</span> <span style="color:#a31515;">Import</span> <span style="color:red;">Namespace</span><span style="color:blue;">=</span><span style="color:blue;">&quot;System.Web.Routing&quot;</span> <span style="background-color:yellow;">%&gt;</span>

<span style="color:blue;">&lt;</span><span style="color:#a31515;">script</span> <span style="color:red;">runat</span><span style="color:blue;">=</span><span style="color:blue;">&quot;server&quot;</span><span style="color:blue;">&gt;</span>
    <span style="color:blue;">void</span> Application_Start(<span style="color:blue;">object</span> sender, EventArgs e)
    {
        RegistrarURLs(RouteTable.Routes);
    }
    <span style="color:blue;">void</span> RegistrarURLs(RouteCollection urls)
    {
        urls.MapPageRoute(
        <span style="color:#a31515;">&quot;&quot;</span>,
        <span style="color:#a31515;">&quot;Administrador/Articulos&quot;</span>,
        <span style="color:#a31515;">&quot;~/Administrador/Articulos.aspx&quot;</span>
     );
        urls.MapPageRoute(
           <span style="color:#a31515;">&quot;&quot;</span>,
           <span style="color:#a31515;">&quot;Administrador/Articulos/{articuloID}&quot;</span>,
           <span style="color:#a31515;">&quot;~/Administrador/Articulos.aspx&quot;</span>
        );
        urls.MapPageRoute(
         <span style="color:#a31515;">&quot;&quot;</span>,
         <span style="color:#a31515;">&quot;Administrador/Articulos/Nuevo&quot;</span>,
         <span style="color:#a31515;">&quot;~/Administrador/Articulos.aspx&quot;</span>
      );
        urls.MapPageRoute(
         <span style="color:#a31515;">&quot;&quot;</span>,
         <span style="color:#a31515;">&quot;Administrador/Categorias&quot;</span>,
         <span style="color:#a31515;">&quot;~/Administrador/Categorias.aspx&quot;</span>
      );
    }
<span style="color:blue;">&lt;/</span><span style="color:#a31515;">script</span><span style="color:blue;">&gt;</span></pre>
</div>
<div style="background-color:white;color:black;">Dentro de este método registro las urls que me interesa aplicar el routing, dichas URLS deben apuntar a un archivo .aspx físico, no necesariamente con el mismo nombre, podemos pasarle parámetros con { parámetro }.</div>
<div style="background-color:white;color:black;">&#160;</div>
<div style="background-color:white;color:black;">El siguiente paso es colocar nuestras URLs ya sea donde las manejemos, si en hiperlinks, o desde código redireccionando, etc.</div>
<div style="background-color:white;color:black;">&#160;</div>
<div style="background-color:white;color:black;">Por ejemplo tengo un hipervínculo:</div>
<div style="background-color:white;color:black;">
<pre><span style="color:blue;">&lt;</span><span style="color:#a31515;">asp</span><span style="color:blue;">:</span><span style="color:#a31515;">HyperLink</span> <span style="color:red;">ID</span><span style="color:blue;">=</span><span style="color:blue;">&quot;HyperLink1&quot;</span>
     <span style="color:red;">NavigateUrl</span><span style="color:blue;">=</span><span style="color:blue;">&quot;~/Administrador/Articulos&quot;</span>
     <span style="color:red;">runat</span><span style="color:blue;">=</span><span style="color:blue;">&quot;server&quot;</span><span style="color:blue;">&gt;</span>Artículos<span style="color:blue;">&lt;/</span><span style="color:#a31515;">asp</span><span style="color:blue;">:</span><span style="color:#a31515;">HyperLink</span><span style="color:blue;">&gt;</span></pre>
</div>
<p>O este otro:</p>
<p style="background-color:white;color:black;">
<pre><span style="color:blue;">&lt;</span><span style="color:#a31515;">asp</span><span style="color:blue;">:</span><span style="color:#a31515;">HyperLink</span> <span style="color:red;">ID</span><span style="color:blue;">=</span><span style="color:blue;">&quot;HyperLink2&quot;</span>
     <span style="color:red;">NavigateUrl</span><span style="color:blue;">=</span><span style="color:blue;">&quot;~/Administrador/Articulos/Nuevo&quot;</span>
     <span style="color:red;">runat</span><span style="color:blue;">=</span><span style="color:blue;">&quot;server&quot;</span><span style="color:blue;">&gt;</span>Agregar Nuevo<span style="color:blue;">&lt;/</span><span style="color:#a31515;">asp</span><span style="color:blue;">:</span><span style="color:#a31515;">HyperLink</span><span style="color:blue;">&gt;</span></pre>
</p>
<p>Podemos recibir los parámetros que coloquemos dentro de la URL de una forma muy fácil:</p>
<p>En mi ejemplo, defino que la siguiente URL:</p>
<p align="center"><strong>Administrador/Articulos/{articuloID}</strong></p>
<p>contendrá un parámetro artículoID&#160; y también que apunta a un archivo físico <span style="color:#a31515;">&quot;~/Administrador/Articulos.aspx&quot;</span> </p>
<p>Entonces dentro de mi página podemos recibir ese parametro de la siguiente manera:</p>
<p style="background-color:white;color:black;">
<pre><span style="color:blue;">string</span> parametro = Page.RouteData.Values[<span style="color:#a31515;">&quot;articuloID&quot;</span>] <span style="color:blue;">as</span> <span style="color:blue;">string</span>;</pre>
</p>
<p>Saludos.</p>
<p><strong>Edison Daniel García Chiñas</strong></p>
<p><a href="http://facebook.com/mredison"><img title="facebookIcon" alt="facebookIcon" src="http://mredison.files.wordpress.com/2010/07/facebookicon.png?w=38&#038;h=38&#038;h=38" width="38" height="38" /></a><a href="http://twitter.com/msedison"><img title="twitterIcon" alt="twitterIcon" src="http://mredison.files.wordpress.com/2010/07/twittericon.png?w=38&#038;h=38&#038;h=38" width="38" height="38" /></a><a href="http://mredison.wordpress.com/feed"><img title="rssIcon" alt="rssIcon" src="http://mredison.files.wordpress.com/2010/07/rssicon.png?w=38&#038;h=38&#038;h=38" width="38" height="38" /></a><img title="tecnologiasMicrosoft[4]" alt="tecnologiasMicrosoft[4]" src="http://mredison.files.wordpress.com/2010/07/tecnologiasmicrosoft4.png?w=240&#038;h=48&#038;h=48" width="240" height="48" /></p>
<br />Filed under: <a href='http://mredison.wordpress.com/category/aspnet/'>ASP.NET</a>, <a href='http://mredison.wordpress.com/category/c/'>C#</a>, <a href='http://mredison.wordpress.com/category/net-framework-4/'>NET Framework 4</a>, <a href='http://mredison.wordpress.com/category/visual-studio-2010/'>Visual Studio 2010</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mredison.wordpress.com/3056/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mredison.wordpress.com/3056/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mredison.wordpress.com/3056/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mredison.wordpress.com/3056/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mredison.wordpress.com/3056/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mredison.wordpress.com/3056/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mredison.wordpress.com/3056/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mredison.wordpress.com/3056/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mredison.wordpress.com/3056/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mredison.wordpress.com/3056/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mredison.wordpress.com/3056/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mredison.wordpress.com/3056/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mredison.wordpress.com/3056/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mredison.wordpress.com/3056/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mredison.wordpress.com&amp;blog=1322336&amp;post=3056&amp;subd=mredison&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mredison.wordpress.com/2010/07/28/routing-de-pginas-web-asp-net-4-0-sin-mvc/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/dba15c0598f013d1f1eb9faf2da1ef57?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">student</media:title>
		</media:content>

		<media:content url="http://mredison.files.wordpress.com/2010/07/facebookicon.png?w=38&#038;h=38&#038;h=38" medium="image">
			<media:title type="html">facebookIcon</media:title>
		</media:content>

		<media:content url="http://mredison.files.wordpress.com/2010/07/twittericon.png?w=38&#038;h=38&#038;h=38" medium="image">
			<media:title type="html">twitterIcon</media:title>
		</media:content>

		<media:content url="http://mredison.files.wordpress.com/2010/07/rssicon.png?w=38&#038;h=38&#038;h=38" medium="image">
			<media:title type="html">rssIcon</media:title>
		</media:content>

		<media:content url="http://mredison.files.wordpress.com/2010/07/tecnologiasmicrosoft4.png?w=240&#038;h=48&#038;h=48" medium="image">
			<media:title type="html">tecnologiasMicrosoft[4]</media:title>
		</media:content>
	</item>
		<item>
		<title>Utilizando el SqlConnectionStringBuilder en C#</title>
		<link>http://mredison.wordpress.com/2010/07/28/utilizando-el-sqlconnectionstringbuilder-en-c/</link>
		<comments>http://mredison.wordpress.com/2010/07/28/utilizando-el-sqlconnectionstringbuilder-en-c/#comments</comments>
		<pubDate>Wed, 28 Jul 2010 06:17:01 +0000</pubDate>
		<dc:creator>mredison</dc:creator>
				<category><![CDATA[ADO.NET]]></category>
		<category><![CDATA[C#]]></category>

		<guid isPermaLink="false">https://mredison.wordpress.com/2010/07/28/utilizando-el-sqlconnectionstringbuilder-en-c/</guid>
		<description><![CDATA[MSDN: Proporciona una manera simple de crear y administrar el contenido de las cadenas de conexión que utiliza la clase SqlConnection. Dentro del Framework de .NET existe una clase en donde podemos adiministrar nuestras cadenas de conexión. La clase SqlConnectionStringBuilder comprueba si los valores de los parametros que van en nuestra cadena de conexión son [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mredison.wordpress.com&amp;blog=1322336&amp;post=3055&amp;subd=mredison&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<blockquote><p>MSDN:</p>
<p>Proporciona una manera simple de crear y administrar el contenido de las cadenas de conexión que utiliza la clase <a href="http://msdn.microsoft.com/es-es/library/system.data.sqlclient.sqlconnection%28v=VS.80%29.aspx">SqlConnection</a>.</p>
</blockquote>
<p>Dentro del Framework de .NET existe una clase en donde podemos adiministrar nuestras cadenas de conexión.</p>
<p>La clase <strong>SqlConnectionStringBuilder</strong> comprueba si los valores de los parametros que van en nuestra cadena de conexión son válidos. Por lo cual, no podemos utilizar esta clase para crear cadenas de conexión no válidas; cualquier intento de agregar parametros no válidos producirá una excepción. La clase mantiene una colección fija de sinónimos y puede convertir un sinónimo al correspondiente nombre de clave conocido. </p>
<p>Veamos un ejemplo:</p>
<div style="background-color:white;color:black;">
<pre style="width:590px;height:248px;"><span style="color:blue;">public</span> <span style="color:blue;">string</span> ObtenerConnectionString(<span style="color:blue;">string</span> nombreServidor,
        <span style="color:blue;">string</span> usuario, <span style="color:blue;">string</span> password)
    {
        <font color="#4bacc6">SqlConnectionStringBuilder</font> connectionStringB =
            <span style="color:blue;">new</span> <font color="#4bacc6">SqlConnectionStringBuilder</font>();

        connectionStringB.DataSource = nombreServidor;
        connectionStringB.UserID = usuario;
        connectionStringB.Password = password;
        <span style="color:blue;">return</span> connectionStringB.ConnectionString;
    }</pre>
</div>
<p>Otra forma sería colocando los <strong>KeyNames</strong> veamos:</p>
<div style="background-color:white;color:black;">
<pre style="width:591px;height:251px;">  <span style="color:blue;">public</span> <span style="color:blue;">string</span> ObtenerConnectionString2(<span style="color:blue;">string</span> nombreServidor,
        <span style="color:blue;">string</span> usuario, <span style="color:blue;">string</span> password,<span style="color:blue;">string</span> nombreBD)
    {
        <font color="#4bacc6">SqlConnectionStringBuilder</font> connectionStringB =
            <span style="color:blue;">new</span> <font color="#4bacc6">SqlConnectionStringBuilder</font>();
        connectionStringB[<span style="color:#a31515;">&quot;Data Source&quot;</span>] = nombreServidor;
        connectionStringB[<span style="color:#a31515;">&quot;User ID&quot;</span>] = usuario;
        connectionStringB[<span style="color:#a31515;">&quot;Password&quot;</span>] = password;
        connectionStringB[<span style="color:#a31515;">&quot;Initial Catalog&quot;</span>] = nombreBD;
        <span style="color:blue;">return</span> connectionStringB.ConnectionString;
    }</pre>
</div>
<p>Otra forma agregando como elemento al <strong>StringBuilder</strong> de esta manera, al igual que podemos sobreescribir los valores antes agregados, veamos:</p>
<p style="background-color:white;color:black;">&#160;</p>
<pre style="width:592px;height:275px;"> <span style="color:blue;">public</span> <span style="color:blue;">string</span> ObtenerConnectionString(<span style="color:blue;">string</span> nombreServidor, <span style="color:blue;">string</span> usuario,
        <span style="color:blue;">string</span> password, <span style="color:blue;">string</span> nombreBD)
    {
        <font color="#4bacc6">SqlConnectionStringBuilder</font> connectionStringB =
            <span style="color:blue;">new</span> <font color="#4bacc6">SqlConnectionStringBuilder</font>();
        connectionStringB.Add(<span style="color:#a31515;">&quot;Data Source&quot;</span> ,nombreServidor);
        connectionStringB.Add(<span style="color:#a31515;">&quot;User ID&quot;</span>,usuario);
        connectionStringB.Add(<span style="color:#a31515;">&quot;Password&quot;</span>,password);
        connectionStringB.Add(<span style="color:#a31515;">&quot;Initial Catalog&quot;</span>,nombreBD);
        connectionStringB.Add(<span style="color:#a31515;">&quot;User ID&quot;</span>, usuario); <span style="color:green;">//SobreEscribir</span>
        <span style="color:blue;">return</span> connectionStringB.ConnectionString;
    }</pre>
<p>&#160;</p>
<p>Podemos limpiar los valores dentro del <strong>SqlConnectionStringBuilder</strong> utilizando el método <strong>Clear()</strong>, al igual que podemos identificar cuantos parametros se encuentran dentro de nuestra cadena de conexión con el método .<strong>Count</strong></p>
<div style="background-color:white;color:black;">
<pre style="width:589px;height:310px;"> <span style="color:blue;">public</span> <span style="color:blue;">void</span> LimpiarConnectionString(<span style="color:blue;">string</span> nombreServidor, <span style="color:blue;">string</span> usuario,
        <span style="color:blue;">string</span> password, <span style="color:blue;">string</span> nombreBD)
    {
        <font color="#4bacc6">SqlConnectionStringBuilder</font> connectionStringB =
            <span style="color:blue;">new</span> <font color="#4bacc6">SqlConnectionStringBuilder</font>();
        connectionStringB.Add(<span style="color:#a31515;">&quot;Data Source&quot;</span>, nombreServidor);
        connectionStringB.Add(<span style="color:#a31515;">&quot;User ID&quot;</span>, usuario);
        connectionStringB.Add(<span style="color:#a31515;">&quot;Password&quot;</span>, password);
        connectionStringB.Add(<span style="color:#a31515;">&quot;Initial Catalog&quot;</span>, nombreBD);

        Response.Write(<span style="color:#a31515;">&quot;Parametros: &quot;</span> + connectionStringB.Count +<span style="color:#a31515;">&quot;&lt;br/&gt;&quot;</span>);
        connectionStringB.Clear();
        Response.Write(<span style="color:#a31515;">&quot;Parametros: &quot;</span> + connectionStringB.Count);
    }</pre>
</div>
<h2>Utilizando SqlConnectionStringBuilder con Web.config o App.config</h2>
<div style="background-color:white;color:black;">
  <br />&#160;</div>
<p>Para los que nos preguntan si podemos combinar ambos, claro que si, podemos extraer de nuestro archivo de configuración por medio del KeyName que le demos a la cadena de conexión.</p>
<p>Veamos:</p>
<p>Dentro de nuestro web.config o app.config:</p>
<div style="background-color:white;color:black;">
<pre style="width:592px;height:147px;"><span style="color:blue;">&lt;</span><span style="color:#a31515;">connectionStrings</span><span style="color:blue;">&gt;</span>
<span style="color:blue;">&lt;</span><span style="color:#a31515;">add</span> <span style="color:red;">name</span><span style="color:blue;">=</span><span style="color:blue;">&quot;CadenaConexion&quot;</span>
<span style="color:red;">connectionString</span><span style="color:blue;">=</span><span style="color:blue;">&quot;Data Source=.\MSPDEVELOPER;Initial Catalog=CMS;Integrated Security=true;&quot;</span>
<span style="color:red;">providerName</span><span style="color:blue;">=</span><span style="color:blue;">&quot;System.Data.SqlClient&quot;</span><span style="color:blue;">/&gt;</span>
<span style="color:blue;">&lt;/</span><span style="color:#a31515;">connectionStrings</span><span style="color:blue;">&gt;</span></pre>
</div>
<div style="background-color:white;color:black;">En este ejemplo con tan solo pasarle el nombre de la cadena de conexión agregada en el archivo de configuración al método y después lo agrego al <strong>SqlConnectionStringBuilder</strong> para posteriormente agregarle nuevos parámetros.</div>
<div style="background-color:white;color:black;">&#160;</div>
<div style="background-color:white;color:black;">
<pre style="width:592px;height:470px;"> <span style="color:blue;">public</span> <span style="color:blue;">string</span> ObtenerCadenaConexion(<span style="color:blue;">string</span> nombre)
    {
        <font color="#4bacc6">ConnectionStringSettings</font> opciones =
            <font color="#4bacc6">ConfigurationManager</font>.ConnectionStrings[nombre];

        <font color="#4bacc6">SqlConnectionStringBuilder</font> cadena;

        <span style="color:blue;">string</span> cadenaConexion = <span style="color:#a31515;">&quot;&quot;</span>;

        <span style="color:blue;">if</span> (opciones != <span style="color:blue;">null</span>)
        {
            cadena = <span style="color:blue;">new</span> <font color="#4bacc6">SqlConnectionStringBuilder</font>(opciones.ConnectionString);
            cadena.ConnectTimeout = 10;
            cadena.MaxPoolSize = 100;
            cadena.MinPoolSize = 0;
            cadena.Pooling = <span style="color:blue;">true</span>;
            cadena.AsynchronousProcessing = <span style="color:blue;">true</span>;
            cadenaConexion = cadena.ConnectionString.ToString();
        }

        <span style="color:blue;">return</span> cadenaConexion;
    }</pre>
</div>
<p>Saludos.</p>
<p><strong>Edison Daniel García Chiñas</strong></p>
<p><a href="http://facebook.com/mredison"><img title="facebookIcon" alt="facebookIcon" src="http://mredison.files.wordpress.com/2010/07/facebookicon.png?w=38&#038;h=38&#038;h=38" width="38" height="38" /></a><a href="http://twitter.com/msedison"><img title="twitterIcon" alt="twitterIcon" src="http://mredison.files.wordpress.com/2010/07/twittericon.png?w=38&#038;h=38&#038;h=38" width="38" height="38" /></a><a href="http://mredison.wordpress.com/feed"><img title="rssIcon" alt="rssIcon" src="http://mredison.files.wordpress.com/2010/07/rssicon.png?w=38&#038;h=38&#038;h=38" width="38" height="38" /></a><img title="tecnologiasMicrosoft[4]" alt="tecnologiasMicrosoft[4]" src="http://mredison.files.wordpress.com/2010/07/tecnologiasmicrosoft4.png?w=240&#038;h=48&#038;h=48" width="240" height="48" /></p>
<br />Filed under: <a href='http://mredison.wordpress.com/category/ado-net/'>ADO.NET</a>, <a href='http://mredison.wordpress.com/category/c/'>C#</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mredison.wordpress.com/3055/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mredison.wordpress.com/3055/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mredison.wordpress.com/3055/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mredison.wordpress.com/3055/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mredison.wordpress.com/3055/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mredison.wordpress.com/3055/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mredison.wordpress.com/3055/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mredison.wordpress.com/3055/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mredison.wordpress.com/3055/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mredison.wordpress.com/3055/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mredison.wordpress.com/3055/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mredison.wordpress.com/3055/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mredison.wordpress.com/3055/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mredison.wordpress.com/3055/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mredison.wordpress.com&amp;blog=1322336&amp;post=3055&amp;subd=mredison&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mredison.wordpress.com/2010/07/28/utilizando-el-sqlconnectionstringbuilder-en-c/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/dba15c0598f013d1f1eb9faf2da1ef57?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">student</media:title>
		</media:content>

		<media:content url="http://mredison.files.wordpress.com/2010/07/facebookicon.png?w=38&#038;h=38" medium="image">
			<media:title type="html">facebookIcon</media:title>
		</media:content>

		<media:content url="http://mredison.files.wordpress.com/2010/07/twittericon.png?w=38&#038;h=38" medium="image">
			<media:title type="html">twitterIcon</media:title>
		</media:content>

		<media:content url="http://mredison.files.wordpress.com/2010/07/rssicon.png?w=38&#038;h=38" medium="image">
			<media:title type="html">rssIcon</media:title>
		</media:content>

		<media:content url="http://mredison.files.wordpress.com/2010/07/tecnologiasmicrosoft4.png?w=240&#038;h=48" medium="image">
			<media:title type="html">tecnologiasMicrosoft[4]</media:title>
		</media:content>
	</item>
		<item>
		<title>Manejo de par&#225;metros en Visual Studio 2010</title>
		<link>http://mredison.wordpress.com/2010/07/28/manejo-de-parmetros-en-visual-studio-2010/</link>
		<comments>http://mredison.wordpress.com/2010/07/28/manejo-de-parmetros-en-visual-studio-2010/#comments</comments>
		<pubDate>Wed, 28 Jul 2010 05:35:37 +0000</pubDate>
		<dc:creator>mredison</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Visual Studio 2010]]></category>

		<guid isPermaLink="false">https://mredison.wordpress.com/2010/07/28/manejo-de-parmetros-en-visual-studio-2010/</guid>
		<description><![CDATA[En esta ocasión escribiré acerca de lo nuevo en Visual Studio 2010, una característica que me ha gustado y que estoy implementando en mis desarrollos es la parte de los parámetros. Existen dos nuevas características dentro de los parámetros: Parámetros con nombre y Parámetros opcionales Parámetros con nombre Este tipo de parametros nos permiten combinar [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mredison.wordpress.com&amp;blog=1322336&amp;post=3054&amp;subd=mredison&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>En esta ocasión escribiré acerca de lo nuevo en Visual Studio 2010, una característica que me ha gustado y que estoy implementando en mis desarrollos es la parte de los parámetros.</p>
<p>Existen dos nuevas características dentro de los parámetros:</p>
<ul>
<li>Parámetros con nombre y </li>
<li>Parámetros opcionales </li>
</ul>
<h2>Parámetros con nombre</h2>
<p>Este tipo de parametros nos permiten combinar el orden , siempre y cuando especifiquemos el valor con cada parámetro. </p>
<p>Ejemplo: </p>
<div style="background-color:white;color:black;">
<pre style="width:630px;height:97px;"><span style="color:blue;">public</span> <span style="color:blue;">static</span> <span style="color:blue;">string</span> ImprimirEmpleado(<span style="color:blue;">string</span> nombre, <span style="color:blue;">string</span> apellidos)
        {
            <span style="color:blue;">return</span> <span style="color:#a31515;">&quot;Nombre: &quot;</span>+nombre + <span style="color:#a31515;">&quot;, Apellidos: &quot;</span> + apellidos;
        }</pre>
</div>
<p><a href="http://mredison.files.wordpress.com/2010/07/image.png"><img style="display:inline;" class="wlDisabledImage" title="image" alt="image" src="http://mredison.files.wordpress.com/2010/07/image_thumb.png?w=484&#038;h=81" width="484" height="81" /></a> </p>
<p></p>
<div style="background-color:white;color:black;">
<pre style="width:630px;height:159px;"> <span style="color:blue;">static</span> <span style="color:blue;">void</span> Main(<span style="color:blue;">string</span>[] args)
        {
            Console.WriteLine(ImprimirEmpleado(apellidos:<span style="color:#a31515;">&quot;García&quot;</span>,nombre:<span style="color:#a31515;">&quot;Edison&quot;</span>));
            Console.WriteLine(ImprimirEmpleado(<span style="color:#a31515;">&quot;Edison&quot;</span>, apellidos:<span style="color:#a31515;">&quot;García&quot;</span>));
            Console.WriteLine(ImprimirEmpleado(<span style="color:#a31515;">&quot;Edison&quot;</span>, <span style="color:#a31515;">&quot;García&quot;</span>));
            Console.ReadLine();
        }</pre>
</div>
<h2>Parámetros Opcionales</h2>
<p>Sin duda esta opción nos ayuda demasiado y nos ahorra de codificar supuestos métodos sobrecargados en algunos casos. </p>
<div style="background-color:white;color:black;">
<pre style="width:630px;height:138px;"><span style="color:blue;">public</span> <span style="color:blue;">static</span> <span style="color:blue;">string</span> AgregarEmpleado(<span style="color:blue;">int</span> matricula,
            <span style="color:blue;">string</span> nombre, <span style="color:blue;">string</span> localizacion = <span style="color:#a31515;">&quot;Coatzacoalcos&quot;</span>)
        {
           <span style="color:blue;">return</span> <span style="color:#a31515;">&quot;Empleado - Matrícula :&quot;</span> + matricula.ToString()+
                  <span style="color:#a31515;">&quot;Nombre: &quot;</span> +nombre +<span style="color:#a31515;">&quot; Localización: &quot;</span>+localizacion;
        }</pre>
</div>
<p>Podemos definir valores por default a nuestros parametros.<br />
  </p>
<p><a href="http://mredison.files.wordpress.com/2010/07/image1.png"><img style="display:inline;" class="wlDisabledImage" title="image" alt="image" src="http://mredison.files.wordpress.com/2010/07/image_thumb1.png?w=626&#038;h=86" width="626" height="86" /></a></p>
<div style="background-color:white;color:black;">
<pre style="width:630px;height:40px;">Console.WriteLine(AgregarEmpleado(05231104,<span style="color:#a31515;">&quot;Gilberto García&quot;</span>));</pre>
</div>
<p>O colocar valores, como el ejemplo anterior:</p>
<pre style="width:630px;height:58px;">Console.WriteLine(AgregarEmpleado(05231104, <span style="color:#a31515;">&quot;Gilberto García&quot;</span>,
           localizacion:<span style="color:#a31515;">&quot;Monterrey&quot;</span>));</pre>
<p>&#160;</p>
<pre style="width:630px;height:35px;">Console.WriteLine(AgregarEmpleado(05231104, <span style="color:#a31515;">&quot;Gilberto García&quot;</span>, <span style="color:#a31515;">&quot;Monterrey&quot;</span>));</pre>
<p>Saludos. </p>
<p><strong>Edison Daniel García Chiñas </strong></p>
<p><a href="http://facebook.com/mredison" target="_blank"><img style="display:inline;" class="wlDisabledImage" title="facebookIcon" alt="facebookIcon" src="http://mredison.files.wordpress.com/2010/07/facebookicon.png?w=38&#038;h=38" width="38" height="38" /></a><a href="http://twitter.com/msedison" target="_blank"><img style="display:inline;" class="wlDisabledImage" title="twitterIcon" alt="twitterIcon" src="http://mredison.files.wordpress.com/2010/07/twittericon.png?w=38&#038;h=38" width="38" height="38" /></a><a href="http://mredison.wordpress.com/feed"><img style="display:inline;" class="wlDisabledImage" title="rssIcon" alt="rssIcon" src="http://mredison.files.wordpress.com/2010/07/rssicon.png?w=38&#038;h=38" width="38" height="38" /></a><img style="display:inline;" class="wlDisabledImage" title="tecnologiasMicrosoft[4]" alt="tecnologiasMicrosoft[4]" src="http://mredison.files.wordpress.com/2010/07/tecnologiasmicrosoft4.png?w=240&#038;h=48" width="240" height="48" /></p>
<br />Filed under: <a href='http://mredison.wordpress.com/category/c/'>C#</a>, <a href='http://mredison.wordpress.com/category/visual-studio-2010/'>Visual Studio 2010</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mredison.wordpress.com/3054/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mredison.wordpress.com/3054/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mredison.wordpress.com/3054/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mredison.wordpress.com/3054/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mredison.wordpress.com/3054/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mredison.wordpress.com/3054/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mredison.wordpress.com/3054/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mredison.wordpress.com/3054/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mredison.wordpress.com/3054/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mredison.wordpress.com/3054/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mredison.wordpress.com/3054/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mredison.wordpress.com/3054/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mredison.wordpress.com/3054/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mredison.wordpress.com/3054/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mredison.wordpress.com&amp;blog=1322336&amp;post=3054&amp;subd=mredison&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mredison.wordpress.com/2010/07/28/manejo-de-parmetros-en-visual-studio-2010/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/dba15c0598f013d1f1eb9faf2da1ef57?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">student</media:title>
		</media:content>

		<media:content url="http://mredison.files.wordpress.com/2010/07/image_thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://mredison.files.wordpress.com/2010/07/image_thumb1.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://mredison.files.wordpress.com/2010/07/facebookicon.png" medium="image">
			<media:title type="html">facebookIcon</media:title>
		</media:content>

		<media:content url="http://mredison.files.wordpress.com/2010/07/twittericon.png" medium="image">
			<media:title type="html">twitterIcon</media:title>
		</media:content>

		<media:content url="http://mredison.files.wordpress.com/2010/07/rssicon.png" medium="image">
			<media:title type="html">rssIcon</media:title>
		</media:content>

		<media:content url="http://mredison.files.wordpress.com/2010/07/tecnologiasmicrosoft4.png" medium="image">
			<media:title type="html">tecnologiasMicrosoft[4]</media:title>
		</media:content>
	</item>
		<item>
		<title>Objeto Connection en ADO.NET</title>
		<link>http://mredison.wordpress.com/2010/07/25/objeto-connection-en-ado-net/</link>
		<comments>http://mredison.wordpress.com/2010/07/25/objeto-connection-en-ado-net/#comments</comments>
		<pubDate>Sun, 25 Jul 2010 07:33:45 +0000</pubDate>
		<dc:creator>mredison</dc:creator>
				<category><![CDATA[ADO.NET]]></category>

		<guid isPermaLink="false">https://mredison.wordpress.com/2010/07/25/objeto-connection-en-ado-net/</guid>
		<description><![CDATA[La mayoría de nosotros sabemos como conectarnos a una base de datos con .NET por medio de las clases que nos ofrece el Framework, esas clases llamadas “ADO.NET”. Dentro de ADO.NET existen clases denominadas “.NET Framework Data Providers” , las cuales podemos ocupar para acceder a diferentes recursos de datos (SQL Server, Oracle, Access, Excel, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mredison.wordpress.com&amp;blog=1322336&amp;post=3042&amp;subd=mredison&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>La mayoría de nosotros sabemos como conectarnos a una base de datos con .NET por medio de las clases que nos ofrece el Framework, esas clases llamadas “<strong>ADO.NET</strong>”.</p>
<p>Dentro de ADO.NET existen clases denominadas “<strong><a href="http://msdn.microsoft.com/en-us/library/s7ee2dwt%28VS.71%29.aspx" target="_blank">.NET Framework Data Providers</a></strong>” , las cuales podemos ocupar para acceder a diferentes recursos de datos (SQL Server, Oracle, Access, Excel, etc.)</p>
<p>Estas clases “<strong><a href="http://msdn.microsoft.com/en-us/library/s7ee2dwt%28VS.71%29.aspx" target="_blank">.NET Framework Data Providers</a></strong>”&#160; implementan la interfaz <strong>IDbConnection</strong>.</p>
<p>Que pasaría si una clase implementa esta interfaz, tendríamos los siguientes métodos:</p>
<div style="background-color:white;color:black;">
<pre><span style="color:blue;">using</span> System;
<span style="color:blue;">using</span> System.Collections.Generic;
<span style="color:blue;">using</span> System.Linq;
<span style="color:blue;">using</span> System.Web;
<span style="color:blue;">using</span> System.Data;

<span style="color:blue;">public</span> <span style="color:blue;">class</span> Conexion:IDbConnection
{

    <span style="color:blue;">public</span> IDbTransaction BeginTransaction(IsolationLevel il)
    {
        <span style="color:blue;">throw</span> <span style="color:blue;">new</span> NotImplementedException();
    }

    <span style="color:blue;">public</span> IDbTransaction BeginTransaction()
    {
        <span style="color:blue;">throw</span> <span style="color:blue;">new</span> NotImplementedException();
    }

    <span style="color:blue;">public</span> <span style="color:blue;">void</span> ChangeDatabase(<span style="color:blue;">string</span> databaseName)
    {
        <span style="color:blue;">throw</span> <span style="color:blue;">new</span> NotImplementedException();
    }

    <span style="color:blue;">public</span> <span style="color:blue;">void</span> Close()
    {
        <span style="color:blue;">throw</span> <span style="color:blue;">new</span> NotImplementedException();
    }

    <span style="color:blue;">public</span> <span style="color:blue;">string</span> ConnectionString
    {
        <span style="color:blue;">get</span>
        {
            <span style="color:blue;">throw</span> <span style="color:blue;">new</span> NotImplementedException();
        }
        <span style="color:blue;">set</span>
        {
            <span style="color:blue;">throw</span> <span style="color:blue;">new</span> NotImplementedException();
        }
    }

    <span style="color:blue;">public</span> <span style="color:blue;">int</span> ConnectionTimeout
    {
        <span style="color:blue;">get</span> { <span style="color:blue;">throw</span> <span style="color:blue;">new</span> NotImplementedException(); }
    }

    <span style="color:blue;">public</span> IDbCommand CreateCommand()
    {
        <span style="color:blue;">throw</span> <span style="color:blue;">new</span> NotImplementedException();
    }

    <span style="color:blue;">public</span> <span style="color:blue;">string</span> Database
    {
        <span style="color:blue;">get</span> { <span style="color:blue;">throw</span> <span style="color:blue;">new</span> NotImplementedException(); }
    }

    <span style="color:blue;">public</span> <span style="color:blue;">void</span> Open()
    {
        <span style="color:blue;">throw</span> <span style="color:blue;">new</span> NotImplementedException();
    }

    <span style="color:blue;">public</span> ConnectionState State
    {
        <span style="color:blue;">get</span> { <span style="color:blue;">throw</span> <span style="color:blue;">new</span> NotImplementedException(); }
    }

    <span style="color:blue;">public</span> <span style="color:blue;">void</span> Dispose()
    {
        <span style="color:blue;">throw</span> <span style="color:blue;">new</span> NotImplementedException();
    }
}</pre>
</div>
<p>El objeto <strong>Connection</strong> se encuentra en cada proveedor de acceso a datos y a su vez implementa la Interfaz <strong>IDisposable</strong>.</p>
<p>Veamos un ejemplo claro en donde podemos ocupar esta Interfaz.</p>
<p>Si queremos un nivel de abstracción o que nuestro código sea adaptable a varios recursos de datos podemos ocupar esta interfaz incorporando el namespace <strong>System.Data</strong> y <strong> System.Data.Common</strong></p>
<div style="background-color:white;color:black;">
<pre><span style="color:blue;">protected</span> <span style="color:blue;">void</span> Page_Load(<span style="color:blue;">object</span> sender, EventArgs e)
    {
        <span style="color:blue;">string</span> connectionString=<span style="color:#a31515;">@&quot;Data Source=.\MSPDEVELOPER;Initial Catalog=CMS;Integrated Security=true;&quot;</span>;
        IDbConnection connection = GetConnection(<span style="color:#a31515;">&quot;System.Data.SqlClient&quot;</span>);
        connection.ConnectionString = connectionString;
        connection.Open();
        Response.Write(<span style="color:#a31515;">&quot;Conectado&quot;</span>);
        connection.Close();
        connection.Dispose();
    }

    <span style="color:blue;">public</span> <span style="color:blue;">static</span> IDbConnection GetConnection(<span style="color:blue;">string</span> proveedor)
    {
        <span style="color:blue;">return</span> DbProviderFactories.GetFactory(proveedor).CreateConnection();

    }</pre>
</div>
<p>Dentro de este método con tan solo pasar como parámetro el “Data Provider” y su respectivo ConnectionString, podemos saber sobre que base de datos trabajaremos y a su vez implementar el IDbCommand , IDbDataAdapter, etc.</p>
<p>Saludos.</p>
<p><strong>Edison Daniel García Chiñas | Tecnologías Microsoft</strong></p>
<br />Filed under: <a href='http://mredison.wordpress.com/category/ado-net/'>ADO.NET</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mredison.wordpress.com/3042/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mredison.wordpress.com/3042/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mredison.wordpress.com/3042/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mredison.wordpress.com/3042/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mredison.wordpress.com/3042/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mredison.wordpress.com/3042/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mredison.wordpress.com/3042/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mredison.wordpress.com/3042/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mredison.wordpress.com/3042/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mredison.wordpress.com/3042/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mredison.wordpress.com/3042/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mredison.wordpress.com/3042/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mredison.wordpress.com/3042/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mredison.wordpress.com/3042/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mredison.wordpress.com&amp;blog=1322336&amp;post=3042&amp;subd=mredison&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mredison.wordpress.com/2010/07/25/objeto-connection-en-ado-net/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/dba15c0598f013d1f1eb9faf2da1ef57?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">student</media:title>
		</media:content>
	</item>
		<item>
		<title>Editor WYSIWYG para ASP.NET</title>
		<link>http://mredison.wordpress.com/2010/07/17/editor-wysiwyg-para-asp-net/</link>
		<comments>http://mredison.wordpress.com/2010/07/17/editor-wysiwyg-para-asp-net/#comments</comments>
		<pubDate>Sat, 17 Jul 2010 04:15:58 +0000</pubDate>
		<dc:creator>mredison</dc:creator>
				<category><![CDATA[ASP.NET]]></category>

		<guid isPermaLink="false">https://mredison.wordpress.com/2010/07/17/editor-wysiwyg-para-asp-net/</guid>
		<description><![CDATA[Que tal muchos de nosotros nos dedicamos al desarrollo web y a veces los clientes nos piden que actualizemos los contenidos del sitio web, para esto es sumamente recomendable que utilizemos algún editor WYSIWYG (What You See Is What You Get). En ASP.NET podemos integrar el editor FCKeditor el cual desde su página podemos descargar [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mredison.wordpress.com&amp;blog=1322336&amp;post=3039&amp;subd=mredison&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Que tal muchos de nosotros nos dedicamos al desarrollo web y a veces los clientes nos piden que actualizemos los contenidos del sitio web, para esto es sumamente recomendable que utilizemos algún <strong>editor WYSIWYG</strong> (What You See Is What You Get). </p>
<p>En ASP.NET podemos integrar el editor <strong>FCKeditor</strong> el cual desde su página podemos descargar el control de servidor y registrarlo dentro de nuestra página ASP.NET.</p>
<p>URL: <a title="http://ckeditor.com/download" href="http://ckeditor.com/download">http://ckeditor.com/download</a></p>
<p>1.- Descomprimir el archivo de .NET, navegamos dentro de la carpeta <strong>Bin</strong> 2.0 encontraremos la <strong>.dll</strong> llamada <font color="#800000"><strong>FredCK.FCKeditorV2.dll </strong>, </font><font color="#000000">en donde la agregaremos como referencia dentro de nuestro proyecto.</font></p>
<p><a href="http://mredison.files.wordpress.com/2010/07/fckeditoraspnet_02.jpg"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="fckeditorASPNET_02" border="0" alt="fckeditorASPNET_02" src="http://mredison.files.wordpress.com/2010/07/fckeditoraspnet_02_thumb.jpg?w=322&#038;h=362" width="322" height="362" /></a> </p>
<p><font color="#000000">2.- Descargamos también los archivos completos del FCKeditor y los descomprimimos dentro de nuestra carpeta del sitio web. (Es recomendable que nuestro sitio web esté hospedado dentro de un servidor IIS).</font></p>
<p><font color="#000000">3.- Ahora nos toca <u>registrar el control</u> de servidor para que podamos utilizarlo dentro de nuestas página web con la directiva @Register colocando el Assembly, NameSpace y nuestro TagPrefix personalizado, de la siguiente forma:</font></p>
<div style="background-color:white;color:black;">
<pre><span style="background-color:yellow;">&lt;%</span><span style="color:blue;">@</span> <span style="color:#a31515;">Page</span> <span style="color:red;">Language</span><span style="color:blue;">=</span><span style="color:blue;">&quot;C#&quot;</span> <span style="color:red;">AutoEventWireup</span><span style="color:blue;">=</span><span style="color:blue;">&quot;true&quot;</span>
<span style="color:red;">CodeFile</span><span style="color:blue;">=</span><span style="color:blue;">&quot;Default.aspx.cs&quot;</span> <span style="color:red;">Inherits</span><span style="color:blue;">=</span><span style="color:blue;">&quot;_Default&quot;</span> <span style="background-color:yellow;">%&gt;</span>

<span style="background-color:yellow;">&lt;%</span><span style="color:blue;">@</span> <span style="color:#a31515;">Register</span> <span style="color:red;">Assembly</span><span style="color:blue;">=</span><span style="color:blue;">&quot;FredCK.FCKeditorV2&quot;</span>
<span style="color:red;">Namespace</span><span style="color:blue;">=</span><span style="color:blue;">&quot;FredCK.FCKeditorV2&quot;</span> <span style="color:red;">TagPrefix</span><span style="color:blue;">=</span><span style="color:blue;">&quot;Editor&quot;</span> <span style="background-color:yellow;">%&gt;</span>

<span style="color:blue;">&lt;!</span><span style="color:#a31515;">DOCTYPE</span> <span style="color:red;">html</span> <span style="color:red;">PUBLIC</span> <span style="color:blue;">&quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot;</span>
<span style="color:blue;">&quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;</span><span style="color:blue;">&gt;</span>

<span style="color:blue;">&lt;</span><span style="color:#a31515;">html</span> <span style="color:red;">xmlns</span><span style="color:blue;">=</span><span style="color:blue;">&quot;http://www.w3.org/1999/xhtml&quot;</span><span style="color:blue;">&gt;</span>
<span style="color:blue;">&lt;</span><span style="color:#a31515;">head</span> <span style="color:red;">runat</span><span style="color:blue;">=</span><span style="color:blue;">&quot;server&quot;</span><span style="color:blue;">&gt;</span>
    <span style="color:blue;">&lt;</span><span style="color:#a31515;">title</span><span style="color:blue;">&gt;</span><span style="color:blue;">&lt;/</span><span style="color:#a31515;">title</span><span style="color:blue;">&gt;</span>
<span style="color:blue;">&lt;/</span><span style="color:#a31515;">head</span><span style="color:blue;">&gt;</span>
<span style="color:blue;">&lt;</span><span style="color:#a31515;">body</span><span style="color:blue;">&gt;</span>
    <span style="color:blue;">&lt;</span><span style="color:#a31515;">form</span> <span style="color:red;">id</span><span style="color:blue;">=</span><span style="color:blue;">&quot;form1&quot;</span> <span style="color:red;">runat</span><span style="color:blue;">=</span><span style="color:blue;">&quot;server&quot;</span><span style="color:blue;">&gt;</span>
    <span style="color:blue;">&lt;</span><span style="color:#a31515;">Editor</span><span style="color:blue;">:</span><span style="color:#a31515;">FCKeditor</span> <span style="color:red;">ID</span><span style="color:blue;">=</span><span style="color:blue;">&quot;Editor&quot;</span> <span style="color:red;">runat</span><span style="color:blue;">=</span><span style="color:blue;">&quot;server&quot;</span><span style="color:blue;">&gt;</span><span style="color:blue;">&lt;/</span><span style="color:#a31515;">Editor</span><span style="color:blue;">:</span><span style="color:#a31515;">FCKeditor</span><span style="color:blue;">&gt;</span>
    <span style="color:blue;">&lt;/</span><span style="color:#a31515;">form</span><span style="color:blue;">&gt;</span>
<span style="color:blue;">&lt;/</span><span style="color:#a31515;">body</span><span style="color:blue;">&gt;</span>
<span style="color:blue;">&lt;/</span><span style="color:#a31515;">html</span><span style="color:blue;">&gt;</span></pre>
</div>
<p><a href="http://mredison.files.wordpress.com/2010/07/fckeditoraspnet_01.jpg"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="fckeditorASPNET_01" border="0" alt="fckeditorASPNET_01" src="http://mredison.files.wordpress.com/2010/07/fckeditoraspnet_01_thumb.jpg?w=624&#038;h=452" width="624" height="452" /></a> </p>
<p>En esta ocasión mostraremos como manipular archivos .txt para <strong>leer</strong> y <strong>escribir</strong> desde el FCKeditor.</p>
<p>4.- Agregamos una clase llamada<strong> Archivo.cs</strong>: Necesitamos agregar el espacio de nombres <strong>System.IO</strong></p>
<div style="background-color:white;color:black;">
<pre><span style="color:blue;">using</span> System;
<span style="color:blue;">using</span> System.Collections.Generic;
<span style="color:blue;">using</span> System.Linq;
<span style="color:blue;">using</span> System.Text;
<span style="color:blue;">using</span> System.IO;

<span style="color:blue;">namespace</span> iEduSoft
{
   <span style="color:blue;">public</span> <span style="color:blue;">class</span> Archivo
    {
       <span style="color:blue;">public</span> <span style="color:blue;">static</span> <span style="color:blue;">string</span> LeerTXT(<span style="color:blue;">string</span> rutaArchivo)
       {
           <span style="color:blue;">string</span> contenido=<span style="color:#a31515;">&quot;&quot;</span>;
           <span style="color:blue;">using</span>(StreamReader lector = File.OpenText(rutaArchivo))
           {
               contenido = lector.ReadToEnd();
               contenido = contenido.Replace(Environment.NewLine, <span style="color:#a31515;">&quot;&lt;br&gt;&quot;</span>);
           }
           <span style="color:blue;">return</span> contenido;
       }

       <span style="color:blue;">public</span> <span style="color:blue;">static</span> <span style="color:blue;">void</span> EscribirTXT(<span style="color:blue;">string</span> rutaArchivo,<span style="color:blue;">string</span> contenido)
       {
           <span style="color:blue;">using</span> (StreamWriter escritor = File.CreateText(rutaArchivo))
           {
               escritor.Write(contenido);
           }
       }
    }
}</pre>
</div>
<p>En esta clase tenemos dos métodos uno para leer archivos .txt y el otro para sobreescribir o escribir texto en ellos.</p>
<p>5.- Agregamos un botón de Actualizar.</p>
<p><a href="http://mredison.files.wordpress.com/2010/07/fckeditoraspnet_03.jpg"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="fckeditorASPNET_03" border="0" alt="fckeditorASPNET_03" src="http://mredison.files.wordpress.com/2010/07/fckeditoraspnet_03_thumb.jpg?w=608&#038;h=411" width="608" height="411" /></a> </p>
<p>6.- Dentro del evento Page Load podemos agregar nuestro método de lectura de archivo y dentro del evento click del botón el de escritura.</p>
<div style="background-color:white;color:black;">
<pre><span style="color:blue;">public</span> <span style="color:blue;">partial</span> <span style="color:blue;">class</span> _Default : System.Web.UI.Page
{
    <span style="color:blue;">protected</span> <span style="color:blue;">void</span> Page_Load(<span style="color:blue;">object</span> sender, EventArgs e)
    {
        <span style="color:blue;">if</span> (!Page.IsPostBack)
        {
            Editor.Value = Archivo.LeerTXT(Server.MapPath(<span style="color:#a31515;">&quot;Documentos/Post1.txt&quot;</span>));
        }
    }
    <span style="color:blue;">protected</span> <span style="color:blue;">void</span> btnActualizar_Click(<span style="color:blue;">object</span> sender, EventArgs e)
    {
       Archivo.EscribirTXT(Server.MapPath(<span style="color:#a31515;">&quot;Documentos/Post1.txt&quot;</span>), Editor.Value);
    }

}</pre>
</div>
<p>7.- Corremos la aplicación, y listo tenemos un editor online para nuestros sitios web ASP.NET.</p>
<p>Si lo vinculamos a alguna base de datos es mucho más fácil.</p>
<p><a href="http://mredison.files.wordpress.com/2010/07/fckeditoraspnet_04.jpg"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="fckeditorASPNET_04" border="0" alt="fckeditorASPNET_04" src="http://mredison.files.wordpress.com/2010/07/fckeditoraspnet_04_thumb.jpg?w=630&#038;h=314" width="630" height="314" /></a> </p>
<p>Saludos.</p>
<p><strong>Edison Daniel García Chiñas | Tecnologías Microsoft</strong></p>
<br />Filed under: <a href='http://mredison.wordpress.com/category/aspnet/'>ASP.NET</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mredison.wordpress.com/3039/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mredison.wordpress.com/3039/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mredison.wordpress.com/3039/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mredison.wordpress.com/3039/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mredison.wordpress.com/3039/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mredison.wordpress.com/3039/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mredison.wordpress.com/3039/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mredison.wordpress.com/3039/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mredison.wordpress.com/3039/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mredison.wordpress.com/3039/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mredison.wordpress.com/3039/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mredison.wordpress.com/3039/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mredison.wordpress.com/3039/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mredison.wordpress.com/3039/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mredison.wordpress.com&amp;blog=1322336&amp;post=3039&amp;subd=mredison&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mredison.wordpress.com/2010/07/17/editor-wysiwyg-para-asp-net/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/dba15c0598f013d1f1eb9faf2da1ef57?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">student</media:title>
		</media:content>

		<media:content url="http://mredison.files.wordpress.com/2010/07/fckeditoraspnet_02_thumb.jpg" medium="image">
			<media:title type="html">fckeditorASPNET_02</media:title>
		</media:content>

		<media:content url="http://mredison.files.wordpress.com/2010/07/fckeditoraspnet_01_thumb.jpg" medium="image">
			<media:title type="html">fckeditorASPNET_01</media:title>
		</media:content>

		<media:content url="http://mredison.files.wordpress.com/2010/07/fckeditoraspnet_03_thumb.jpg" medium="image">
			<media:title type="html">fckeditorASPNET_03</media:title>
		</media:content>

		<media:content url="http://mredison.files.wordpress.com/2010/07/fckeditoraspnet_04_thumb.jpg" medium="image">
			<media:title type="html">fckeditorASPNET_04</media:title>
		</media:content>
	</item>
		<item>
		<title>Utilizando filtros en DataView con ASP.NET</title>
		<link>http://mredison.wordpress.com/2010/07/10/utilizando-filtros-en-dataview-con-asp-net/</link>
		<comments>http://mredison.wordpress.com/2010/07/10/utilizando-filtros-en-dataview-con-asp-net/#comments</comments>
		<pubDate>Sat, 10 Jul 2010 03:29:28 +0000</pubDate>
		<dc:creator>mredison</dc:creator>
				<category><![CDATA[ASP.NET]]></category>

		<guid isPermaLink="false">https://mredison.wordpress.com/2010/07/10/utilizando-filtros-en-dataview-con-asp-net/</guid>
		<description><![CDATA[Definición de MSDN: DataView: Representa una vista personalizada que puede enlazar datos de un DataTable para ordenación, filtrado, búsqueda, edición y exploración. Dentro de nuestro DataView tenemos el miembro RowFilter el cual nos permite pasarle una expresión por la cual podemos filtrar los resultados de alguna consulta dentro de las clases de ADO.NET. Supongamos que [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mredison.wordpress.com&amp;blog=1322336&amp;post=3025&amp;subd=mredison&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Definición de <strong>MSDN</strong>: </p>
<blockquote><p><strong>DataView</strong>: Representa una vista personalizada que puede enlazar datos de un <a href="http://msdn.microsoft.com/es-es/library/system.data.datatable%28v=VS.80%29.aspx">DataTable</a> para ordenación, filtrado, búsqueda, edición y exploración.</p>
</blockquote>
<p>Dentro de nuestro <strong>DataView</strong> tenemos el miembro <strong>RowFilter</strong> el cual nos permite pasarle una expresión por la cual podemos filtrar los resultados de alguna consulta dentro de las clases de <strong>ADO.NET.</strong></p>
<p>Supongamos que tengamos una clase que tenga un método <em>ObtenerProductos()</em> que regresa un <strong>DataTable</strong> con el resultado de la consulta.</p>
<div style="background-color:white;color:black;">
<pre><span style="color:blue;">using</span> System;
<span style="color:blue;">using</span> System.Collections.Generic;
<span style="color:blue;">using</span> System.Linq;
<span style="color:blue;">using</span> System.Web;
<span style="color:blue;">using</span> System.Data;
<span style="color:blue;">using</span> System.Data.SqlClient;
<span style="color:blue;">using</span> System.Configuration;

<span style="color:blue;">public</span> <span style="color:blue;">class</span> Datos
{
    <span style="color:blue;">public</span> <span style="color:blue;">static</span> DataTable ObtenerProductos()
    {
        <span style="color:blue;">string</span> cadenaConexion = <span style="color:#a31515;">&quot;&quot;</span>;
        DataSet ds;
        <span style="color:blue;">using</span> (SqlConnection conexion = <span style="color:blue;">new</span> SqlConnection(cadenaConexion))
        {
            <span style="color:blue;">string</span> consulta = <span style="color:#a31515;">&quot;SELECT * FROM PRODUCTOS&quot;</span>;
            <span style="color:blue;">using</span> (SqlCommand comando = <span style="color:blue;">new</span> SqlCommand(consulta, conexion))
            {
                conexion.Open();
               ds = <span style="color:blue;">new</span> DataSet();
               SqlDataAdapter adaptador = <span style="color:blue;">new</span> SqlDataAdapter(comando);
               adaptador.Fill(ds);

            }
        }

        <span style="color:blue;">return</span> ds.Tables[0];
    }
}</pre>
</div>
<div style="background-color:white;color:black;">Dentro de nuestro formulario web tenemos un TextBox, Button y un GridView como se muestra a continuación:</div>
<div style="background-color:white;color:black;">
<pre><span style="color:blue;">&lt;</span><span style="color:#a31515;">html</span> <span style="color:red;">xmlns</span><span style="color:blue;">=</span><span style="color:blue;">&quot;http://www.w3.org/1999/xhtml&quot;</span><span style="color:blue;">&gt;</span>
<span style="color:blue;">&lt;</span><span style="color:#a31515;">head</span> <span style="color:red;">runat</span><span style="color:blue;">=</span><span style="color:blue;">&quot;server&quot;</span><span style="color:blue;">&gt;</span>
    <span style="color:blue;">&lt;</span><span style="color:#a31515;">title</span><span style="color:blue;">&gt;</span><span style="color:blue;">&lt;/</span><span style="color:#a31515;">title</span><span style="color:blue;">&gt;</span>
<span style="color:blue;">&lt;/</span><span style="color:#a31515;">head</span><span style="color:blue;">&gt;</span>
<span style="color:blue;">&lt;</span><span style="color:#a31515;">body</span><span style="color:blue;">&gt;</span>
    <span style="color:blue;">&lt;</span><span style="color:#a31515;">form</span> <span style="color:red;">id</span><span style="color:blue;">=</span><span style="color:blue;">&quot;form1&quot;</span> <span style="color:red;">runat</span><span style="color:blue;">=</span><span style="color:blue;">&quot;server&quot;</span><span style="color:blue;">&gt;</span>
    <span style="color:blue;">&lt;</span><span style="color:#a31515;">div</span><span style="color:blue;">&gt;</span>
        <span style="color:blue;">&lt;</span><span style="color:#a31515;">asp</span><span style="color:blue;">:</span><span style="color:#a31515;">TextBox</span> <span style="color:red;">ID</span><span style="color:blue;">=</span><span style="color:blue;">&quot;txtBusqueda&quot;</span> <span style="color:red;">runat</span><span style="color:blue;">=</span><span style="color:blue;">&quot;server&quot;</span> <span style="color:blue;">/&gt;</span>
        <span style="color:blue;">&lt;</span><span style="color:#a31515;">asp</span><span style="color:blue;">:</span><span style="color:#a31515;">Button</span> <span style="color:red;">ID</span><span style="color:blue;">=</span><span style="color:blue;">&quot;btnBuscar&quot;</span> <span style="color:red;">runat</span><span style="color:blue;">=</span><span style="color:blue;">&quot;server&quot;</span>
         <span style="color:red;">Text</span><span style="color:blue;">=</span><span style="color:blue;">&quot;Buscar&quot;</span> <span style="color:red;">onclick</span><span style="color:blue;">=</span><span style="color:blue;">&quot;btnBuscar_Click&quot;</span> <span style="color:blue;">/&gt;</span>
         <span style="color:blue;">&lt;</span><span style="color:#a31515;">br</span> <span style="color:blue;">/&gt;</span>
        <span style="color:blue;">&lt;</span><span style="color:#a31515;">asp</span><span style="color:blue;">:</span><span style="color:#a31515;">GridView</span> <span style="color:red;">ID</span><span style="color:blue;">=</span><span style="color:blue;">&quot;gvProductos&quot;</span> <span style="color:red;">runat</span><span style="color:blue;">=</span><span style="color:blue;">&quot;server&quot;</span> <span style="color:blue;">/&gt;</span>
    <span style="color:blue;">&lt;/</span><span style="color:#a31515;">div</span><span style="color:blue;">&gt;</span>
    <span style="color:blue;">&lt;/</span><span style="color:#a31515;">form</span><span style="color:blue;">&gt;</span>
<span style="color:blue;">&lt;/</span><span style="color:#a31515;">body</span><span style="color:blue;">&gt;</span>
<span style="color:blue;">&lt;/</span><span style="color:#a31515;">html</span><span style="color:blue;">&gt;</span></pre>
</div>
<p>Dentro del <strong>Page_Load</strong> de nuestra página podemos obtener los datos y guardarlos en una variable <strong>Session</strong> para posteriormente ocuparlos en el filtro.</p>
<div style="background-color:white;color:black;">
<pre> <span style="color:blue;">protected</span> <span style="color:blue;">void</span> Page_Load(<span style="color:blue;">object</span> sender, EventArgs e)
    {
        gvProductos.DataSource = Datos.ObtenerProductos();
        gvProductos.DataBind();
        Session[<span style="color:#a31515;">&quot;ds&quot;</span>] = Datos.ObtenerProductos();
    }</pre>
</div>
<p>Por ejemplo si generamos el evento Click del button, podemos escribir el siguiente código en donde creamos un <strong>DataView</strong> del DataTable existente, pasandole la expresión y asignandole el datasource al gridview para que muestre los datos.</p>
<div style="background-color:white;color:black;">
<pre> <span style="color:blue;">protected</span> <span style="color:blue;">void</span> btnBuscar_Click(<span style="color:blue;">object</span> sender, EventArgs e)
    {
        DataTable dt = Session[<span style="color:#a31515;">&quot;ds&quot;</span>] <span style="color:blue;">as</span> DataTable;
        DataView dv = dt.DefaultView;
        dv.RowFilter = <span style="color:#a31515;">&quot;Nombre LIKE '&quot;</span> + txtBusqueda.Text+ <span style="color:#a31515;">&quot;%'&quot;</span>;
        gvProductos.DataSource = dv;
        gvProductos.DataBind();
    }</pre>
</div>
<p>Colocamos el filtro que nosotros queramos, en este caso filtraré mis resultados por nombre, tanto como el RowFilter también pueden ocupar el método Sort para ordenar los resultados.</p>
<p>Referencia MSDN: <a title="http://msdn.microsoft.com/es-es/library/system.data.dataview.rowfilter%28v=VS.80%29.aspx" href="http://msdn.microsoft.com/es-es/library/system.data.dataview.rowfilter%28v=VS.80%29.aspx">http://msdn.microsoft.com/es-es/library/system.data.dataview.rowfilter%28v=VS.80%29.aspx</a></p>
<p><strong>Edison Daniel García Chiñas | Tecnologías Microsoft</strong></p>
<br />Filed under: <a href='http://mredison.wordpress.com/category/aspnet/'>ASP.NET</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mredison.wordpress.com/3025/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mredison.wordpress.com/3025/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mredison.wordpress.com/3025/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mredison.wordpress.com/3025/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mredison.wordpress.com/3025/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mredison.wordpress.com/3025/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mredison.wordpress.com/3025/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mredison.wordpress.com/3025/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mredison.wordpress.com/3025/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mredison.wordpress.com/3025/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mredison.wordpress.com/3025/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mredison.wordpress.com/3025/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mredison.wordpress.com/3025/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mredison.wordpress.com/3025/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mredison.wordpress.com&amp;blog=1322336&amp;post=3025&amp;subd=mredison&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mredison.wordpress.com/2010/07/10/utilizando-filtros-en-dataview-con-asp-net/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/dba15c0598f013d1f1eb9faf2da1ef57?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">student</media:title>
		</media:content>
	</item>
		<item>
		<title>Aprende Script, HTML y CSS con Microsoft</title>
		<link>http://mredison.wordpress.com/2010/07/10/aprende-script-html-y-css-con-microsoft/</link>
		<comments>http://mredison.wordpress.com/2010/07/10/aprende-script-html-y-css-con-microsoft/#comments</comments>
		<pubDate>Sat, 10 Jul 2010 02:39:01 +0000</pubDate>
		<dc:creator>mredison</dc:creator>
				<category><![CDATA[ASP.NET]]></category>

		<guid isPermaLink="false">https://mredison.wordpress.com/2010/07/10/aprende-script-html-y-css-con-microsoft/</guid>
		<description><![CDATA[No hay excusa para aprender scripting &#8211; Serious Web Development. Una nueva sección de Microsoft en el cual podemos enfocarnos a aprender script del lado del cliente y utilizarlo en nuestras aplicaciones web. &#160; URL: http://msdn.microsoft.com/es-mx/scriptjunkie/default Edison Daniel García Chiñas &#124; Tecnologías Microsoft Filed under: ASP.NET<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mredison.wordpress.com&amp;blog=1322336&amp;post=3024&amp;subd=mredison&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h5>No hay excusa para aprender scripting &#8211; Serious Web Development.</h5>
<h5>Una nueva sección de <strong>Microsoft</strong> en el cual podemos enfocarnos a aprender script del lado del cliente y utilizarlo en nuestras aplicaciones web.</h5>
<h5>&#160;</h5>
<h5>URL: <a href="http://msdn.microsoft.com/es-mx/scriptjunkie/default">http://msdn.microsoft.com/es-mx/scriptjunkie/default</a></h5>
<p><a href="http://msdn.microsoft.com/es-mx/scriptjunkie/default" target="_blank"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="scriptMicrosoft" border="0" alt="scriptMicrosoft" src="http://mredison.files.wordpress.com/2010/07/scriptmicrosoft.png?w=603&#038;h=103" width="603" height="103" /></a> </p>
<p><strong>Edison Daniel García Chiñas | Tecnologías Microsoft</strong></p>
<br />Filed under: <a href='http://mredison.wordpress.com/category/aspnet/'>ASP.NET</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mredison.wordpress.com/3024/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mredison.wordpress.com/3024/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mredison.wordpress.com/3024/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mredison.wordpress.com/3024/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mredison.wordpress.com/3024/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mredison.wordpress.com/3024/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mredison.wordpress.com/3024/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mredison.wordpress.com/3024/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mredison.wordpress.com/3024/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mredison.wordpress.com/3024/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mredison.wordpress.com/3024/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mredison.wordpress.com/3024/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mredison.wordpress.com/3024/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mredison.wordpress.com/3024/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mredison.wordpress.com&amp;blog=1322336&amp;post=3024&amp;subd=mredison&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mredison.wordpress.com/2010/07/10/aprende-script-html-y-css-con-microsoft/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/dba15c0598f013d1f1eb9faf2da1ef57?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">student</media:title>
		</media:content>

		<media:content url="http://mredison.files.wordpress.com/2010/07/scriptmicrosoft.png" medium="image">
			<media:title type="html">scriptMicrosoft</media:title>
		</media:content>
	</item>
		<item>
		<title>Modulo de Twitter para ASP.NET</title>
		<link>http://mredison.wordpress.com/2010/07/09/modulo-de-twitter-para-asp-net/</link>
		<comments>http://mredison.wordpress.com/2010/07/09/modulo-de-twitter-para-asp-net/#comments</comments>
		<pubDate>Fri, 09 Jul 2010 06:33:18 +0000</pubDate>
		<dc:creator>mredison</dc:creator>
				<category><![CDATA[ASP.NET]]></category>

		<guid isPermaLink="false">https://mredison.wordpress.com/2010/07/09/modulo-de-twitter-para-asp-net/</guid>
		<description><![CDATA[Para hacer un módulo de Twitter para nuestra página ASP.NET es muy simple y rápido. &#160; Crea una clase Twitter como la siguiente: public class Twitter { public string Mensaje { get; set; } public DateTime FechaPublicacion { get; set; } public string Link { get; set; } } Debemos de crear un método dentro [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mredison.wordpress.com&amp;blog=1322336&amp;post=3022&amp;subd=mredison&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div style="background-color:white;color:black;">Para hacer un módulo de Twitter para nuestra página ASP.NET es muy simple y rápido.</div>
<div style="background-color:white;color:black;">&#160;</div>
<div style="background-color:white;color:black;">Crea una clase Twitter como la siguiente:</div>
<div style="background-color:white;color:black;">
<pre>
<span style="color:blue;">public</span> <span style="color:blue;">class</span> Twitter
{
    <span style="color:blue;">public</span> <span style="color:blue;">string</span> Mensaje { <span style="color:blue;">get</span>; <span style="color:blue;">set</span>; }
    <span style="color:blue;">public</span> DateTime FechaPublicacion { <span style="color:blue;">get</span>; <span style="color:blue;">set</span>; }
    <span style="color:blue;">public</span> <span style="color:blue;">string</span> Link { <span style="color:blue;">get</span>; <span style="color:blue;">set</span>; }
}</pre>
</div>
<p>Debemos de crear un método dentro de nuestra clase que nos regrese una lista de tweets, pasando como parámetros el nombre del usuario y cuantos mensajes queremos mostrar.</p>
<p>Importamos <strong>System.Configuration</strong> para poder utilizar los <strong>AppSettings</strong> desde nuestro web.config, en donde vamos a colocar la url para obtener los mensajes de determinado usuario.</p>
<div style="background-color:white;color:black;">
<pre><span style="color:blue;">public</span> <span style="color:blue;">static</span> List&lt;Twitter&gt; Mensajes(<span style="color:blue;">string</span> usuario, <span style="color:blue;">int</span> numeroMensajes)
    {
        <span style="color:blue;">var</span> mensajes = <span style="color:blue;">new</span> List&lt;Twitter&gt;();
        <span style="color:blue;">var</span> url = ConfigurationManager.AppSettings[<span style="color:#a31515;">&quot;TwitterFeedUrl&quot;</span>] + usuario + <span style="color:#a31515;">&quot;.rss&quot;</span>;

        <span style="color:blue;">try</span>
        {
            <span style="color:blue;">var</span> doc = XElement.Load(url);
            <span style="color:blue;">var</span> mensajesXML = (<span style="color:blue;">from</span> item <span style="color:blue;">in</span> doc.Element(<span style="color:#a31515;">&quot;channel&quot;</span>).Elements(<span style="color:#a31515;">&quot;item&quot;</span>) <span style="color:blue;">select</span> item).Take(numeroMensajes);

            <span style="color:blue;">foreach</span> (XElement elm <span style="color:blue;">in</span> mensajesXML)
            {
                <span style="color:blue;">var</span> msg = <span style="color:blue;">new</span> Twitter();
                msg.Mensaje = elm.Element(<span style="color:#a31515;">&quot;description&quot;</span>).Value.Replace(usuario + <span style="color:#a31515;">&quot;: &quot;</span>, <span style="color:#a31515;">&quot;&quot;</span>);
                msg.FechaPublicacion = DateTime.Parse(elm.Element(<span style="color:#a31515;">&quot;pubDate&quot;</span>).Value);
                msg.Link = elm.Element(<span style="color:#a31515;">&quot;link&quot;</span>).Value;
                mensajes.Add(msg);
            }
        }
        <span style="color:blue;">catch</span> (Exception)
        {
            <span style="color:blue;">throw</span> <span style="color:blue;">new</span> Exception(<span style="color:#a31515;">&quot;Hubo un error al obtener los tweets.&quot;</span>);
        }

        <span style="color:blue;">return</span> mensajes;
    }</pre>
</div>
<p>Podemos utilizar un <strong>Repeater</strong> Control para mostrar nuestros mensajes en la página, y podemos configurarlo de la siguiente manera:</p>
<div style="background-color:white;color:black;">
<pre>

<span style="color:blue;">&lt;</span><span style="color:#a31515;">asp</span><span style="color:blue;">:</span><span style="color:#a31515;">Repeater</span> <span style="color:red;">ID</span><span style="color:blue;">=</span><span style="color:blue;">&quot;rptTwitterMensajes&quot;</span> <span style="color:red;">runat</span><span style="color:blue;">=</span><span style="color:blue;">&quot;server&quot;</span><span style="color:blue;">&gt;</span>
<span style="color:blue;"><font color="#000000">   </font>&lt;</span><span style="color:#a31515;">HeaderTemplate</span><span style="color:blue;">&gt;</span><span style="color:blue;">&lt;</span><span style="color:#a31515;">ul</span><span style="color:blue;">&gt;</span><span style="color:blue;">&lt;/</span><span style="color:#a31515;">HeaderTemplate</span><span style="color:blue;">&gt;</span>
<span style="color:blue;"><font color="#000000">    </font>&lt;</span><span style="color:#a31515;">ItemTemplate</span><span style="color:blue;">&gt;</span>
                <span style="color:blue;">&lt;</span><span style="color:#a31515;">li</span><span style="color:blue;">&gt;</span><span style="background-color:yellow;">&lt;%</span>#((Twitter)Container.DataItem).Mensaje <span style="background-color:yellow;">%&gt;</span>
                (<span style="color:blue;">&lt;</span><span style="color:#a31515;">a</span> <span style="color:red;">href</span><span style="color:blue;">=</span><span style="color:blue;">&quot;&lt;%#((Twitter)Container.DataItem).Link %&gt;&quot;</span><span style="color:blue;">&gt;</span>
                <span style="background-color:yellow;">&lt;%</span>#((Twitter)Container.DataItem).FechaPublicacion <span style="background-color:yellow;">%&gt;</span><span style="color:blue;">&lt;/</span><span style="color:#a31515;">a</span><span style="color:blue;">&gt;</span>)
                <span style="color:blue;">&lt;/</span><span style="color:#a31515;">li</span><span style="color:blue;">&gt;</span>
    <span style="color:blue;">&lt;/</span><span style="color:#a31515;">ItemTemplate</span><span style="color:blue;">&gt;</span>

    <span style="color:blue;">&lt;</span><span style="color:#a31515;">FooterTemplate</span><span style="color:blue;">&gt;</span><span style="color:blue;">&lt;/</span><span style="color:#a31515;">ul</span><span style="color:blue;">&gt;</span><span style="color:blue;">&lt;/</span><span style="color:#a31515;">FooterTemplate</span><span style="color:blue;">&gt;</span>
    <span style="color:blue;">&lt;</span><span style="color:#a31515;">SeparatorTemplate</span><span style="color:blue;">&gt;</span>
                <span style="color:blue;">&lt;</span><span style="color:#a31515;">hr</span> <span style="color:blue;">/&gt;</span>
    <span style="color:blue;">&lt;/</span><span style="color:#a31515;">SeparatorTemplate</span><span style="color:blue;">&gt;</span>

<span style="color:blue;"></span><span style="color:blue;">&lt;/</span><span style="color:#a31515;">asp</span><span style="color:blue;">:</span><span style="color:#a31515;">Repeater</span><span style="color:blue;">&gt;</span>

</pre>
</div>
<p>Ahora programaremos como pasarle los datos al datasource del repeater:</p>
<div style="background-color:white;color:black;">
<pre><span style="color:blue;">protected</span> <span style="color:blue;">void</span> Page_Load(<span style="color:blue;">object</span> sender, EventArgs e)
    {
        <span style="color:blue;">string</span> nombreUsuario = <span style="color:#a31515;">&quot;miUsuarioTwitter&quot;</span>;
        List&lt;Twitter&gt; mensajes = Twitter.Mensajes(nombreUsuario, 3);
        <span style="color:blue;">if</span> (mensajes.Count &gt; 0)
        {
            rptTwitterMensajes.DataSource = mensajes;
            rptTwitterMensajes.DataBind();
            ltUltimoElemento.Text = mensajes[0].Mensaje
                + <span style="color:#a31515;">&quot;(&lt;a href=\&quot;&quot;</span> + mensajes[0].Link + <span style="color:#a31515;">&quot;\&quot;&gt;&quot;</span>
                + mensajes[0].FechaPublicacion + <span style="color:#a31515;">&quot;&lt;/a&gt;)&quot;</span>;
        }

    }</pre>
</div>
<p>Por último solo nos falta configurar el web.config en la sección de AppSettings.</p>
<div style="background-color:white;color:black;">
<pre><span style="color:blue;">&lt;</span><span style="color:#a31515;">appSettings</span><span style="color:blue;">&gt;</span>
<span style="color:blue;">&lt;</span><span style="color:#a31515;">add</span> <span style="color:red;">key</span><span style="color:blue;">=</span><span style="color:blue;">&quot;TwitterFeedUrl&quot;</span> <span style="color:red;">value</span><span style="color:blue;">=</span><span style="color:blue;">&quot;http://twitter.com/statuses/user_timeline/&quot;</span> <span style="color:blue;">/&gt;</span>
<span style="color:blue;">&lt;/</span><span style="color:#a31515;">appSettings</span><span style="color:blue;">&gt;</span></pre>
</div>
<p>Y listo:</p>
<p><a href="http://mredison.files.wordpress.com/2010/07/twittermoduleaspnet.png"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="twitterModuleASPNET" border="0" alt="twitterModuleASPNET" src="http://mredison.files.wordpress.com/2010/07/twittermoduleaspnet_thumb.png?w=239&#038;h=285" width="239" height="285" /></a> </p>
<p><strong>Edison Daniel García Chiñas | Tecnologías Microsoft</strong></p>
<br />Filed under: <a href='http://mredison.wordpress.com/category/aspnet/'>ASP.NET</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mredison.wordpress.com/3022/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mredison.wordpress.com/3022/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mredison.wordpress.com/3022/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mredison.wordpress.com/3022/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mredison.wordpress.com/3022/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mredison.wordpress.com/3022/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mredison.wordpress.com/3022/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mredison.wordpress.com/3022/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mredison.wordpress.com/3022/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mredison.wordpress.com/3022/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mredison.wordpress.com/3022/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mredison.wordpress.com/3022/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mredison.wordpress.com/3022/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mredison.wordpress.com/3022/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mredison.wordpress.com&amp;blog=1322336&amp;post=3022&amp;subd=mredison&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mredison.wordpress.com/2010/07/09/modulo-de-twitter-para-asp-net/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/dba15c0598f013d1f1eb9faf2da1ef57?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">student</media:title>
		</media:content>

		<media:content url="http://mredison.files.wordpress.com/2010/07/twittermoduleaspnet_thumb.png" medium="image">
			<media:title type="html">twitterModuleASPNET</media:title>
		</media:content>
	</item>
		<item>
		<title>Usar cache en ASP.NET para mejorar el tiempo de respuesta</title>
		<link>http://mredison.wordpress.com/2010/06/29/usar-cache-en-asp-net-para-mejorar-el-tiempo-de-respuesta/</link>
		<comments>http://mredison.wordpress.com/2010/06/29/usar-cache-en-asp-net-para-mejorar-el-tiempo-de-respuesta/#comments</comments>
		<pubDate>Tue, 29 Jun 2010 03:13:45 +0000</pubDate>
		<dc:creator>mredison</dc:creator>
				<category><![CDATA[ASP.NET]]></category>

		<guid isPermaLink="false">https://mredison.wordpress.com/2010/06/29/usar-cache-en-asp-net-para-mejorar-el-tiempo-de-respuesta/</guid>
		<description><![CDATA[Recomiendo usar cache cuando manejemos datos, asi mejoramos el performance de nuestra aplicación web,&#160; en el primer post back podemos guardar los datos en cache, y así utilizarlos en las demás peticiones que hagamos al servidor agilizando el cargado de los datos. Podemos programar el tiempo que durará la cache dentro de su método Cache.Insert() [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mredison.wordpress.com&amp;blog=1322336&amp;post=3018&amp;subd=mredison&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Recomiendo usar cache cuando manejemos datos, asi mejoramos el performance de nuestra aplicación web,&#160; en el primer post back podemos guardar los datos en cache, y así utilizarlos en las demás peticiones que hagamos al servidor agilizando el cargado de los datos.</p>
<p>Podemos programar el tiempo que durará la cache dentro de su método <strong>Cache.Insert()</strong></p>
<div style="background-color:white;color:black;">
<pre>
        <span style="color:blue;">if</span> (Cache[<span style="color:#a31515;">&quot;dsRestaurante&quot;</span>] == <span style="color:blue;">null</span>)
        {
            <span style="color:blue;">string</span> cadenaConexion = ConfigurationManager.ConnectionStrings[<span style="color:#a31515;">&quot;CadenaConexion&quot;</span>].ConnectionString;
            DataSet ds;
            <span style="color:blue;">using</span> (SqlConnection conexion = <span style="color:blue;">new</span> SqlConnection(cadenaConexion))
            {
                <span style="color:blue;">string</span> sql = <span style="color:#a31515;">&quot;SELECT * FROM Productos&quot;</span>;
                <span style="color:blue;">using</span> (SqlCommand comando = <span style="color:blue;">new</span> SqlCommand(sql, conexion))
                {
                    conexion.Open();
                    SqlDataAdapter adaptador = <span style="color:blue;">new</span> SqlDataAdapter(comando);
                    ds = <span style="color:blue;">new</span> DataSet();
                    adaptador.Fill(ds);

                    Cache.Insert(<span style="color:#a31515;">&quot;dsRestaurante&quot;</span>, ds, <span style="color:blue;">null</span>, DateTime.Now.AddDays(1), TimeSpan.Zero);
                }
            }

            gvProductos.DataSource = Cache[<span style="color:#a31515;">&quot;dsRestaurante&quot;</span>];
            gvProductos.DataBind();

        }
        <span style="color:blue;">else</span>
        {
            gvProductos.DataSource = Cache[<span style="color:#a31515;">&quot;dsRestaurante&quot;</span>];
            gvProductos.DataBind();
        }</pre>
</div>
<div style="background-color:white;color:black;">Referencia MSDN: <a title="http://msdn.microsoft.com/en-us/library/ms227644(VS.90).aspx" href="http://msdn.microsoft.com/en-us/library/ms227644(VS.90).aspx">http://msdn.microsoft.com/en-us/library/ms227644(VS.90).aspx</a></div>
<div style="background-color:white;color:black;">&#160;</div>
<p><strong>Edison Daniel García Chiñas | Microsoft Technology Specialist</strong></p>
<br />Filed under: <a href='http://mredison.wordpress.com/category/aspnet/'>ASP.NET</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mredison.wordpress.com/3018/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mredison.wordpress.com/3018/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mredison.wordpress.com/3018/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mredison.wordpress.com/3018/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mredison.wordpress.com/3018/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mredison.wordpress.com/3018/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mredison.wordpress.com/3018/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mredison.wordpress.com/3018/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mredison.wordpress.com/3018/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mredison.wordpress.com/3018/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mredison.wordpress.com/3018/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mredison.wordpress.com/3018/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mredison.wordpress.com/3018/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mredison.wordpress.com/3018/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mredison.wordpress.com&amp;blog=1322336&amp;post=3018&amp;subd=mredison&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mredison.wordpress.com/2010/06/29/usar-cache-en-asp-net-para-mejorar-el-tiempo-de-respuesta/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/dba15c0598f013d1f1eb9faf2da1ef57?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">student</media:title>
		</media:content>
	</item>
		<item>
		<title>&#191;Por qu&#233; utilizar el using en Conexiones SQL con C#?</title>
		<link>http://mredison.wordpress.com/2010/06/28/por-qu-utilizar-el-using-en-conexiones-sql-con-c/</link>
		<comments>http://mredison.wordpress.com/2010/06/28/por-qu-utilizar-el-using-en-conexiones-sql-con-c/#comments</comments>
		<pubDate>Mon, 28 Jun 2010 20:56:29 +0000</pubDate>
		<dc:creator>mredison</dc:creator>
				<category><![CDATA[ADO.NET]]></category>
		<category><![CDATA[ASP.NET]]></category>

		<guid isPermaLink="false">https://mredison.wordpress.com/2010/06/28/por-qu-utilizar-el-using-en-conexiones-sql-con-c/</guid>
		<description><![CDATA[Por lo regular todos utilizamos el siguiente bloque para conectarnos a SQLServer y ejecutar sentencias: string cadenaConexion = &#34;&#34;; SqlConnection conexion = new SqlConnection(); conexion.ConnectionString = cadenaConexion; try { conexion.Open(); SqlCommand comando = new SqlCommand(); comando.CommandText = &#34;&#34;; comando.ExecuteNonQuery(); } catch (Exception) { } finally { conexion.Close(); } El problema es que los objetos SqlConnection [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mredison.wordpress.com&amp;blog=1322336&amp;post=3017&amp;subd=mredison&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Por lo regular todos utilizamos el siguiente bloque para conectarnos a SQLServer y ejecutar sentencias:</p>
<div style="background-color:white;color:black;">
<pre> <span style="color:blue;">string</span> cadenaConexion = <span style="color:#a31515;">&quot;&quot;</span>;
        SqlConnection conexion = <span style="color:blue;">new</span> SqlConnection();
        conexion.ConnectionString = cadenaConexion;

        <span style="color:blue;">try</span>
        {
            conexion.Open();

            SqlCommand comando = <span style="color:blue;">new</span> SqlCommand();
            comando.CommandText = <span style="color:#a31515;">&quot;&quot;</span>;
            comando.ExecuteNonQuery();

        }
        <span style="color:blue;">catch</span> (Exception)
        {

        }
        <span style="color:blue;">finally</span>
        {
            conexion.Close();
        }</pre>
</div>
<p>El problema es que los objetos <strong>SqlConnection</strong> y <strong>SqlCommand</strong>&#160; implementan la interfaz <strong>IDisposable</strong> eso significa que podemos eliminar cualquier recurso no manegado de la memoria para limpiarla, y además debemos de asegurarnos de llamar el método Dispose() apesar de que ocurra cualquier excepción. Así que podemos utilizar los bloques Using() para este problema:</p>
<div style="background-color:white;color:black;">
<pre><span style="color:blue;">string</span> cadenaConexion = <span style="color:#a31515;">&quot;&quot;</span>;

        <span style="color:blue;">using</span> (SqlConnection conexion = <span style="color:blue;">new</span> SqlConnection(cadenaConexion))
        {
            <span style="color:blue;">using</span>(SqlCommand comando = <span style="color:blue;">new</span> SqlCommand(<span style="color:#a31515;">&quot;&quot;</span>,conexion))
            {
                conexion.Open();
                comando.ExecuteNonQuery();
            }
        }</pre>
</div>
<p>Con esta forma, no necesitamos colocar la sentencia de connexion.Close() ya que el mismo bloque lo hace al finalizar, además que internamente checa el estado de la conexión , la cierra y la destruye y manda a llamar el método Dispose() liberando recursos de la memoria.</p>
<p><strong>Edison Daniel García Chiñas | Microsoft Student Partner</strong></p>
<br />Filed under: <a href='http://mredison.wordpress.com/category/ado-net/'>ADO.NET</a>, <a href='http://mredison.wordpress.com/category/aspnet/'>ASP.NET</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mredison.wordpress.com/3017/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mredison.wordpress.com/3017/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mredison.wordpress.com/3017/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mredison.wordpress.com/3017/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mredison.wordpress.com/3017/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mredison.wordpress.com/3017/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mredison.wordpress.com/3017/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mredison.wordpress.com/3017/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mredison.wordpress.com/3017/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mredison.wordpress.com/3017/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mredison.wordpress.com/3017/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mredison.wordpress.com/3017/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mredison.wordpress.com/3017/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mredison.wordpress.com/3017/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mredison.wordpress.com&amp;blog=1322336&amp;post=3017&amp;subd=mredison&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mredison.wordpress.com/2010/06/28/por-qu-utilizar-el-using-en-conexiones-sql-con-c/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/dba15c0598f013d1f1eb9faf2da1ef57?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">student</media:title>
		</media:content>
	</item>
		<item>
		<title>Como obtener las bases de datos de una instancia SQL Server en ASP.NET</title>
		<link>http://mredison.wordpress.com/2010/06/24/como-obtener-las-bases-de-datos-de-una-instancia-sql-server-en-asp-net/</link>
		<comments>http://mredison.wordpress.com/2010/06/24/como-obtener-las-bases-de-datos-de-una-instancia-sql-server-en-asp-net/#comments</comments>
		<pubDate>Thu, 24 Jun 2010 19:09:43 +0000</pubDate>
		<dc:creator>mredison</dc:creator>
				<category><![CDATA[ASP.NET]]></category>

		<guid isPermaLink="false">https://mredison.wordpress.com/2010/06/24/como-obtener-las-bases-de-datos-de-una-instancia-sql-server-en-asp-net/</guid>
		<description><![CDATA[En la clase Connection existe una implementación del método GetSchema() que nos permite obtener información acerca de la base de datos en el que estamos actualmente conectados y si nosotros mandamos a llamar ese método nos regresará un DataTable con la información solicitada. Dentro de los parametros que le podamos pasar a este método, se [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mredison.wordpress.com&amp;blog=1322336&amp;post=3015&amp;subd=mredison&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>En la clase <strong>Connection</strong> existe una implementación del método <strong>GetSchema()</strong> que nos permite obtener información acerca de la base de datos en el que estamos actualmente conectados y si nosotros mandamos a llamar ese método nos regresará un <strong>DataTable</strong> con la información solicitada.</p>
<p>Dentro de los parametros que le podamos pasar a este método, se encuentra&#160; “<strong><font color="#ff0000">Databases</font></strong>” para obtener las bases de datos que están dentro de la instancia actual. Veamos el ejemplo:</p>
<p><strong>Código C#:</strong></p>
<div style="background-color:white;color:black;">
<pre> <span style="color:blue;">public</span> <span style="color:blue;">static</span> DataTable GetDataBases()
    {
         SqlConnection connection = <span style="color:blue;">new</span> SqlConnection(ConnectionString);
         DataTable dtDataBases = <span style="color:blue;">new</span> DataTable();
        <span style="color:blue;">try</span>
        {
            connection.Open();
            dtDataBases = connection.GetSchema(<span style="color:#a31515;">&quot;Databases&quot;</span>);
        }
        <span style="color:blue;">catch</span> (SqlException ex)
        {
            <span style="color:blue;">throw</span> ex;

        }
        <span style="color:blue;">finally</span>
        {
            connection.Close();
        }
        <span style="color:blue;">return</span> dtDataBases;
    }</pre>
</div>
<p><strong>Diseño: DropdownList</strong> </p>
<p><a href="http://mredison.files.wordpress.com/2010/06/getdatabasessqlserver01.jpg"><u></u><img style="border-bottom:0;border-left:0;display:block;float:none;margin-left:auto;border-top:0;margin-right:auto;border-right:0;" title="GetDatabases-SQLSERVER-01" border="0" alt="GetDatabases-SQLSERVER-01" src="http://mredison.files.wordpress.com/2010/06/getdatabasessqlserver01_thumb.jpg?w=570&#038;h=221" width="570" height="221" /></a></p>
<p><strong> Código ASP.NET</strong></p>
<div style="background-color:white;color:black;">
<pre>&#160;&#160;&#160;&#160;&#160;&#160;&#160; ddDataBases.DataSource = GetDataBases();
        ddDataBases.DataTextField = <span style="color:#a31515;">&quot;database_name&quot;</span>;
        ddDataBases.DataValueField = <span style="color:#a31515;">&quot;database_name&quot;</span>;
        ddDataBases.DataBind();</pre>
</div>
<p><strong>Preview:</strong></p>
<p><a href="http://mredison.files.wordpress.com/2010/06/getdatabasessqlserver02.jpg"><u></u><img style="border-bottom:0;border-left:0;display:block;float:none;margin-left:auto;border-top:0;margin-right:auto;border-right:0;" title="GetDatabases-SQLSERVER-02" border="0" alt="GetDatabases-SQLSERVER-02" src="http://mredison.files.wordpress.com/2010/06/getdatabasessqlserver02_thumb.jpg?w=447&#038;h=253" width="447" height="253" /></a> </p>
<p><strong>Edison Daniel García Chiñas</strong></p>
<p>Microsoft Student Partner | Microsoft México</p>
<br />Filed under: <a href='http://mredison.wordpress.com/category/aspnet/'>ASP.NET</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mredison.wordpress.com/3015/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mredison.wordpress.com/3015/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mredison.wordpress.com/3015/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mredison.wordpress.com/3015/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mredison.wordpress.com/3015/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mredison.wordpress.com/3015/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mredison.wordpress.com/3015/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mredison.wordpress.com/3015/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mredison.wordpress.com/3015/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mredison.wordpress.com/3015/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mredison.wordpress.com/3015/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mredison.wordpress.com/3015/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mredison.wordpress.com/3015/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mredison.wordpress.com/3015/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mredison.wordpress.com&amp;blog=1322336&amp;post=3015&amp;subd=mredison&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mredison.wordpress.com/2010/06/24/como-obtener-las-bases-de-datos-de-una-instancia-sql-server-en-asp-net/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/dba15c0598f013d1f1eb9faf2da1ef57?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">student</media:title>
		</media:content>

		<media:content url="http://mredison.files.wordpress.com/2010/06/getdatabasessqlserver01_thumb.jpg" medium="image">
			<media:title type="html">GetDatabases-SQLSERVER-01</media:title>
		</media:content>

		<media:content url="http://mredison.files.wordpress.com/2010/06/getdatabasessqlserver02_thumb.jpg" medium="image">
			<media:title type="html">GetDatabases-SQLSERVER-02</media:title>
		</media:content>
	</item>
		<item>
		<title>Como obtener las instancias SQL Server instaladas desde ASP.NET</title>
		<link>http://mredison.wordpress.com/2010/06/24/como-obtener-las-instancias-sql-server-instaladas-desde-asp-net/</link>
		<comments>http://mredison.wordpress.com/2010/06/24/como-obtener-las-instancias-sql-server-instaladas-desde-asp-net/#comments</comments>
		<pubDate>Thu, 24 Jun 2010 05:19:51 +0000</pubDate>
		<dc:creator>mredison</dc:creator>
				<category><![CDATA[ASP.NET]]></category>

		<guid isPermaLink="false">https://mredison.wordpress.com/2010/06/24/como-obtener-las-instancias-sql-server-instaladas-desde-asp-net/</guid>
		<description><![CDATA[&#160; Para poder obtener las instancias instaladas en nuestro servidor desde ASP.NET podemos utilizar la clase SqlDataSourceEnumerator del namespace System.Data.Sql en donde nos regresa un DataTable que podemos pasar como recurso de datos, &#160;veamos el ejemplo: Código C# using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Data; using System.Data.Sql; public class ServerData { public [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mredison.wordpress.com&amp;blog=1322336&amp;post=2993&amp;subd=mredison&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<div style="background-color:white;color:black;">&#160;</div>
<p>Para poder obtener las instancias instaladas en nuestro servidor desde ASP.NET podemos utilizar la clase <strong>SqlDataSourceEnumerator </strong>del namespace <strong>System.Data.Sql </strong>en donde nos regresa un DataTable que podemos pasar como recurso de datos, <strong>&#160;</strong>veamos el ejemplo:</p>
<p>Código C#</p>
<div style="background-color:white;color:black;">
<pre><span style="color:blue;">using</span> System;
<span style="color:blue;">using</span> System.Collections.Generic;
<span style="color:blue;">using</span> System.Linq;
<span style="color:blue;">using</span> System.Web;
<span style="color:blue;">using</span> System.Data;
<span style="color:blue;">using</span> System.Data.Sql;

<span style="color:blue;">public</span> <span style="color:blue;">class</span> ServerData
{
    <span style="color:blue;">public</span> <span style="color:blue;">static</span> DataTable ObtenerServerInfo()
    {
        <span style="color:blue;">return</span> SqlDataSourceEnumerator.Instance.GetDataSources();
    }
}</pre>
</div>
<p>HTML Code:</p>
<div style="background-color:white;color:black;">
<pre><span style="background-color:yellow;">&lt;%</span><span style="color:blue;">@</span> <span style="color:#a31515;">Page</span> <span style="color:red;">Language</span><span style="color:blue;">=</span><span style="color:blue;">&quot;C#&quot;</span> <span style="color:red;">AutoEventWireup</span><span style="color:blue;">=</span><span style="color:blue;">&quot;true&quot;</span> <span style="color:red;">CodeFile</span><span style="color:blue;">=</span><span style="color:blue;">&quot;Default.aspx.cs&quot;</span> <span style="color:red;">Inherits</span><span style="color:blue;">=</span><span style="color:blue;">&quot;_Default&quot;</span> <span style="background-color:yellow;">%&gt;</span>

<span style="color:blue;">&lt;!</span><span style="color:#a31515;">DOCTYPE</span> <span style="color:red;">html</span> <span style="color:red;">PUBLIC</span> <span style="color:blue;">&quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot;</span> <span style="color:blue;">&quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;</span><span style="color:blue;">&gt;</span>

<span style="color:blue;">&lt;</span><span style="color:#a31515;">html</span> <span style="color:red;">xmlns</span><span style="color:blue;">=</span><span style="color:blue;">&quot;http://www.w3.org/1999/xhtml&quot;</span><span style="color:blue;">&gt;</span>
<span style="color:blue;">&lt;</span><span style="color:#a31515;">head</span> <span style="color:red;">runat</span><span style="color:blue;">=</span><span style="color:blue;">&quot;server&quot;</span><span style="color:blue;">&gt;</span>
    <span style="color:blue;">&lt;</span><span style="color:#a31515;">title</span><span style="color:blue;">&gt;</span><span style="color:blue;">&lt;/</span><span style="color:#a31515;">title</span><span style="color:blue;">&gt;</span>
<span style="color:blue;">&lt;/</span><span style="color:#a31515;">head</span><span style="color:blue;">&gt;</span>
<span style="color:blue;">&lt;</span><span style="color:#a31515;">body</span><span style="color:blue;">&gt;</span>
    <span style="color:blue;">&lt;</span><span style="color:#a31515;">form</span> <span style="color:red;">id</span><span style="color:blue;">=</span><span style="color:blue;">&quot;form1&quot;</span> <span style="color:red;">runat</span><span style="color:blue;">=</span><span style="color:blue;">&quot;server&quot;</span><span style="color:blue;">&gt;</span>
    <span style="color:blue;">&lt;</span><span style="color:#a31515;">asp</span><span style="color:blue;">:</span><span style="color:#a31515;">GridView</span> <span style="color:red;">ID</span><span style="color:blue;">=</span><span style="color:blue;">&quot;gvServerInfo&quot;</span> <span style="color:red;">runat</span><span style="color:blue;">=</span><span style="color:blue;">&quot;server&quot;</span><span style="color:blue;">&gt;</span>
    <span style="color:blue;">&lt;/</span><span style="color:#a31515;">asp</span><span style="color:blue;">:</span><span style="color:#a31515;">GridView</span><span style="color:blue;">&gt;</span>
    <span style="color:blue;">&lt;/</span><span style="color:#a31515;">form</span><span style="color:blue;">&gt;</span>
<span style="color:blue;">&lt;/</span><span style="color:#a31515;">body</span><span style="color:blue;">&gt;</span>
<span style="color:blue;">&lt;/</span><span style="color:#a31515;">html</span><span style="color:blue;">&gt;</span></pre>
</div>
<p>Default.aspx.cs Code:</p>
<div style="background-color:white;color:black;">
<pre><span style="color:blue;">using</span> System;
<span style="color:blue;">using</span> System.Collections.Generic;
<span style="color:blue;">using</span> System.Linq;
<span style="color:blue;">using</span> System.Web;
<span style="color:blue;">using</span> System.Web.UI;
<span style="color:blue;">using</span> System.Web.UI.WebControls;

<span style="color:blue;">public</span> <span style="color:blue;">partial</span> <span style="color:blue;">class</span> _Default : System.Web.UI.Page
{
    <span style="color:blue;">protected</span> <span style="color:blue;">void</span> Page_Load(<span style="color:blue;">object</span> sender, EventArgs e)
    {
        gvServerInfo.DataSource = ServerData.ObtenerServerInfo();
        gvServerInfo.DataBind();
    }
}</pre>
</div>
<p>Preview:</p>
<p><a href="http://mredison.files.wordpress.com/2010/06/getsqlserverinstances01.jpg"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="GetSQLServerInstances-01" border="0" alt="GetSQLServerInstances-01" src="http://mredison.files.wordpress.com/2010/06/getsqlserverinstances01_thumb.jpg?w=429&#038;h=213" width="429" height="213" /></a> </p>
<p><strong>Edison Daniel García Chiñas</strong></p>
<p>Microsoft Student Partner México | Tecnologías Microsoft</p>
<br />Filed under: <a href='http://mredison.wordpress.com/category/aspnet/'>ASP.NET</a>  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mredison.wordpress.com/2993/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mredison.wordpress.com/2993/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mredison.wordpress.com/2993/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mredison.wordpress.com/2993/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mredison.wordpress.com/2993/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mredison.wordpress.com/2993/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mredison.wordpress.com/2993/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mredison.wordpress.com/2993/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mredison.wordpress.com/2993/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mredison.wordpress.com/2993/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mredison.wordpress.com/2993/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mredison.wordpress.com/2993/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mredison.wordpress.com/2993/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mredison.wordpress.com/2993/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mredison.wordpress.com&amp;blog=1322336&amp;post=2993&amp;subd=mredison&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mredison.wordpress.com/2010/06/24/como-obtener-las-instancias-sql-server-instaladas-desde-asp-net/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/dba15c0598f013d1f1eb9faf2da1ef57?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">student</media:title>
		</media:content>

		<media:content url="http://mredison.files.wordpress.com/2010/06/getsqlserverinstances01_thumb.jpg" medium="image">
			<media:title type="html">GetSQLServerInstances-01</media:title>
		</media:content>
	</item>
		<item>
		<title>Como conectar un smartphone via wireless a SQL Server 2008 desde una PC.</title>
		<link>http://mredison.wordpress.com/2010/01/21/como-conectar-un-smartphone-via-wireless-a-sql-server-2008-desde-una-pc/</link>
		<comments>http://mredison.wordpress.com/2010/01/21/como-conectar-un-smartphone-via-wireless-a-sql-server-2008-desde-una-pc/#comments</comments>
		<pubDate>Thu, 21 Jan 2010 00:38:57 +0000</pubDate>
		<dc:creator>mredison</dc:creator>
				<category><![CDATA[SQL Server 2008]]></category>
		<category><![CDATA[Windows Mobile]]></category>

		<guid isPermaLink="false">http://mredison.wordpress.com/2010/01/21/como-conectar-un-smartphone-via-wireless-a-sql-server-2008-desde-una-pc/</guid>
		<description><![CDATA[Que tal me ha costado un poco de trabajo la conexión a mi servidor por eso comparto este post en donde vamos a conectar un smartphone con Windows Mobile a un servidor SQL Server 2008, (lo mismo es para la versión de SQL Server 2005). public class Configuracion { public static string CadenaConexion { get [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mredison.wordpress.com&amp;blog=1322336&amp;post=2970&amp;subd=mredison&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Que tal me ha costado un poco de trabajo la conexión a mi servidor por eso comparto este post en donde vamos a conectar un smartphone con Windows Mobile a un servidor SQL Server 2008, (lo mismo es para la versión de SQL Server 2005).</p>
<div style="display:inline;float:none;margin:0;padding:0;" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E6:93d5cf7d-6a92-407f-830b-cd49bba4fb23" class="wlWriterEditableSmartContent">
<pre style="background-color:#FFFFFF;white-space:pre-wrap;overflow:auto;"><span style="color:#0000FF;">public</span><span style="color:#000000;"> </span><span style="color:#0000FF;">class</span><span style="color:#000000;"> Configuracion
    {
        </span><span style="color:#0000FF;">public</span><span style="color:#000000;"> </span><span style="color:#0000FF;">static</span><span style="color:#000000;"> </span><span style="color:#0000FF;">string</span><span style="color:#000000;"> CadenaConexion
        {
            </span><span style="color:#0000FF;">get</span><span style="color:#000000;"> { </span><span style="color:#0000FF;">return</span><span style="color:#000000;"> </span><span style="color:#800000;">@"</span><span style="color:#800000;">Data Source=192.168.1.74,1433;Initial Catalog=Restaurante;User ID=sa;Password=miPassword;</span><span style="color:#800000;">"</span><span style="color:#000000;">; }
        }
    }</span></pre>
<p><!-- Code inserted with Steve Dunn's Windows Live Writer Code Formatter Plugin.  http://dunnhq.com --></div>
<p>1.-&#160; En nuestra cadena de Conexión como la tengamos, necesitamos colocar la direción IP del servidor a cual nos conectaremos + el puerto (Podemos dejar el default que es 1433).</p>
<p>2.- Vamos a SQL Server Configuration Manager.</p>
<p><a href="http://mredison.files.wordpress.com/2010/01/sqlce001.jpg"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="SqlCe001" border="0" alt="SqlCe001" src="http://mredison.files.wordpress.com/2010/01/sqlce001_thumb.jpg?w=356&#038;h=29" width="356" height="29" /></a> </p>
</p>
<p>3.- Necesitamos ir a la parte de los protocolos de Red, y dentro de la instancia que esta corriendo el servidor de base de datos, seleccionamos el protocolo TCP/IP y lo habilitamos.</p>
<p><a href="http://mredison.files.wordpress.com/2010/01/sqlce002.jpg"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="SqlCe002" border="0" alt="SqlCe002" src="http://mredison.files.wordpress.com/2010/01/sqlce002_thumb.jpg?w=593&#038;h=215" width="593" height="215" /></a><a href="http://mredison.files.wordpress.com/2010/01/sqlce003.jpg"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="SqlCe003" border="0" alt="SqlCe003" src="http://mredison.files.wordpress.com/2010/01/sqlce003_thumb.jpg?w=341&#038;h=377" width="341" height="377" /></a> </p>
<p>4.- Seleccionamos la opcion de direcciones de IP, y por ejemplo podemos colocar la primera IP la del servidor y el puerto 1433 y habilitarlo.</p>
<p><a href="http://mredison.files.wordpress.com/2010/01/sqlce004.jpg"><img style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="SqlCe004" border="0" alt="SqlCe004" src="http://mredison.files.wordpress.com/2010/01/sqlce004_thumb.jpg?w=355&#038;h=394" width="355" height="394" /></a> </p>
<p>Así podemos hacer pruebas de conexión al servidor y que sean exitosas.</p>
<p>Saludos, espero que sirva de mucha ayuda. </p>
</p>
<p>Edison.</p>
<br />Posted in SQL Server 2008, Windows Mobile  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/mredison.wordpress.com/2970/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/mredison.wordpress.com/2970/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/mredison.wordpress.com/2970/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/mredison.wordpress.com/2970/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/mredison.wordpress.com/2970/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/mredison.wordpress.com/2970/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/mredison.wordpress.com/2970/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/mredison.wordpress.com/2970/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/mredison.wordpress.com/2970/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/mredison.wordpress.com/2970/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/mredison.wordpress.com/2970/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/mredison.wordpress.com/2970/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/mredison.wordpress.com/2970/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/mredison.wordpress.com/2970/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=mredison.wordpress.com&amp;blog=1322336&amp;post=2970&amp;subd=mredison&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://mredison.wordpress.com/2010/01/21/como-conectar-un-smartphone-via-wireless-a-sql-server-2008-desde-una-pc/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/dba15c0598f013d1f1eb9faf2da1ef57?s=96&#38;d=wavatar&#38;r=G" medium="image">
			<media:title type="html">student</media:title>
		</media:content>

		<media:content url="http://mredison.files.wordpress.com/2010/01/sqlce001_thumb.jpg" medium="image">
			<media:title type="html">SqlCe001</media:title>
		</media:content>

		<media:content url="http://mredison.files.wordpress.com/2010/01/sqlce002_thumb.jpg" medium="image">
			<media:title type="html">SqlCe002</media:title>
		</media:content>

		<media:content url="http://mredison.files.wordpress.com/2010/01/sqlce003_thumb.jpg" medium="image">
			<media:title type="html">SqlCe003</media:title>
		</media:content>

		<media:content url="http://mredison.files.wordpress.com/2010/01/sqlce004_thumb.jpg" medium="image">
			<media:title type="html">SqlCe004</media:title>
		</media:content>
	</item>
	</channel>
</rss>
