<?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>Héctor Uriel Pérez Rojas Weblog</title>
	<atom:link href="https://hectorperez.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>https://hectorperez.wordpress.com</link>
	<description>Another .NET weblog</description>
	<lastBuildDate>Thu, 09 Mar 2017 19:20:51 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<site xmlns="com-wordpress:feed-additions:1">2870461</site><cloud domain='hectorperez.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>https://s0.wp.com/i/buttonw-com.png</url>
		<title>Héctor Uriel Pérez Rojas Weblog</title>
		<link>https://hectorperez.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="https://hectorperez.wordpress.com/osd.xml" title="Héctor Uriel Pérez Rojas Weblog" />
	<atom:link rel='hub' href='https://hectorperez.wordpress.com/?pushpress=hub'/>
	<item>
		<title>Xamarin.Forms &#8211; Ejecutando código JavaScript desde C#</title>
		<link>https://hectorperez.wordpress.com/2017/03/09/xamarin-forms-ejecutando-codigo-javascript-desde-c/</link>
					<comments>https://hectorperez.wordpress.com/2017/03/09/xamarin-forms-ejecutando-codigo-javascript-desde-c/#respond</comments>
		
		<dc:creator><![CDATA[hectorperez]]></dc:creator>
		<pubDate>Thu, 09 Mar 2017 18:01:35 +0000</pubDate>
				<category><![CDATA[Recetas]]></category>
		<category><![CDATA[Xamarin Forms]]></category>
		<guid isPermaLink="false">http://hectorperez.wordpress.com/?p=1094</guid>

					<description><![CDATA[Si has trabajado anteriormente con Xamarin, tal vez hayas utilizado el control WebView. Dicho control nos sirve para mostrar una página web dentro de nuestra aplicación, tal como el siguiente ejemplo: Tal vez, una cosa que desconozcas es que se puede invocar una función JavaScript, ¡Desde tu código C#! Para esto, lo que haremos será &#8230; <a href="https://hectorperez.wordpress.com/2017/03/09/xamarin-forms-ejecutando-codigo-javascript-desde-c/" class="more-link">Continuar leyendo <span class="screen-reader-text">Xamarin.Forms &#8211; Ejecutando código JavaScript desde&#160;C#</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p>Si has trabajado anteriormente con Xamarin, tal vez hayas utilizado el control WebView. Dicho control nos sirve para mostrar una página web dentro de nuestra aplicación, tal como el siguiente ejemplo:</p>
<p><img class="size-full wp-image-1131 aligncenter" src="https://hprez21.com/wp-content/uploads/2017/03/device-2017-03-09-103719.png" alt="" width="540" height="960" /></p>
<p>Tal vez, una cosa que desconozcas es que se puede invocar una función JavaScript, ¡Desde tu código C#!</p>
<p>Para esto, lo que haremos será crear un archivo tipo .html dentro de nuestro proyecto portable, en una solución tipo Xamarin.Forms:</p>
<p><img class="size-full wp-image-1132 aligncenter" src="https://hprez21.com/wp-content/uploads/2017/03/Screen-Shot-03-09-17-at-11.24-AM.png" alt="" width="338" height="239" /></p>
<p>Dicho archivo, debe tener en sus propiedades, asignada la opción «Embedded Resource» en Build Action:</p>
<p><img class="size-full wp-image-1133 aligncenter" src="https://hprez21.com/wp-content/uploads/2017/03/Screen-Shot-03-09-17-at-11.42-AM.png" alt="" width="445" height="241" /></p>
<p>Dicho archivo, contiene la siguiente estructura a modo de ejemplo:</p>
<pre class="lang:xhtml decode:true" title="Función Javascript dentro de un archivo .html">&lt;!DOCTYPE html&gt;

&lt;html lang="en" xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;head&gt;
    &lt;meta charset="utf-8" /&gt;
    &lt;title&gt;Cálculo de Factoriales&lt;/title&gt;    
&lt;/head&gt;
&lt;body&gt;
    <a href="http://code.jquery.com/jquery-2.1.4.min.js">http://code.jquery.com/jquery-2.1.4.min.js</a>
    &lt;h1&gt;Cálculo de Factoriales&lt;/h1&gt;
    &lt;div id='result'/&gt;
    
        function printFactorial(number)
        {            
            var result = 1;
            var factorialNumber = parseInt(number);
            $('#result').empty();
            
            for (var i = 1; i ');
        }
    
&lt;/body&gt;
&lt;/html&gt;</pre>
<p>Procederemos también, a crear la definición de nuestro archivo .xaml, el cual contendrá una caja de texto, un botón para invocar el método Javascript, y un WebView donde desplegaremos la información deseada:</p>
<pre class="lang:yaml decode:true" title="Definición de MainPage.xaml">&lt;?xml version="1.0" encoding="utf-8" ?&gt;
&lt;ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:local="clr-namespace:JavaScriptAndCSharp"
             x:Class="JavaScriptAndCSharp.MainPage"&gt;

    &lt;StackLayout&gt;
        &lt;Label Text="Factorial" FontSize="Medium" HorizontalOptions="Center" /&gt;
        &lt;StackLayout Orientation="Horizontal" HorizontalOptions="Center"&gt;
            &lt;Label Text="Factorial Number: " VerticalOptions="Center" /&gt;
            &lt;Entry x:Name="txtNumber" Text="5" WidthRequest="40" /&gt;
        &lt;/StackLayout&gt;
        &lt;Button x:Name="btnCallJS" Text="Call JavaScript" Clicked="OnbtnCallJSClicked"/&gt;
        &lt;WebView x:Name="webView" HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand" /&gt;
    &lt;/StackLayout&gt;

&lt;/ContentPage&gt;</pre>
<p>Ahora viene la parte interesante, en primer lugar, debemos de cargar la página HTML que deseemos, en nuestro caso, la página se llama test.html, por lo que crearemos una función dentro de nuestro archivo MainPage.xaml.cs, que lleve a cabo dicha carga, de la siguiente manera:</p>
<pre class="lang:c# decode:true" title="Carga de archivo HTML embebido en la aplicación">        HtmlWebViewSource LoadHTMLFileFromResource()
        {
            var source = new HtmlWebViewSource();

            // Carga el archivo HTML embebido como un recurso en el PCL
            var assembly = typeof(MainPage).GetTypeInfo().Assembly;
            var stream = assembly.GetManifestResourceStream("JavaScriptAndCSharp.test.html");
            using (var reader = new StreamReader(stream))
            {
                source.Html = reader.ReadToEnd();
            }
            return source;
        }</pre>
<p>El código anterior, lo que hace es obtener el archivo HTML, y regresarlo como un órigen html para nuestro control WebView, debemos asignar dicha lectura en el constructor de nuestra página:</p>
<pre class="lang:c# decode:true " title="Constructor MainPage">        public MainPage()
        {
            InitializeComponent();
            webView.Source = LoadHTMLFileFromResource();
        }</pre>
<p>Por último, codificaremos el manejador de eventos del botón definido en nuestro código XAML, llamado «btnCallJS, de la siguiente forma:</p>
<pre class="lang:c# decode:true " title="Manejador de Eventos del botón">        private void OnbtnCallJSClicked(object sender, EventArgs e)
        {        
            if (string.IsNullOrWhiteSpace(txtNumber.Text))
            {
                return;
            }
            int number = int.Parse(txtNumber.Text);
            webView.Eval(string.Format("printFactorial({0})", number));
        }</pre>
<p>La forma de invocar las funciones dentro del archivo html, es a través de la función «Eval», a la cual se le deben de pasar los parámetros obtenidos a través de la interfaz de usuario.</p>
<p>Con esto, tendrás una aplicación funcional que es capaz de invocar código Javascript:</p>
<p><img loading="lazy" class="size-full wp-image-1135 aligncenter" src="https://hprez21.com/wp-content/uploads/2017/03/device-2017-03-09-114433.png" alt="" width="540" height="960" /></p>
<p>Saludos.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://hectorperez.wordpress.com/2017/03/09/xamarin-forms-ejecutando-codigo-javascript-desde-c/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1094</post-id>
		<media:content url="https://1.gravatar.com/avatar/d5470cbae4baec70037bcb8002d500454cd05af89c1dedb32b0fc7aff97a67c2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Héctor Uriel Pérez Rojas</media:title>
		</media:content>

		<media:content url="https://hprez21.com/wp-content/uploads/2017/03/device-2017-03-09-103719.png" medium="image" />

		<media:content url="https://hprez21.com/wp-content/uploads/2017/03/Screen-Shot-03-09-17-at-11.24-AM.png" medium="image" />

		<media:content url="https://hprez21.com/wp-content/uploads/2017/03/Screen-Shot-03-09-17-at-11.42-AM.png" medium="image" />

		<media:content url="https://hprez21.com/wp-content/uploads/2017/03/device-2017-03-09-114433.png" medium="image" />
	</item>
		<item>
		<title>Xamarin.Android Add new Android compiling versions (Target Frameworks)</title>
		<link>https://hectorperez.wordpress.com/2017/03/08/xamarin-android-add-new-android-compiling-versions-target-frameworks/</link>
					<comments>https://hectorperez.wordpress.com/2017/03/08/xamarin-android-add-new-android-compiling-versions-target-frameworks/#respond</comments>
		
		<dc:creator><![CDATA[hectorperez]]></dc:creator>
		<pubDate>Wed, 08 Mar 2017 16:15:57 +0000</pubDate>
				<category><![CDATA[Xamarin.Android]]></category>
		<guid isPermaLink="false">http://hectorperez.wordpress.com/?p=1091</guid>

					<description><![CDATA[If you are developing some application with Xamarin.Android, and a message like the following is displayed: Severity    Code    Description    Project    File    Line    Suppression State Error        Could not install package ‘Xamarin.GooglePlayServices.Maps 42.1001.0’. You are trying to install this package into a project that targets ‘MonoAndroid,Version=v6.0’, but the package does not contain any assembly references or &#8230; <a href="https://hectorperez.wordpress.com/2017/03/08/xamarin-android-add-new-android-compiling-versions-target-frameworks/" class="more-link">Continuar leyendo <span class="screen-reader-text">Xamarin.Android Add new Android compiling versions (Target&#160;Frameworks)</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p><span id="result_box" class="" lang="en"><span class="">If you are developing some application with Xamarin.Android, and a message like the following is displayed:</span></span></p>
<blockquote><p>Severity    Code    Description    Project    File    Line    Suppression State<br />
Error        Could not install package ‘Xamarin.GooglePlayServices.Maps 42.1001.0’. You are trying to install this package into a project that targets ‘MonoAndroid,Version=v6.0’, but the package does not contain any assembly references or content files that are compatible with that framework.</p></blockquote>
<p><span id="result_box" class="" lang="en"><span class="">Regularly due to you do not have a version of the Target Framework compatbile, in the specific case above, it is because we must have a version of Android 7, version that from the properties of a project Xamarin.Android we can see that we do not have:</span></span></p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2017/03/screen-shot-03-03-17-at-07-23-pm.png"><img loading="lazy" data-attachment-id="1089" data-permalink="https://hectorperez.wordpress.com/2017/03/08/xamarin-android-anadir-nuevas-versiones-de-android-para-compilacion-target-frameworks/screen-shot-03-03-17-at-07-23-pm/" data-orig-file="https://hectorperez.wordpress.com/wp-content/uploads/2017/03/screen-shot-03-03-17-at-07-23-pm.png" data-orig-size="370,163" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Screen Shot 03-03-17 at 07.23 PM" data-image-description="" data-image-caption="" data-medium-file="https://hectorperez.wordpress.com/wp-content/uploads/2017/03/screen-shot-03-03-17-at-07-23-pm.png?w=300" data-large-file="https://hectorperez.wordpress.com/wp-content/uploads/2017/03/screen-shot-03-03-17-at-07-23-pm.png?w=370" class="wp-image-1089 size-full aligncenter" src="https://hectorperez.wordpress.com/wp-content/uploads/2017/03/screen-shot-03-03-17-at-07-23-pm.png?w=788" alt=""   srcset="https://hectorperez.wordpress.com/wp-content/uploads/2017/03/screen-shot-03-03-17-at-07-23-pm.png 370w, https://hectorperez.wordpress.com/wp-content/uploads/2017/03/screen-shot-03-03-17-at-07-23-pm.png?w=150&amp;h=66 150w, https://hectorperez.wordpress.com/wp-content/uploads/2017/03/screen-shot-03-03-17-at-07-23-pm.png?w=300&amp;h=132 300w" sizes="(max-width: 370px) 100vw, 370px" /></a></p>
<p><span id="result_box" class="" lang="en"><span class="">To resolve this issue, or simply because you want to add a new version of Android to compile, here are the steps to take:</span></span></p>
<p>1.- Open the «Android SDK Manager» tool:</p>
<p><span id="result_box" class="" lang="en"><br />
<span class="">2.- In the list of versions of Android, you should notice which are the ones you have installed, and which ones do not, selecting those versions that you want to install, for example, in my case, I want to install the version of Android 7.1 (API 25):</span></span></p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2017/03/screen-shot-03-03-17-at-07-24-pm.png"><img loading="lazy" data-attachment-id="1086" data-permalink="https://hectorperez.wordpress.com/2017/03/08/xamarin-android-anadir-nuevas-versiones-de-android-para-compilacion-target-frameworks/screen-shot-03-03-17-at-07-24-pm/" data-orig-file="https://hectorperez.wordpress.com/wp-content/uploads/2017/03/screen-shot-03-03-17-at-07-24-pm.png" data-orig-size="695,190" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Screen Shot 03-03-17 at 07.24 PM" data-image-description="" data-image-caption="" data-medium-file="https://hectorperez.wordpress.com/wp-content/uploads/2017/03/screen-shot-03-03-17-at-07-24-pm.png?w=300" data-large-file="https://hectorperez.wordpress.com/wp-content/uploads/2017/03/screen-shot-03-03-17-at-07-24-pm.png?w=695" class="size-full wp-image-1086 aligncenter" src="https://hectorperez.wordpress.com/wp-content/uploads/2017/03/screen-shot-03-03-17-at-07-24-pm.png?w=788" alt=""   srcset="https://hectorperez.wordpress.com/wp-content/uploads/2017/03/screen-shot-03-03-17-at-07-24-pm.png 695w, https://hectorperez.wordpress.com/wp-content/uploads/2017/03/screen-shot-03-03-17-at-07-24-pm.png?w=150&amp;h=41 150w, https://hectorperez.wordpress.com/wp-content/uploads/2017/03/screen-shot-03-03-17-at-07-24-pm.png?w=300&amp;h=82 300w" sizes="(max-width: 695px) 100vw, 695px" /></a></p>
<p><span id="result_box" class="" lang="en">3.- Click on the Install button.</span></p>
<p><span id="result_box" class="" lang="en"><br />
<span class="">4.- Accept the license and Install.</span></span></p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2017/03/screen-shot-03-03-17-at-07-25-pm.png"><img loading="lazy" data-attachment-id="1087" data-permalink="https://hectorperez.wordpress.com/2017/03/08/xamarin-android-anadir-nuevas-versiones-de-android-para-compilacion-target-frameworks/screen-shot-03-03-17-at-07-25-pm/" data-orig-file="https://hectorperez.wordpress.com/wp-content/uploads/2017/03/screen-shot-03-03-17-at-07-25-pm.png" data-orig-size="744,486" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Screen Shot 03-03-17 at 07.25 PM" data-image-description="" data-image-caption="" data-medium-file="https://hectorperez.wordpress.com/wp-content/uploads/2017/03/screen-shot-03-03-17-at-07-25-pm.png?w=300" data-large-file="https://hectorperez.wordpress.com/wp-content/uploads/2017/03/screen-shot-03-03-17-at-07-25-pm.png?w=744" class="size-full wp-image-1087 aligncenter" src="https://hectorperez.wordpress.com/wp-content/uploads/2017/03/screen-shot-03-03-17-at-07-25-pm.png?w=788" alt=""   srcset="https://hectorperez.wordpress.com/wp-content/uploads/2017/03/screen-shot-03-03-17-at-07-25-pm.png 744w, https://hectorperez.wordpress.com/wp-content/uploads/2017/03/screen-shot-03-03-17-at-07-25-pm.png?w=150&amp;h=98 150w, https://hectorperez.wordpress.com/wp-content/uploads/2017/03/screen-shot-03-03-17-at-07-25-pm.png?w=300&amp;h=196 300w" sizes="(max-width: 744px) 100vw, 744px" /></a></p>
<p><span id="result_box" class="" lang="en"><span class="">5.- With this, when re-opening Visual Studio will already appear the new version with which we can compile our Xamarin.Android projects:</span></span></p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2017/03/screen-shot-03-03-17-at-08-31-pm.png"><img loading="lazy" data-attachment-id="1088" data-permalink="https://hectorperez.wordpress.com/2017/03/08/xamarin-android-anadir-nuevas-versiones-de-android-para-compilacion-target-frameworks/screen-shot-03-03-17-at-08-31-pm/" data-orig-file="https://hectorperez.wordpress.com/wp-content/uploads/2017/03/screen-shot-03-03-17-at-08-31-pm.png" data-orig-size="371,163" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Screen Shot 03-03-17 at 08.31 PM" data-image-description="" data-image-caption="" data-medium-file="https://hectorperez.wordpress.com/wp-content/uploads/2017/03/screen-shot-03-03-17-at-08-31-pm.png?w=300" data-large-file="https://hectorperez.wordpress.com/wp-content/uploads/2017/03/screen-shot-03-03-17-at-08-31-pm.png?w=371" class="size-full wp-image-1088 aligncenter" src="https://hectorperez.wordpress.com/wp-content/uploads/2017/03/screen-shot-03-03-17-at-08-31-pm.png?w=788" alt=""   srcset="https://hectorperez.wordpress.com/wp-content/uploads/2017/03/screen-shot-03-03-17-at-08-31-pm.png 371w, https://hectorperez.wordpress.com/wp-content/uploads/2017/03/screen-shot-03-03-17-at-08-31-pm.png?w=150&amp;h=66 150w, https://hectorperez.wordpress.com/wp-content/uploads/2017/03/screen-shot-03-03-17-at-08-31-pm.png?w=300&amp;h=132 300w" sizes="(max-width: 371px) 100vw, 371px" /></a></p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://hectorperez.wordpress.com/2017/03/08/xamarin-android-add-new-android-compiling-versions-target-frameworks/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1091</post-id>
		<media:content url="https://1.gravatar.com/avatar/d5470cbae4baec70037bcb8002d500454cd05af89c1dedb32b0fc7aff97a67c2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Héctor Uriel Pérez Rojas</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2017/03/screen-shot-03-03-17-at-07-23-pm.png" medium="image" />

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2017/03/screen-shot-03-03-17-at-07-24-pm.png" medium="image" />

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2017/03/screen-shot-03-03-17-at-07-25-pm.png" medium="image" />

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2017/03/screen-shot-03-03-17-at-08-31-pm.png" medium="image" />
	</item>
		<item>
		<title>Xamarin.Android Añadir nuevas versiones de Android para compilación (Target Frameworks)</title>
		<link>https://hectorperez.wordpress.com/2017/03/08/xamarin-android-anadir-nuevas-versiones-de-android-para-compilacion-target-frameworks/</link>
					<comments>https://hectorperez.wordpress.com/2017/03/08/xamarin-android-anadir-nuevas-versiones-de-android-para-compilacion-target-frameworks/#respond</comments>
		
		<dc:creator><![CDATA[hectorperez]]></dc:creator>
		<pubDate>Wed, 08 Mar 2017 16:08:54 +0000</pubDate>
				<category><![CDATA[Xamarin.Android]]></category>
		<guid isPermaLink="false">http://hectorperez.wordpress.com/?p=1085</guid>

					<description><![CDATA[Si al estar desarrollando alguna aplicación con Xamarin.Android, se despliega un mensaje como el siguiente: Severity    Code    Description    Project    File    Line    Suppression State Error        Could not install package &#8216;Xamarin.GooglePlayServices.Maps 42.1001.0&#8217;. You are trying to install this package into a project that targets &#8216;MonoAndroid,Version=v6.0&#8217;, but the package does not contain any assembly references or content &#8230; <a href="https://hectorperez.wordpress.com/2017/03/08/xamarin-android-anadir-nuevas-versiones-de-android-para-compilacion-target-frameworks/" class="more-link">Continuar leyendo <span class="screen-reader-text">Xamarin.Android Añadir nuevas versiones de Android para compilación (Target&#160;Frameworks)</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p>Si al estar desarrollando alguna aplicación con Xamarin.Android, se despliega un mensaje como el siguiente:</p>
<blockquote><p>Severity    Code    Description    Project    File    Line    Suppression State<br />
Error        Could not install package &#8216;Xamarin.GooglePlayServices.Maps 42.1001.0&#8217;. You are trying to install this package into a project that targets &#8216;MonoAndroid,Version=v6.0&#8217;, but the package does not contain any assembly references or content files that are compatible with that framework.</p></blockquote>
<p>regularmente se debe a que no tienes una versión del Target Framework compatbile, en el caso específico anterior, se debe a que debemos de tener una versión de Android 7, versión que desde las propiedades de un proyecto Xamarin.Android podemos ver que no tenemos:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2017/03/screen-shot-03-03-17-at-07-23-pm.png"><img loading="lazy" data-attachment-id="1089" data-permalink="https://hectorperez.wordpress.com/2017/03/08/xamarin-android-anadir-nuevas-versiones-de-android-para-compilacion-target-frameworks/screen-shot-03-03-17-at-07-23-pm/" data-orig-file="https://hectorperez.wordpress.com/wp-content/uploads/2017/03/screen-shot-03-03-17-at-07-23-pm.png" data-orig-size="370,163" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Screen Shot 03-03-17 at 07.23 PM" data-image-description="" data-image-caption="" data-medium-file="https://hectorperez.wordpress.com/wp-content/uploads/2017/03/screen-shot-03-03-17-at-07-23-pm.png?w=300" data-large-file="https://hectorperez.wordpress.com/wp-content/uploads/2017/03/screen-shot-03-03-17-at-07-23-pm.png?w=370" class="wp-image-1089 size-full aligncenter" src="https://hectorperez.wordpress.com/wp-content/uploads/2017/03/screen-shot-03-03-17-at-07-23-pm.png?w=788" alt=""   srcset="https://hectorperez.wordpress.com/wp-content/uploads/2017/03/screen-shot-03-03-17-at-07-23-pm.png 370w, https://hectorperez.wordpress.com/wp-content/uploads/2017/03/screen-shot-03-03-17-at-07-23-pm.png?w=150&amp;h=66 150w, https://hectorperez.wordpress.com/wp-content/uploads/2017/03/screen-shot-03-03-17-at-07-23-pm.png?w=300&amp;h=132 300w" sizes="(max-width: 370px) 100vw, 370px" /></a></p>
<p>Para resolver dicho problema, ó simplemente porque deseas añadir una nueva versión de Android para compilar, éstos son los pasos a seguir:</p>
<p>1.- Abre la herramienta «Android SDK Manager»:</p>
<p>2.- En la lista de versiones de Android, debes fijarte cuáles son aquellos que tienes instalados, y cuáles no, seleccionando aquellas versiones que quieras instalar, por ejemplo, en mi caso, quiero instalar la versión de Android 7.1 (API 25):</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2017/03/screen-shot-03-03-17-at-07-24-pm.png"><img loading="lazy" data-attachment-id="1086" data-permalink="https://hectorperez.wordpress.com/2017/03/08/xamarin-android-anadir-nuevas-versiones-de-android-para-compilacion-target-frameworks/screen-shot-03-03-17-at-07-24-pm/" data-orig-file="https://hectorperez.wordpress.com/wp-content/uploads/2017/03/screen-shot-03-03-17-at-07-24-pm.png" data-orig-size="695,190" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Screen Shot 03-03-17 at 07.24 PM" data-image-description="" data-image-caption="" data-medium-file="https://hectorperez.wordpress.com/wp-content/uploads/2017/03/screen-shot-03-03-17-at-07-24-pm.png?w=300" data-large-file="https://hectorperez.wordpress.com/wp-content/uploads/2017/03/screen-shot-03-03-17-at-07-24-pm.png?w=695" class="wp-image-1086 size-full aligncenter" src="https://hectorperez.wordpress.com/wp-content/uploads/2017/03/screen-shot-03-03-17-at-07-24-pm.png?w=788" alt=""   srcset="https://hectorperez.wordpress.com/wp-content/uploads/2017/03/screen-shot-03-03-17-at-07-24-pm.png 695w, https://hectorperez.wordpress.com/wp-content/uploads/2017/03/screen-shot-03-03-17-at-07-24-pm.png?w=150&amp;h=41 150w, https://hectorperez.wordpress.com/wp-content/uploads/2017/03/screen-shot-03-03-17-at-07-24-pm.png?w=300&amp;h=82 300w" sizes="(max-width: 695px) 100vw, 695px" /></a></p>
<p>3.- Dar click en el botón Instalar.</p>
<p>4.- Aceptar la licencia e Instalar.</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2017/03/screen-shot-03-03-17-at-07-25-pm.png"><img loading="lazy" data-attachment-id="1087" data-permalink="https://hectorperez.wordpress.com/2017/03/08/xamarin-android-anadir-nuevas-versiones-de-android-para-compilacion-target-frameworks/screen-shot-03-03-17-at-07-25-pm/" data-orig-file="https://hectorperez.wordpress.com/wp-content/uploads/2017/03/screen-shot-03-03-17-at-07-25-pm.png" data-orig-size="744,486" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Screen Shot 03-03-17 at 07.25 PM" data-image-description="" data-image-caption="" data-medium-file="https://hectorperez.wordpress.com/wp-content/uploads/2017/03/screen-shot-03-03-17-at-07-25-pm.png?w=300" data-large-file="https://hectorperez.wordpress.com/wp-content/uploads/2017/03/screen-shot-03-03-17-at-07-25-pm.png?w=744" class="wp-image-1087 size-full aligncenter" src="https://hectorperez.wordpress.com/wp-content/uploads/2017/03/screen-shot-03-03-17-at-07-25-pm.png?w=788" alt=""   srcset="https://hectorperez.wordpress.com/wp-content/uploads/2017/03/screen-shot-03-03-17-at-07-25-pm.png 744w, https://hectorperez.wordpress.com/wp-content/uploads/2017/03/screen-shot-03-03-17-at-07-25-pm.png?w=150&amp;h=98 150w, https://hectorperez.wordpress.com/wp-content/uploads/2017/03/screen-shot-03-03-17-at-07-25-pm.png?w=300&amp;h=196 300w" sizes="(max-width: 744px) 100vw, 744px" /></a></p>
<p>5.- Con esto, al volver a abrir Visual Studio ya nos aparecerá la nueva versión con la que podremos compilar nuestros proyectos tipo Xamarin.Android:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2017/03/screen-shot-03-03-17-at-08-31-pm.png"><img loading="lazy" data-attachment-id="1088" data-permalink="https://hectorperez.wordpress.com/2017/03/08/xamarin-android-anadir-nuevas-versiones-de-android-para-compilacion-target-frameworks/screen-shot-03-03-17-at-08-31-pm/" data-orig-file="https://hectorperez.wordpress.com/wp-content/uploads/2017/03/screen-shot-03-03-17-at-08-31-pm.png" data-orig-size="371,163" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Screen Shot 03-03-17 at 08.31 PM" data-image-description="" data-image-caption="" data-medium-file="https://hectorperez.wordpress.com/wp-content/uploads/2017/03/screen-shot-03-03-17-at-08-31-pm.png?w=300" data-large-file="https://hectorperez.wordpress.com/wp-content/uploads/2017/03/screen-shot-03-03-17-at-08-31-pm.png?w=371" class="wp-image-1088 size-full aligncenter" src="https://hectorperez.wordpress.com/wp-content/uploads/2017/03/screen-shot-03-03-17-at-08-31-pm.png?w=788" alt=""   srcset="https://hectorperez.wordpress.com/wp-content/uploads/2017/03/screen-shot-03-03-17-at-08-31-pm.png 371w, https://hectorperez.wordpress.com/wp-content/uploads/2017/03/screen-shot-03-03-17-at-08-31-pm.png?w=150&amp;h=66 150w, https://hectorperez.wordpress.com/wp-content/uploads/2017/03/screen-shot-03-03-17-at-08-31-pm.png?w=300&amp;h=132 300w" sizes="(max-width: 371px) 100vw, 371px" /></a>Saludos.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://hectorperez.wordpress.com/2017/03/08/xamarin-android-anadir-nuevas-versiones-de-android-para-compilacion-target-frameworks/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1085</post-id>
		<media:content url="https://1.gravatar.com/avatar/d5470cbae4baec70037bcb8002d500454cd05af89c1dedb32b0fc7aff97a67c2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Héctor Uriel Pérez Rojas</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2017/03/screen-shot-03-03-17-at-07-23-pm.png" medium="image" />

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2017/03/screen-shot-03-03-17-at-07-24-pm.png" medium="image" />

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2017/03/screen-shot-03-03-17-at-07-25-pm.png" medium="image" />

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2017/03/screen-shot-03-03-17-at-08-31-pm.png" medium="image" />
	</item>
		<item>
		<title>Xamarin.Android &#8211; An unexpected error occurred trying to initialize Android Designer</title>
		<link>https://hectorperez.wordpress.com/2017/03/04/xamarin-android-an-unexpected-error-occurred-trying-to-initialize-android-designer/</link>
					<comments>https://hectorperez.wordpress.com/2017/03/04/xamarin-android-an-unexpected-error-occurred-trying-to-initialize-android-designer/#respond</comments>
		
		<dc:creator><![CDATA[hectorperez]]></dc:creator>
		<pubDate>Sat, 04 Mar 2017 00:24:26 +0000</pubDate>
				<category><![CDATA[Xamarin.Android]]></category>
		<guid isPermaLink="false">http://hectorperez.wordpress.com/?p=1083</guid>

					<description><![CDATA[Si tienes una instalación fresca de Visual Studio con un proyecto tipo Xamarin.Android, y te sale en la pantalla de Advertencias algo como: «An unexpected error occurred trying to initialize Android Designer. Please verify the Android SDK path and the Java Development Kit&#8230;» te recomiendo hacer lo siguiente: Parte 1 &#8211; Dentro de Visual Studio &#8230; <a href="https://hectorperez.wordpress.com/2017/03/04/xamarin-android-an-unexpected-error-occurred-trying-to-initialize-android-designer/" class="more-link">Continuar leyendo <span class="screen-reader-text">Xamarin.Android &#8211; An unexpected error occurred trying to initialize Android&#160;Designer</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p>Si tienes una instalación fresca de Visual Studio con un proyecto tipo Xamarin.Android, y te sale en la pantalla de Advertencias algo como:</p>
<p>«An unexpected error occurred trying to initialize Android Designer. Please verify the Android SDK path and the Java Development Kit&#8230;»</p>
<p>te recomiendo hacer lo siguiente:</p>
<p><strong>Parte 1 &#8211; Dentro de Visual Studio</strong></p>
<p>1.- Ve a las opciones de Visual Studio:</p>
<p><img loading="lazy" class="size-full wp-image-1122 aligncenter" src="https://hprez21.com/wp-content/uploads/2017/03/Screen-Shot-03-03-17-at-05.58-PM.png" alt="" width="386" height="534" /></p>
<p>2.- En la Sección de Xamarin, ve a la opción de «Other» y da click sobre «Check Now»:</p>
<p><img loading="lazy" class="size-full wp-image-1120 aligncenter" src="https://hprez21.com/wp-content/uploads/2017/03/Screen-Shot-03-03-17-at-06.00-PM.png" alt="" width="764" height="445" /></p>
<p>3.- Si aparece una actualización de Xamarin, da click sobre el botón «Download» para iniciar la descarga. Después de realizada la descarga, se lanzará el asistente de instalación, <strong>paso en el cual se debe cerrar Visual Studio:</strong></p>
<p><img loading="lazy" class="size-full wp-image-1123 aligncenter" src="https://hprez21.com/wp-content/uploads/2017/03/Screen-Shot-12-05-16-at-10.51-AM-001.png" alt="" width="778" height="479" /></p>
<p>4.- Llevar a cabo la instalación de las herramientas de Xamarin con el asistente de instalación.</p>
<p>Una vez terminado este proceso, toca el turno de actualizar las herramientas de Android:</p>
<p><strong>Parte 2: Desde el Android SDK Manager</strong></p>
<p>1.- Busca la herramienta SDK Manager desde Windows</p>
<p><img loading="lazy" class="size-full wp-image-1116 aligncenter" src="https://hprez21.com/wp-content/uploads/2017/03/Screen-Shot-03-03-17-at-05.46-PM.png" alt="" width="360" height="194" /></p>
<p>2.- Busca en la sección de Tools, las opciones «Android SDK Tools», y «Android SDK Platform tools», y ve si está marcado de lado derecho con la leyenda «Update available&#8230;».</p>
<p><img loading="lazy" class="size-full wp-image-1118 aligncenter" src="https://hprez21.com/wp-content/uploads/2017/03/Screen-Shot-03-03-17-at-05.43-PM.png" alt="" width="702" height="511" /></p>
<p>3.- En caso de que sea así, deselecciona todos los paquetes que te aparezcan como recomendados (en la parte de abajo hay una etiqueta que dice «Deselect All»), y enfócate a instalar la actualización de dichos paquetes.</p>
<p><img loading="lazy" class="size-full wp-image-1117 aligncenter" src="https://hprez21.com/wp-content/uploads/2017/03/Screen-Shot-03-03-17-at-05.43-PM-001.png" alt="" width="740" height="477" /></p>
<p>4.- Cierra la herramienta SDK Manager.</p>
<p>5.- Inicia de nuevo la herramienta SDK Manager, con lo cual se cargará de nuevo la lista.</p>
<p>6.- Verifica que a lado de las opciones buscadas en el paso 2, ya no aparezca la leyenda «Update available», que puede aparecer tantas veces como desactualizadas tengas tus herramientas. Si sigue apareciendo la leyenda (que debe mostrar un número «rev x» diferente), vuelve al paso 2. Al final, debe mostrar una leyenda «Installed».</p>
<p>7.- Una vez actualizadas tus herramientas, éste error debería desaparecer.</p>
<p>Saludos.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://hectorperez.wordpress.com/2017/03/04/xamarin-android-an-unexpected-error-occurred-trying-to-initialize-android-designer/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1083</post-id>
		<media:content url="https://1.gravatar.com/avatar/d5470cbae4baec70037bcb8002d500454cd05af89c1dedb32b0fc7aff97a67c2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Héctor Uriel Pérez Rojas</media:title>
		</media:content>

		<media:content url="https://hprez21.com/wp-content/uploads/2017/03/Screen-Shot-03-03-17-at-05.58-PM.png" medium="image" />

		<media:content url="https://hprez21.com/wp-content/uploads/2017/03/Screen-Shot-03-03-17-at-06.00-PM.png" medium="image" />

		<media:content url="https://hprez21.com/wp-content/uploads/2017/03/Screen-Shot-12-05-16-at-10.51-AM-001.png" medium="image" />

		<media:content url="https://hprez21.com/wp-content/uploads/2017/03/Screen-Shot-03-03-17-at-05.46-PM.png" medium="image" />

		<media:content url="https://hprez21.com/wp-content/uploads/2017/03/Screen-Shot-03-03-17-at-05.43-PM.png" medium="image" />

		<media:content url="https://hprez21.com/wp-content/uploads/2017/03/Screen-Shot-03-03-17-at-05.43-PM-001.png" medium="image" />
	</item>
		<item>
		<title>Agregando Intellisense a los archivos .axml para trabajar con Xamarin.Android en VS 2015</title>
		<link>https://hectorperez.wordpress.com/2017/03/03/agregando-intellisense-a-los-archivos-axml-para-trabajar-con-xamarin-android-en-vs-2015/</link>
					<comments>https://hectorperez.wordpress.com/2017/03/03/agregando-intellisense-a-los-archivos-axml-para-trabajar-con-xamarin-android-en-vs-2015/#respond</comments>
		
		<dc:creator><![CDATA[hectorperez]]></dc:creator>
		<pubDate>Fri, 03 Mar 2017 19:56:50 +0000</pubDate>
				<category><![CDATA[Xamarin]]></category>
		<guid isPermaLink="false">http://hectorperez.wordpress.com/?p=1081</guid>

					<description><![CDATA[No podemos negar que las ayudas visuales de intellisense nos ahorran mucho tiempo con las sugerencias que realiza. Por ello, en este post vamos a ver los pasos para poder agregarlo en Visual Studio y trabajar con archivos .axml. 1.- Descargar el archivo alojado en este enlace. 2.- Descomprimir el archivo .rar. 3.- Pegar los &#8230; <a href="https://hectorperez.wordpress.com/2017/03/03/agregando-intellisense-a-los-archivos-axml-para-trabajar-con-xamarin-android-en-vs-2015/" class="more-link">Continuar leyendo <span class="screen-reader-text">Agregando Intellisense a los archivos .axml para trabajar con Xamarin.Android en VS&#160;2015</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p>No podemos negar que las ayudas visuales de intellisense nos ahorran mucho tiempo con las sugerencias que realiza. Por ello, en este post vamos a ver los pasos para poder agregarlo en Visual Studio y trabajar con archivos .axml.</p>
<p>1.- Descargar el archivo alojado en <a href="https://dl.dropboxusercontent.com/u/33502573/AXML_intellisense_fix.rar">este enlace.</a></p>
<p>2.- Descomprimir el archivo .rar.</p>
<p>3.- Pegar los 3 archivos descomprimidos en: (tuubicacióndeVS)/Xml/Schemas (En mi caso es: C:\Program Files (x86)\Microsoft Visual Studio 14.0\Xml\Schemas)</p>
<p>4.- Si tienes abierto Visual Studio, reinicia.</p>
<p>5.- Dentro de Visual Studio, ir a XML -&gt; Schemas</p>
<p>6.- Dentro de esta ventana, verificar que el archivo android-layout-xml.xsd se encuentre activo, como en la siguiente imagen:</p>
<p><img loading="lazy" class="size-full wp-image-1112 aligncenter" src="https://hprez21.com/wp-content/uploads/2017/03/Screen-Shot-03-03-17-at-01.48-PM.png" alt="" width="987" height="140" /></p>
<p>Con esto, ya deberías tener Intellisense activo para poder autocompletar tu código:</p>
<p><img loading="lazy" class="size-full wp-image-1113 aligncenter" src="https://hprez21.com/wp-content/uploads/2017/03/Screen-Shot-03-03-17-at-01.51-PM.png" alt="" width="504" height="235" /></p>
<p>Espero que sea de utilidad para más de uno.</p>
<p>Saludos.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://hectorperez.wordpress.com/2017/03/03/agregando-intellisense-a-los-archivos-axml-para-trabajar-con-xamarin-android-en-vs-2015/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1081</post-id>
		<media:content url="https://1.gravatar.com/avatar/d5470cbae4baec70037bcb8002d500454cd05af89c1dedb32b0fc7aff97a67c2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Héctor Uriel Pérez Rojas</media:title>
		</media:content>

		<media:content url="https://hprez21.com/wp-content/uploads/2017/03/Screen-Shot-03-03-17-at-01.48-PM.png" medium="image" />

		<media:content url="https://hprez21.com/wp-content/uploads/2017/03/Screen-Shot-03-03-17-at-01.51-PM.png" medium="image" />
	</item>
		<item>
		<title>Xamarin Forms: Consumiendo un servicio web basado en JSON Parte 3: Creando Creando la Vista</title>
		<link>https://hectorperez.wordpress.com/2016/05/11/xamarin-forms-consumiendo-un-servicio-web-basado-en-json-parte-3-creando-creando-la-vista/</link>
					<comments>https://hectorperez.wordpress.com/2016/05/11/xamarin-forms-consumiendo-un-servicio-web-basado-en-json-parte-3-creando-creando-la-vista/#respond</comments>
		
		<dc:creator><![CDATA[hectorperez]]></dc:creator>
		<pubDate>Wed, 11 May 2016 15:37:00 +0000</pubDate>
				<category><![CDATA[Xamarin Forms]]></category>
		<guid isPermaLink="false">http://hectorperez.wordpress.com/?p=1075</guid>

					<description><![CDATA[Para finalizar este proyecto, crearemos el formulario de la interfaz gráfica, y haremos los ajustes finales para tener nuestra aplicación corriendo. En primer lugar, crearemos la última carpeta que nos hace falta llamada View: En la nueva carpeta crearé un nuevo elemento del tipo Forms Xaml Page al cual llamaremos MainPage: En el formulario creado, &#8230; <a href="https://hectorperez.wordpress.com/2016/05/11/xamarin-forms-consumiendo-un-servicio-web-basado-en-json-parte-3-creando-creando-la-vista/" class="more-link">Continuar leyendo <span class="screen-reader-text">Xamarin Forms: Consumiendo un servicio web basado en JSON Parte 3: Creando Creando la&#160;Vista</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p align="justify">Para finalizar este proyecto, crearemos el formulario de la interfaz gráfica, y haremos los ajustes finales para tener nuestra aplicación corriendo.</p>
<p align="justify">En primer lugar, crearemos la última carpeta que nos hace falta llamada View:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2016/05/image.png"><img loading="lazy" title="image" style="border-top:0;border-right:0;background-image:none;border-bottom:0;float:none;padding-top:0;padding-left:0;margin-left:auto;border-left:0;display:block;padding-right:0;margin-right:auto;" border="0" alt="image" src="https://hectorperez.wordpress.com/wp-content/uploads/2016/05/image_thumb.png?w=333&#038;h=275" width="333" height="275" /></a></p>
<p align="justify">En la nueva carpeta crearé un nuevo elemento del tipo Forms Xaml Page al cual llamaremos MainPage:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2016/05/image1.png"><img loading="lazy" title="image" style="border-top:0;border-right:0;background-image:none;border-bottom:0;float:none;padding-top:0;padding-left:0;margin-left:auto;border-left:0;display:block;padding-right:0;margin-right:auto;" border="0" alt="image" src="https://hectorperez.wordpress.com/wp-content/uploads/2016/05/image_thumb1.png?w=347&#038;h=243" width="347" height="243" /></a></p>
<p align="justify">En el formulario creado, usaremos el siguiente código para el archivo MainPage.xaml</p>
<p><pre class="brush: xml; title: ; notranslate">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&gt;
&lt;ContentPage xmlns=&quot;http://xamarin.com/schemas/2014/forms&quot;
             xmlns:x=&quot;http://schemas.microsoft.com/winfx/2009/xaml&quot;
             x:Class=&quot;JsonWebServices.View.MainPage&quot;&gt;
  &lt;ContentPage.Content&gt;
    &lt;StackLayout Padding=&quot;30&quot;&gt;
      &lt;StackLayout Orientation=&quot;Horizontal&quot;&gt;
        &lt;Label Text=&quot;Latitude&quot; WidthRequest=&quot;130&quot;&gt;&lt;/Label&gt;
        &lt;Entry x:Name=&quot;txtLatitude&quot; WidthRequest=&quot;150&quot;&gt;&lt;/Entry&gt;
      &lt;/StackLayout&gt;
      &lt;StackLayout Orientation=&quot;Horizontal&quot;&gt;
        &lt;Label Text=&quot;Longitude&quot; WidthRequest=&quot;130&quot;&gt;&lt;/Label&gt;
        &lt;Entry x:Name=&quot;txtLongitude&quot; WidthRequest=&quot;150&quot;&gt;&lt;/Entry&gt;
      &lt;/StackLayout&gt;
      &lt;Button x:Name=&quot;btnSearch&quot; Clicked=&quot;OnClicked&quot;
              WidthRequest=&quot;75&quot; Text=&quot;Search&quot; TextColor=&quot;White&quot;
              BackgroundColor=&quot;Blue&quot;&gt;&lt;/Button&gt;
      &lt;StackLayout Orientation=&quot;Horizontal&quot;&gt;
        &lt;Label Text=&quot;Location: &quot; TextColor=&quot;Green&quot;
               WidthRequest=&quot;130&quot;&gt;&lt;/Label&gt;
        &lt;Label Text=&quot;{Binding StationName}&quot;&gt;&lt;/Label&gt;
      &lt;/StackLayout&gt;
      &lt;StackLayout Orientation=&quot;Horizontal&quot;&gt;
        &lt;Label Text=&quot;Elevation: &quot; TextColor=&quot;Green&quot;
               WidthRequest=&quot;130&quot;&gt;&lt;/Label&gt;
        &lt;Label Text=&quot;{Binding Elevation}&quot;&gt;&lt;/Label&gt;
      &lt;/StackLayout&gt;
      &lt;StackLayout Orientation=&quot;Horizontal&quot;&gt;
        &lt;Label Text=&quot;Temperature: &quot; TextColor=&quot;Green&quot;
               WidthRequest=&quot;130&quot;&gt;&lt;/Label&gt;
        &lt;Label Text=&quot;{Binding Temperature}&quot;&gt;&lt;/Label&gt;
      &lt;/StackLayout&gt;
      &lt;StackLayout Orientation=&quot;Horizontal&quot;&gt;
        &lt;Label Text=&quot;Humidity: &quot; TextColor=&quot;Green&quot;
               WidthRequest=&quot;130&quot;&gt;&lt;/Label&gt;
        &lt;Label Text=&quot;{Binding Humidity}&quot;&gt;&lt;/Label&gt;
      &lt;/StackLayout&gt;
    &lt;/StackLayout&gt;
  &lt;/ContentPage.Content&gt;
&lt;/ContentPage&gt;
</pre>
</p>
<p align="justify">Por otra parte, en el archivo MainPage.xaml.cs, debemos definir una variable que será la instancia del ViewModel de la siguiente manera:</p>
<p><pre class="brush: csharp; title: ; notranslate">
public MainPageViewModel vm;
</pre>
</p>
<p align="justify">Esta variable la inicializaremos dentro del constructor:</p>
<p><pre class="brush: csharp; title: ; notranslate">
vm = new MainPageViewModel();
</pre>
</p>
<p align="justify">De igual forma, dentro del constructor debemos asignar el contexto de datos a dicha variable de la siguiente forma:</p>
<p><pre class="brush: csharp; title: ; notranslate">
BindingContext = vm;
</pre>
</p>
<p align="justify">Por último, crearemos el manejador de eventos que hará la llamada al servicio web, en primer lugar, obtendremos la información de las cajas de texto, paso seguido definiremos la url del servicio web, y al último haremos la llamada a través del método especificado:</p>
<p><pre class="brush: csharp; title: ; notranslate">
        public async void OnClicked(object sender, EventArgs e)
        {
            var longitude = double.Parse(txtLongitude.Text);
            var latitude = double.Parse(txtLatitude.Text);
            
            var url = string.Format(@&quot;http://api.geonames.org/findNearByWeatherJSON?formatted=true&amp;lat={0}&amp;lng={1}&amp;username=demo&amp;style=full&quot;, latitude, longitude);
            await vm.GetWeatherAsync(url);
        }
</pre>
</p>
<p align="justify">quedando de la siguiente manera el archivo:</p>
<p><pre class="brush: csharp; title: ; notranslate">
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using JsonWebServices.ViewModel;
using Xamarin.Forms;

namespace JsonWebServices.View
{    
    public partial class MainPage : ContentPage
    {
        public MainPageViewModel vm;
        public MainPage()
        {
            vm = new MainPageViewModel();
            BindingContext = vm;
            InitializeComponent();
        }
        public async void OnClicked(object sender, EventArgs e)
        {
            var longitude = double.Parse(txtLongitude.Text);
            var latitude = double.Parse(txtLatitude.Text);
            
            var url = string.Format(@&quot;http://api.geonames.org/findNearByWeatherJSON?formatted=true&amp;lat={0}&amp;lng={1}&amp;username=demo&amp;style=full&quot;, latitude, longitude);
            await vm.GetWeatherAsync(url);
        }
    }
}

</pre>
</p>
<p align="justify">Por último, modificaremos el constructor de la clase App para que asigne a la página MainPage como la página principal:</p>
<p><pre class="brush: csharp; title: ; notranslate">
        public App()
        {
            // The root page of your application
            MainPage = new MainPage();
        }
</pre>
</p>
<p align="justify">Una vez terminada la codificación, podemos buscar coordenadas en cualquier aplicación de mapas para probar:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2016/05/image2.png"><img loading="lazy" title="image" style="border-top:0;border-right:0;background-image:none;border-bottom:0;float:none;padding-top:0;padding-left:0;margin-left:auto;border-left:0;display:block;padding-right:0;margin-right:auto;" border="0" alt="image" src="https://hectorperez.wordpress.com/wp-content/uploads/2016/05/image_thumb2.png?w=382&#038;h=132" width="382" height="132" /></a></p>
<p align="justify">Ejecutaremos la aplicación e Insertaremos estas coordenadas, al presionar el botón search, nos mostrará el resultado correspondiente:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2016/05/image3.png"><img loading="lazy" title="image" style="border-top:0;border-right:0;background-image:none;border-bottom:0;float:none;padding-top:0;padding-left:0;margin-left:auto;border-left:0;display:block;padding-right:0;margin-right:auto;" border="0" alt="image" src="https://hectorperez.wordpress.com/wp-content/uploads/2016/05/image_thumb3.png?w=236&#038;h=399" width="236" height="399" /></a></p>
<p align="justify">Definitivamente hay cosas que pueden ser mejoradas, pero queda como tarea para la casa, Espero que esta serie les haya gustado y servido. Recuerden que todo el proyecto lo pueden descargar desde <a href="https://github.com/hprez21/xamarin-forms-samples">aquí</a>.</p>
<p>Saludos.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://hectorperez.wordpress.com/2016/05/11/xamarin-forms-consumiendo-un-servicio-web-basado-en-json-parte-3-creando-creando-la-vista/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1075</post-id>
		<media:content url="https://1.gravatar.com/avatar/d5470cbae4baec70037bcb8002d500454cd05af89c1dedb32b0fc7aff97a67c2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Héctor Uriel Pérez Rojas</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2016/05/image_thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2016/05/image_thumb1.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2016/05/image_thumb2.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2016/05/image_thumb3.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>Xamarin Forms: Pre visualizando los formularios (Opci&#243;n 2: Gorilla Player)</title>
		<link>https://hectorperez.wordpress.com/2016/05/04/xamarin-forms-pre-visualizando-los-formularios-opcin-2-gorilla-player/</link>
					<comments>https://hectorperez.wordpress.com/2016/05/04/xamarin-forms-pre-visualizando-los-formularios-opcin-2-gorilla-player/#respond</comments>
		
		<dc:creator><![CDATA[hectorperez]]></dc:creator>
		<pubDate>Wed, 04 May 2016 15:28:38 +0000</pubDate>
				<category><![CDATA[Xamarin Forms]]></category>
		<guid isPermaLink="false">http://hectorperez.wordpress.com/?p=1065</guid>

					<description><![CDATA[La segunda opción para llevar a cabo la pre visualización de los formularios, es a través de Gorilla Player. Aún se encuentra en estado beta, y para utilizarlo se requiere de una invitación, ya que es una beta privada, a mí me tardó alrededor de una semana en llegar el código desde que la solicité. &#8230; <a href="https://hectorperez.wordpress.com/2016/05/04/xamarin-forms-pre-visualizando-los-formularios-opcin-2-gorilla-player/" class="more-link">Continuar leyendo <span class="screen-reader-text">Xamarin Forms: Pre visualizando los formularios (Opci&#243;n 2: Gorilla&#160;Player)</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p align="justify">La segunda opción para llevar a cabo la pre visualización de los formularios, es a través de <a href="http://gorillaplayer.com/">Gorilla Player</a>. Aún se encuentra en estado beta, y para utilizarlo se requiere de una invitación, ya que es una beta privada, a mí me tardó alrededor de una semana en llegar el código desde que la solicité. Una vez que nos ha llegado el código, podemos realizar la descarga desde <a href="http://gorillaplayer.com/download.html">aquí</a>. Procederemos a instalarlo, e inmediatamente nos aparecerá una ventana para loguearnos al servicio:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2016/05/screen-shot-05-03-16-at-11-25-am.png"><img loading="lazy" title="Screen Shot 05-03-16 at 11.25 AM" style="border-top:0;border-right:0;background-image:none;border-bottom:0;float:none;padding-top:0;padding-left:0;margin-left:auto;border-left:0;display:block;padding-right:0;margin-right:auto;" border="0" alt="Screen Shot 05-03-16 at 11.25 AM" src="https://hectorperez.wordpress.com/wp-content/uploads/2016/05/screen-shot-05-03-16-at-11-25-am_thumb.png?w=412&#038;h=291" width="412" height="291" /></a></p>
<p align="justify">Posterior a este paso, nos aparecerá una venta con los 3 pasos que debemos llevar a cabo para utilizar el servicio:</p>
<p align="justify"><strong>1.- Verificar que Gorilla Player se encuentre corriendo desde la barra de tareas:</strong></p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2016/05/screen-shot-05-04-16-at-08-40-am.png"><img loading="lazy" title="Screen Shot 05-04-16 at 08.40 AM" style="border-top:0;border-right:0;background-image:none;border-bottom:0;float:none;padding-top:0;padding-left:0;margin-left:auto;border-left:0;display:block;padding-right:0;margin-right:auto;" border="0" alt="Screen Shot 05-04-16 at 08.40 AM" src="https://hectorperez.wordpress.com/wp-content/uploads/2016/05/screen-shot-05-04-16-at-08-40-am_thumb.png?w=449&#038;h=494" width="449" height="494" /></a></p>
<p align="justify"><strong>2.- Se requiere desplegar la aplicación derivada de la solución Player.sln, a cada uno de los emuladores y dispositivos donde vayamos a llevar a cabo pruebas:</strong></p>
<p align="justify">2a) Abrir la solución desde el Wizard de Gorilla Player:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2016/05/screen-shot-05-04-16-at-08-43-am.png"><img loading="lazy" title="Screen Shot 05-04-16 at 08.43 AM" style="border-top:0;border-right:0;background-image:none;border-bottom:0;float:none;padding-top:0;padding-left:0;margin-left:auto;border-left:0;display:block;padding-right:0;margin-right:auto;" border="0" alt="Screen Shot 05-04-16 at 08.43 AM" src="https://hectorperez.wordpress.com/wp-content/uploads/2016/05/screen-shot-05-04-16-at-08-43-am_thumb.png?w=441&#038;h=115" width="441" height="115" /></a></p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2016/05/screen-shot-05-04-16-at-08-44-am.png"><img loading="lazy" title="Screen Shot 05-04-16 at 08.44 AM" style="border-top:0;border-right:0;background-image:none;border-bottom:0;float:none;padding-top:0;padding-left:0;margin-left:auto;border-left:0;display:block;padding-right:0;margin-right:auto;" border="0" alt="Screen Shot 05-04-16 at 08.44 AM" src="https://hectorperez.wordpress.com/wp-content/uploads/2016/05/screen-shot-05-04-16-at-08-44-am_thumb.png?w=298&#038;h=419" width="298" height="419" /></a></p>
<p align="justify">2b) Desplegar el dispositivo en el emulador o dispositivo físico correspondiente(Debemos asegurarnos de descargar los paquetes de nuget faltantes:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2016/05/screen-shot-05-04-16-at-09-15-am.png"><img loading="lazy" title="Screen Shot 05-04-16 at 09.15 AM" style="border-top:0;border-right:0;background-image:none;border-bottom:0;float:none;padding-top:0;padding-left:0;margin-left:auto;border-left:0;display:block;padding-right:0;margin-right:auto;" border="0" alt="Screen Shot 05-04-16 at 09.15 AM" src="https://hectorperez.wordpress.com/wp-content/uploads/2016/05/screen-shot-05-04-16-at-09-15-am_thumb.png?w=515&#038;h=221" width="515" height="221" /></a></p>
<p align="justify">3c) La aplicación tratará de encontrar el servidor de Gorilla Player en el equipo que tengamos conectado. Una vez realizado este paso, nos indicará que se encuentra listo para realizar las pre visualizaciones necesarias:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2016/05/screenshot_2016-05-04-09-22-11.png"><img loading="lazy" title="Screenshot_2016-05-04-09-22-11" style="border-top:0;border-right:0;background-image:none;border-bottom:0;float:none;padding-top:0;padding-left:0;margin-left:auto;border-left:0;display:block;padding-right:0;margin-right:auto;" border="0" alt="Screenshot_2016-05-04-09-22-11" src="https://hectorperez.wordpress.com/wp-content/uploads/2016/05/screenshot_2016-05-04-09-22-11_thumb.png?w=248&#038;h=437" width="248" height="437" /></a></p>
<p><strong>3.- Probar los ejemplos que vienen en la solución:</strong></p>
<p align="justify">3a) Abrir la solución de ejemplo:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2016/05/screen-shot-05-04-16-at-09-30-am.png"><img loading="lazy" title="Screen Shot 05-04-16 at 09.30 AM" style="border-top:0;border-right:0;background-image:none;border-bottom:0;float:none;padding-top:0;padding-left:0;margin-left:auto;border-left:0;display:block;padding-right:0;margin-right:auto;" border="0" alt="Screen Shot 05-04-16 at 09.30 AM" src="https://hectorperez.wordpress.com/wp-content/uploads/2016/05/screen-shot-05-04-16-at-09-30-am_thumb.png?w=475&#038;h=84" width="475" height="84" /></a></p>
<p>3b) De nueva cuenta, restaurar los paquetes de nuget:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2016/05/screen-shot-05-04-16-at-09-30-am-001.png"><img loading="lazy" title="Screen Shot 05-04-16 at 09.30 AM 001" style="border-top:0;border-right:0;background-image:none;border-bottom:0;float:none;padding-top:0;padding-left:0;margin-left:auto;border-left:0;display:block;padding-right:0;margin-right:auto;" border="0" alt="Screen Shot 05-04-16 at 09.30 AM 001" src="https://hectorperez.wordpress.com/wp-content/uploads/2016/05/screen-shot-05-04-16-at-09-30-am-001_thumb.png?w=533&#038;h=33" width="533" height="33" /></a></p>
<p align="justify">3c) Un ícono de un gorila nos mostrará que estamos conectados y listos para probar el código XAML de nuestro proyecto:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2016/05/screen-shot-05-04-16-at-09-34-am.png"><img loading="lazy" title="Screen Shot 05-04-16 at 09.34 AM" style="border-top:0;border-right:0;background-image:none;border-bottom:0;float:none;padding-top:0;padding-left:0;margin-left:auto;border-left:0;display:block;padding-right:0;margin-right:auto;" border="0" alt="Screen Shot 05-04-16 at 09.34 AM" src="https://hectorperez.wordpress.com/wp-content/uploads/2016/05/screen-shot-05-04-16-at-09-34-am_thumb.png?w=474&#038;h=118" width="474" height="118" /></a></p>
<p align="justify">3d) Ahora, basta con que abramos la aplicación recién instalada llamada Gorilla Player desde nuestro emulador o dispositivo, y ejecutar el comando Guardar desde el formulario que queremos probar desde Visual Studio (Ctrl + S) para que nos despliegue el resultado en el dispositivo o emulador deseado:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2016/05/screenshot_2016-05-04-09-35-43.png"><img loading="lazy" title="Screenshot_2016-05-04-09-35-43" style="border-top:0;border-right:0;background-image:none;border-bottom:0;float:none;padding-top:0;padding-left:0;margin-left:auto;border-left:0;display:block;padding-right:0;margin-right:auto;" border="0" alt="Screenshot_2016-05-04-09-35-43" src="https://hectorperez.wordpress.com/wp-content/uploads/2016/05/screenshot_2016-05-04-09-35-43_thumb.png?w=219&#038;h=386" width="219" height="386" /></a></p>
<p align="justify">Al llevar a cabo algún cambio, bastará con volver a presionar Ctrl + S para verificar el cambio en tiempo real:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2016/05/screenshot_2016-05-04-09-37-49.png"><img loading="lazy" title="Screenshot_2016-05-04-09-37-49" style="border-top:0;border-right:0;background-image:none;border-bottom:0;float:none;padding-top:0;padding-left:0;margin-left:auto;border-left:0;display:block;padding-right:0;margin-right:auto;" border="0" alt="Screenshot_2016-05-04-09-37-49" src="https://hectorperez.wordpress.com/wp-content/uploads/2016/05/screenshot_2016-05-04-09-37-49_thumb.png?w=211&#038;h=372" width="211" height="372" /></a></p>
<p align="justify">Podemos ahora abrir algún proyecto desarrollado previamente, y ver en tiempo real si existe algún problema de diseño como en el siguiente caso:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2016/05/screenshot_2016-05-04-10-12-00.png"><img loading="lazy" title="Screenshot_2016-05-04-10-12-00" style="border-top:0;border-right:0;background-image:none;border-bottom:0;float:none;padding-top:0;padding-left:0;margin-left:auto;border-left:0;display:block;padding-right:0;margin-right:auto;" border="0" alt="Screenshot_2016-05-04-10-12-00" src="https://hectorperez.wordpress.com/wp-content/uploads/2016/05/screenshot_2016-05-04-10-12-00_thumb.png?w=199&#038;h=351" width="199" height="351" /></a></p>
<p align="justify">Este formulario, lo podemos corregir de una manera muy sencilla y rápida con ayuda de Gorilla Player:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2016/05/screenshot_2016-05-04-10-15-46.png"><img loading="lazy" title="Screenshot_2016-05-04-10-15-46" style="border-top:0;border-right:0;background-image:none;border-bottom:0;float:none;padding-top:0;padding-left:0;margin-left:auto;border-left:0;display:block;padding-right:0;margin-right:auto;" border="0" alt="Screenshot_2016-05-04-10-15-46" src="https://hectorperez.wordpress.com/wp-content/uploads/2016/05/screenshot_2016-05-04-10-15-46_thumb.png?w=217&#038;h=383" width="217" height="383" /></a></p>
<p align="justify">Como podemos ver, llevar a cabo la realización de formularios a través de Gorilla Player es una excelente alternativa para ahorrarnos muchísimo tiempo. La única advertencia que hay que tener en cuenta, es que el servicio, seguramente tendrá un costo extra en la versión final.</p>
<p align="justify">Por último, como advertencia, Visual Studio en conjunto con Gorilla Player se me congela si el proyecto se encuentra alojado en un repositorio GitHub.</p>
<p align="justify">Saludos.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://hectorperez.wordpress.com/2016/05/04/xamarin-forms-pre-visualizando-los-formularios-opcin-2-gorilla-player/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1065</post-id>
		<media:content url="https://1.gravatar.com/avatar/d5470cbae4baec70037bcb8002d500454cd05af89c1dedb32b0fc7aff97a67c2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Héctor Uriel Pérez Rojas</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2016/05/screen-shot-05-03-16-at-11-25-am_thumb.png" medium="image">
			<media:title type="html">Screen Shot 05-03-16 at 11.25 AM</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2016/05/screen-shot-05-04-16-at-08-40-am_thumb.png" medium="image">
			<media:title type="html">Screen Shot 05-04-16 at 08.40 AM</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2016/05/screen-shot-05-04-16-at-08-43-am_thumb.png" medium="image">
			<media:title type="html">Screen Shot 05-04-16 at 08.43 AM</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2016/05/screen-shot-05-04-16-at-08-44-am_thumb.png" medium="image">
			<media:title type="html">Screen Shot 05-04-16 at 08.44 AM</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2016/05/screen-shot-05-04-16-at-09-15-am_thumb.png" medium="image">
			<media:title type="html">Screen Shot 05-04-16 at 09.15 AM</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2016/05/screenshot_2016-05-04-09-22-11_thumb.png" medium="image">
			<media:title type="html">Screenshot_2016-05-04-09-22-11</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2016/05/screen-shot-05-04-16-at-09-30-am_thumb.png" medium="image">
			<media:title type="html">Screen Shot 05-04-16 at 09.30 AM</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2016/05/screen-shot-05-04-16-at-09-30-am-001_thumb.png" medium="image">
			<media:title type="html">Screen Shot 05-04-16 at 09.30 AM 001</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2016/05/screen-shot-05-04-16-at-09-34-am_thumb.png" medium="image">
			<media:title type="html">Screen Shot 05-04-16 at 09.34 AM</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2016/05/screenshot_2016-05-04-09-35-43_thumb.png" medium="image">
			<media:title type="html">Screenshot_2016-05-04-09-35-43</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2016/05/screenshot_2016-05-04-09-37-49_thumb.png" medium="image">
			<media:title type="html">Screenshot_2016-05-04-09-37-49</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2016/05/screenshot_2016-05-04-10-12-00_thumb.png" medium="image">
			<media:title type="html">Screenshot_2016-05-04-10-12-00</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2016/05/screenshot_2016-05-04-10-15-46_thumb.png" medium="image">
			<media:title type="html">Screenshot_2016-05-04-10-15-46</media:title>
		</media:content>
	</item>
		<item>
		<title>Xamarin Forms: Pre visualizando los formularios (Opci&#243;n 1)</title>
		<link>https://hectorperez.wordpress.com/2016/04/28/xamarin-forms-pre-visualizando-los-formularios-opcin-1/</link>
					<comments>https://hectorperez.wordpress.com/2016/04/28/xamarin-forms-pre-visualizando-los-formularios-opcin-1/#respond</comments>
		
		<dc:creator><![CDATA[hectorperez]]></dc:creator>
		<pubDate>Thu, 28 Apr 2016 15:48:00 +0000</pubDate>
				<category><![CDATA[Xamarin Forms]]></category>
		<guid isPermaLink="false">http://hectorperez.wordpress.com/?p=1036</guid>

					<description><![CDATA[Una de las características más solicitadas por los desarrolladores en Xamarin Forms, es el poder ver en tiempo de diseño sus formularios. Aunque en el evento “Xamarin Evolve 2016” se ha anunciado un pre visualizador oficial, aún se encuentra en estado Alpha. Una de las opciones para llevar a cabo una previsualización de nuestros formularios &#8230; <a href="https://hectorperez.wordpress.com/2016/04/28/xamarin-forms-pre-visualizando-los-formularios-opcin-1/" class="more-link">Continuar leyendo <span class="screen-reader-text">Xamarin Forms: Pre visualizando los formularios (Opci&#243;n&#160;1)</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p align="justify">Una de las características más solicitadas por los desarrolladores en Xamarin Forms, es el poder ver en tiempo de diseño sus formularios. Aunque en el evento “Xamarin Evolve 2016” se ha anunciado un pre visualizador oficial, aún se encuentra en estado Alpha.</p>
<p align="justify">Una de las opciones para llevar a cabo una previsualización de nuestros formularios (aunque no es en tiempo real), es la utilización del proyecto Windows Phone Forms to Xamarin Forms, el cual nos permite convertir un formulario desarrollado para Windows Phone en un formulario de Xamarin. Aquí van las instrucciones:</p>
<p><strong>1.- Creando el formulario en un proyecto tipo Windows Phone</strong></p>
<p align="justify">Debemos crear un nuevo formulario en un proyecto tipo Windows Phone, o bien utilizar uno existente:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2016/04/screen-shot-04-28-16-at-10-25-am.png"><img loading="lazy" title="Screen Shot 04-28-16 at 10.25 AM" style="border-top:0;border-right:0;background-image:none;border-bottom:0;float:none;padding-top:0;padding-left:0;margin-left:auto;border-left:0;display:block;padding-right:0;margin-right:auto;" border="0" alt="Screen Shot 04-28-16 at 10.25 AM" src="https://hectorperez.wordpress.com/wp-content/uploads/2016/04/screen-shot-04-28-16-at-10-25-am_thumb.png?w=462&#038;h=124" width="462" height="124" /></a></p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2016/04/screen-shot-04-28-16-at-10-25-am-001.png"><img loading="lazy" title="Screen Shot 04-28-16 at 10.25 AM 001" style="border-top:0;border-right:0;background-image:none;border-bottom:0;float:none;padding-top:0;padding-left:0;margin-left:auto;border-left:0;display:block;padding-right:0;margin-right:auto;" border="0" alt="Screen Shot 04-28-16 at 10.25 AM 001" src="https://hectorperez.wordpress.com/wp-content/uploads/2016/04/screen-shot-04-28-16-at-10-25-am-001_thumb.png?w=472&#038;h=326" width="472" height="326" /></a></p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2016/04/screen-shot-04-28-16-at-10-27-am.png"><img loading="lazy" title="Screen Shot 04-28-16 at 10.27 AM" style="border-top:0;border-right:0;background-image:none;border-bottom:0;float:none;padding-top:0;padding-left:0;margin-left:auto;border-left:0;display:block;padding-right:0;margin-right:auto;" border="0" alt="Screen Shot 04-28-16 at 10.27 AM" src="https://hectorperez.wordpress.com/wp-content/uploads/2016/04/screen-shot-04-28-16-at-10-27-am_thumb.png?w=382&#038;h=254" width="382" height="254" /></a></p>
<p align="justify">Una vez agregado el archivo en el proyecto, podemos comenzar a diseñarlo con ayuda del diseñador integrado para este tipo de proyectos, en mi caso, crearé un formulario que quedará de la siguiente manera:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2016/04/screen-shot-04-28-16-at-10-28-am.png"><img loading="lazy" title="Screen Shot 04-28-16 at 10.28 AM" style="border-top:0;border-right:0;background-image:none;border-bottom:0;float:none;padding-top:0;padding-left:0;margin-left:auto;border-left:0;display:block;padding-right:0;margin-right:auto;" border="0" alt="Screen Shot 04-28-16 at 10.28 AM" src="https://hectorperez.wordpress.com/wp-content/uploads/2016/04/screen-shot-04-28-16-at-10-28-am_thumb.png?w=362&#038;h=646" width="362" height="646" /></a></p>
<p align="justify">con el código correspondiente:</p>
<p><pre class="brush: xml; title: ; notranslate">
&lt;phone:PhoneApplicationPage
    x:Class=&quot;JsonWebServices.WinPhone.WeatherPage&quot;
    xmlns=&quot;http://schemas.microsoft.com/winfx/2006/xaml/presentation&quot;
    xmlns:x=&quot;http://schemas.microsoft.com/winfx/2006/xaml&quot;
    xmlns:phone=&quot;clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone&quot;
    xmlns:shell=&quot;clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone&quot;
    xmlns:d=&quot;http://schemas.microsoft.com/expression/blend/2008&quot;
    xmlns:mc=&quot;http://schemas.openxmlformats.org/markup-compatibility/2006&quot;
    FontFamily=&quot;{StaticResource PhoneFontFamilyNormal}&quot;
    FontSize=&quot;{StaticResource PhoneFontSizeNormal}&quot;
    Foreground=&quot;{StaticResource PhoneForegroundBrush}&quot;
    SupportedOrientations=&quot;Portrait&quot; Orientation=&quot;Portrait&quot;
    mc:Ignorable=&quot;d&quot;
    shell:SystemTray.IsVisible=&quot;True&quot;&gt;

    &lt;!--LayoutRoot is the root grid where all page content is placed--&gt;
    &lt;Grid x:Name=&quot;LayoutRoot&quot; Background=&quot;Transparent&quot;&gt;
        &lt;Grid.RowDefinitions&gt;
            &lt;RowDefinition Height=&quot;Auto&quot;/&gt;
            &lt;RowDefinition Height=&quot;*&quot;/&gt;
        &lt;/Grid.RowDefinitions&gt;

        &lt;!--TitlePanel contains the name of the application and page title--&gt;
        &lt;StackPanel Grid.Row=&quot;0&quot; Margin=&quot;12,17,0,28&quot;&gt;
            &lt;TextBlock Text=&quot;XAMARIN&quot; FontSize=&quot;20&quot;/&gt;
            &lt;TextBlock Text=&quot;Weather App&quot; Margin=&quot;9,-7,0,0&quot; FontSize=&quot;72&quot; /&gt;
        &lt;/StackPanel&gt;

        &lt;!--ContentPanel - place additional content here--&gt;
        &lt;Grid x:Name=&quot;ContentPanel&quot; Grid.Row=&quot;1&quot; Margin=&quot;12,0,12,0&quot;&gt;
            &lt;StackPanel Orientation=&quot;Vertical&quot;&gt;
                &lt;StackPanel Orientation=&quot;Horizontal&quot;&gt;
                    &lt;TextBlock&gt;Latitud&lt;/TextBlock&gt;
                    &lt;TextBox Width=&quot;300&quot; x:Name=&quot;txtLatitude&quot;&gt;&lt;/TextBox&gt;
                &lt;/StackPanel&gt;
                &lt;StackPanel Orientation=&quot;Horizontal&quot;&gt;
                    &lt;TextBlock&gt;Longitud&lt;/TextBlock&gt;
                    &lt;TextBox Width=&quot;300&quot; x:Name=&quot;txtLongitude&quot;&gt;&lt;/TextBox&gt;
                &lt;/StackPanel&gt;
                &lt;Button Content=&quot;Obtener Datos&quot; Click=&quot;ButtonBase_OnClick&quot;&gt;&lt;/Button&gt;
                &lt;StackPanel Orientation=&quot;Horizontal&quot;&gt;
                    &lt;TextBlock Width=&quot;130&quot;&gt;Ubicación&lt;/TextBlock&gt;
                    &lt;TextBlock Text=&quot;{Binding StationName}&quot;&gt;&lt;/TextBlock&gt;
                &lt;/StackPanel&gt;
                &lt;StackPanel Orientation=&quot;Horizontal&quot;&gt;
                    &lt;TextBlock Width=&quot;130&quot;&gt;Elevación&lt;/TextBlock&gt;
                    &lt;TextBlock Text=&quot;{Binding Elevation}&quot;&gt;&lt;/TextBlock&gt;
                &lt;/StackPanel&gt;
                &lt;StackPanel Orientation=&quot;Horizontal&quot;&gt;
                    &lt;TextBlock Width=&quot;130&quot;&gt;Temperatura&lt;/TextBlock&gt;
                    &lt;TextBlock Text=&quot;{Binding Temperature}&quot;&gt;&lt;/TextBlock&gt;
                &lt;/StackPanel&gt;
                &lt;StackPanel Orientation=&quot;Horizontal&quot;&gt;
                    &lt;TextBlock Width=&quot;130&quot;&gt;Humedad&lt;/TextBlock&gt;
                    &lt;TextBlock Text=&quot;{Binding Humidity}&quot;&gt;&lt;/TextBlock&gt;
                &lt;/StackPanel&gt;
            &lt;/StackPanel&gt;
        &lt;/Grid&gt;
    &lt;/Grid&gt;

&lt;/phone:PhoneApplicationPage&gt;
</pre>
</p>
<p><strong>2.- Leer la documentación y descargar la herramienta</strong> </p>
<p align="justify">El autor de la herramienta es Jonathan Yates, y podemos encontrar <a href="http://www.gui-innovations.com/Blog%20Posts/windows-phones-forms-to-xamarin-forms.html">la entrada principal de la herramienta aquí</a>. Aunque los enlaces de la página a la página de OneDrive llevan a un link desactualizado, puedes enviarle un mail a <a href="mailto:pete@petevickers.co.uk">pete@petevickers.co.uk</a> para solicitarle una copia de la herramienta, quien, en mi caso particular me respondió mi correo de forma rápida.</p>
<p><strong>3.- Utilizando la herramienta</strong></p>
<p align="justify">Una vez que hemos instalado la herramienta, nos aparecerá algo parecido a esto:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2016/04/screen-shot-04-28-16-at-10-37-am.png"><img loading="lazy" title="Screen Shot 04-28-16 at 10.37 AM" style="border-top:0;border-right:0;background-image:none;border-bottom:0;float:none;padding-top:0;padding-left:0;margin-left:auto;border-left:0;display:block;padding-right:0;margin-right:auto;" border="0" alt="Screen Shot 04-28-16 at 10.37 AM" src="https://hectorperez.wordpress.com/wp-content/uploads/2016/04/screen-shot-04-28-16-at-10-37-am_thumb.png?w=590&#038;h=463" width="590" height="463" /></a></p>
<p align="justify">Lo que haremos en este caso en particular, será colocarle un espacio de nombres dentro del proyecto donde se alojará el formulario, seleccionaremos la ruta al archivo, y automáticamente nos generará una ruta para un archivo destino:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2016/04/screen-shot-04-28-16-at-10-40-am.png"><img loading="lazy" title="Screen Shot 04-28-16 at 10.40 AM" style="border-top:0;border-right:0;background-image:none;border-bottom:0;float:none;padding-top:0;padding-left:0;margin-left:auto;border-left:0;display:block;padding-right:0;margin-right:auto;" border="0" alt="Screen Shot 04-28-16 at 10.40 AM" src="https://hectorperez.wordpress.com/wp-content/uploads/2016/04/screen-shot-04-28-16-at-10-40-am_thumb.png?w=601&#038;h=220" width="601" height="220" /></a></p>
<p align="justify">Posteriormente, debemos dar click en el botón “Generate”, lo cual nos mostrará un mensaje si la conversión es correcta:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2016/04/screen-shot-04-28-16-at-10-40-am-001.png"><img loading="lazy" title="Screen Shot 04-28-16 at 10.40 AM 001" style="border-top:0;border-right:0;background-image:none;border-bottom:0;float:none;padding-top:0;padding-left:0;margin-left:auto;border-left:0;display:block;padding-right:0;margin-right:auto;" border="0" alt="Screen Shot 04-28-16 at 10.40 AM 001" src="https://hectorperez.wordpress.com/wp-content/uploads/2016/04/screen-shot-04-28-16-at-10-40-am-001_thumb.png?w=352&#038;h=159" width="352" height="159" /></a></p>
<p align="justify">El resultado será el siguiente código, que podremos reutilizar para no iniciar nuestros desarrollos desde cero:</p>
<p><pre class="brush: xml; title: ; notranslate">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot; ?&gt;
&lt;!--Code generated by 'WP to XF' created by GUI Innovations Limited--&gt;
&lt;!--For more details, enhancement requests, bugs etc.  please email--&gt;
&lt;!--             pete@gui-innovations.com  - Thanks                --&gt;
&lt;formtype xmlns=|http://xamarin.com/schemas/2014/forms|
             xmlns:x=|http://schemas.microsoft.com/winfx/2009/xaml|
             x:Class=|PageName|&gt;

&lt;StackLayout Orientation=&quot;Vertical&quot;
      VerticalOptions=&quot;FillAndExpand&quot;
      HorizontalOptions=&quot;FillAndExpand&quot;
      Padding=&quot;10,40,10,30&quot;
      Spacing=&quot;10&quot;&gt;

    &lt;!--LayoutRoot is the root grid where all page content is placed--&gt;
    &lt;Grid x:Name=&quot;LayoutRoot&quot; BackgroundColor=&quot;Transparent&quot;&gt;
        &lt;Grid.RowDefinitions&gt;
            &lt;RowDefinition Height=&quot;Auto&quot;/&gt;
            &lt;RowDefinition Height=&quot;*&quot;/&gt;
        &lt;/Grid.RowDefinitions&gt;

        &lt;!--TitlePanel contains the name of the application and page title--&gt;
        &lt;StackLayout Grid.Row=&quot;0&quot; Padding=&quot;12,17,0,28&quot;&gt;
            &lt;Label Text=&quot;XAMARIN&quot; FontSize=&quot;20&quot;/&gt;
            &lt;Label Text=&quot;Weather App&quot;  FontSize=&quot;72&quot; /&gt;
        &lt;/StackLayout&gt;

        &lt;!--ContentPanel - place additional content here--&gt;
        &lt;Grid x:Name=&quot;ContentPanel&quot; Grid.Row=&quot;1&quot; Padding=&quot;12,0,12,0&quot;&gt;
            &lt;StackLayout Orientation=&quot;Vertical&quot;&gt;
                &lt;StackLayout Orientation=&quot;Horizontal&quot;&gt;
                    &lt;Label&gt;Latitud&lt;/Label&gt;
                    &lt;Entry WidthRequest=&quot;300&quot; x:Name=&quot;txtLatitude&quot;&gt;&lt;/Entry&gt;
                &lt;/StackLayout&gt;
                &lt;StackLayout Orientation=&quot;Horizontal&quot;&gt;
                    &lt;Label&gt;Longitud&lt;/Label&gt;
                    &lt;Entry WidthRequest=&quot;300&quot; x:Name=&quot;txtLongitude&quot;&gt;&lt;/Entry&gt;
                &lt;/StackLayout&gt;
                &lt;Button Text=&quot;Obtener Datos&quot;&gt;&lt;/Button&gt;
                &lt;StackLayout Orientation=&quot;Horizontal&quot;&gt;
                    &lt;Label WidthRequest=&quot;130&quot;&gt;Ubicación&lt;/Label&gt;
                    &lt;Label Text=&quot;{Binding StationName}&quot;&gt;&lt;/Label&gt;
                &lt;/StackLayout&gt;
                &lt;StackLayout Orientation=&quot;Horizontal&quot;&gt;
                    &lt;Label WidthRequest=&quot;130&quot;&gt;Elevación&lt;/Label&gt;
                    &lt;Label Text=&quot;{Binding Elevation}&quot;&gt;&lt;/Label&gt;
                &lt;/StackLayout&gt;
                &lt;StackLayout Orientation=&quot;Horizontal&quot;&gt;
                    &lt;Label WidthRequest=&quot;130&quot;&gt;Temperatura&lt;/Label&gt;
                    &lt;Label Text=&quot;{Binding Temperature}&quot;&gt;&lt;/Label&gt;
                &lt;/StackLayout&gt;
                &lt;StackLayout Orientation=&quot;Horizontal&quot;&gt;
                    &lt;Label WidthRequest=&quot;130&quot;&gt;Humedad&lt;/Label&gt;
                    &lt;Label Text=&quot;{Binding Humidity}&quot;&gt;&lt;/Label&gt;
                &lt;/StackLayout&gt;
            &lt;/StackLayout&gt;
        &lt;/Grid&gt;
    &lt;/Grid&gt;
&lt;/StackLayout&gt;
&lt;/ContentPage&gt;

</pre>
</p>
<p align="justify">Cabe destacar que la herramienta es una muy buena ayuda para no iniciar desde cero nuestros formularios, o bien, si queremos reutilizar formularios existentes. </p>
<p>Saludos.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://hectorperez.wordpress.com/2016/04/28/xamarin-forms-pre-visualizando-los-formularios-opcin-1/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1036</post-id>
		<media:content url="https://1.gravatar.com/avatar/d5470cbae4baec70037bcb8002d500454cd05af89c1dedb32b0fc7aff97a67c2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Héctor Uriel Pérez Rojas</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2016/04/screen-shot-04-28-16-at-10-25-am_thumb.png" medium="image">
			<media:title type="html">Screen Shot 04-28-16 at 10.25 AM</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2016/04/screen-shot-04-28-16-at-10-25-am-001_thumb.png" medium="image">
			<media:title type="html">Screen Shot 04-28-16 at 10.25 AM 001</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2016/04/screen-shot-04-28-16-at-10-27-am_thumb.png" medium="image">
			<media:title type="html">Screen Shot 04-28-16 at 10.27 AM</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2016/04/screen-shot-04-28-16-at-10-28-am_thumb.png" medium="image">
			<media:title type="html">Screen Shot 04-28-16 at 10.28 AM</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2016/04/screen-shot-04-28-16-at-10-37-am_thumb.png" medium="image">
			<media:title type="html">Screen Shot 04-28-16 at 10.37 AM</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2016/04/screen-shot-04-28-16-at-10-40-am_thumb.png" medium="image">
			<media:title type="html">Screen Shot 04-28-16 at 10.40 AM</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2016/04/screen-shot-04-28-16-at-10-40-am-001_thumb.png" medium="image">
			<media:title type="html">Screen Shot 04-28-16 at 10.40 AM 001</media:title>
		</media:content>
	</item>
		<item>
		<title>Xamarin Forms: Consumiendo un servicio web basado en JSON Parte 2: Creando el ViewModel</title>
		<link>https://hectorperez.wordpress.com/2016/04/25/xamarin-forms-consumiendo-un-servicio-web-basado-en-json-parte-2-creando-el-viewmodel-2/</link>
					<comments>https://hectorperez.wordpress.com/2016/04/25/xamarin-forms-consumiendo-un-servicio-web-basado-en-json-parte-2-creando-el-viewmodel-2/#respond</comments>
		
		<dc:creator><![CDATA[hectorperez]]></dc:creator>
		<pubDate>Mon, 25 Apr 2016 15:02:00 +0000</pubDate>
				<category><![CDATA[Xamarin Forms]]></category>
		<guid isPermaLink="false">http://hectorperez.wordpress.com/?p=1019</guid>

					<description><![CDATA[En este post nos enfocaremos a crear el ViewModel del proyecto. En primer lugar, crearemos una carpeta llamada ViewModel, donde alojaremos nuestro código correspondiente al ViewModel. Crearemos una clase llamda MainPageViewModel, a la cual implementaremos la interfaz: INotifyPropertyChanged, de la siguiente manera: Para poder llevar a cabo la notificación de un cambio en una de &#8230; <a href="https://hectorperez.wordpress.com/2016/04/25/xamarin-forms-consumiendo-un-servicio-web-basado-en-json-parte-2-creando-el-viewmodel-2/" class="more-link">Continuar leyendo <span class="screen-reader-text">Xamarin Forms: Consumiendo un servicio web basado en JSON Parte 2: Creando el&#160;ViewModel</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p>En este post nos enfocaremos a crear el ViewModel del proyecto. En primer lugar, crearemos una carpeta llamada ViewModel, donde alojaremos nuestro código correspondiente al ViewModel.</p>
<p>Crearemos una clase llamda MainPageViewModel, a la cual implementaremos la interfaz: <em>INotifyPropertyChanged, de la siguiente manera:</em></p>
<p><pre class="brush: csharp; title: ; notranslate">
using System.ComponentModel;
using System.Runtime.CompilerServices;
using JsonWebServices.Annotations;

namespace JsonWebServices.ViewModel
{
    public class MainPageViewModel : INotifyPropertyChanged
    {
        #region InotifyPropertyChanged
        public event PropertyChangedEventHandler PropertyChanged;

        [NotifyPropertyChangedInvocator]
        protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
        {
            if (PropertyChanged != null)
            {
                PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
            }
        }
        #endregion
    }
}

</pre>
</p>
<p>Para poder llevar a cabo la notificación de un cambio en una de las propiedades para poder comunicársela a la interfaz gráfica a través de un binding, debemos crear una propiedad&#160; por cada valor que queramos notificar a la interfaz gráfica, seguido de la llamada al método OnPropertyChanged(), como en el siguiente ejemplo:</p>
<p><pre class="brush: csharp; title: ; notranslate">
        private string _stationName;
        public string StationName
        {
            get
            {
                return _stationName;
            }

            set
            {
                _stationName = value;
                OnPropertyChanged();
            }
        }
</pre>
</p>
<p>Para ejemplos demostrativos, implementaremos las propiedades de StationName, Elevation, Temperature y Humidity, de la siguiente forma</p>
<p><pre class="brush: csharp; title: ; notranslate">
        #region Properties
        private string _stationName;
        private int _elevation;
        private string _temperature;
        private int _humidity;
        public string StationName
        {
            get
            {
                return _stationName;
            }

            set
            {
                _stationName = value;
                OnPropertyChanged();
            }
        }
        public int Elevation
        {
            get
            {
                return _elevation;
            }

            set
            {
                _elevation = value;
                OnPropertyChanged();
            }
        }

        public string Temperature
        {
            get
            {
                return _temperature;
            }

            set
            {
                _temperature = value;
                OnPropertyChanged();
            }
        }

        public int Humidity
        {
            get
            {
                return _humidity;
            }

            set
            {
                _humidity = value;
                OnPropertyChanged();
            }
        }
        #endregion
</pre>
</p>
<p>Para la siguiente parte, debemos instalar un par de paquetes de nuget, los cuales puedes instalar a través de la Consola de paquetes de nuget, apuntando al proyecto Portable:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2016/04/screen-shot-04-25-16-at-09-46-am.png"><img loading="lazy" title="Screen Shot 04-25-16 at 09.46 AM" style="background-image:none;float:none;padding-top:0;padding-left:0;margin-left:auto;display:block;padding-right:0;margin-right:auto;border-width:0;" border="0" alt="Screen Shot 04-25-16 at 09.46 AM" src="https://hectorperez.wordpress.com/wp-content/uploads/2016/04/screen-shot-04-25-16-at-09-46-am_thumb.png?w=558&#038;h=196" width="558" height="196" /></a></p>
<p>los cuales son:</p>
<blockquote>
<p><code>Install-Package Microsoft.Net.Http</code></p>
</blockquote>
<blockquote>
<p><code>Install-Package Newtonsoft.Json</code></p>
</blockquote>
<p>&#160;</p>
<p>Posteriormente, debemos crear un método llamado GetWeatherAsync que se encargue de llevar a cabo la solicitud al sitio web, a través de una instancia de HttpClient. y su posterior deserialización de la siguiente forma:</p>
<p><pre class="brush: csharp; title: ; notranslate">
        public async Task GetWeatherAsync(string url)
        {
            //Creamos una instancia de HttpClient
            var client = new HttpClient();
            //Asignamos la URL
            client.BaseAddress = new Uri(url);
            //Llamada asíncrona al sitio
            var response = await client.GetAsync(client.BaseAddress);
            //Nos aseguramos de recibir una respuesta satisfactoria
            response.EnsureSuccessStatusCode();
            //Convertimos la respuesta a una variable string
            var jsonResult = response.Content.ReadAsStringAsync().Result;
            //Se deserializa la cadena y se convierte en una instancia de WeatherResult
            var weather = JsonConvert.DeserializeObject&lt;WeatherResult&gt;(jsonResult);
            //Asignamos el nuevo valor de las propiedades
            SetValue(weather);
        }
</pre>
</p>
<p>Por último, agregaremos un método llamado SetValue, que nos servirá para actualizar las propiedades de la clase contenida en el ViewModel, de la siguiente forma:</p>
<p><pre class="brush: csharp; title: ; notranslate">
        private void SetValue(WeatherResult weather)
        {
            var stationName = weather.WeatherObservation.StationName;
            var elevation = weather.WeatherObservation.Elevation;
            var temperature = weather.WeatherObservation.Temperature;
            var humidity = weather.WeatherObservation.Humidity;

            StationName = stationName;
            Elevation = elevation;
            Temperature = temperature;
            Humidity = humidity;
        }
</pre>
</p>
<p>El resultado final de la clase, deberá verse de la siguiente forma:</p>
<p><pre class="brush: csharp; title: ; notranslate">
using System;
using System.ComponentModel;
using System.Net.Http;
using System.Runtime.CompilerServices;
using System.Threading.Tasks;
using JsonWebServices.Annotations;
using JsonWebServices.Model;
using Newtonsoft.Json;

namespace JsonWebServices.ViewModel
{
    public class MainPageViewModel : INotifyPropertyChanged
    {
        #region Properties
        private string _stationName;
        private int _elevation;
        private string _temperature;
        private int _humidity;
        public string StationName
        {
            get
            {
                return _stationName;
            }

            set
            {
                _stationName = value;
                OnPropertyChanged();
            }
        }
        public int Elevation
        {
            get
            {
                return _elevation;
            }

            set
            {
                _elevation = value;
                OnPropertyChanged();
            }
        }

        public string Temperature
        {
            get
            {
                return _temperature;
            }

            set
            {
                _temperature = value;
                OnPropertyChanged();
            }
        }

        public int Humidity
        {
            get
            {
                return _humidity;
            }

            set
            {
                _humidity = value;
                OnPropertyChanged();
            }
        }
        #endregion

        #region Methods
        public async Task GetWeatherAsync(string url)
        {
            //Creamos una instancia de HttpClient
            var client = new HttpClient();
            //Asignamos la URL
            client.BaseAddress = new Uri(url);
            //Llamada asíncrona al sitio
            var response = await client.GetAsync(client.BaseAddress);
            //Nos aseguramos de recibir una respuesta satisfactoria
            response.EnsureSuccessStatusCode();
            //Convertimos la respuesta a una variable string
            var jsonResult = response.Content.ReadAsStringAsync().Result;
            //Se deserializa la cadena y se convierte en una instancia de WeatherResult
            var weather = JsonConvert.DeserializeObject&lt;WeatherResult&gt;(jsonResult);
            //Asignamos el nuevo valor de las propiedades
            SetValue(weather);
        }

        private void SetValue(WeatherResult weather)
        {
            var stationName = weather.WeatherObservation.StationName;
            var elevation = weather.WeatherObservation.Elevation;
            var temperature = weather.WeatherObservation.Temperature;
            var humidity = weather.WeatherObservation.Humidity;

            StationName = stationName;
            Elevation = elevation;
            Temperature = temperature;
            Humidity = humidity;
        }
        #endregion

        #region InotifyPropertyChanged
        public event PropertyChangedEventHandler PropertyChanged;

        [NotifyPropertyChangedInvocator]
        protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
        {
            if (PropertyChanged != null)
            {
                PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
            }
        }
        #endregion
    }
}

</pre>
</p>
<p>En la siguiente entrada, nos encargaremos de la parte de la vista. Cualquier duda o comentario, no dudes en escribirlo, y recuerda que el código fuente del ejemplo lo puedes encontrar <a href="https://github.com/hprez21/xamarin-forms-samples/tree/master/JsonWebServices">aquí</a>.</p>
<p>Saludos.    </p>
]]></content:encoded>
					
					<wfw:commentRss>https://hectorperez.wordpress.com/2016/04/25/xamarin-forms-consumiendo-un-servicio-web-basado-en-json-parte-2-creando-el-viewmodel-2/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1019</post-id>
		<media:content url="https://1.gravatar.com/avatar/d5470cbae4baec70037bcb8002d500454cd05af89c1dedb32b0fc7aff97a67c2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Héctor Uriel Pérez Rojas</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2016/04/screen-shot-04-25-16-at-09-46-am_thumb.png" medium="image">
			<media:title type="html">Screen Shot 04-25-16 at 09.46 AM</media:title>
		</media:content>
	</item>
		<item>
		<title>Xamarin Forms: Consumiendo un servicio web basado en JSON Parte 1: Creando el Modelo</title>
		<link>https://hectorperez.wordpress.com/2016/04/20/xamarin-forms-consumiendo-un-servicio-web-basado-en-json-parte-1-creando-el-modelo/</link>
					<comments>https://hectorperez.wordpress.com/2016/04/20/xamarin-forms-consumiendo-un-servicio-web-basado-en-json-parte-1-creando-el-modelo/#respond</comments>
		
		<dc:creator><![CDATA[hectorperez]]></dc:creator>
		<pubDate>Wed, 20 Apr 2016 17:07:00 +0000</pubDate>
				<category><![CDATA[Xamarin Forms]]></category>
		<guid isPermaLink="false">http://hectorperez.wordpress.com/?p=1008</guid>

					<description><![CDATA[Para llevar a cabo el consumo de un servicio web basado en Json, en primer lugar, debemos tener disponible el servicio mismo. Para llevar a cabo esta demostración, utilizaré los servicios alojados en este enlace. Esta página nos permite utilizar más de 30 servicios web diferentes, cuya respuesta puede ser XML, JSON, RDF, CSV, TXT, &#8230; <a href="https://hectorperez.wordpress.com/2016/04/20/xamarin-forms-consumiendo-un-servicio-web-basado-en-json-parte-1-creando-el-modelo/" class="more-link">Continuar leyendo <span class="screen-reader-text">Xamarin Forms: Consumiendo un servicio web basado en JSON Parte 1: Creando el&#160;Modelo</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p align="justify">Para llevar a cabo el consumo de un servicio web basado en Json, en primer lugar, debemos tener disponible el servicio mismo. Para llevar a cabo esta demostración, utilizaré los servicios alojados <a href="http://www.geonames.org/export/ws-overview.html">en este enlace</a>.</p>
<p align="justify">Esta página nos permite utilizar más de 30 servicios web diferentes, cuya respuesta puede ser XML, JSON, RDF, CSV, TXT, RSS ó KML, basta con dar click sobre el enlace requerido para que se nos muestre un ejemplo de la respuesta del servicio. Yo utilizaré el servicio <a href="http://www.geonames.org/export/JSON-webservices.html#findNearByWeatherJSON">findNearByWeather</a>.</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2016/04/screen-shot-04-20-16-at-09-52-am.png"><img loading="lazy" title="Screen Shot 04-20-16 at 09.52 AM" style="border-top:0;border-right:0;background-image:none;border-bottom:0;float:none;padding-top:0;padding-left:0;margin-left:auto;border-left:0;display:block;padding-right:0;margin-right:auto;" border="0" alt="Screen Shot 04-20-16 at 09.52 AM" src="https://hectorperez.wordpress.com/wp-content/uploads/2016/04/screen-shot-04-20-16-at-09-52-am_thumb.png?w=315&#038;h=338" width="315" height="338" /></a></p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2016/04/screen-shot-04-20-16-at-09-53-am.png"><img loading="lazy" title="Screen Shot 04-20-16 at 09.53 AM" style="border-top:0;border-right:0;background-image:none;border-bottom:0;float:none;padding-top:0;padding-left:0;margin-left:auto;border-left:0;display:block;padding-right:0;margin-right:auto;" border="0" alt="Screen Shot 04-20-16 at 09.53 AM" src="https://hectorperez.wordpress.com/wp-content/uploads/2016/04/screen-shot-04-20-16-at-09-53-am_thumb.png?w=380&#038;h=242" width="380" height="242" /></a></p>
<p>Para iniciar el desarrollo de la aplicación, debemos crear un proyecto de tipo Xamarin.Forms, de tipo Portable:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2016/04/screen-shot-04-20-16-at-10-14-am.png"><img loading="lazy" title="Screen Shot 04-20-16 at 10.14 AM" style="border-top:0;border-right:0;background-image:none;border-bottom:0;float:none;padding-top:0;padding-left:0;margin-left:auto;border-left:0;display:block;padding-right:0;margin-right:auto;" border="0" alt="Screen Shot 04-20-16 at 10.14 AM" src="https://hectorperez.wordpress.com/wp-content/uploads/2016/04/screen-shot-04-20-16-at-10-14-am_thumb.png?w=365&#038;h=240" width="365" height="240" /></a></p>
<p align="justify">Una vez creado el proyecto, crearemos 1 carpeta llamada Model, y dentro de esta, crearemos una clase que aloje las propiedades que correspondan al modelo del archivo Json, a la cual llamaremos WeatherObservation. </p>
<p align="justify">Ahora bien, para llevar a cabo la creación de las propiedades dentro de la clase, podríamos pensar que debemos de escribirlas a mano una por una, sin embargo, Visual Studio nos ofrece la posibilidad de generar el modelo a partir del archivo json. Una vez copiado el archivo json, debemos pegarlo a través del menú Edit –&gt; Paste Special –&gt; Paste JSON As Classes, lo cual nos generará el siguiente código:</p>
<p align="justify">
<pre class="brush: csharp; title: ; notranslate">
namespace JsonWebServices.Model
{

    public class Rootobject
    {
        public Weatherobservation weatherObservation { get; set; }
    }

    public class Weatherobservation
    {
        public int elevation { get; set; }
        public float lng { get; set; }
        public string observation { get; set; }
        public string ICAO { get; set; }
        public string clouds { get; set; }
        public string dewPoint { get; set; }
        public string cloudsCode { get; set; }
        public string datetime { get; set; }
        public string countryCode { get; set; }
        public string temperature { get; set; }
        public int humidity { get; set; }
        public string stationName { get; set; }
        public string weatherCondition { get; set; }
        public int windDirection { get; set; }
        public int hectoPascAltimeter { get; set; }
        public string windSpeed { get; set; }
        public float lat { get; set; }
    }

}

</pre>
</p>
<p align="justify">A continuación, renombraremos la clase Rootobject por WeatherResult. y modificaremos las propiedades para que inicien con mayúsculas, quedando nuestro modelo de la siguiente forma:</p>
<p align="justify">
<pre class="brush: csharp; title: ; notranslate">
namespace JsonWebServices.Model
{

    public class WeatherResult
    {
        public Weatherobservation WeatherObservation { get; set; }
    }

    public class Weatherobservation
    {
        public int Elevation { get; set; }
        public float Lng { get; set; }
        public string Observation { get; set; }
        public string Icao { get; set; }
        public string Clouds { get; set; }
        public string DewPoint { get; set; }
        public string CloudsCode { get; set; }
        public string Datetime { get; set; }
        public string CountryCode { get; set; }
        public string Temperature { get; set; }
        public int Humidity { get; set; }
        public string StationName { get; set; }
        public string WeatherCondition { get; set; }
        public int WindDirection { get; set; }
        public int HectoPascAltimeter { get; set; }
        public string WindSpeed { get; set; }
        public float Lat { get; set; }
    }

}

</pre>
</p>
<p align="justify">En el siguiente post, nos enfocaremos a crear e ViewModel correspondiente a la aplicación.</p>
<p align="justify">El proyecto con los cambios que vayamos haciendo lo pueden encontrar <a href="https://github.com/hprez21/xamarin-forms-samples/tree/master/JsonWebServices">aquí</a>.</p>
<p align="justify">Saludos.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://hectorperez.wordpress.com/2016/04/20/xamarin-forms-consumiendo-un-servicio-web-basado-en-json-parte-1-creando-el-modelo/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1008</post-id>
		<media:content url="https://1.gravatar.com/avatar/d5470cbae4baec70037bcb8002d500454cd05af89c1dedb32b0fc7aff97a67c2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Héctor Uriel Pérez Rojas</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2016/04/screen-shot-04-20-16-at-09-52-am_thumb.png" medium="image">
			<media:title type="html">Screen Shot 04-20-16 at 09.52 AM</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2016/04/screen-shot-04-20-16-at-09-53-am_thumb.png" medium="image">
			<media:title type="html">Screen Shot 04-20-16 at 09.53 AM</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2016/04/screen-shot-04-20-16-at-10-14-am_thumb.png" medium="image">
			<media:title type="html">Screen Shot 04-20-16 at 10.14 AM</media:title>
		</media:content>
	</item>
		<item>
		<title>Xamarin Forms: El m&#233;todo Device.OnPlatform</title>
		<link>https://hectorperez.wordpress.com/2016/04/12/xamarin-forms-el-mtodo-device-onplatform/</link>
					<comments>https://hectorperez.wordpress.com/2016/04/12/xamarin-forms-el-mtodo-device-onplatform/#respond</comments>
		
		<dc:creator><![CDATA[hectorperez]]></dc:creator>
		<pubDate>Tue, 12 Apr 2016 02:20:00 +0000</pubDate>
				<category><![CDATA[Xamarin Forms]]></category>
		<guid isPermaLink="false">http://hectorperez.wordpress.com/?p=999</guid>

					<description><![CDATA[Cuando trabajamos en un desarrollo multiplataforma, a veces es necesario que ciertas propiedades se comporten de forma diferente de acuerdo a la plataforma en la que se encuentre ejecutándose. Una clase que nos puede ayudar a alcanzar dicho objetivo, es la clase estática Device, la cual dentro de sus métodos incluye un método llamado OnPlatform, &#8230; <a href="https://hectorperez.wordpress.com/2016/04/12/xamarin-forms-el-mtodo-device-onplatform/" class="more-link">Continuar leyendo <span class="screen-reader-text">Xamarin Forms: El m&#233;todo Device.OnPlatform</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p align="justify">Cuando trabajamos en un desarrollo multiplataforma, a veces es necesario que ciertas propiedades se comporten de forma diferente de acuerdo a la plataforma en la que se encuentre ejecutándose.</p>
<p align="justify">Una clase que nos puede ayudar a alcanzar dicho objetivo, es la clase estática <strong>Device, </strong>la cual dentro de sus métodos incluye un método llamado <strong>OnPlatform, </strong>cuya definición indica que “Ejecuta diferentes acciones dependiendo en el Xamarin.QcuikUI.TargetOS Form que se encuentre ejecutando.</p>
<p align="justify">Es decir, que con dicho método, podremos asignar que una propiedad Text aparezca con un texto diferente en cada plataforma, que un tamaño de letra sea diferente en cada plataforma, etc.</p>
<p align="justify">La documentación indica que los parámetros de dicho méotod, son opcionales y van ordenados de la siguiente forma:</p>
<blockquote>
<dl>
<dt><i>iOS</i></dt>
<dd>(optional) The Action to execute on iOS. </dd>
<dt><i>Android</i></dt>
<dd>(optional) The Action to execute on Android. </dd>
<dt><i>WinPhone</i></dt>
<dd>(optional) The Action to execute on WinPhone. </dd>
<dt><i>Default</i></dt>
<dd>(optional) The Action to execute if no Action was provided for the current OS.</dd>
</dl>
</blockquote>
<p align="justify">Veamos un ejemplo práctico con un proyecto recién creado en Xamarin Forms:</p>
<p><pre class="brush: csharp; title: ; notranslate">
            MainPage = new ContentPage
            {
                Content = new StackLayout
                {
                    VerticalOptions = LayoutOptions.Center,
                    Children = {
                        new Label {
                            XAlign = TextAlignment.Center,
                            Text = &quot;Welcome to Xamarin Forms!&quot;
                        }
                    }
                }
            };
</pre>
</p>
<p align="justify">El código anterior, muestra el código que es creado en un nuevo proyecto tipo Xamarin Forms, lo modificaremos para que muestre un texto de acuerdo a la plataforma en específico:</p>
<p><pre class="brush: csharp; title: ; notranslate">
                Content = new StackLayout
                {
                    VerticalOptions = LayoutOptions.Center,
                    Children = {
                        new Label {
                            XAlign = TextAlignment.Center,
                            Text = Device.OnPlatform(&quot;IOS&quot;, &quot;ANDROID&quot;, &quot;WINPHONE&quot;)
                        }
                    }
                }
</pre>
</p>
<p align="justify">O podemos hacer que un control sea o no visible de acuerdo a la plataforma:</p>
<p><pre class="brush: csharp; title: ; notranslate">
                        new Label {
                            XAlign = TextAlignment.Center,
                            Text = &quot;Welcome to Xamarin Forms!&quot;,                            
                            IsVisible = Device.OnPlatform(true,false,true)
                        }
</pre>
</p>
<p align="justify">Incluso, podemos implementar un manejador de eventos distinto para un botón en cada plataforma:</p>
<p><pre class="brush: csharp; title: ; notranslate">
            var button1 = new Button
            {
                Text = &quot;Click Me!&quot;
            };
            Device.OnPlatform(
                iOS: () =&gt; button1.Clicked += (sender, e) =&gt;
                {
                    DisplayAlert(&quot;IOS&quot;, &quot;Estoy en un Iphone!&quot;, &quot;Ok&quot;);
                },
                Android: () =&gt; button1.Clicked += (sender, e) =&gt;
                {
                    DisplayAlert(&quot;Android&quot;, &quot;Estoy en un Androide!&quot;, &quot;Ok&quot;);
                },
                WinPhone: () =&gt; button1.Clicked += (sender, e) =&gt;
                {
                    DisplayAlert(&quot;WinPhone&quot;, &quot;Estoy en un Lumia!&quot;, &quot;Ok&quot;);
                }
            );
</pre>
</p>
<p>&#160;</p>
<p>Espero que les sea de utilidad</p>
<p>&#160;</p>
<p>¡Saludos!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://hectorperez.wordpress.com/2016/04/12/xamarin-forms-el-mtodo-device-onplatform/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">999</post-id>
		<media:content url="https://1.gravatar.com/avatar/d5470cbae4baec70037bcb8002d500454cd05af89c1dedb32b0fc7aff97a67c2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Héctor Uriel Pérez Rojas</media:title>
		</media:content>
	</item>
		<item>
		<title>Utilizando la Biblioteca SqlHelper (3/3)</title>
		<link>https://hectorperez.wordpress.com/2016/04/02/utilizando-la-biblioteca-sqlhelper-33/</link>
					<comments>https://hectorperez.wordpress.com/2016/04/02/utilizando-la-biblioteca-sqlhelper-33/#respond</comments>
		
		<dc:creator><![CDATA[hectorperez]]></dc:creator>
		<pubDate>Sat, 02 Apr 2016 15:47:00 +0000</pubDate>
				<category><![CDATA[Bases de Datos]]></category>
		<category><![CDATA[Bibliotecas]]></category>
		<category><![CDATA[C#]]></category>
		<guid isPermaLink="false">http://hectorperez.wordpress.com/?p=996</guid>

					<description><![CDATA[Ejecutar una consulta y devolver un sólo valor: Como bien es sabido, para ejecutar una consulta y devolver un sólo valor a través de un SqlCommand, debemos ejecutar un el método ExecuteNonQuery(). Es fácil realizar una ejecución de este método de forma controlada a través de la biblioteca SqlHelper, ya que contiene métodos que nos &#8230; <a href="https://hectorperez.wordpress.com/2016/04/02/utilizando-la-biblioteca-sqlhelper-33/" class="more-link">Continuar leyendo <span class="screen-reader-text">Utilizando la Biblioteca SqlHelper&#160;(3/3)</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p><strong>Ejecutar una consulta y devolver un sólo valor:</strong></p>
<p align="justify">Como bien es sabido, para ejecutar una consulta y devolver un sólo valor a través de un SqlCommand, debemos ejecutar un el método <em>ExecuteNonQuery(). </em></p>
<p align="justify">Es fácil realizar una ejecución de este método de forma controlada a través de la biblioteca SqlHelper, ya que contiene métodos que nos facilitarán dicha tarea. Esto nos permitirá devolver un valor con tan sólo 2 líneas de código:</p>
<p><pre class="brush: csharp; title: ; notranslate">
        private void StartScalarDemo()
        {
            var query = &quot;SELECT CompanyName FROM Customers WHERE CustomerID = 'BLAUS'&quot;;
            var result = SqlHelper.ExecuteScalar(GlobalData.ConnectionString, CommandType.Text, query);
            Debug.WriteLine(result);                               
        }
</pre>
</p>
<p align="justify">En primer lugar, hemos de definir la sentencia a ejecutar, mientras que en la siguiente ejecutaremos el método denominado <strong>ExecuteNonQuery</strong> que se encargará de llevar a cabo todo el proceso correspondiente al manejo de apertura y cierre de la base de datos, así como la gestión de errores.</p>
<p><strong>Ejecutar una consulta del tipo NonQuery:</strong></p>
<p align="justify">Si lo que deseamos es llevar a cabo la ejecución de una consulta que no devuelva información de la base de datos (tal como un insert o un delete), la lógica será similar al ejemplo anterior, con la diferencia de que el método que hemos de ejecutar es <strong>ExecuteNonQuery</strong>, que nos devolverá el número de filas afectadas, y el cual ejecutaremos de la siguiente forma en el caso de querer insertar información:</p>
<p><pre class="brush: csharp; title: ; notranslate">
        private void StartNonQueryDemo1()
        {
            String query = &quot;&quot;;
            query = query + &quot;INSERT INTO [dbo].[Customers] &quot; + &quot;\n&quot;;
            query = query + &quot;           ([CustomerID] &quot; + &quot;\n&quot;;
            query = query + &quot;           ,[CompanyName] &quot; + &quot;\n&quot;;
            query = query + &quot;           ,[ContactName] &quot; + &quot;\n&quot;;
            query = query + &quot;           ,[ContactTitle] &quot; + &quot;\n&quot;;
            query = query + &quot;           ,[Address] &quot; + &quot;\n&quot;;
            query = query + &quot;           ,[City] &quot; + &quot;\n&quot;;
            query = query + &quot;           ,[Region] &quot; + &quot;\n&quot;;
            query = query + &quot;           ,[PostalCode] &quot; + &quot;\n&quot;;
            query = query + &quot;           ,[Country] &quot; + &quot;\n&quot;;
            query = query + &quot;           ,[Phone] &quot; + &quot;\n&quot;;
            query = query + &quot;           ,[Fax]) &quot; + &quot;\n&quot;;
            query = query + &quot;     VALUES &quot; + &quot;\n&quot;;
            query = query + &quot;           ('XYZ' &quot; + &quot;\n&quot;;
            query = query + &quot;           ,'HECTORS COMPANY' &quot; + &quot;\n&quot;;
            query = query + &quot;           ,'HÉCTOR PÉREZ' &quot; + &quot;\n&quot;;
            query = query + &quot;           ,'M.C.C' &quot; + &quot;\n&quot;;
            query = query + &quot;           ,'AV. HOGWARTS' &quot; + &quot;\n&quot;;
            query = query + &quot;           ,'MAGICLAND' &quot; + &quot;\n&quot;;
            query = query + &quot;           ,'REGIONLAND' &quot; + &quot;\n&quot;;
            query = query + &quot;           ,'99999' &quot; + &quot;\n&quot;;
            query = query + &quot;           ,'UK' &quot; + &quot;\n&quot;;
            query = query + &quot;           ,'2222' &quot; + &quot;\n&quot;;
            query = query + &quot;           ,'2222')&quot;;

            var result = SqlHelper.ExecuteNonQuery(GlobalData.ConnectionString, CommandType.Text, query);
            Debug.WriteLine(&quot;Registros agregados: {0}&quot;, result);
        }
</pre>
</p>
<p align="justify">En caso de desear eliminar el registro insertado en el ejemplo anterior, o bien, algún otro, debemos hacer una ejecución como en el siguiente ejemplo:</p>
<p><pre class="brush: csharp; title: ; notranslate">
        private void StartNonQueryDemo2()
        {
            String query = &quot;DELETE FROM [Customers] WHERE [CustomerID] = 'XYZ'&quot;;            

            var result = SqlHelper.ExecuteNonQuery(GlobalData.ConnectionString, CommandType.Text, query);
            Debug.WriteLine(&quot;Filas eliminadas: {0}&quot;, result);
        }
</pre>
</p>
<p align="justify">Hemos visto que la utilización de la biblioteca SqlHelper es de mucha ayuda a la hora de programar, lo único que falta es que la integres a tus proyectos si te ha gustado. De nuevo, dejo el <a href="https://github.com/hprez21/Hyrule">link de github</a> si deseas integrar una biblioteca de clases de utilidades que se irán agregando poco a poco.</p>
<p>Saludos.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://hectorperez.wordpress.com/2016/04/02/utilizando-la-biblioteca-sqlhelper-33/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">996</post-id>
		<media:content url="https://1.gravatar.com/avatar/d5470cbae4baec70037bcb8002d500454cd05af89c1dedb32b0fc7aff97a67c2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Héctor Uriel Pérez Rojas</media:title>
		</media:content>
	</item>
		<item>
		<title>Generando una clase intermedia a trav&#233;s de wsdl.exe para conectarnos a un servicio web .asmx</title>
		<link>https://hectorperez.wordpress.com/2016/03/22/generando-una-clase-intermedia-a-travs-de-wsdl-exe-para-conectarnos-a-un-servicio-web-asmx/</link>
					<comments>https://hectorperez.wordpress.com/2016/03/22/generando-una-clase-intermedia-a-travs-de-wsdl-exe-para-conectarnos-a-un-servicio-web-asmx/#respond</comments>
		
		<dc:creator><![CDATA[hectorperez]]></dc:creator>
		<pubDate>Tue, 22 Mar 2016 17:30:00 +0000</pubDate>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Servicios Web]]></category>
		<guid isPermaLink="false">http://hectorperez.wordpress.com/?p=994</guid>

					<description><![CDATA[Como bien sabemos, la forma más sencilla para agregar y posteriormente consumir un servicio web, es a través del menú contextual de Visual Studio: Sin embargo, existen otras formas de consumir un servicio web de manera sencilla y transparente. Una de ellas puede ayudarnos además, para analizar, estudiar y aprender del código generado. Esta forma &#8230; <a href="https://hectorperez.wordpress.com/2016/03/22/generando-una-clase-intermedia-a-travs-de-wsdl-exe-para-conectarnos-a-un-servicio-web-asmx/" class="more-link">Continuar leyendo <span class="screen-reader-text">Generando una clase intermedia a trav&#233;s de wsdl.exe para conectarnos a un servicio web&#160;.asmx</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p>Como bien sabemos, la forma más sencilla para agregar y posteriormente consumir un servicio web, es a través del menú contextual de Visual Studio:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2016/03/screen-shot-03-22-16-at-11-00-am.png"><img loading="lazy" title="Screen Shot 03-22-16 at 11.00 AM" style="border-top:0;border-right:0;background-image:none;border-bottom:0;float:none;padding-top:0;padding-left:0;margin-left:auto;border-left:0;display:block;padding-right:0;margin-right:auto;" border="0" alt="Screen Shot 03-22-16 at 11.00 AM" src="https://hectorperez.wordpress.com/wp-content/uploads/2016/03/screen-shot-03-22-16-at-11-00-am_thumb.png?w=486&#038;h=207" width="486" height="207" /></a></p>
<p align="justify">Sin embargo, existen otras formas de consumir un servicio web de manera sencilla y transparente. Una de ellas puede ayudarnos además, para analizar, estudiar y aprender del código generado. Esta forma es a través de la herramienta wsdl.exe, que se encuentra en la siguiente ruta:</p>
<blockquote>
<p>C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools</p>
</blockquote>
<p align="justify">Debemos navegar a través de una consola de comandos a la dirección antes especificada, y utilizar algunas de las opciones disponibles. La simbología para utilizar la herramienta, es:</p>
<p align="justify"><em>wsdl.exe &lt;opciones&gt; &lt;dirección_url o ruta_de_acceso&gt; …</em></p>
<p align="justify">Si deseamos ver las opciones disponibles, bastará con escribir simplemente wsdl.exe:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2016/03/screen-shot-03-22-16-at-11-07-am.png"><img loading="lazy" title="Screen Shot 03-22-16 at 11.07 AM" style="border-top:0;border-right:0;background-image:none;border-bottom:0;float:none;padding-top:0;padding-left:0;margin-left:auto;border-left:0;display:block;padding-right:0;margin-right:auto;" border="0" alt="Screen Shot 03-22-16 at 11.07 AM" src="https://hectorperez.wordpress.com/wp-content/uploads/2016/03/screen-shot-03-22-16-at-11-07-am_thumb.png?w=417&#038;h=250" width="417" height="250" /></a></p>
<p align="justify">Vamos a utilizar el servicio “Weight Unit Convertor”, disponible en la página <a title="http://webservicex.net/" href="http://webservicex.net/">http://webservicex.net/</a>, para generar la clase correspondiente. Lo primero que debemos hacer, es navegar al <a href="http://webservicex.net/New/Home/ServiceDetail/23">servicio web</a>, donde nos será mostrado el Endpoint:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2016/03/screen-shot-03-22-16-at-11-10-am.png"><img loading="lazy" title="Screen Shot 03-22-16 at 11.10 AM" style="border-top:0;border-right:0;background-image:none;border-bottom:0;float:none;padding-top:0;padding-left:0;margin-left:auto;border-left:0;display:block;padding-right:0;margin-right:auto;" border="0" alt="Screen Shot 03-22-16 at 11.10 AM" src="https://hectorperez.wordpress.com/wp-content/uploads/2016/03/screen-shot-03-22-16-at-11-10-am_thumb.png?w=403&#038;h=220" width="403" height="220" /></a></p>
<p align="justify">Dicho Endpoint, será el que utilizaremos para generar nuestra clase, debiendo colocarlo de la siguiente forma en la consola de comandos:</p>
<p><em>wsdl <a href="http://www.webservicex.net/ConvertWeight.asmx?WSDL">http://www.webservicex.net/ConvertWeight.asmx?WSDL</a></em></p>
<p align="justify">Lo que nos generará una clase en el directorio mismo de la herramienta:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2016/03/screen-shot-03-22-16-at-11-15-am.png"><img loading="lazy" title="Screen Shot 03-22-16 at 11.15 AM" style="border-top:0;border-right:0;background-image:none;border-bottom:0;float:none;padding-top:0;padding-left:0;margin-left:auto;border-left:0;display:block;padding-right:0;margin-right:auto;" border="0" alt="Screen Shot 03-22-16 at 11.15 AM" src="https://hectorperez.wordpress.com/wp-content/uploads/2016/03/screen-shot-03-22-16-at-11-15-am_thumb.png?w=366&#038;h=84" width="366" height="84" /></a></p>
<p align="justify">Podemos agregar la clase generada a un proyecto desde Visual Studio, donde nos mostrará algunos errores si no hemos agregado la biblioteca System.Web.Services, por lo que es necesario que se encuentre dentro del proyecto donde utilizaremos el servicio web.</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2016/03/screen-shot-03-22-16-at-11-17-am.png"><img loading="lazy" title="Screen Shot 03-22-16 at 11.17 AM" style="border-top:0;border-right:0;background-image:none;border-bottom:0;float:none;padding-top:0;padding-left:0;margin-left:auto;border-left:0;display:block;padding-right:0;margin-right:auto;" border="0" alt="Screen Shot 03-22-16 at 11.17 AM" src="https://hectorperez.wordpress.com/wp-content/uploads/2016/03/screen-shot-03-22-16-at-11-17-am_thumb.png?w=238&#038;h=244" width="238" height="244" /></a></p>
<p align="justify">Con esto, podremos utilizar la clase generada como cualquier otra:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2016/03/screen-shot-03-22-16-at-11-23-am-001.png"><img loading="lazy" title="Screen Shot 03-22-16 at 11.23 AM 001" style="border-top:0;border-right:0;background-image:none;border-bottom:0;float:none;padding-top:0;padding-left:0;margin-left:auto;border-left:0;display:block;padding-right:0;margin-right:auto;" border="0" alt="Screen Shot 03-22-16 at 11.23 AM 001" src="https://hectorperez.wordpress.com/wp-content/uploads/2016/03/screen-shot-03-22-16-at-11-23-am-001_thumb.png?w=435&#038;h=216" width="435" height="216" /></a></p>
<p align="justify">Además de que funcionará de manera correcta:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2016/03/screen-shot-03-22-16-at-11-23-am.png"><img loading="lazy" title="Screen Shot 03-22-16 at 11.23 AM" style="border-top:0;border-right:0;background-image:none;border-bottom:0;float:none;padding-top:0;padding-left:0;margin-left:auto;border-left:0;display:block;padding-right:0;margin-right:auto;" border="0" alt="Screen Shot 03-22-16 at 11.23 AM" src="https://hectorperez.wordpress.com/wp-content/uploads/2016/03/screen-shot-03-22-16-at-11-23-am_thumb.png?w=398&#038;h=132" width="398" height="132" /></a></p>
<p>¡Saludos!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://hectorperez.wordpress.com/2016/03/22/generando-una-clase-intermedia-a-travs-de-wsdl-exe-para-conectarnos-a-un-servicio-web-asmx/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">994</post-id>
		<media:content url="https://1.gravatar.com/avatar/d5470cbae4baec70037bcb8002d500454cd05af89c1dedb32b0fc7aff97a67c2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Héctor Uriel Pérez Rojas</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2016/03/screen-shot-03-22-16-at-11-00-am_thumb.png" medium="image">
			<media:title type="html">Screen Shot 03-22-16 at 11.00 AM</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2016/03/screen-shot-03-22-16-at-11-07-am_thumb.png" medium="image">
			<media:title type="html">Screen Shot 03-22-16 at 11.07 AM</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2016/03/screen-shot-03-22-16-at-11-10-am_thumb.png" medium="image">
			<media:title type="html">Screen Shot 03-22-16 at 11.10 AM</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2016/03/screen-shot-03-22-16-at-11-15-am_thumb.png" medium="image">
			<media:title type="html">Screen Shot 03-22-16 at 11.15 AM</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2016/03/screen-shot-03-22-16-at-11-17-am_thumb.png" medium="image">
			<media:title type="html">Screen Shot 03-22-16 at 11.17 AM</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2016/03/screen-shot-03-22-16-at-11-23-am-001_thumb.png" medium="image">
			<media:title type="html">Screen Shot 03-22-16 at 11.23 AM 001</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2016/03/screen-shot-03-22-16-at-11-23-am_thumb.png" medium="image">
			<media:title type="html">Screen Shot 03-22-16 at 11.23 AM</media:title>
		</media:content>
	</item>
		<item>
		<title>Utilizando la Biblioteca SqlHelper (2/n)</title>
		<link>https://hectorperez.wordpress.com/2016/03/19/utilizando-la-biblioteca-sqlhelper-2n/</link>
					<comments>https://hectorperez.wordpress.com/2016/03/19/utilizando-la-biblioteca-sqlhelper-2n/#respond</comments>
		
		<dc:creator><![CDATA[hectorperez]]></dc:creator>
		<pubDate>Sat, 19 Mar 2016 18:45:00 +0000</pubDate>
				<category><![CDATA[Bibliotecas]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[SQL]]></category>
		<guid isPermaLink="false">http://hectorperez.wordpress.com/?p=975</guid>

					<description><![CDATA[Ejecutar consulta y llenar un DataReader: Para llevar a cabo la ejecución de una consulta y rellenar un DataReader, disponemos de los siguientes métodos: En esta demostración, utilizaremos el método: public static System.Data.SqlClient.SqlDataReader ExecuteReader(string connectionString, System.Data.CommandType commandType, string commandText) Podemos observar, que se nos pide como primer parámetro una cadena de conexión, como segundo el &#8230; <a href="https://hectorperez.wordpress.com/2016/03/19/utilizando-la-biblioteca-sqlhelper-2n/" class="more-link">Continuar leyendo <span class="screen-reader-text">Utilizando la Biblioteca SqlHelper&#160;(2/n)</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p><strong>Ejecutar consulta y llenar un DataReader:</strong></p>
<p>Para llevar a cabo la ejecución de una consulta y rellenar un DataReader, disponemos de los siguientes métodos:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2016/03/screen-shot-03-19-16-at-12-14-pm.png"><img loading="lazy" title="Screen Shot 03-19-16 at 12.14 PM" style="border-top:0;border-right:0;background-image:none;border-bottom:0;float:none;padding-top:0;padding-left:0;margin-left:auto;border-left:0;display:block;padding-right:0;margin-right:auto;" border="0" alt="Screen Shot 03-19-16 at 12.14 PM" src="https://hectorperez.wordpress.com/wp-content/uploads/2016/03/screen-shot-03-19-16-at-12-14-pm_thumb.png?w=480&#038;h=122" width="480" height="122" /></a></p>
<p>En esta demostración, utilizaremos el método:</p>
<p><em>public static System.Data.SqlClient.SqlDataReader ExecuteReader(string connectionString, System.Data.CommandType commandType, string commandText)</em></p>
<p align="justify">Podemos observar, que se nos pide como primer parámetro una cadena de conexión, como segundo el tipo de comando (si es consulta normal o un stored procedure), y como tercer, la consulta como tal.</p>
<p align="justify">En primer lugar, definiremos en una variable la consulta que deseamos ejecutar:</p>
<p><pre class="brush: csharp; title: ; notranslate">
var sqlQuery = &quot;SELECT * FROM Customers&quot;;
</pre>
</p>
<p align="justify">En segundo lugar, llamaremos al método que nos interesa, pasándole como referencia la cadena de conexión que definimos en el post anterior, seguido por el tipo de enumeración que deseamos aplicar, y la consulta definida previamente. Cabe destacar, que utilizaremos un using para cerrar la conexión y eliminar la instancia una vez que la dejemos de utilizar:</p>
<p><pre class="brush: csharp; title: ; notranslate">
 using (var newDataReader = SqlHelper.ExecuteReader(
                GlobalData.ConnectionString,
                CommandType.Text, sqlQuery))
</pre>
</p>
<p>Por último, haremos un recorrido por el datareader e imprimiremos la información deseada:</p>
<p><pre class="brush: csharp; title: ; notranslate">
while (newDataReader.Read())
                {
                    var customerInfo = string.Format(
                        &quot;Company Name: {0}, ContactName: {1}&quot;,
                        newDataReader.GetString(1),
                        newDataReader.GetString(2));
                    Debug.WriteLine(customerInfo);                    
                }
</pre>
</p>
<p>Quedando el código completo del método, de la siguiente manera:</p>
<p><pre class="brush: csharp; title: ; notranslate">
 private void StartDataReaderDemo()
        {
            //Utilizando SqlHelper para llenar un DataReader
            var sqlQuery = &quot;SELECT * FROM Customers&quot;;
            using (var newDataReader = SqlHelper.ExecuteReader(
                GlobalData.ConnectionString,
                CommandType.Text, sqlQuery))
            {
                while (newDataReader.Read())
                {
                    var customerInfo = string.Format(
                        &quot;Company Name: {0}, ContactName: {1}&quot;,
                        newDataReader.GetString(1),
                        newDataReader.GetString(2));
                    Debug.WriteLine(customerInfo);                    
                }
            }


        }
</pre>
</p>
<p><strong>Ejecutar consulta a un Stored Procedure y llenar un DataReader:</strong></p>
<p align="justify">La forma para llevar a cabo una consulta a un procedimiento almacenado, conlleva básicamente los mismos pasos que anteriormente, con la diferencia, que debemos especificar el nombre del procedimiento almacenado en lugar de la consulta:</p>
<p><pre class="brush: csharp; title: ; notranslate">
var sqlQuery = &quot;Sales by Year&quot;;
</pre>
</p>
<p align="justify">En segundo lugar, debemos definir un arreglo de tipo SqlParameter, definiendo los parámetros que deseamos pasar:</p>
<p><pre class="brush: csharp; title: ; notranslate">
            var param1 = new SqlParameter {ParameterName = &quot;@Beginning_Date&quot;, Value = new DateTime(1995, 1, 1) };
            var param2 = new SqlParameter { ParameterName = &quot;@Ending_Date&quot;, Value = new DateTime(1997, 1, 1)};
            SqlParameter[] parameters = new[] {param1, param2};
</pre>
</p>
<p align="justify">Lo demás, es prácticamente lo mismo, el código completo del método se encuentra a continuación:</p>
<p><pre class="brush: csharp; title: ; notranslate">
        private void StartDataReaderDemo2()
        {
            //Utilizando SqlHelper para llenar un DataReader a través de un stored procedure
            var sqlQuery = &quot;Sales by Year&quot;;
            var param1 = new SqlParameter {ParameterName = &quot;@Beginning_Date&quot;, Value = new DateTime(1995, 1, 1)};
            var param2 = new SqlParameter {ParameterName = &quot;@Ending_Date&quot;, Value = new DateTime(1997, 1, 1)};
            SqlParameter[] parameters = new[] {param1, param2};
            using (var newDataReader = SqlHelper.ExecuteReader(
                GlobalData.ConnectionString,
                CommandType.StoredProcedure, sqlQuery, parameters))
            {
                while (newDataReader.Read())
                {
                    var customerInfo = string.Format(
                        &quot;Order ID: {0}, Subtotal{1}&quot;,
                        newDataReader.GetInt32(1),
                        newDataReader.GetDecimal(2));
                    Debug.WriteLine(customerInfo);
                }
            }
        }
</pre></p>
]]></content:encoded>
					
					<wfw:commentRss>https://hectorperez.wordpress.com/2016/03/19/utilizando-la-biblioteca-sqlhelper-2n/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">975</post-id>
		<media:content url="https://1.gravatar.com/avatar/d5470cbae4baec70037bcb8002d500454cd05af89c1dedb32b0fc7aff97a67c2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Héctor Uriel Pérez Rojas</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2016/03/screen-shot-03-19-16-at-12-14-pm_thumb.png" medium="image">
			<media:title type="html">Screen Shot 03-19-16 at 12.14 PM</media:title>
		</media:content>
	</item>
		<item>
		<title>Utilizando la Biblioteca SqlHelper (1/n)</title>
		<link>https://hectorperez.wordpress.com/2016/03/16/utilizando-la-biblioteca-sqlhelper-1n/</link>
					<comments>https://hectorperez.wordpress.com/2016/03/16/utilizando-la-biblioteca-sqlhelper-1n/#respond</comments>
		
		<dc:creator><![CDATA[hectorperez]]></dc:creator>
		<pubDate>Wed, 16 Mar 2016 17:20:00 +0000</pubDate>
				<category><![CDATA[Bibliotecas]]></category>
		<category><![CDATA[C#]]></category>
		<guid isPermaLink="false">http://hectorperez.wordpress.com/?p=966</guid>

					<description><![CDATA[En una publicación pasada, agregamos a nuestra solución una clase que puede llevar a cabo la ejecución de consultas a un servidor SQL Server, vamos a ver en esta entrada cómo utilizar algunos de los métodos incluidos en la clase, tomando como la base de datos Northwind como ejemplo. Ejecutar consulta y llenar un DataSet: &#8230; <a href="https://hectorperez.wordpress.com/2016/03/16/utilizando-la-biblioteca-sqlhelper-1n/" class="more-link">Continuar leyendo <span class="screen-reader-text">Utilizando la Biblioteca SqlHelper&#160;(1/n)</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p align="justify">En una publicación <a href="https://hectorperez.wordpress.com/2016/02/01/manejar-acceso-a-datos-a-travs-de-una-clase-administrada-1n-hyrule/">pasada</a>, agregamos a nuestra solución una clase que puede llevar a cabo la ejecución de consultas a un servidor SQL Server, vamos a ver en esta entrada cómo utilizar algunos de los métodos incluidos en la clase, tomando como la base de datos Northwind como ejemplo.</p>
<p><strong>Ejecutar consulta y llenar un DataSet:</strong></p>
<p align="justify">Si se quiere llenar un DataSet para trabajar posteriormente con él, podemos ejecutar el método denominado “ExecuteDataset”, el cual tiene 8 sobrecargas (Dar click en la imagen para ver en tamaño real):</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2016/03/screen-shot-03-16-16-at-11-06-am.png"><img loading="lazy" title="Screen Shot 03-16-16 at 11.06 AM" style="background-image:none;float:none;padding-top:0;padding-left:0;margin-left:auto;display:block;padding-right:0;margin-right:auto;border-width:0;" border="0" alt="Screen Shot 03-16-16 at 11.06 AM" src="https://hectorperez.wordpress.com/wp-content/uploads/2016/03/screen-shot-03-16-16-at-11-06-am_thumb.png?w=476&#038;h=126" width="476" height="126" /></a></p>
<p align="justify">La clase nos da una amplia gama de sobrecargas para poder pasar todo tipo de parámetros necesarios para llevar a cabo la ejecución de una consulta y posterior llenado de un Dataset, como ejemplo, vamos a ocupar el segundo método:</p>
<p><em>SqlHelper.ExecuteDataset(string, System.Data.CommandType, string)</em></p>
<p>cuya definición es:</p>
<p><em>public static System.Data.DataSet ExecuteDataset(string connectionString, System.Data.CommandType commandType, string commandText)</em></p>
<p align="justify">Es decir, debemos pasar como primer parámetro una cadena de conexión (Existe otro método para pasar directamente un objeto ConnectinString), para cuestiones de simplicidad, he creado una clase que mantiene la cadena de conexión centralizada:</p>
<p><pre class="brush: csharp; title: ; notranslate">
    public static class GlobalData
    {
        public static string ConnectionString { get; set; }
        static GlobalData()
        {
            ConnectionString = @&quot;Data Source=.\SQLSERVER;Initial Catalog=Northwind;Integrated Security=True&quot;;
        }
    }
</pre>
</p>
<p align="justify">Debemos crear una variable para almacenar la consulta que deseemos ejecutar, en mi caso será la siguiente:</p>
<p><pre class="brush: csharp; title: ; notranslate">
var sqlQuery = &quot;SELECT * FROM Customers&quot;;
</pre>
</p>
<p align="justify">Listo, ya podremos utilizar el método con la información previamente definida, colocando el resultado de la ejecución de tipo DataSet en una nueva variable:</p>
<p><pre class="brush: csharp; title: ; notranslate">
            var newDataSet = SqlHelper.ExecuteDataset(
                GlobalData.ConnectionString,
                CommandType.Text, sqlQuery);
            var customers = newDataSet.Tables[0];
</pre>
</p>
<p align="justify">Si deseamos consultar el resultado, debemos obtener una de las tablas de la consulta en primer lugar:</p>
<p><pre class="brush: csharp; title: ; notranslate">
var customers = newDataSet.Tables[0];
</pre>
</p>
<p align="justify">para posteriormente utilizar Linq para llevar a cabo la consulta (Debemos utilizar un método especial llamado .AsEnumerable para poder realizar consultas con Linq, que se encuentra en el ensamblado System.Data.DataSetExtensions), y como buena práctica, definir un nuevo tipo anónimo para poder utilizar las propiedades desde código:</p>
<p><pre class="brush: csharp; title: ; notranslate">
            var query = from customer in customers.AsEnumerable()
                        select new
                        {
                            CompanyName = customer.Field&lt;string&gt;(&quot;CompanyName&quot;),
                            ContactName = customer.Field&lt;string&gt;(&quot;ContactName&quot;)
                        };
</pre>
</p>
<p align="justify">Por último, podemos recorrer el resultado de la consulta Linq e imprimir la información necesaria:</p>
<p><pre class="brush: csharp; title: ; notranslate">
            foreach (var customer in query)
            {
                Debug.WriteLine(customer.CompanyName);
            }
</pre>
</p>
<p>Recuerden que el código se irá complementando en el repositorio de GitHub:</p>
<p><a title="https://github.com/hprez21/Hyrule" href="https://github.com/hprez21/Hyrule">https://github.com/hprez21/Hyrule</a></p>
<p>&#160;</p>
<p>En la próxima entrada seguiremos viendo más métodos</p>
]]></content:encoded>
					
					<wfw:commentRss>https://hectorperez.wordpress.com/2016/03/16/utilizando-la-biblioteca-sqlhelper-1n/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">966</post-id>
		<media:content url="https://1.gravatar.com/avatar/d5470cbae4baec70037bcb8002d500454cd05af89c1dedb32b0fc7aff97a67c2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Héctor Uriel Pérez Rojas</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2016/03/screen-shot-03-16-16-at-11-06-am_thumb.png" medium="image">
			<media:title type="html">Screen Shot 03-16-16 at 11.06 AM</media:title>
		</media:content>
	</item>
		<item>
		<title>&#191;C&#243;mo depurar una aplicaci&#243;n de forma remota con Visual Studio 2015? (aplica para versiones anteriores tambi&#233;n)</title>
		<link>https://hectorperez.wordpress.com/2016/03/09/cmo-depurar-una-aplicacin-de-forma-remota-con-visual-studio-2015-aplica-para-versiones-anteriores-tambin/</link>
					<comments>https://hectorperez.wordpress.com/2016/03/09/cmo-depurar-una-aplicacin-de-forma-remota-con-visual-studio-2015-aplica-para-versiones-anteriores-tambin/#respond</comments>
		
		<dc:creator><![CDATA[hectorperez]]></dc:creator>
		<pubDate>Wed, 09 Mar 2016 15:16:50 +0000</pubDate>
				<category><![CDATA[Depuración Remota]]></category>
		<category><![CDATA[Visual Studio]]></category>
		<category><![CDATA[Remote Debugging]]></category>
		<guid isPermaLink="false">http://hectorperez.wordpress.com/?p=961</guid>

					<description><![CDATA[Aunque existe una guía oficial para llevar a cabo este procedimiento, en esta entrada detallaré los pasos necesarios para llevar a cabo la depuración de una aplicación de forma remota. Prerrequisitos: Aunque no es indispensable, es altamente recomendable tener activada y configurada la opción de Conexión a Escritorio Remoto en el equipo donde llevaremos a &#8230; <a href="https://hectorperez.wordpress.com/2016/03/09/cmo-depurar-una-aplicacin-de-forma-remota-con-visual-studio-2015-aplica-para-versiones-anteriores-tambin/" class="more-link">Continuar leyendo <span class="screen-reader-text">&#191;C&#243;mo depurar una aplicaci&#243;n de forma remota con Visual Studio 2015? (aplica para versiones anteriores&#160;tambi&#233;n)</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p align="justify">Aunque existe una <a href="https://msdn.microsoft.com/en-us/library/y7f5zaaa.aspx">guía oficial</a> para llevar a cabo este procedimiento, en esta entrada detallaré los pasos necesarios para llevar a cabo la depuración de una aplicación de forma remota.</p>
<p><strong>Prerrequisitos:</strong></p>
<p align="justify">Aunque no es indispensable, es altamente recomendable tener activada y configurada la opción de Conexión a Escritorio Remoto en el equipo donde llevaremos a cabo las pruebas de la aplicación.</p>
<p><strong>Configurando la herramienta:</strong></p>
<p align="justify">En primer lugar, debemos instalar la <a href="https://www.microsoft.com/en-us/download/details.aspx?id=48155">herramienta de depuración remota para Visual Studio 2015</a>. Se pueden elegir las herramientas para las plataformas x64, x86 y ARM.</p>
<p align="justify">Una vez instalado en la máquina remota, debemos iniciar el asistente para configurar la herramienta:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2016/03/screen-shot-03-04-16-at-08-46-pm.png"><img loading="lazy" title="Screen Shot 03-04-16 at 08.46 PM" style="background-image:none;float:none;padding-top:0;padding-left:0;margin-left:auto;display:block;padding-right:0;margin-right:auto;border-width:0;" border="0" alt="Screen Shot 03-04-16 at 08.46 PM" src="https://hectorperez.wordpress.com/wp-content/uploads/2016/03/screen-shot-03-04-16-at-08-46-pm_thumb.png?w=244&#038;h=53" width="244" height="53" /></a></p>
<p align="justify">Esto nos desplegará una ventana donde podremos configurar si deseamos que la aplicación se ejecute como un servicio en la máquina de pruebas. En mi caso lo dejaré deseleccionado.</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2016/03/screen-shot-03-04-16-at-08-47-pm.png"><img loading="lazy" title="Screen Shot 03-04-16 at 08.47 PM" style="background-image:none;float:none;padding-top:0;padding-left:0;margin-left:auto;display:block;padding-right:0;margin-right:auto;border-width:0;" border="0" alt="Screen Shot 03-04-16 at 08.47 PM" src="https://hectorperez.wordpress.com/wp-content/uploads/2016/03/screen-shot-03-04-16-at-08-47-pm_thumb.png?w=343&#038;h=361" width="343" height="361" /></a></p>
<p align="justify">En la siguiente ventana, se nos pregunta la configuración que deseamos aplicar para el firewall de acuerdo al tipo de red seleccionada. Para cuestiones prácticas dejaré seleccionadas todas las redes.</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2016/03/screen-shot-03-04-16-at-08-48-pm.png"><img loading="lazy" title="Screen Shot 03-04-16 at 08.48 PM" style="background-image:none;float:none;padding-top:0;padding-left:0;margin-left:auto;display:block;padding-right:0;margin-right:auto;border-width:0;" border="0" alt="Screen Shot 03-04-16 at 08.48 PM" src="https://hectorperez.wordpress.com/wp-content/uploads/2016/03/screen-shot-03-04-16-at-08-48-pm_thumb.png?w=348&#038;h=355" width="348" height="355" /></a></p>
<p>&#160;</p>
<p align="justify">Después de este paso, podremos dar click en el botón Finalizar. Con esto hemos configurado la herramienta para poder llevar a cabo pruebas de nuestras aplicaciones en una máquina remota.</p>
<p><strong>Preparándonos para la prueba:</strong></p>
<p align="justify">Dentro de Visual Studio, debemos irnos a las propiedades del proyecto (no de la solución):</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2016/03/screen-shot-03-04-16-at-08-55-pm.png"><img loading="lazy" title="Screen Shot 03-04-16 at 08.55 PM" style="background-image:none;float:none;padding-top:0;padding-left:0;margin-left:auto;display:block;padding-right:0;margin-right:auto;border-width:0;" border="0" alt="Screen Shot 03-04-16 at 08.55 PM" src="https://hectorperez.wordpress.com/wp-content/uploads/2016/03/screen-shot-03-04-16-at-08-55-pm_thumb.png?w=311&#038;h=327" width="311" height="327" /></a></p>
<p align="justify">Dentro de las propiedades del proyecto, debemos irnos al apartado “Debug”, y en la sección de “Start Options”, habilitar “Use remote machine”. En la casilla de la derecha, debemos utilizar de preferencia la dirección IP de la máquina remota.</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2016/03/screen-shot-03-04-16-at-08-58-pm.png"><img loading="lazy" title="Screen Shot 03-04-16 at 08.58 PM" style="background-image:none;float:none;padding-top:0;padding-left:0;margin-left:auto;display:block;padding-right:0;margin-right:auto;border-width:0;" border="0" alt="Screen Shot 03-04-16 at 08.58 PM" src="https://hectorperez.wordpress.com/wp-content/uploads/2016/03/screen-shot-03-04-16-at-08-58-pm_thumb.png?w=432&#038;h=159" width="432" height="159" /></a></p>
<p align="justify">Paso siguiente, debemos hacer un rebuild de nuestro proyecto (hay que checar que se encuentre en modo Debug).</p>
<p align="justify">En seguida, debemos crear una estructura en la máquina remota que sea idéntica a nuestra carpeta bin de nuestra máquina local. Es decir, si la carpeta Debug de mi proyecto se encuentra en C:\Users\hprez\Documents\Visual Studio 2015\Projects\Blog\ExcelSample\ExcelSample\bin\Debug, debemos crear esta misma estructura en la máquina remota, tal como en el siguiente ejemplo:</p>
<p>Máquina local (con VS)</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2016/03/screen-shot-03-04-16-at-09-07-pm.png"><img loading="lazy" title="Screen Shot 03-04-16 at 09.07 PM" style="background-image:none;float:none;padding-top:0;padding-left:0;margin-left:auto;display:block;padding-right:0;margin-right:auto;border-width:0;" border="0" alt="Screen Shot 03-04-16 at 09.07 PM" src="https://hectorperez.wordpress.com/wp-content/uploads/2016/03/screen-shot-03-04-16-at-09-07-pm_thumb.png?w=508&#038;h=64" width="508" height="64" /></a></p>
<p>Máquina remota (Sin VS)</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2016/03/screen-shot-03-04-16-at-09-09-pm.png"><img loading="lazy" title="Screen Shot 03-04-16 at 09.09 PM" style="background-image:none;float:none;padding-top:0;padding-left:0;margin-left:auto;display:block;padding-right:0;margin-right:auto;border-width:0;" border="0" alt="Screen Shot 03-04-16 at 09.09 PM" src="https://hectorperez.wordpress.com/wp-content/uploads/2016/03/screen-shot-03-04-16-at-09-09-pm_thumb.png?w=508&#038;h=66" width="508" height="66" /></a></p>
<p>Por último, deberemos copiar el contenido de la carpeta Debug de nuestro proyecto, y pegarlo en la carpeta Debug de la máquina remota:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2016/03/screen-shot-03-04-16-at-09-11-pm.png"><img loading="lazy" title="Screen Shot 03-04-16 at 09.11 PM" style="background-image:none;float:none;padding-top:0;padding-left:0;margin-left:auto;display:block;padding-right:0;margin-right:auto;border-width:0;" border="0" alt="Screen Shot 03-04-16 at 09.11 PM" src="https://hectorperez.wordpress.com/wp-content/uploads/2016/03/screen-shot-03-04-16-at-09-11-pm_thumb.png?w=508&#038;h=270" width="508" height="270" /></a></p>
<p>Una vez que estemos listos, deberemos iniciar la herramienta de depuración remota en la máquina remota, la cual, nos deberá indicar que se encuentra esperando nuevas conexiones:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2016/03/screen-shot-03-04-16-at-09-14-pm.png"><img loading="lazy" title="Screen Shot 03-04-16 at 09.14 PM" style="background-image:none;float:none;padding-top:0;padding-left:0;margin-left:auto;display:block;padding-right:0;margin-right:auto;border-width:0;" border="0" alt="Screen Shot 03-04-16 at 09.14 PM" src="https://hectorperez.wordpress.com/wp-content/uploads/2016/03/screen-shot-03-04-16-at-09-14-pm_thumb.png?w=487&#038;h=190" width="487" height="190" /></a></p>
<p>Finalmente, iniciaremos nuestro proyecto desde Visual Studio, y todo deberá funcionar a la perfección:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2016/03/screen-shot-03-04-16-at-09-16-pm-001.png"><img loading="lazy" title="Screen Shot 03-04-16 at 09.16 PM 001" style="background-image:none;float:none;padding-top:0;padding-left:0;margin-left:auto;display:block;padding-right:0;margin-right:auto;border-width:0;" border="0" alt="Screen Shot 03-04-16 at 09.16 PM 001" src="https://hectorperez.wordpress.com/wp-content/uploads/2016/03/screen-shot-03-04-16-at-09-16-pm-001_thumb.png?w=492&#038;h=169" width="492" height="169" /></a></p>
<p>&#160;</p>
<p align="justify">Cabe aclarar que si deseamos depurar la aplicación a través de un breakpoint en un punto específico de la aplicación, debemos regenerar el proyecto y copiar de nuevo el contenido de la carpeta bin, esto es debido a que se tiene que regenerar la información de depuración.</p>
<p>Espero que a más de uno le sea de utilidad.</p>
<p>Saludos.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://hectorperez.wordpress.com/2016/03/09/cmo-depurar-una-aplicacin-de-forma-remota-con-visual-studio-2015-aplica-para-versiones-anteriores-tambin/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">961</post-id>
		<media:content url="https://1.gravatar.com/avatar/d5470cbae4baec70037bcb8002d500454cd05af89c1dedb32b0fc7aff97a67c2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Héctor Uriel Pérez Rojas</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2016/03/screen-shot-03-04-16-at-08-46-pm_thumb.png" medium="image">
			<media:title type="html">Screen Shot 03-04-16 at 08.46 PM</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2016/03/screen-shot-03-04-16-at-08-47-pm_thumb.png" medium="image">
			<media:title type="html">Screen Shot 03-04-16 at 08.47 PM</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2016/03/screen-shot-03-04-16-at-08-48-pm_thumb.png" medium="image">
			<media:title type="html">Screen Shot 03-04-16 at 08.48 PM</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2016/03/screen-shot-03-04-16-at-08-55-pm_thumb.png" medium="image">
			<media:title type="html">Screen Shot 03-04-16 at 08.55 PM</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2016/03/screen-shot-03-04-16-at-08-58-pm_thumb.png" medium="image">
			<media:title type="html">Screen Shot 03-04-16 at 08.58 PM</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2016/03/screen-shot-03-04-16-at-09-07-pm_thumb.png" medium="image">
			<media:title type="html">Screen Shot 03-04-16 at 09.07 PM</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2016/03/screen-shot-03-04-16-at-09-09-pm_thumb.png" medium="image">
			<media:title type="html">Screen Shot 03-04-16 at 09.09 PM</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2016/03/screen-shot-03-04-16-at-09-11-pm_thumb.png" medium="image">
			<media:title type="html">Screen Shot 03-04-16 at 09.11 PM</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2016/03/screen-shot-03-04-16-at-09-14-pm_thumb.png" medium="image">
			<media:title type="html">Screen Shot 03-04-16 at 09.14 PM</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2016/03/screen-shot-03-04-16-at-09-16-pm-001_thumb.png" medium="image">
			<media:title type="html">Screen Shot 03-04-16 at 09.16 PM 001</media:title>
		</media:content>
	</item>
		<item>
		<title>Manipulando archivos de Excel con C# sin morir en el intento (1/n)</title>
		<link>https://hectorperez.wordpress.com/2016/03/04/manipulando-archivos-de-excel-con-c-sin-morir-en-el-intento-1n/</link>
					<comments>https://hectorperez.wordpress.com/2016/03/04/manipulando-archivos-de-excel-con-c-sin-morir-en-el-intento-1n/#respond</comments>
		
		<dc:creator><![CDATA[hectorperez]]></dc:creator>
		<pubDate>Fri, 04 Mar 2016 19:13:52 +0000</pubDate>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Excel]]></category>
		<guid isPermaLink="false">http://hectorperez.wordpress.com/?p=931</guid>

					<description><![CDATA[Como desarrolladores, muchas veces nos hemos enfrentado a la necesidad de manipular archivos en formato excel. Una forma, es manipular dichos archivos a través de la biliboteca de interoperabilidad Microsoft.Office.Interop.Excel.dll. Sin embargo, esto requiere que tengamos instalados ensamblados especiales de acuerdo a la compilación que hayamos realizado, lo cual podría provocar el clásico error El &#8230; <a href="https://hectorperez.wordpress.com/2016/03/04/manipulando-archivos-de-excel-con-c-sin-morir-en-el-intento-1n/" class="more-link">Continuar leyendo <span class="screen-reader-text">Manipulando archivos de Excel con C# sin morir en el intento&#160;(1/n)</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p align="justify">Como desarrolladores, muchas veces nos hemos enfrentado a la necesidad de manipular archivos en formato excel.</p>
<p align="justify">Una forma, es manipular dichos archivos a través de la biliboteca de interoperabilidad <a href="https://msdn.microsoft.com/es-es/library/15s06t57.aspx">Microsoft.Office.Interop.Excel.dll</a>. Sin embargo, esto requiere que tengamos instalados ensamblados especiales de acuerdo a la compilación que hayamos realizado, lo cual podría provocar el clásico error <a href="https://hectorperez.wordpress.com/2010/01/26/el-proveedor-microsoft-ace-oledb-12-0-no-est-registrado-en-el-equipo-local/">El proveedor ‘Microsoft.ACE.OLEDB.12.0’ no está registrado en el equipo local.</a> En esta entrada, veremos una forma mucho más sencilla de manipular archivos de Excel de una forma nativa y sin necesidad incluso de tener instalado Excel en la máquina de los clientes.</p>
<p><strong>Overview</strong></p>
<p>Los archivos de Office de las versiones actuales de Office, están basados en OpenXML, cuya definición en Wikipedia es:</p>
<blockquote>
<p><b>Office Open XML</b> (también llamado <b>OOXML</b> u <b>OpenXML</b>) es un <a href="https://es.wikipedia.org/wiki/Formato_de_archivo">formato de archivo</a> <a href="https://es.wikipedia.org/wiki/Formato_abierto">abierto</a> y <a href="https://es.wikipedia.org/wiki/Norma_%28tecnolog%C3%ADa%29">estándar</a> cuyas extensiones más comunes son <tt>.docx</tt>, <tt>.xlsx</tt> y <tt>.pptx</tt>. Se le utiliza para representar y almacenar <a href="https://es.wikipedia.org/wiki/Hoja_de_c%C3%A1lculo">hojas de cálculo</a>, <a href="https://es.wikipedia.org/wiki/Gr%C3%A1fica">gráficas</a>, <a href="https://es.wikipedia.org/wiki/Presentaci%C3%B3n">presentaciones</a> y <a href="https://es.wikipedia.org/wiki/Documento_de_texto">documentos de texto</a>. Un archivo Office Open XML contiene principalmente datos basados en el <a href="https://es.wikipedia.org/wiki/Lenguaje_de_marcado">lenguaje de marcado</a> <a href="https://es.wikipedia.org/wiki/XML">XML</a>, comprimidos en un contenedor <tt>.<a href="https://es.wikipedia.org/wiki/Formato_de_compresi%C3%B3n_ZIP">zip</a></tt> específico.</p>
</blockquote>
<p align="justify"><span style="color:#666666;"><span style="color:#000000;">Es decir, que si contamos con un archivo con extensión .xlsx, basta con cambiarle dicha extensión por una .zip, para poder descomprimirlo y ver en su interior el contenido del archivo tal como en la siguiente imágen:</span></span></p>
<p align="justify"><a href="https://hectorperez.wordpress.com/wp-content/uploads/2016/03/screen-shot-03-04-16-at-12-33-pm.png"><img loading="lazy" title="Screen Shot 03-04-16 at 12.33 PM" style="background-image:none;float:none;padding-top:0;padding-left:0;margin-left:auto;display:block;padding-right:0;margin-right:auto;border-width:0;" border="0" alt="Screen Shot 03-04-16 at 12.33 PM" src="https://hectorperez.wordpress.com/wp-content/uploads/2016/03/screen-shot-03-04-16-at-12-33-pm_thumb.png?w=436&#038;h=112" width="436" height="112" /></a></p>
<p align="justify">
<p align="justify"><a href="https://hectorperez.wordpress.com/wp-content/uploads/2016/03/screen-shot-03-04-16-at-12-42-pm.png"><img loading="lazy" title="Screen Shot 03-04-16 at 12.42 PM" style="background-image:none;float:none;padding-top:0;padding-left:0;margin-left:auto;display:block;padding-right:0;margin-right:auto;border-width:0;" border="0" alt="Screen Shot 03-04-16 at 12.42 PM" src="https://hectorperez.wordpress.com/wp-content/uploads/2016/03/screen-shot-03-04-16-at-12-42-pm_thumb.png?w=432&#038;h=171" width="432" height="171" /></a></p>
<p align="justify">Podemos darnos cuenta entonces, que un archivo de Excel no es más que un conjunto de archivos xml que podemos manipular a nuestro antojo para llevar a cabo distintas operaciones.</p>
<p align="justify"><strong>Trabajando con archivos de Excel</strong></p>
<p align="justify">Para no reinventar la rueda, hoy en día existen diferentes alternativas para abrir documentos con formato open xml. En esta publicación haremos uso de <a href="http://closedxml.codeplex.com/">ClosedXML</a> Basta con ir a la página oficial en CodePlex para descargar la dll que necesitemos (framework 3.5 o 4) y descomprimir el archivo .zip descargado para poder utilizar la biblioteca. <span style="color:#ff0000;">Por último (Lo remarco en rojo porque es importante) </span><span style="color:#000000;">debemos descargar la biblioteca DocumentFormat.OpenXml, ya sea para el framework </span><a href="http://download-codeplex.sec.s-msft.com/Download?ProjectName=closedxml&amp;DownloadId=856114"><span style="color:#000000;">+4.0</span></a><span style="color:#000000;"> ó </span><a href="https://www.codeplex.com/Download?ProjectName=closedxml&amp;DownloadId=177539"><span style="color:#000000;">3.5</span></a></p>
<p align="justify"><strong>Creando un archivo de Excel</strong></p>
<p align="justify">El uso de la biblioteca (al ser orientado a objetos) resulta extremadamente sencillo. Si deseamos crear una instancia de un libro de Excel, basta con utilizar la clase XLWorkbook, el cual contiene una propiedad haciendo referencia a las hojas del libro, las que a su vez contienen referencias a las celdas.</p>
<p align="justify">Nuestro primer ejemplo, consistirá en crear un libro en Excel, el código para hacerlo es el siguiente:</p>
<p>var workbook = new XLWorkbook();    <br />var worksheet = workbook.Worksheets.Add(&quot;Sample Sheet&quot;);    <br />worksheet.Cell(&quot;A1&quot;).Value = &quot;Hola mundo desde Excel!&quot;;    <br />workbook.SaveAs(&quot;HelloWorld.xlsx&quot;);    </p>
<p>&#160;</p>
<p align="justify">Una vez ingresado el código en el manejador de eventos de un botón, tendremos un libro de Excel satisfactoriamente creado:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2016/03/screen-shot-03-04-16-at-01-02-pm.png"><img loading="lazy" title="Screen Shot 03-04-16 at 01.02 PM" style="background-image:none;float:none;padding-top:0;padding-left:0;margin-left:auto;display:block;padding-right:0;margin-right:auto;border-width:0;" border="0" alt="Screen Shot 03-04-16 at 01.02 PM" src="https://hectorperez.wordpress.com/wp-content/uploads/2016/03/screen-shot-03-04-16-at-01-02-pm_thumb.png?w=240&#038;h=244" width="240" height="244" /></a></p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2016/03/screen-shot-03-04-16-at-01-11-pm.png"><img loading="lazy" title="Screen Shot 03-04-16 at 01.11 PM" style="background-image:none;float:none;padding-top:0;padding-left:0;margin-left:auto;display:block;padding-right:0;margin-right:auto;border-width:0;" border="0" alt="Screen Shot 03-04-16 at 01.11 PM" src="https://hectorperez.wordpress.com/wp-content/uploads/2016/03/screen-shot-03-04-16-at-01-11-pm_thumb.png?w=421&#038;h=50" width="421" height="50" /></a></p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2016/03/screen-shot-03-04-16-at-01-11-pm-001.png"><img loading="lazy" title="Screen Shot 03-04-16 at 01.11 PM 001" style="background-image:none;float:none;padding-top:0;padding-left:0;margin-left:auto;display:block;padding-right:0;margin-right:auto;border-width:0;" border="0" alt="Screen Shot 03-04-16 at 01.11 PM 001" src="https://hectorperez.wordpress.com/wp-content/uploads/2016/03/screen-shot-03-04-16-at-01-11-pm-001_thumb.png?w=373&#038;h=134" width="373" height="134" /></a></p>
<p align="justify">En la siguiente entrada, nos dedicaremos a manipular archivos de Excel existentes.</p>
<p>¡Hasta la próxima!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://hectorperez.wordpress.com/2016/03/04/manipulando-archivos-de-excel-con-c-sin-morir-en-el-intento-1n/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">931</post-id>
		<media:content url="https://1.gravatar.com/avatar/d5470cbae4baec70037bcb8002d500454cd05af89c1dedb32b0fc7aff97a67c2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Héctor Uriel Pérez Rojas</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2016/03/screen-shot-03-04-16-at-12-33-pm_thumb.png" medium="image">
			<media:title type="html">Screen Shot 03-04-16 at 12.33 PM</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2016/03/screen-shot-03-04-16-at-12-42-pm_thumb.png" medium="image">
			<media:title type="html">Screen Shot 03-04-16 at 12.42 PM</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2016/03/screen-shot-03-04-16-at-01-02-pm_thumb.png" medium="image">
			<media:title type="html">Screen Shot 03-04-16 at 01.02 PM</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2016/03/screen-shot-03-04-16-at-01-11-pm_thumb.png" medium="image">
			<media:title type="html">Screen Shot 03-04-16 at 01.11 PM</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2016/03/screen-shot-03-04-16-at-01-11-pm-001_thumb.png" medium="image">
			<media:title type="html">Screen Shot 03-04-16 at 01.11 PM 001</media:title>
		</media:content>
	</item>
		<item>
		<title>Manejar acceso a datos a trav&#233;s de una clase administrada (1/n) (Hyrule)</title>
		<link>https://hectorperez.wordpress.com/2016/02/01/manejar-acceso-a-datos-a-travs-de-una-clase-administrada-1n-hyrule/</link>
					<comments>https://hectorperez.wordpress.com/2016/02/01/manejar-acceso-a-datos-a-travs-de-una-clase-administrada-1n-hyrule/#respond</comments>
		
		<dc:creator><![CDATA[hectorperez]]></dc:creator>
		<pubDate>Mon, 01 Feb 2016 21:38:00 +0000</pubDate>
				<category><![CDATA[Bibliotecas]]></category>
		<category><![CDATA[C#]]></category>
		<guid isPermaLink="false">http://hectorperez.wordpress.com/?p=919</guid>

					<description><![CDATA[Tomando como referencia un post anterior, continúo esta serie de artículos relacionados con facilitar nuestro día a día en el desarrollo de aplicaciones. Para propósitos de esta serie de posts, utilizaremos un repositorio en GitHub, alojado en la dirección: https://github.com/hprez21/Hyrule A menudo me encuentro con muchos programadores que no tienen separada su lógica para acceso &#8230; <a href="https://hectorperez.wordpress.com/2016/02/01/manejar-acceso-a-datos-a-travs-de-una-clase-administrada-1n-hyrule/" class="more-link">Continuar leyendo <span class="screen-reader-text">Manejar acceso a datos a trav&#233;s de una clase administrada (1/n)&#160;(Hyrule)</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p align="justify">Tomando como referencia un <a href="https://hectorperez.wordpress.com/2010/11/12/creando-una-biblioteca-de-utilidades-parte-1-creando-nuestro-proyecto/">post anterior</a>, continúo esta serie de artículos relacionados con facilitar nuestro día a día en el desarrollo de aplicaciones.</p>
<p align="justify">Para propósitos de esta serie de posts, utilizaremos un repositorio en GitHub, alojado en la dirección:</p>
<p align="justify"><a title="https://github.com/hprez21/Hyrule" href="https://github.com/hprez21/Hyrule">https://github.com/hprez21/Hyrule</a></p>
<p align="justify">A menudo me encuentro con muchos programadores que no tienen separada su lógica para acceso a datos, inclusive en proyectos grandes y de suma importancia. Es común observar en estos proyectos, la repetición constante de código para llevar a cabo una simple ejecución de una consulta a la base de datos.</p>
<p align="justify">La primer clase que agregaremos en nuestra biblioteca de clases, se llama “SQLHelper”, desarrollada por Microsoft como parte de su Microsoft Data Access Application Block for .NET, el cual podemos encontrar en el <a href="https://github.com/hprez21/Hyrule/blob/master/Hyrule.Data/SQLHelper.cs">respositorio de GitHub</a>, y la cual está compuesta por más de 4,500 líneas de código.</p>
<p align="justify">Para poder llevar a cabo una prueba rápida de la biblioteca, agregaremos un nuevo proyecto en Visual Studio de tipo consola al que denominaremos “Hyrule.DemosData”, al cual agregaremos la referencia a Hyrule.Data:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2016/02/screen-shot-02-01-16-at-03-18-pm.png"><img loading="lazy" title="Screen Shot 02-01-16 at 03.18 PM" style="border-top:0;border-right:0;background-image:none;border-bottom:0;float:none;padding-top:0;padding-left:0;margin-left:auto;border-left:0;display:block;padding-right:0;margin-right:auto;" border="0" alt="Screen Shot 02-01-16 at 03.18 PM" src="https://hectorperez.wordpress.com/wp-content/uploads/2016/02/screen-shot-02-01-16-at-03-18-pm_thumb.png?w=508&#038;h=199" width="508" height="199" /></a></p>
<p>Una vez hecho esto, podemos agregar la referencia en código, y utilizar la clase para ver la lista de métodos disponibles:</p>
<p>&#160;</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2016/02/screen-shot-02-01-16-at-03-22-pm.png"><img loading="lazy" title="Screen Shot 02-01-16 at 03.22 PM" style="border-top:0;border-right:0;background-image:none;border-bottom:0;float:none;padding-top:0;padding-left:0;margin-left:auto;border-left:0;display:block;padding-right:0;margin-right:auto;" border="0" alt="Screen Shot 02-01-16 at 03.22 PM" src="https://hectorperez.wordpress.com/wp-content/uploads/2016/02/screen-shot-02-01-16-at-03-22-pm_thumb.png?w=498&#038;h=409" width="498" height="409" /></a></p>
<p align="justify">Otra forma de conocer qué métodos están disponibles para nuestro uso, es yéndonos al menú View –&gt; Object Browser, donde examinando el espacio de nombres Hyrule.Data, podemos observar la lista de métodos disponibles.</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2016/02/screen-shot-02-01-16-at-03-25-pm.png"><img loading="lazy" title="Screen Shot 02-01-16 at 03.25 PM" style="border-top:0;border-right:0;background-image:none;border-bottom:0;padding-top:0;padding-left:0;border-left:0;display:inline;padding-right:0;" border="0" alt="Screen Shot 02-01-16 at 03.25 PM" src="https://hectorperez.wordpress.com/wp-content/uploads/2016/02/screen-shot-02-01-16-at-03-25-pm_thumb.png?w=486&#038;h=245" width="486" height="245" /></a></p>
<p>En la próxima entrega, comenzaremos a ver la forma de utilizar de forma general, los métodos de la clase.</p>
<p>&#160;</p>
<p>Saludos.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://hectorperez.wordpress.com/2016/02/01/manejar-acceso-a-datos-a-travs-de-una-clase-administrada-1n-hyrule/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">919</post-id>
		<media:content url="https://1.gravatar.com/avatar/d5470cbae4baec70037bcb8002d500454cd05af89c1dedb32b0fc7aff97a67c2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Héctor Uriel Pérez Rojas</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2016/02/screen-shot-02-01-16-at-03-18-pm_thumb.png" medium="image">
			<media:title type="html">Screen Shot 02-01-16 at 03.18 PM</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2016/02/screen-shot-02-01-16-at-03-22-pm_thumb.png" medium="image">
			<media:title type="html">Screen Shot 02-01-16 at 03.22 PM</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2016/02/screen-shot-02-01-16-at-03-25-pm_thumb.png" medium="image">
			<media:title type="html">Screen Shot 02-01-16 at 03.25 PM</media:title>
		</media:content>
	</item>
		<item>
		<title>Material de la pl&#225;tica &#8220;Introducci&#243;n a los patrones de dise&#241;o&#8221; impartida el d&#237;a 30/01/2015</title>
		<link>https://hectorperez.wordpress.com/2016/01/30/material-de-la-pltica-introduccin-a-los-patrones-de-diseo-impartida-el-da-30012015/</link>
					<comments>https://hectorperez.wordpress.com/2016/01/30/material-de-la-pltica-introduccin-a-los-patrones-de-diseo-impartida-el-da-30012015/#respond</comments>
		
		<dc:creator><![CDATA[hectorperez]]></dc:creator>
		<pubDate>Sat, 30 Jan 2016 15:49:00 +0000</pubDate>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Patrones de Diseño]]></category>
		<guid isPermaLink="false">http://hectorperez.wordpress.com/?p=911</guid>

					<description><![CDATA[Hola a todos, les comparto el material de la conferencia mostrada el día de ayer sobre patrones de diseño, con todo y código fuente, espero lo aprovechen. https://github.com/hprez21/Introduccion-a-los-patrones-de-disenio &#160; Saludos.]]></description>
										<content:encoded><![CDATA[<p>Hola a todos, les comparto el material de la conferencia mostrada el día de ayer sobre patrones de diseño, con todo y código fuente, espero lo aprovechen.</p>
<p><a title="https://github.com/hprez21/Introduccion-a-los-patrones-de-disenio" href="https://github.com/hprez21/Introduccion-a-los-patrones-de-disenio">https://github.com/hprez21/Introduccion-a-los-patrones-de-disenio</a></p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2016/01/screen-shot-01-30-16-at-09-52-am.png"><img loading="lazy" title="Screen Shot 01-30-16 at 09.52 AM" style="border-top:0;border-right:0;background-image:none;border-bottom:0;float:none;padding-top:0;padding-left:0;margin-left:auto;border-left:0;display:block;padding-right:0;margin-right:auto;" border="0" alt="Screen Shot 01-30-16 at 09.52 AM" src="https://hectorperez.wordpress.com/wp-content/uploads/2016/01/screen-shot-01-30-16-at-09-52-am_thumb.png?w=427&#038;h=265" width="427" height="265" /></a></p>
<p>&#160;</p>
<p>Saludos.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://hectorperez.wordpress.com/2016/01/30/material-de-la-pltica-introduccin-a-los-patrones-de-diseo-impartida-el-da-30012015/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">911</post-id>
		<media:content url="https://1.gravatar.com/avatar/d5470cbae4baec70037bcb8002d500454cd05af89c1dedb32b0fc7aff97a67c2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Héctor Uriel Pérez Rojas</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2016/01/screen-shot-01-30-16-at-09-52-am_thumb.png" medium="image">
			<media:title type="html">Screen Shot 01-30-16 at 09.52 AM</media:title>
		</media:content>
	</item>
		<item>
		<title>Diferencia entre tipo de dato float, double y decimal en C#</title>
		<link>https://hectorperez.wordpress.com/2016/01/16/diferencia-entre-tipo-de-dato-float-double-y-decimal-en-c/</link>
					<comments>https://hectorperez.wordpress.com/2016/01/16/diferencia-entre-tipo-de-dato-float-double-y-decimal-en-c/#respond</comments>
		
		<dc:creator><![CDATA[hectorperez]]></dc:creator>
		<pubDate>Sat, 16 Jan 2016 00:22:00 +0000</pubDate>
				<category><![CDATA[C#]]></category>
		<guid isPermaLink="false">http://hectorperez.wordpress.com/?p=896</guid>

					<description><![CDATA[Todos estos tipos de dato son similares debido a que todos tienen un valor decimal, pero son diferentes en la forma en la que almacenan dicho valor. Un valor del tipo float tiene una precisión de 7 dígitos, mientras que un valor del tipo double entre 15-16 dígitos. Por otra parte, un valor del tipo &#8230; <a href="https://hectorperez.wordpress.com/2016/01/16/diferencia-entre-tipo-de-dato-float-double-y-decimal-en-c/" class="more-link">Continuar leyendo <span class="screen-reader-text">Diferencia entre tipo de dato float, double y decimal en&#160;C#</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p align="justify">Todos estos tipos de dato son similares debido a que todos tienen un valor decimal, pero son diferentes en la forma en la que almacenan dicho valor. Un valor del tipo float tiene una precisión de 7 dígitos, mientras que un valor del tipo double entre 15-16 dígitos. Por otra parte, un valor del tipo decimal, tiene una precisión de 28-29 dígitos. Esto significa que debemos utilizar cada uno de ellos, de acuerdo a la situación a la que nos enfrentemos:</p>
<p align="justify"><strong>Decimal</strong>:</p>
<p align="justify">Debe ser utilizado en aplicaciones de alta precisión, como por ejemplo, las financieras, o aquellas donde se hagan cálculos que requieran suma precisión.</p>
<p align="justify"><strong>Double</strong>:</p>
<p align="justify">Puede usarse en situaciones que no requieran el uso de dinero.</p>
<p align="justify"><strong>Float</strong>:</p>
<p align="justify">Puede usarse en situaciones en las que puedan existir errores de redondeo, y requieran el uso intensivo de procesamiento, como el dibujo de gráficas o juegos.</p>
<p><strong>Ejemplos de Uso:</strong></p>
<pre class="brush: csharp; title: ; notranslate">
//Decimal
decimal decimal = 12.12m;

//Flotante
float doble = 12.12f;

//Doble
double doble = 12.12d;
</pre>
<p>&nbsp;</p>
<p>Saludos.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://hectorperez.wordpress.com/2016/01/16/diferencia-entre-tipo-de-dato-float-double-y-decimal-en-c/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">896</post-id>
		<media:content url="https://1.gravatar.com/avatar/d5470cbae4baec70037bcb8002d500454cd05af89c1dedb32b0fc7aff97a67c2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Héctor Uriel Pérez Rojas</media:title>
		</media:content>
	</item>
		<item>
		<title>&#191;C&#243;mo comparar el esquema entre 2 bases de datos? (3/3) [Serie&#8211;Sincronizando Esquemas e Informaci&#243;n entre bases de datos]</title>
		<link>https://hectorperez.wordpress.com/2015/03/05/cmo-comparar-el-esquema-entre-2-bases-de-datos-33-seriesincronizando-esquemas-e-informacin-entre-bases-de-datos/</link>
					<comments>https://hectorperez.wordpress.com/2015/03/05/cmo-comparar-el-esquema-entre-2-bases-de-datos-33-seriesincronizando-esquemas-e-informacin-entre-bases-de-datos/#respond</comments>
		
		<dc:creator><![CDATA[hectorperez]]></dc:creator>
		<pubDate>Thu, 05 Mar 2015 03:36:00 +0000</pubDate>
				<category><![CDATA[Bases de Datos]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[SQL]]></category>
		<guid isPermaLink="false">http://hectorperez.wordpress.com/?p=894</guid>

					<description><![CDATA[En la entrada anterior, veíamos la segunda herramienta para llevar a cabo comparaciones entre esquemas de bases de datos. Hoy toca el turno a mi última recomendación, que es Visual Studio Schema Compare for SQL Server Database Projects. Visual Studio Schema Compare for SQL Server Database Projects Prerrequisitos: Visual Studio 2013 Ultimate Visual STudio 2013 &#8230; <a href="https://hectorperez.wordpress.com/2015/03/05/cmo-comparar-el-esquema-entre-2-bases-de-datos-33-seriesincronizando-esquemas-e-informacin-entre-bases-de-datos/" class="more-link">Continuar leyendo <span class="screen-reader-text">&#191;C&#243;mo comparar el esquema entre 2 bases de datos? (3/3) [Serie&#8211;Sincronizando Esquemas e Informaci&#243;n entre bases de&#160;datos]</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p align="justify">En la entrada anterior, veíamos la segunda herramienta para llevar a cabo comparaciones entre esquemas de bases de datos. Hoy toca el turno a mi última recomendación, que es Visual Studio Schema Compare for SQL Server Database Projects.</p>
<p><strong>Visual Studio Schema Compare for SQL Server Database Projects</strong></p>
<p><strong>Prerrequisitos:</strong></p>
<ul>
<li>Visual Studio 2013 Ultimate </li>
<li>Visual STudio 2013 Premium </li>
<li>Visual Studio Community 2013 </li>
</ul>
<p align="justify">Esta es una herramienta que viene incluida en las versiones enlistadas anteriormente. Para hacer uso de la misma, basta seleccionar la siguiente opción:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2015/03/screen-shot-03-04-15-at-09-10-pm.png"><img loading="lazy" title="Screen Shot 03-04-15 at 09.10 PM" style="background-image:none;float:none;padding-top:0;padding-left:0;margin-left:auto;display:block;padding-right:0;margin-right:auto;border-width:0;" border="0" alt="Screen Shot 03-04-15 at 09.10 PM" src="https://hectorperez.wordpress.com/wp-content/uploads/2015/03/screen-shot-03-04-15-at-09-10-pm_thumb.png?w=453&#038;h=387" width="453" height="387" /></a></p>
<p align="justify">Posteriormente, nos saldrá una ventana en la cual, de nuevo, al igual que en las herramientas anteriores, debemos seleccionar una base de datos orígen, y una base de datos destino:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2015/03/screen-shot-03-04-15-at-09-12-pm.png"><img loading="lazy" title="Screen Shot 03-04-15 at 09.12 PM" style="background-image:none;float:none;padding-top:0;padding-left:0;margin-left:auto;display:block;padding-right:0;margin-right:auto;border-width:0;" border="0" alt="Screen Shot 03-04-15 at 09.12 PM" src="https://hectorperez.wordpress.com/wp-content/uploads/2015/03/screen-shot-03-04-15-at-09-12-pm_thumb.png?w=327&#038;h=148" width="327" height="148" /></a></p>
<p align="justify">Si no nos aparece ninguna base de datos para seleccionar, debemos dar click sobre la opción “Select Source”, lo cual nos desplegará lo siguiente:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2015/03/screen-shot-03-04-15-at-09-13-pm.png"><img loading="lazy" title="Screen Shot 03-04-15 at 09.13 PM" style="background-image:none;float:none;padding-top:0;padding-left:0;margin-left:auto;display:block;padding-right:0;margin-right:auto;border-width:0;" border="0" alt="Screen Shot 03-04-15 at 09.13 PM" src="https://hectorperez.wordpress.com/wp-content/uploads/2015/03/screen-shot-03-04-15-at-09-13-pm_thumb.png?w=244&#038;h=226" width="244" height="226" /></a></p>
<p align="justify">En esta ventana, te aparecerán las diferentes opciones de las cuales puedes hacer uso, en mi caso he seleccionado una conexión a una base de datos. Haremos lo mismo con la base de datos destino:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2015/03/screen-shot-03-04-15-at-09-14-pm.png"><img loading="lazy" title="Screen Shot 03-04-15 at 09.14 PM" style="background-image:none;float:none;padding-top:0;padding-left:0;margin-left:auto;display:block;padding-right:0;margin-right:auto;border-width:0;" border="0" alt="Screen Shot 03-04-15 at 09.14 PM" src="https://hectorperez.wordpress.com/wp-content/uploads/2015/03/screen-shot-03-04-15-at-09-14-pm_thumb.png?w=361&#038;h=71" width="361" height="71" /></a></p>
<p align="justify">Por último, basta con dar click sobre el botón “Compare” para iniciar la comparación de esquemas:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2015/03/screen-shot-03-04-15-at-09-15-pm.png"><img loading="lazy" title="Screen Shot 03-04-15 at 09.15 PM" style="background-image:none;float:none;padding-top:0;padding-left:0;margin-left:auto;display:block;padding-right:0;margin-right:auto;border-width:0;" border="0" alt="Screen Shot 03-04-15 at 09.15 PM" src="https://hectorperez.wordpress.com/wp-content/uploads/2015/03/screen-shot-03-04-15-at-09-15-pm_thumb.png?w=128&#038;h=76" width="128" height="76" /></a></p>
<p align="justify">Esto nos desplegará, los diferentes cambios encontrados entre ambas bases de datos, categorizados por el tipo de cambio que debe de hacerse:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2015/03/screen-shot-03-04-15-at-09-20-pm.png"><img loading="lazy" title="Screen Shot 03-04-15 at 09.20 PM" style="background-image:none;float:none;padding-top:0;padding-left:0;margin-left:auto;display:block;padding-right:0;margin-right:auto;border-width:0;" border="0" alt="Screen Shot 03-04-15 at 09.20 PM" src="https://hectorperez.wordpress.com/wp-content/uploads/2015/03/screen-shot-03-04-15-at-09-20-pm_thumb.png?w=397&#038;h=112" width="397" height="112" /></a></p>
<p align="justify">En nuestro ejemplo, veremos que se debe realizar un cambio. Si nos posicionamos encima de la tabla, podremos visualizar cuál es la diferencia entre ambas tablas:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2015/03/screen-shot-03-04-15-at-09-22-pm.png"><img loading="lazy" title="Screen Shot 03-04-15 at 09.22 PM" style="background-image:none;float:none;padding-top:0;padding-left:0;margin-left:auto;display:block;padding-right:0;margin-right:auto;border-width:0;" border="0" alt="Screen Shot 03-04-15 at 09.22 PM" src="https://hectorperez.wordpress.com/wp-content/uploads/2015/03/screen-shot-03-04-15-at-09-22-pm_thumb.png?w=432&#038;h=159" width="432" height="159" /></a></p>
<p align="justify">Veremos que existen 3 cambios que debemos aplicar si deseamos empatar el esquema de bases de datos.</p>
<ol>
<li>Cambiar el nombre a un largo de 200 </li>
<li>Cambiar el género de char(1) a entero </li>
<li>Agregar la llave primaria [PK_Person] </li>
</ol>
<p align="justify">En caso de que queramos que la actualización se lleve a cabo gestionada por Visual Studio, debemos seleccionar aquellas tablas u objetos que deseamos actualizar:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2015/03/screen-shot-03-04-15-at-09-25-pm.png"><img loading="lazy" title="Screen Shot 03-04-15 at 09.25 PM" style="background-image:none;float:none;padding-top:0;padding-left:0;margin-left:auto;display:block;padding-right:0;margin-right:auto;border-width:0;" border="0" alt="Screen Shot 03-04-15 at 09.25 PM" src="https://hectorperez.wordpress.com/wp-content/uploads/2015/03/screen-shot-03-04-15-at-09-25-pm_thumb.png?w=458&#038;h=70" width="458" height="70" /></a></p>
<p align="justify">Una vez hecho esto, podremos ver el scrip que se generaría en caso de que se llevara a cabo la actualización, donde, en nuestro ejemplo, las líneas más relevantes serían las siguientes:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2015/03/screen-shot-03-04-15-at-09-27-pm.png"><img loading="lazy" title="Screen Shot 03-04-15 at 09.27 PM" style="background-image:none;float:none;padding-top:0;padding-left:0;margin-left:auto;display:block;padding-right:0;margin-right:auto;border-width:0;" border="0" alt="Screen Shot 03-04-15 at 09.27 PM" src="https://hectorperez.wordpress.com/wp-content/uploads/2015/03/screen-shot-03-04-15-at-09-27-pm_thumb.png?w=386&#038;h=195" width="386" height="195" /></a></p>
<p align="justify">Si es lo que deseamos, simplemente debemos actualizar el esquema, dando click en el botón “Update”:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2015/03/screen-shot-03-04-15-at-09-28-pm.png"><img loading="lazy" title="Screen Shot 03-04-15 at 09.28 PM" style="background-image:none;float:none;padding-top:0;padding-left:0;margin-left:auto;display:block;padding-right:0;margin-right:auto;border-width:0;" border="0" alt="Screen Shot 03-04-15 at 09.28 PM" src="https://hectorperez.wordpress.com/wp-content/uploads/2015/03/screen-shot-03-04-15-at-09-28-pm_thumb.png?w=384&#038;h=107" width="384" height="107" /></a></p>
<p align="justify">Con lo que obtendremos un error:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2015/03/screen-shot-03-04-15-at-09-31-pm.png"><img loading="lazy" title="Screen Shot 03-04-15 at 09.31 PM" style="background-image:none;float:none;padding-top:0;padding-left:0;margin-left:auto;display:block;padding-right:0;margin-right:auto;border-width:0;" border="0" alt="Screen Shot 03-04-15 at 09.31 PM" src="https://hectorperez.wordpress.com/wp-content/uploads/2015/03/screen-shot-03-04-15-at-09-31-pm_thumb.png?w=469&#038;h=97" width="469" height="97" /></a></p>
<p align="justify">Esto sucede porque tenemos información en nuesta base de datos, la cual podríamos afectar. Para cuestiones de ejemplo, lo corregiremos eliminando esta sección del script:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2015/03/screen-shot-03-04-15-at-09-32-pm.png"><img loading="lazy" title="Screen Shot 03-04-15 at 09.32 PM" style="background-image:none;float:none;padding-top:0;padding-left:0;margin-left:auto;display:block;padding-right:0;margin-right:auto;border-width:0;" border="0" alt="Screen Shot 03-04-15 at 09.32 PM" src="https://hectorperez.wordpress.com/wp-content/uploads/2015/03/screen-shot-03-04-15-at-09-32-pm_thumb.png?w=448&#038;h=54" width="448" height="54" /></a></p>
<p align="justify">Con esto, no tendremos más errores, y habremos sincronizado el esquema entre ambas bases de datos.</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2015/03/screen-shot-03-04-15-at-09-33-pm.png"><img loading="lazy" title="Screen Shot 03-04-15 at 09.33 PM" style="background-image:none;float:none;padding-top:0;padding-left:0;margin-left:auto;display:block;padding-right:0;margin-right:auto;border-width:0;" border="0" alt="Screen Shot 03-04-15 at 09.33 PM" src="https://hectorperez.wordpress.com/wp-content/uploads/2015/03/screen-shot-03-04-15-at-09-33-pm_thumb.png?w=289&#038;h=149" width="289" height="149" /></a></p>
<p><strong>Conclusiones</strong></p>
<p>En esta serie de entradas, hemos visto 3 herramientas que pueden ser de gran utilidad al momento de llevar a cabo sincronizaciones entre esquemas de bases de datos. Es tu turno decidir cuál te conviene más.</p>
<p>Saludos.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://hectorperez.wordpress.com/2015/03/05/cmo-comparar-el-esquema-entre-2-bases-de-datos-33-seriesincronizando-esquemas-e-informacin-entre-bases-de-datos/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">894</post-id>
		<media:content url="https://1.gravatar.com/avatar/d5470cbae4baec70037bcb8002d500454cd05af89c1dedb32b0fc7aff97a67c2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Héctor Uriel Pérez Rojas</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2015/03/screen-shot-03-04-15-at-09-10-pm_thumb.png" medium="image">
			<media:title type="html">Screen Shot 03-04-15 at 09.10 PM</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2015/03/screen-shot-03-04-15-at-09-12-pm_thumb.png" medium="image">
			<media:title type="html">Screen Shot 03-04-15 at 09.12 PM</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2015/03/screen-shot-03-04-15-at-09-13-pm_thumb.png" medium="image">
			<media:title type="html">Screen Shot 03-04-15 at 09.13 PM</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2015/03/screen-shot-03-04-15-at-09-14-pm_thumb.png" medium="image">
			<media:title type="html">Screen Shot 03-04-15 at 09.14 PM</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2015/03/screen-shot-03-04-15-at-09-15-pm_thumb.png" medium="image">
			<media:title type="html">Screen Shot 03-04-15 at 09.15 PM</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2015/03/screen-shot-03-04-15-at-09-20-pm_thumb.png" medium="image">
			<media:title type="html">Screen Shot 03-04-15 at 09.20 PM</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2015/03/screen-shot-03-04-15-at-09-22-pm_thumb.png" medium="image">
			<media:title type="html">Screen Shot 03-04-15 at 09.22 PM</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2015/03/screen-shot-03-04-15-at-09-25-pm_thumb.png" medium="image">
			<media:title type="html">Screen Shot 03-04-15 at 09.25 PM</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2015/03/screen-shot-03-04-15-at-09-27-pm_thumb.png" medium="image">
			<media:title type="html">Screen Shot 03-04-15 at 09.27 PM</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2015/03/screen-shot-03-04-15-at-09-28-pm_thumb.png" medium="image">
			<media:title type="html">Screen Shot 03-04-15 at 09.28 PM</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2015/03/screen-shot-03-04-15-at-09-31-pm_thumb.png" medium="image">
			<media:title type="html">Screen Shot 03-04-15 at 09.31 PM</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2015/03/screen-shot-03-04-15-at-09-32-pm_thumb.png" medium="image">
			<media:title type="html">Screen Shot 03-04-15 at 09.32 PM</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2015/03/screen-shot-03-04-15-at-09-33-pm_thumb.png" medium="image">
			<media:title type="html">Screen Shot 03-04-15 at 09.33 PM</media:title>
		</media:content>
	</item>
		<item>
		<title>&#191;C&#243;mo comparar el esquema entre 2 bases de datos? (2/3) [Serie&#8211;Sincronizando Esquemas e Informaci&#243;n entre bases de datos]</title>
		<link>https://hectorperez.wordpress.com/2015/03/03/cmo-comparar-el-esquema-entre-2-bases-de-datos-23-seriesincronizando-esquemas-e-informacin-entre-bases-de-datos/</link>
					<comments>https://hectorperez.wordpress.com/2015/03/03/cmo-comparar-el-esquema-entre-2-bases-de-datos-23-seriesincronizando-esquemas-e-informacin-entre-bases-de-datos/#respond</comments>
		
		<dc:creator><![CDATA[hectorperez]]></dc:creator>
		<pubDate>Tue, 03 Mar 2015 01:48:00 +0000</pubDate>
				<category><![CDATA[Bases de Datos]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[SQL]]></category>
		<guid isPermaLink="false">http://hectorperez.wordpress.com/?p=865</guid>

					<description><![CDATA[En el artículo anterior, hablábamos acerca de DbComparer como herramienta para comparar esquemas entre 2 bases de datos. hoy toca el turno de OpenDbDiff. OpenDbDiff Hospedado en el sitio de CodePlex, este proyecto nos describe lo siguiente: Open DBDiff es una herramienta de comparación esquema open source de bases de datos de SQL Server 2005/2008. &#8230; <a href="https://hectorperez.wordpress.com/2015/03/03/cmo-comparar-el-esquema-entre-2-bases-de-datos-23-seriesincronizando-esquemas-e-informacin-entre-bases-de-datos/" class="more-link">Continuar leyendo <span class="screen-reader-text">&#191;C&#243;mo comparar el esquema entre 2 bases de datos? (2/3) [Serie&#8211;Sincronizando Esquemas e Informaci&#243;n entre bases de&#160;datos]</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p align="justify">En el <a href="https://hectorperez.wordpress.com/2015/02/26/cmo-comparar-el-esquema-entre-2-bases-de-datos-13-seriesincronizando-esquemas-e-informacin-entre-bases-de-datos/" target="_blank">artículo anterior</a>, hablábamos acerca de DbComparer como herramienta para comparar esquemas entre 2 bases de datos. hoy toca el turno de OpenDbDiff.</p>
<p align="justify"><a href="https://www.google.com.mx/url?sa=t&amp;rct=j&amp;q=&amp;esrc=s&amp;source=web&amp;cd=1&amp;cad=rja&amp;uact=8&amp;ved=0CB0QFjAA&amp;url=https%3A%2F%2Fopendbiff.codeplex.com%2F&amp;ei=qg71VO34A8KTyAT02YG4Cg&amp;usg=AFQjCNGd4mdL6f42jDrnWJ4P8YmGGhbLwQ" target="_blank">OpenDbDiff</a></p>
<p align="justify">Hospedado en el sitio de CodePlex, este proyecto nos describe lo siguiente:</p>
<blockquote>
<p align="justify">Open DBDiff es una herramienta de comparación esquema open source de bases de datos de SQL Server 2005/2008.</p>
<p align="justify">Se informa de las diferencias entre dos esquemas de base de datos y proporciona un script de sincronización para actualizar una base de datos de uno a otro.</p>
</blockquote>
<p align="justify">Cuando ejecutamos la aplicación, veremos, al igual que DbComparer, 2 apartados para especificar una base de datos de orígen, y una base de datos destino, donde debemos especificar la información correspondiente a cada una de ellas, como en el siguiente ejemplo:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2015/03/screen-shot-03-02-15-at-07-33-pm.png"><img loading="lazy" title="Screen Shot 03-02-15 at 07.33 PM" style="border-top:0;border-right:0;background-image:none;border-bottom:0;float:none;padding-top:0;padding-left:0;margin-left:auto;border-left:0;display:block;padding-right:0;margin-right:auto;" border="0" alt="Screen Shot 03-02-15 at 07.33 PM" src="https://hectorperez.wordpress.com/wp-content/uploads/2015/03/screen-shot-03-02-15-at-07-33-pm_thumb.png?w=395&#038;h=128" width="395" height="128" /></a></p>
<p align="justify">Una vez hecho esto, debemos dar click en el botón “Compare” para llevar a cabo la comparación:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2015/03/screen-shot-03-02-15-at-07-34-pm.png"><img loading="lazy" title="Screen Shot 03-02-15 at 07.34 PM" style="border-top:0;border-right:0;background-image:none;border-bottom:0;float:none;padding-top:0;padding-left:0;margin-left:auto;border-left:0;display:block;padding-right:0;margin-right:auto;" border="0" alt="Screen Shot 03-02-15 at 07.34 PM" src="https://hectorperez.wordpress.com/wp-content/uploads/2015/03/screen-shot-03-02-15-at-07-34-pm_thumb.png?w=165&#038;h=183" width="165" height="183" /></a></p>
<p align="justify">lo cual nos generará un listado con las diferencias entre ambas bases de datos. Continuando con nuestra información de ejemplo, al abrir la pestaña de las tablas, veremos algo como lo siguiente:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2015/03/screen-shot-03-02-15-at-07-36-pm.png"><img loading="lazy" title="Screen Shot 03-02-15 at 07.36 PM" style="border-top:0;border-right:0;background-image:none;border-bottom:0;float:none;padding-top:0;padding-left:0;margin-left:auto;border-left:0;display:block;padding-right:0;margin-right:auto;" border="0" alt="Screen Shot 03-02-15 at 07.36 PM" src="https://hectorperez.wordpress.com/wp-content/uploads/2015/03/screen-shot-03-02-15-at-07-36-pm_thumb.png?w=154&#038;h=244" width="154" height="244" /></a></p>
<p align="justify">donde, dependiendo el color del texto, significará alguna de las siguientes 3 opciones:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2015/03/screen-shot-03-02-15-at-07-37-pm.png"><img loading="lazy" title="Screen Shot 03-02-15 at 07.37 PM" style="border-top:0;border-right:0;background-image:none;border-bottom:0;float:none;padding-top:0;padding-left:0;margin-left:auto;border-left:0;display:block;padding-right:0;margin-right:auto;" border="0" alt="Screen Shot 03-02-15 at 07.37 PM" src="https://hectorperez.wordpress.com/wp-content/uploads/2015/03/screen-shot-03-02-15-at-07-37-pm_thumb.png?w=272&#038;h=62" width="272" height="62" /></a></p>
<p align="justify">En nuestro ejemplo concreto, veremos debemos llevar a cabo una consulta del tipo Alter para poder dejar a la par ambas bases de datos. La aplicación nos ayudará, brindándonos el script para crear la( s ) tabla ( s ) correspondiente (s ). </p>
<p align="justify">Script de la tabla anterior:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2015/03/screen-shot-03-02-15-at-07-40-pm-001.png"><img loading="lazy" title="Screen Shot 03-02-15 at 07.40 PM 001" style="border-top:0;border-right:0;background-image:none;border-bottom:0;float:none;padding-top:0;padding-left:0;margin-left:auto;border-left:0;display:block;padding-right:0;margin-right:auto;" border="0" alt="Screen Shot 03-02-15 at 07.40 PM 001" src="https://hectorperez.wordpress.com/wp-content/uploads/2015/03/screen-shot-03-02-15-at-07-40-pm-001_thumb.png?w=386&#038;h=144" width="386" height="144" /></a></p>
<p align="justify">Script de la tabla nueva:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2015/03/screen-shot-03-02-15-at-07-40-pm.png"><img loading="lazy" title="Screen Shot 03-02-15 at 07.40 PM" style="border-top:0;border-right:0;background-image:none;border-bottom:0;float:none;padding-top:0;padding-left:0;margin-left:auto;border-left:0;display:block;padding-right:0;margin-right:auto;" border="0" alt="Screen Shot 03-02-15 at 07.40 PM" src="https://hectorperez.wordpress.com/wp-content/uploads/2015/03/screen-shot-03-02-15-at-07-40-pm_thumb.png?w=375&#038;h=109" width="375" height="109" /></a></p>
<p align="justify">Por último, si deseamos aplicar dichos cambios de forma automática, bastará con seleccionar el ó los ítems correspondientes, y dar click sobre “Update Item”:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2015/03/screen-shot-03-02-15-at-07-44-pm.png"><img loading="lazy" title="Screen Shot 03-02-15 at 07.44 PM" style="border-top:0;border-right:0;background-image:none;border-bottom:0;float:none;padding-top:0;padding-left:0;margin-left:auto;border-left:0;display:block;padding-right:0;margin-right:auto;" border="0" alt="Screen Shot 03-02-15 at 07.44 PM" src="https://hectorperez.wordpress.com/wp-content/uploads/2015/03/screen-shot-03-02-15-at-07-44-pm_thumb.png?w=182&#038;h=85" width="182" height="85" /></a></p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2015/03/screen-shot-03-02-15-at-07-44-pm-001.png"><img loading="lazy" title="Screen Shot 03-02-15 at 07.44 PM 001" style="border-top:0;border-right:0;background-image:none;border-bottom:0;float:none;padding-top:0;padding-left:0;margin-left:auto;border-left:0;display:block;padding-right:0;margin-right:auto;" border="0" alt="Screen Shot 03-02-15 at 07.44 PM 001" src="https://hectorperez.wordpress.com/wp-content/uploads/2015/03/screen-shot-03-02-15-at-07-44-pm-001_thumb.png?w=80&#038;h=244" width="80" height="244" /></a></p>
<p align="justify">con lo que nos saltará una advertencia:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2015/03/screen-shot-03-02-15-at-07-44-pm-002.png"><img loading="lazy" title="Screen Shot 03-02-15 at 07.44 PM 002" style="border-top:0;border-right:0;background-image:none;border-bottom:0;float:none;padding-top:0;padding-left:0;margin-left:auto;border-left:0;display:block;padding-right:0;margin-right:auto;" border="0" alt="Screen Shot 03-02-15 at 07.44 PM 002" src="https://hectorperez.wordpress.com/wp-content/uploads/2015/03/screen-shot-03-02-15-at-07-44-pm-002_thumb.png?w=301&#038;h=156" width="301" height="156" /></a></p>
<p align="justify">Que básicamente nos dice, que no se podrán revertir los cambios. Al aplicar los cambios, si no hay mayor complicación, nos saldrá un mensaje diciendo que todos los cambios fueron satisfactorios:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2015/03/screen-shot-03-02-15-at-07-46-pm.png"><img loading="lazy" title="Screen Shot 03-02-15 at 07.46 PM" style="border-top:0;border-right:0;background-image:none;border-bottom:0;float:none;padding-top:0;padding-left:0;margin-left:auto;border-left:0;display:block;padding-right:0;margin-right:auto;" border="0" alt="Screen Shot 03-02-15 at 07.46 PM" src="https://hectorperez.wordpress.com/wp-content/uploads/2015/03/screen-shot-03-02-15-at-07-46-pm_thumb.png?w=175&#038;h=167" width="175" height="167" /></a></p>
<p align="justify">Posterior a esto, se iniciará de nuevo el proceso de comparación, esta vez, mostrándonos los objetos sin ningún tipo de problema:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2015/03/screen-shot-03-02-15-at-07-47-pm.png"><img loading="lazy" title="Screen Shot 03-02-15 at 07.47 PM" style="border-top:0;border-right:0;background-image:none;border-bottom:0;float:none;padding-top:0;padding-left:0;margin-left:auto;border-left:0;display:block;padding-right:0;margin-right:auto;" border="0" alt="Screen Shot 03-02-15 at 07.47 PM" src="https://hectorperez.wordpress.com/wp-content/uploads/2015/03/screen-shot-03-02-15-at-07-47-pm_thumb.png?w=201&#038;h=105" width="201" height="105" /></a></p>
<p align="justify">Con esto, tenemos una ayuda bastante poderosa para tener nuestras bases de datos sincronizadas.</p>
<p align="justify">Nos vemos en la siguiente entrada.</p>
<p align="justify">Saludos.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://hectorperez.wordpress.com/2015/03/03/cmo-comparar-el-esquema-entre-2-bases-de-datos-23-seriesincronizando-esquemas-e-informacin-entre-bases-de-datos/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">865</post-id>
		<media:content url="https://1.gravatar.com/avatar/d5470cbae4baec70037bcb8002d500454cd05af89c1dedb32b0fc7aff97a67c2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Héctor Uriel Pérez Rojas</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2015/03/screen-shot-03-02-15-at-07-33-pm_thumb.png" medium="image">
			<media:title type="html">Screen Shot 03-02-15 at 07.33 PM</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2015/03/screen-shot-03-02-15-at-07-34-pm_thumb.png" medium="image">
			<media:title type="html">Screen Shot 03-02-15 at 07.34 PM</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2015/03/screen-shot-03-02-15-at-07-36-pm_thumb.png" medium="image">
			<media:title type="html">Screen Shot 03-02-15 at 07.36 PM</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2015/03/screen-shot-03-02-15-at-07-37-pm_thumb.png" medium="image">
			<media:title type="html">Screen Shot 03-02-15 at 07.37 PM</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2015/03/screen-shot-03-02-15-at-07-40-pm-001_thumb.png" medium="image">
			<media:title type="html">Screen Shot 03-02-15 at 07.40 PM 001</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2015/03/screen-shot-03-02-15-at-07-40-pm_thumb.png" medium="image">
			<media:title type="html">Screen Shot 03-02-15 at 07.40 PM</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2015/03/screen-shot-03-02-15-at-07-44-pm_thumb.png" medium="image">
			<media:title type="html">Screen Shot 03-02-15 at 07.44 PM</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2015/03/screen-shot-03-02-15-at-07-44-pm-001_thumb.png" medium="image">
			<media:title type="html">Screen Shot 03-02-15 at 07.44 PM 001</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2015/03/screen-shot-03-02-15-at-07-44-pm-002_thumb.png" medium="image">
			<media:title type="html">Screen Shot 03-02-15 at 07.44 PM 002</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2015/03/screen-shot-03-02-15-at-07-46-pm_thumb.png" medium="image">
			<media:title type="html">Screen Shot 03-02-15 at 07.46 PM</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2015/03/screen-shot-03-02-15-at-07-47-pm_thumb.png" medium="image">
			<media:title type="html">Screen Shot 03-02-15 at 07.47 PM</media:title>
		</media:content>
	</item>
		<item>
		<title>&#191;C&#243;mo comparar el esquema entre 2 bases de datos? (1/3) [Serie&#8211;Sincronizando Esquemas e Informaci&#243;n entre bases de datos]</title>
		<link>https://hectorperez.wordpress.com/2015/02/26/cmo-comparar-el-esquema-entre-2-bases-de-datos-13-seriesincronizando-esquemas-e-informacin-entre-bases-de-datos/</link>
					<comments>https://hectorperez.wordpress.com/2015/02/26/cmo-comparar-el-esquema-entre-2-bases-de-datos-13-seriesincronizando-esquemas-e-informacin-entre-bases-de-datos/#respond</comments>
		
		<dc:creator><![CDATA[hectorperez]]></dc:creator>
		<pubDate>Thu, 26 Feb 2015 04:44:00 +0000</pubDate>
				<category><![CDATA[Bases de Datos]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[SQL]]></category>
		<guid isPermaLink="false">http://hectorperez.wordpress.com/?p=840</guid>

					<description><![CDATA[La comparación entre esquemas de 2 bases de datos, puede ser una tarea titánica si se realiza de forma manual. Es por eso, que en esta serie de posts, indicaré cómo llevar a cabo comparaciones entre esquemas de bases de datos, comparaciones entre los datos de diferentes bases de datos, y finalmente, veremos paso a &#8230; <a href="https://hectorperez.wordpress.com/2015/02/26/cmo-comparar-el-esquema-entre-2-bases-de-datos-13-seriesincronizando-esquemas-e-informacin-entre-bases-de-datos/" class="more-link">Continuar leyendo <span class="screen-reader-text">&#191;C&#243;mo comparar el esquema entre 2 bases de datos? (1/3) [Serie&#8211;Sincronizando Esquemas e Informaci&#243;n entre bases de&#160;datos]</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p align="justify">La comparación entre esquemas de 2 bases de datos, puede ser una tarea titánica si se realiza de forma manual. Es por eso, que en esta serie de posts, indicaré cómo llevar a cabo comparaciones entre esquemas de bases de datos, comparaciones entre los datos de diferentes bases de datos, y finalmente, veremos paso a paso cómo realizar una aplicación para que podamos utilizarla en nuestros desarrollos sin depender de herramientas de terceros. Iniciemos entonces con esta serie que espero sea de su agrado, y a más de uno sirva como me ha servido a mí.</p>
<p align="justify">En la red existen múltiples aplicaciones, que nos prometen llevar a cabo la comparación entre bases de datos de una forma sencilla, a menudo, estas aplicaciones tienen un costo. Algunas de estas son:</p>
<div align="center">
<table cellspacing="0" cellpadding="2" width="400" align="center" border="0">
<tbody>
<tr>
<td valign="top" width="200">Link del producto</td>
<td valign="top" width="200">Precio</td>
</tr>
<tr>
<td valign="top" width="200"><a title="http://www.red-gate.com/products/sql-development/sql-compare/" href="http://www.red-gate.com/products/sql-development/sql-compare/">http://www.red-gate.com/products/sql-development/sql-compare/</a></td>
<td valign="top" width="200">$745.00 dólares americanos</td>
</tr>
<tr>
<td valign="top" width="200"><a title="https://www.devart.com/dbforge/sql/schemacompare/" href="https://www.devart.com/dbforge/sql/schemacompare/">https://www.devart.com/dbforge/sql/schemacompare/</a></td>
<td valign="top" width="200">$149.95 dólares americanos</td>
</tr>
<tr>
<td valign="top" width="200"><a title="http://www.adeptsql.com/" href="http://www.adeptsql.com/">http://www.adeptsql.com/</a></td>
<td valign="top" width="200">$240.00 dólares americanos</td>
</tr>
</tbody>
</table></div>
<p align="justify">Es cierto que cada quien tiene el derecho de ponerle el precio a los productos que desarrolla, pero no creo conveniente comprar una licencia de alguno de estos productos, si sólo la utilizaremos una vez en un año. Es por ello, que en esta serie de posts, recomendaremos algunas herramientas que nos pueden ayudar a llevar a cabo dichas tareas de forma sencilla y sin pagar un sólo peso (Aunque si tienes oportunidad, te recomiendo realizar donaciones a este tipo de proyectos):</p>
<p align="justify"><strong>Requisitos previos:</strong></p>
<p align="justify">Para poder reproducir lo que haremos en esta serie posts, debes ejecutar este script sobre tu servidor de bases de datos:</p>
<p align="justify"><a href="http://1drv.ms/17A4LYR" target="_blank">Script para pruebas</a></p>
<p align="justify">El contenido de dicho archivo, es el siguiente:</p>
<pre>
CREATE DATABASE BlogTestSource
GO
CREATE DATABASE BlogTestTarget
GO
USE [BlogTestSource]
GO

/****** Object:  Table [dbo].[Person]    Script Date: 25/02/2015 08:33:33 p. m. ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[Person](
    [Id] [int] IDENTITY(1,1) NOT NULL,
    [Name] [nvarchar](100) NOT NULL,
    [Age] [int] NOT NULL,
    [Gender] [int] NOT NULL,
 CONSTRAINT [PK_Person] PRIMARY KEY CLUSTERED 
(
    [Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

GO

USE [BlogTestTarget]
GO

/****** Object:  Table [dbo].[Person]    Script Date: 25/02/2015 08:33:51 p. m. ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

SET ANSI_PADDING ON
GO

CREATE TABLE [dbo].[Person](
    [Id] [int] IDENTITY(1,1) NOT NULL,
    [Name] [nvarchar](200) NOT NULL,
    [Age] [int] NOT NULL,
    [Gender] [char](1) NOT NULL
) ON [PRIMARY]

GO

SET ANSI_PADDING OFF
GO

USE [BlogTestSource]
GO
SET IDENTITY_INSERT [dbo].[Person] ON 

INSERT [dbo].[Person] ([Id], [Name], [Age], [Gender]) VALUES (1, N'Rick', 31, 1)
INSERT [dbo].[Person] ([Id], [Name], [Age], [Gender]) VALUES (2, N'Sasha', 22, 2)
INSERT [dbo].[Person] ([Id], [Name], [Age], [Gender]) VALUES (3, N'Daryl', 19, 1)
INSERT [dbo].[Person] ([Id], [Name], [Age], [Gender]) VALUES (4, N'Glenn', 23, 1)
INSERT [dbo].[Person] ([Id], [Name], [Age], [Gender]) VALUES (5, N'Maggie', 18, 2)
INSERT [dbo].[Person] ([Id], [Name], [Age], [Gender]) VALUES (6, N'Carl', 10, 1)
INSERT [dbo].[Person] ([Id], [Name], [Age], [Gender]) VALUES (7, N'Carol', 40, 2)
INSERT [dbo].[Person] ([Id], [Name], [Age], [Gender]) VALUES (8, N'Michonne', 31, 2)
INSERT [dbo].[Person] ([Id], [Name], [Age], [Gender]) VALUES (9, N'Eugene', 27, 1)
INSERT [dbo].[Person] ([Id], [Name], [Age], [Gender]) VALUES (10, N'Rosita', 18, 2)
SET IDENTITY_INSERT [dbo].[Person] OFF
GO

USE [BlogTestTarget]
GO
SET IDENTITY_INSERT [dbo].[Person] ON 

INSERT [dbo].[Person] ([Id], [Name], [Age], [Gender]) VALUES (1, N'Rick', 31, 1)
INSERT [dbo].[Person] ([Id], [Name], [Age], [Gender]) VALUES (2, N'Sasha', 22, 2)
INSERT [dbo].[Person] ([Id], [Name], [Age], [Gender]) VALUES (3, N'Daryl', 19, 1)
INSERT [dbo].[Person] ([Id], [Name], [Age], [Gender]) VALUES (4, N'Glenn', 23, 1)
INSERT [dbo].[Person] ([Id], [Name], [Age], [Gender]) VALUES (5, N'Maggie', 18, 2)
INSERT [dbo].[Person] ([Id], [Name], [Age], [Gender]) VALUES (6, N'Carl', 10, 1)
INSERT [dbo].[Person] ([Id], [Name], [Age], [Gender]) VALUES (7, N'Carol', 40, 2)
INSERT [dbo].[Person] ([Id], [Name], [Age], [Gender]) VALUES (8, N'Michonne', 31, 2)
INSERT [dbo].[Person] ([Id], [Name], [Age], [Gender]) VALUES (9, N'Eugene', 27, 1)
INSERT [dbo].[Person] ([Id], [Name], [Age], [Gender]) VALUES (10, N'Rosita', 18, 2)
SET IDENTITY_INSERT [dbo].[Person] OFF
GO</pre>
<p align="justify"><strong>DbComparer</strong></p>
<p align="justify">Eso es lo que describe el sitio web:</p>
<blockquote>
<p>DBComparer es una herramienta de comparación de base de datos profesional para el análisis de las estructuras de base de datos de diferencias en Microsoft SQL Server 2008 (y 2005). Es una excelente herramienta para cualquier equipo de desarrollo de proyecto o DBA gestión de múltiples copias de la misma base de datos en un servidor SQL. Esta herramienta de comparación de base de datos tiene una interfaz limpia y directa. Resultados se presentan claramente para que usted puede ver inmediatamente las diferencias en sus bases de datos. Hará que localizar y eliminar las diferencias en su base de datos rápida y fácil.</p>
</blockquote>
<p align="justify">Al realizar la primer ejecución, se nos despliega el siguiente cuadro de diálogo, donde deberemos seleccionar la base de datos de la izquierda (origen) y la base de datos de la derecha (destino), de la siguiente manera (si es que has ejecutado el script que te he puesto al inicio del post):</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2015/02/screen-shot-02-25-15-at-10-21-pm.png"><img loading="lazy" title="Screen Shot 02-25-15 at 10.21 PM" style="background-image:none;float:none;padding-top:0;padding-left:0;margin-left:auto;display:block;padding-right:0;margin-right:auto;border-width:0;" border="0" alt="Screen Shot 02-25-15 at 10.21 PM" src="https://hectorperez.wordpress.com/wp-content/uploads/2015/02/screen-shot-02-25-15-at-10-21-pm_thumb.png?w=467&#038;h=386" width="467" height="386" /></a></p>
<p align="justify">Posteriormente daremos click al botón “Compare Now”, lo que iniciará una comparación entre las bases de datos seleccionadas, mostrándonos lo siguiente:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2015/02/screen-shot-02-25-15-at-10-24-pm.png"><img loading="lazy" title="Screen Shot 02-25-15 at 10.24 PM" style="background-image:none;float:none;padding-top:0;padding-left:0;margin-left:auto;display:block;padding-right:0;margin-right:auto;border-width:0;" border="0" alt="Screen Shot 02-25-15 at 10.24 PM" src="https://hectorperez.wordpress.com/wp-content/uploads/2015/02/screen-shot-02-25-15-at-10-24-pm_thumb.png?w=685&#038;h=370" width="685" height="370" /></a></p>
<p align="justify">Podemos ver, de manera sencilla, dónde tenemos diferencias de esquema entre ambas bases de datos, ya que es mostrado con color rojo, en este caso, es en el folder de las tablas donde tenemos conflictos, expandamos para ver lo que ocurre:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2015/02/screen-shot-02-25-15-at-10-26-pm.png"><img loading="lazy" title="Screen Shot 02-25-15 at 10.26 PM" style="background-image:none;float:none;padding-top:0;padding-left:0;margin-left:auto;display:block;padding-right:0;margin-right:auto;border-width:0;" border="0" alt="Screen Shot 02-25-15 at 10.26 PM" src="https://hectorperez.wordpress.com/wp-content/uploads/2015/02/screen-shot-02-25-15-at-10-26-pm_thumb.png?w=550&#038;h=70" width="550" height="70" /></a></p>
<p align="justify">Si seguimos expandiendo los nodos, veremos cuáles son los campos en los que tenemos conflictos:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2015/02/screen-shot-02-25-15-at-10-28-pm.png"><img loading="lazy" title="Screen Shot 02-25-15 at 10.28 PM" style="background-image:none;float:none;padding-top:0;padding-left:0;margin-left:auto;display:block;padding-right:0;margin-right:auto;border-width:0;" border="0" alt="Screen Shot 02-25-15 at 10.28 PM" src="https://hectorperez.wordpress.com/wp-content/uploads/2015/02/screen-shot-02-25-15-at-10-28-pm_thumb.png?w=580&#038;h=131" width="580" height="131" /></a></p>
<p align="justify">Seleccionando sobre la tabla (En este caso, dando click sobre dbo.Person), veremos diferentes secciones con información diferente, describiremos una por una:</p>
<p align="justify"><strong>Ventana de propiedades:</strong></p>
<p><img loading="lazy" title="Screen Shot 02-25-15 at 10.29 PM" style="float:none;margin-left:auto;display:block;margin-right:auto;" border="0" alt="Screen Shot 02-25-15 at 10.29 PM" src="https://hectorperez.wordpress.com/wp-content/uploads/2015/02/screen-shot-02-25-15-at-10-29-pm_thumb.png?w=329&#038;h=287" width="329" height="287" /></p>
<p align="justify">Nos mostrará las propiedades de cada una de las tablas en cuanto a estructura de la tabla en sí se refiere.</p>
<p><strong>Ventana de diferencias:</strong></p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2015/02/screen-shot-02-25-15-at-10-32-pm.png"><img loading="lazy" title="Screen Shot 02-25-15 at 10.32 PM" style="background-image:none;float:none;padding-top:0;padding-left:0;margin-left:auto;display:block;padding-right:0;margin-right:auto;border-width:0;" border="0" alt="Screen Shot 02-25-15 at 10.32 PM" src="https://hectorperez.wordpress.com/wp-content/uploads/2015/02/screen-shot-02-25-15-at-10-32-pm_thumb.png?w=781&#038;h=140" width="781" height="140" /></a></p>
<p align="justify">Aquí podremos ver, de forma muy rápida y sencilla, las diferencias entre ambas tablas, en este ejemplo, vemos 2 líneas que contienen diferencias entre ambas bases de datos. Las diferencias son:</p>
<p align="justify">Línea 3: existe una diferencia en la definición de nvarchar, nuestra tabla orígen define un largo de 100, mientras que nuestra tabla destino define un largo de 200.</p>
<p align="justify">Línea 5: El campo es int en la tabla orígen, mientras que es un tipo char(1) en nuestra tabla destino.</p>
<p><strong>Venta de diferencias por línea:</strong></p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2015/02/screen-shot-02-25-15-at-10-34-pm.png"><img loading="lazy" title="Screen Shot 02-25-15 at 10.34 PM" style="background-image:none;float:none;padding-top:0;padding-left:0;margin-left:auto;display:block;padding-right:0;margin-right:auto;border-width:0;" border="0" alt="Screen Shot 02-25-15 at 10.34 PM" src="https://hectorperez.wordpress.com/wp-content/uploads/2015/02/screen-shot-02-25-15-at-10-34-pm_thumb.png?w=781&#038;h=91" width="781" height="91" /></a></p>
<p>&#160;</p>
<p align="justify">Nos permite comparar línea por línea, de acuerdo a la línea que tengamos seleccionada en la venta de diferencias. para realizar un análisis más detallado sobre cada línea, bastante útil si la consulta contiene varias líneas de código.</p>
<p><strong>Desventajas de esta herramienta:</strong></p>
<p align="justify">La única desventaja que encontré con esta herramienta, es que no podemos llevar a cabo la ejecución de scripts para igualar ambas bases de datos, por lo que tendremos que realizar cada una de ellas de forma manual.</p>
<p align="justify">En la siguiente entrega analizaremos la siguiente herramienta para comparar bases de datos, </p>
<p>¡Hasta entonces colegas!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://hectorperez.wordpress.com/2015/02/26/cmo-comparar-el-esquema-entre-2-bases-de-datos-13-seriesincronizando-esquemas-e-informacin-entre-bases-de-datos/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">840</post-id>
		<media:content url="https://1.gravatar.com/avatar/d5470cbae4baec70037bcb8002d500454cd05af89c1dedb32b0fc7aff97a67c2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Héctor Uriel Pérez Rojas</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2015/02/screen-shot-02-25-15-at-10-21-pm_thumb.png" medium="image">
			<media:title type="html">Screen Shot 02-25-15 at 10.21 PM</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2015/02/screen-shot-02-25-15-at-10-24-pm_thumb.png" medium="image">
			<media:title type="html">Screen Shot 02-25-15 at 10.24 PM</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2015/02/screen-shot-02-25-15-at-10-26-pm_thumb.png" medium="image">
			<media:title type="html">Screen Shot 02-25-15 at 10.26 PM</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2015/02/screen-shot-02-25-15-at-10-28-pm_thumb.png" medium="image">
			<media:title type="html">Screen Shot 02-25-15 at 10.28 PM</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2015/02/screen-shot-02-25-15-at-10-29-pm_thumb.png" medium="image">
			<media:title type="html">Screen Shot 02-25-15 at 10.29 PM</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2015/02/screen-shot-02-25-15-at-10-32-pm_thumb.png" medium="image">
			<media:title type="html">Screen Shot 02-25-15 at 10.32 PM</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2015/02/screen-shot-02-25-15-at-10-34-pm_thumb.png" medium="image">
			<media:title type="html">Screen Shot 02-25-15 at 10.34 PM</media:title>
		</media:content>
	</item>
		<item>
		<title>&#161;G&#225;nate un serial de Windows 8 u Office 2013! (V&#225;lido del 12/10/2013&#8211;31/10/2013)</title>
		<link>https://hectorperez.wordpress.com/2013/10/12/gnate-un-serial-de-windows-8-u-office-2013-vlido-del-1210201331102013/</link>
					<comments>https://hectorperez.wordpress.com/2013/10/12/gnate-un-serial-de-windows-8-u-office-2013-vlido-del-1210201331102013/#respond</comments>
		
		<dc:creator><![CDATA[hectorperez]]></dc:creator>
		<pubDate>Sat, 12 Oct 2013 06:43:00 +0000</pubDate>
				<category><![CDATA[Juegos]]></category>
		<category><![CDATA[Retos]]></category>
		<category><![CDATA[Windows 8]]></category>
		<guid isPermaLink="false">http://hectorperez.wordpress.com/?p=823</guid>

					<description><![CDATA[Bases de la dinámica: Descargar el juego de la tienda de aplicaciones Windows que se encuentra en la siguiente dirección: Scooter Shooter Una vez descargada, loguearte de alguna forma al inicio del juego(Cuenta en Clay.io o como invitado), no es necesario registrarse en Clay.io, puedes entrar como invitado, eso sí, debes poner tu nombre y &#8230; <a href="https://hectorperez.wordpress.com/2013/10/12/gnate-un-serial-de-windows-8-u-office-2013-vlido-del-1210201331102013/" class="more-link">Continuar leyendo <span class="screen-reader-text">&#161;G&#225;nate un serial de Windows 8 u Office 2013! (V&#225;lido del 12/10/2013&#8211;31/10/2013)</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p><strong>Bases de la dinámica:</strong></p>
<p>Descargar el juego de la tienda de aplicaciones Windows que se encuentra en la siguiente dirección:</p>
<p><a href="http://apps.microsoft.com/windows/app/scooter-shooter/fdf00c2f-83f7-4895-a116-447d1b35ef8b">Scooter Shooter</a></p>
<p align="justify">Una vez descargada, loguearte de alguna forma al inicio del juego(Cuenta en Clay.io o como invitado), no es necesario registrarse en Clay.io, puedes entrar como invitado, eso sí, debes poner tu nombre y apellidos para poder realizar la correspondiente verificación:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2013/10/image_thumb11.png"><img loading="lazy" title="image_thumb[1]" style="border-top:0;border-right:0;background-image:none;border-bottom:0;float:none;padding-top:0;padding-left:0;margin-left:auto;border-left:0;display:block;padding-right:0;margin-right:auto;" border="0" alt="image_thumb[1]" src="https://hectorperez.wordpress.com/wp-content/uploads/2013/10/image_thumb1_thumb.png?w=244&#038;h=178" width="244" height="178" /></a></p>
<p align="justify">Una vez hecho esto, pon a prueba tus habilidades y dura el mayor tiempo posible sin perder. Paso siguiente, envía tu puntuación al Leaderboard mundial:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2013/10/image_thumb3.png"><img loading="lazy" title="image_thumb[3]" style="border-top:0;border-right:0;background-image:none;border-bottom:0;float:none;padding-top:0;padding-left:0;margin-left:auto;border-left:0;display:block;padding-right:0;margin-right:auto;" border="0" alt="image_thumb[3]" src="https://hectorperez.wordpress.com/wp-content/uploads/2013/10/image_thumb3_thumb.png?w=244&#038;h=164" width="244" height="164" /></a></p>
<p align="justify">Por último, trata de quedar en uno de los primeros 5 lugares, ya que que a estos se les premiará con una licencia de Windows 8, o bien una licencia de Office 2013, siempre y cuando se sigan las normas establecidas.</p>
<p align="justify"><strong>Notas: El anuncio de los ganadores se hará por este medio; el leaderboard se reinicia a partir de hoy y sólo se dará una licencia por persona.</strong></p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2013/10/image_thumb21.png"><img loading="lazy" title="image_thumb[2]" style="border-top:0;border-right:0;background-image:none;border-bottom:0;float:none;padding-top:0;padding-left:0;margin-left:auto;border-left:0;display:block;padding-right:0;margin-right:auto;" border="0" alt="image_thumb[2]" src="https://hectorperez.wordpress.com/wp-content/uploads/2013/10/image_thumb2_thumb.png?w=244&#038;h=165" width="244" height="165" /></a></p>
<p><strong></strong></p>
<p align="right"><strong>Héctor Uriel Pérez Rojas</strong></p>
]]></content:encoded>
					
					<wfw:commentRss>https://hectorperez.wordpress.com/2013/10/12/gnate-un-serial-de-windows-8-u-office-2013-vlido-del-1210201331102013/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">823</post-id>
		<media:content url="https://1.gravatar.com/avatar/d5470cbae4baec70037bcb8002d500454cd05af89c1dedb32b0fc7aff97a67c2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Héctor Uriel Pérez Rojas</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2013/10/image_thumb1_thumb.png" medium="image">
			<media:title type="html">image_thumb[1]</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2013/10/image_thumb3_thumb.png" medium="image">
			<media:title type="html">image_thumb[3]</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2013/10/image_thumb2_thumb.png" medium="image">
			<media:title type="html">image_thumb[2]</media:title>
		</media:content>
	</item>
		<item>
		<title>&#161;G&#225;nate un serial de Windows 8 u Office 2013! (V&#225;lido del 13/08/2013&#8211;18/08/2013)</title>
		<link>https://hectorperez.wordpress.com/2013/10/12/gnate-un-serial-de-windows-8-u-office-2013-vlido-del-1308201318082013/</link>
					<comments>https://hectorperez.wordpress.com/2013/10/12/gnate-un-serial-de-windows-8-u-office-2013-vlido-del-1308201318082013/#comments</comments>
		
		<dc:creator><![CDATA[hectorperez]]></dc:creator>
		<pubDate>Sat, 12 Oct 2013 06:41:00 +0000</pubDate>
				<category><![CDATA[Juegos]]></category>
		<category><![CDATA[Retos]]></category>
		<category><![CDATA[Windows 8]]></category>
		<guid isPermaLink="false">http://hectorperez.wordpress.com/?p=807</guid>

					<description><![CDATA[Bases de la dinámica: Descargar el juego de la tienda de aplicaciones Windows que se encuentra en la siguiente dirección: Aguas con la bola 2 Una vez descargada, loguearte de alguna forma al inicio del juego(Cuenta en Clay.io o como invitado), no es necesario registrarse en Clay.io, puedes entrar como invitado, eso sí, debes poner &#8230; <a href="https://hectorperez.wordpress.com/2013/10/12/gnate-un-serial-de-windows-8-u-office-2013-vlido-del-1308201318082013/" class="more-link">Continuar leyendo <span class="screen-reader-text">&#161;G&#225;nate un serial de Windows 8 u Office 2013! (V&#225;lido del 13/08/2013&#8211;18/08/2013)</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p><strong>Bases de la dinámica:</strong></p>
<p align="justify">Descargar el juego de la tienda de aplicaciones Windows que se encuentra en la siguiente dirección:</p>
<p align="justify"><a href="http://apps.microsoft.com/windows/app/aguas-con-la-bola-2/8ad493a8-910f-4bad-bbf0-ebfbb4f91b59">Aguas con la bola 2</a></p>
<p align="justify">Una vez descargada, loguearte de alguna forma al inicio del juego(Cuenta en Clay.io o como invitado), no es necesario registrarse en Clay.io, puedes entrar como invitado, eso sí, debes poner tu dirección de correo electrónico como el nombre de usuario:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2013/08/image.png"><img loading="lazy" title="image" style="border-top:0;border-right:0;background-image:none;border-bottom:0;float:none;padding-top:0;padding-left:0;margin-left:auto;border-left:0;display:block;padding-right:0;margin-right:auto;" border="0" alt="image" src="https://hectorperez.wordpress.com/wp-content/uploads/2013/08/image_thumb.png?w=244&#038;h=163" width="244" height="163" /></a></p>
<p>&#160;</p>
<p align="justify">Una vez hecho esto, pon a prueba tus habilidades y dura el mayor tiempo posible sin perder. Paso siguiente, envía tu puntuación al Leaderboard mundial:</p>
<p>&#160;</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2013/08/image1.png"><img loading="lazy" title="image" style="border-top:0;border-right:0;background-image:none;border-bottom:0;float:none;padding-top:0;padding-left:0;margin-left:auto;border-left:0;display:block;padding-right:0;margin-right:auto;" border="0" alt="image" src="https://hectorperez.wordpress.com/wp-content/uploads/2013/08/image_thumb1.png?w=244&#038;h=96" width="244" height="96" /></a></p>
<p>&#160;</p>
<p align="justify">Por último, trata de quedar en los primeros 2 lugares, ya que que a estos se les premiará con una licencia de Windows 8, o bien una licencia de Office 2013, <strong>eso</strong> <strong>siempre y cuando aparezca su dirección de correo electrónico en el leaderboard</strong>.</p>
<p>&#160;</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2013/08/image2.png"><img loading="lazy" title="image" style="border-top:0;border-right:0;background-image:none;border-bottom:0;float:none;padding-top:0;padding-left:0;margin-left:auto;border-left:0;display:block;padding-right:0;margin-right:auto;" border="0" alt="image" src="https://hectorperez.wordpress.com/wp-content/uploads/2013/08/image_thumb2.png?w=244&#038;h=237" width="244" height="237" /></a></p>
<p align="right"><font size="4" face="Bell MT"><strong></strong></font></p>
<p align="right"><font size="4" face="Bell MT"><strong>Héctor Uriel Pérez Rojas</strong></font></p>
]]></content:encoded>
					
					<wfw:commentRss>https://hectorperez.wordpress.com/2013/10/12/gnate-un-serial-de-windows-8-u-office-2013-vlido-del-1308201318082013/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">807</post-id>
		<media:content url="https://1.gravatar.com/avatar/d5470cbae4baec70037bcb8002d500454cd05af89c1dedb32b0fc7aff97a67c2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Héctor Uriel Pérez Rojas</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2013/08/image_thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2013/08/image_thumb1.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2013/08/image_thumb2.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>Videos Windows Phone 8</title>
		<link>https://hectorperez.wordpress.com/2012/09/06/videos-windows-phone-8/</link>
					<comments>https://hectorperez.wordpress.com/2012/09/06/videos-windows-phone-8/#respond</comments>
		
		<dc:creator><![CDATA[hectorperez]]></dc:creator>
		<pubDate>Thu, 06 Sep 2012 00:18:00 +0000</pubDate>
				<category><![CDATA[Nokia Lumia]]></category>
		<category><![CDATA[Videos]]></category>
		<guid isPermaLink="false">http://hectorperez.wordpress.com/?p=792</guid>

					<description><![CDATA[Estos son los videos de la presentación de la nueva gama de celulares por parte de Nokia siguiendo la línea Lumia, con Windows Phone 8 como sistema operativo. &#160; &#160; &#160; &#160; &#160; Salu2 Héctor Uriel Pérez Rojas]]></description>
										<content:encoded><![CDATA[<p align="justify">Estos son los videos de la presentación de la nueva gama de celulares por parte de Nokia siguiendo la línea Lumia, con Windows Phone 8 como sistema operativo.</p>
<p>&#160;</p>
<div id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:f0e7bbd1-26eb-43ba-bce1-9cddcd0c0ac0" class="wlWriterEditableSmartContent" style="float:none;margin:0;display:inline;padding:0;">
<div><div class="jetpack-video-wrapper"><iframe class="youtube-player" width="448" height="252" src="https://www.youtube.com/embed/V8_Z7_kJ3_g?version=3&#038;rel=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;fs=1&#038;hl=es&#038;autohide=2&#038;hd=1&#038;wmode=transparent" allowfullscreen="true" style="border:0;" sandbox="allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox"></iframe></div></div>
</div>
<p>&#160;</p>
<div id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:34cc2b2f-17d1-4047-8b45-832acf89710d" class="wlWriterEditableSmartContent" style="float:none;margin:0;display:inline;padding:0;">
<div><div class="jetpack-video-wrapper"><iframe class="youtube-player" width="448" height="252" src="https://www.youtube.com/embed/aIYm07ACkjU?version=3&#038;rel=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;fs=1&#038;hl=es&#038;autohide=2&#038;hd=1&#038;wmode=transparent" allowfullscreen="true" style="border:0;" sandbox="allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox"></iframe></div></div>
</div>
<p>&#160;</p>
<div id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:9189fbdc-c165-48ee-8930-2c4d82b79382" class="wlWriterEditableSmartContent" style="float:none;margin:0;display:inline;padding:0;">
<div><div class="jetpack-video-wrapper"><iframe class="youtube-player" width="448" height="252" src="https://www.youtube.com/embed/cimDfEIEiu0?version=3&#038;rel=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;fs=1&#038;hl=es&#038;autohide=2&#038;hd=1&#038;wmode=transparent" allowfullscreen="true" style="border:0;" sandbox="allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox"></iframe></div></div>
</div>
<p>&#160;</p>
<div id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:dc8a58d1-5240-45c9-9189-eae548519c5f" class="wlWriterEditableSmartContent" style="float:none;margin:0;display:inline;padding:0;">
<div><div class="jetpack-video-wrapper"><iframe class="youtube-player" width="448" height="252" src="https://www.youtube.com/embed/lN-NaHcOeII?version=3&#038;rel=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;fs=1&#038;hl=es&#038;autohide=2&#038;hd=1&#038;wmode=transparent" allowfullscreen="true" style="border:0;" sandbox="allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox"></iframe></div></div>
</div>
<p>&#160;</p>
<div id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:d847eb52-57d9-4168-a1ea-a769abed8b30" class="wlWriterEditableSmartContent" style="float:none;margin:0;display:inline;padding:0;">
<div><div class="jetpack-video-wrapper"><iframe class="youtube-player" width="448" height="252" src="https://www.youtube.com/embed/0tT4ws9KauQ?version=3&#038;rel=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;fs=1&#038;hl=es&#038;autohide=2&#038;hd=1&#038;wmode=transparent" allowfullscreen="true" style="border:0;" sandbox="allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox"></iframe></div></div>
</div>
<p>Salu2</p>
<p align="right"><font size="4" face="Segoe UI"><strong>Héctor Uriel Pérez Rojas</strong></font></p>
]]></content:encoded>
					
					<wfw:commentRss>https://hectorperez.wordpress.com/2012/09/06/videos-windows-phone-8/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">792</post-id>
		<media:content url="https://1.gravatar.com/avatar/d5470cbae4baec70037bcb8002d500454cd05af89c1dedb32b0fc7aff97a67c2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Héctor Uriel Pérez Rojas</media:title>
		</media:content>
	</item>
		<item>
		<title>Mejorando tus presentaciones y exposiciones (Parte 1)</title>
		<link>https://hectorperez.wordpress.com/2012/06/30/mejorando-tus-presentaciones-y-exposiciones-parte-1/</link>
					<comments>https://hectorperez.wordpress.com/2012/06/30/mejorando-tus-presentaciones-y-exposiciones-parte-1/#respond</comments>
		
		<dc:creator><![CDATA[hectorperez]]></dc:creator>
		<pubDate>Sat, 30 Jun 2012 20:49:00 +0000</pubDate>
				<category><![CDATA[Presentaciones]]></category>
		<category><![CDATA[Tips]]></category>
		<guid isPermaLink="false">http://hectorperez.wordpress.com/?p=788</guid>

					<description><![CDATA[En esta nueva serie de posts, daré tips y recomendaciones para mejorar tus presentaciones, muchas de ellas las he ido aprendiendo a través del tiempo, formando así parte de mi experiencia como expositor e impartidor de sesiones de entrenamiento, sin más preámbulo, iniciemos. Tip 1. Usa la Lupa que incorpora Windows 7 (Magnifier) ¿Cuántas veces &#8230; <a href="https://hectorperez.wordpress.com/2012/06/30/mejorando-tus-presentaciones-y-exposiciones-parte-1/" class="more-link">Continuar leyendo <span class="screen-reader-text">Mejorando tus presentaciones y exposiciones (Parte&#160;1)</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p align="justify">En esta nueva serie de posts, daré tips y recomendaciones para mejorar tus presentaciones, muchas de ellas las he ido aprendiendo a través del tiempo, formando así parte de mi experiencia como expositor e impartidor de sesiones de entrenamiento, sin más preámbulo, iniciemos.</p>
<p align="justify"><strong>Tip 1. Usa la Lupa que incorpora Windows 7 (Magnifier)</strong></p>
<p align="justify">¿Cuántas veces no ha pasado, que teniendo una diapositiva expuesta en el proyecto, el público de atrás no alcanza a ver lo que está escrito en la misma?</p>
<p align="justify">Esto es un problema común, que veo muy a menudo con gente que no está acostumbrada a exponer, aquellos expositores con experiencia evita poner este tipo de cosas en sus diapositivas, sin embargo, si llegas a necesitar hacer zoom en un lugar en específico, sólo basta presionar la tecla Windows más la tecla +:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2012/06/image1.png"><img loading="lazy" style="background-image:none;padding-left:0;padding-right:0;display:block;float:none;margin-left:auto;margin-right:auto;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="https://hectorperez.wordpress.com/wp-content/uploads/2012/06/image_thumb1.png?w=448&#038;h=288" width="448" height="288" /></a></p>
<p><strong>Demostración:</strong></p>
<p align="justify">Bien, veamos un ejemplo del uso de la lupa, supongamos que debemos exponer un tema de desarrollo de software, mostrando algo de código, una presentación de ejemplo se vería algo así:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2012/06/image2.png"><img loading="lazy" style="background-image:none;padding-left:0;padding-right:0;display:block;float:none;margin-left:auto;margin-right:auto;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="https://hectorperez.wordpress.com/wp-content/uploads/2012/06/image_thumb2.png?w=447&#038;h=283" width="447" height="283" /></a></p>
<p align="justify">Si alguien sentado en la parte de atrás quisiera leer o copiar el ejemplo de la lámina, simplemente se sentiría frustrado al no poder leer todo de una manera rápida y sencilla, aplicaremos la lupa ahora:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2012/06/image3.png"><img loading="lazy" style="background-image:none;padding-left:0;padding-right:0;display:block;float:none;margin-left:auto;margin-right:auto;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="https://hectorperez.wordpress.com/wp-content/uploads/2012/06/image_thumb3.png?w=450&#038;h=285" width="450" height="285" /></a></p>
<p>Como podemos observar, el resultado es simplemente increíble =)</p>
<p>Nos vemos en la siguiente entrega <img style="border-style:none;" class="wlEmoticon wlEmoticon-winkingsmile" alt="Guiño" src="https://hectorperez.wordpress.com/wp-content/uploads/2012/06/wlemoticon-winkingsmile.png?w=788" /></p>
<p>&#160;</p>
<p>Salu2</p>
<p align="right"><font size="4" face="Franklin Gothic Book"><strong>Héctor Uriel Pérez Rojas</strong></font></p>
]]></content:encoded>
					
					<wfw:commentRss>https://hectorperez.wordpress.com/2012/06/30/mejorando-tus-presentaciones-y-exposiciones-parte-1/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">788</post-id>
		<media:content url="https://1.gravatar.com/avatar/d5470cbae4baec70037bcb8002d500454cd05af89c1dedb32b0fc7aff97a67c2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Héctor Uriel Pérez Rojas</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2012/06/image_thumb1.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2012/06/image_thumb2.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2012/06/image_thumb3.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2012/06/wlemoticon-winkingsmile.png" medium="image">
			<media:title type="html">Guiño</media:title>
		</media:content>
	</item>
		<item>
		<title>&#191;Necesitas &#237;conos para usar en tus proyectos de una manera r&#225;pida, sencilla y personalizable?</title>
		<link>https://hectorperez.wordpress.com/2012/06/23/necesitas-conos-para-usar-en-tus-proyectos-de-una-manera-rpida-sencilla-y-personalizable/</link>
					<comments>https://hectorperez.wordpress.com/2012/06/23/necesitas-conos-para-usar-en-tus-proyectos-de-una-manera-rpida-sencilla-y-personalizable/#respond</comments>
		
		<dc:creator><![CDATA[hectorperez]]></dc:creator>
		<pubDate>Sat, 23 Jun 2012 19:31:00 +0000</pubDate>
				<category><![CDATA[Íconos]]></category>
		<guid isPermaLink="false">http://hectorperez.wordpress.com/?p=776</guid>

					<description><![CDATA[&#160; A menudo, ocurre que debemos utilizar íconos a nuestras aplicaciones para darles ese toque especial de UI que es necesario en muchas aplicaciones. Sin embargo, encontrar dichos íconos es a veces desgastante y quita mucho tiempo que podríamos utilizar para otras cosas. Hoy vengo a presentarles una herramienta que me ha parecido muy buena, &#8230; <a href="https://hectorperez.wordpress.com/2012/06/23/necesitas-conos-para-usar-en-tus-proyectos-de-una-manera-rpida-sencilla-y-personalizable/" class="more-link">Continuar leyendo <span class="screen-reader-text">&#191;Necesitas &#237;conos para usar en tus proyectos de una manera r&#225;pida, sencilla y&#160;personalizable?</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p align="justify">&#160;</p>
<p align="justify">A menudo, ocurre que debemos utilizar íconos a nuestras aplicaciones para darles ese toque especial de UI que es necesario en muchas aplicaciones. Sin embargo, encontrar dichos íconos es a veces desgastante y quita mucho tiempo que podríamos utilizar para otras cosas.</p>
<p align="justify">Hoy vengo a presentarles una herramienta que me ha parecido muy buena, se llama Syncfusion Metro 1</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2012/06/image.png"><img loading="lazy" style="background-image:none;border-bottom:0;border-left:0;padding-left:0;padding-right:0;display:block;float:none;margin-left:auto;border-top:0;margin-right:auto;border-right:0;padding-top:0;" title="image" border="0" alt="image" src="https://hectorperez.wordpress.com/wp-content/uploads/2012/06/image_thumb.png?w=508&#038;h=254" width="508" height="254" /></a></p>
<p>Aquí tienen un video de las características principales de la herramienta:</p>
<div style="width:448px;display:block;float:none;margin-left:auto;margin-right:auto;padding:0;" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:c4ce8c79-4567-4239-86da-741b1226fdaf" class="wlWriterEditableSmartContent">
<div><div class="jetpack-video-wrapper"><iframe class="youtube-player" width="448" height="252" src="https://www.youtube.com/embed/R56wcghyggI?version=3&#038;rel=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;fs=1&#038;hl=es&#038;autohide=2&#038;hd=1&#038;wmode=transparent" allowfullscreen="true" style="border:0;" sandbox="allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox"></iframe></div></div>
<div style="width:448px;clear:both;font-size:.8em;">Syncfusion Metro Studio</div>
</div>
<p align="justify">Cabe destacar que dentro del mismo sitio, hay más cosas disponibles totalmente gratis, como un libro para aprender a programar con jQuery:</p>
<p><img loading="lazy" style="display:block;float:none;margin-left:auto;margin-right:auto;" src="https://i0.wp.com/www.syncfusion.com/Content/en-US/Downloads/Images/Ebooks/jquery_img.PNG" width="251" height="326" /></p>
<p align="justify">Por último, cabe destacar que la herramienta está por tiempo limitado, ¡¡totalmente gratuita, de un precio normal de $499 dólares!!</p>
<p>Link: <a href="http://www.syncfusion.com/downloads/metrostudio?utm_source=SiteVisitors" target="_blank">Syncfusion Metro 1</a></p>
<p>Salu2</p>
<h2 align="right">Héctor Uriel Pérez Rojas</h2>
]]></content:encoded>
					
					<wfw:commentRss>https://hectorperez.wordpress.com/2012/06/23/necesitas-conos-para-usar-en-tus-proyectos-de-una-manera-rpida-sencilla-y-personalizable/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">776</post-id>
		<media:content url="https://1.gravatar.com/avatar/d5470cbae4baec70037bcb8002d500454cd05af89c1dedb32b0fc7aff97a67c2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Héctor Uriel Pérez Rojas</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2012/06/image_thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://www.syncfusion.com/Content/en-US/Downloads/Images/Ebooks/jquery_img.PNG" medium="image" />
	</item>
		<item>
		<title>Concurso: Descarga VS 11 BETA, Env&#237;anos tu Captura de Pantalla y Gana (20/04/2012 al 06/05/2012</title>
		<link>https://hectorperez.wordpress.com/2012/04/20/concurso-descarga-vs-11-beta-envanos-tu-captura-de-pantalla-y-gana-20042012-al-07052012/</link>
					<comments>https://hectorperez.wordpress.com/2012/04/20/concurso-descarga-vs-11-beta-envanos-tu-captura-de-pantalla-y-gana-20042012-al-07052012/#respond</comments>
		
		<dc:creator><![CDATA[hectorperez]]></dc:creator>
		<pubDate>Fri, 20 Apr 2012 07:03:34 +0000</pubDate>
				<category><![CDATA[General]]></category>
		<guid isPermaLink="false">http://hectorperez.wordpress.com/?p=771</guid>

					<description><![CDATA[Premios : 1er. Lugar. Licencia original de Windows 7 Ultimate 2º. Lugar. Licencia original de Visual Studio 2010 Ultimate 3er. Lugar. Licencia original de Office Professional Plus 2010. Para participar debes hacer lo siguiente: · Realizar la descarga de VS BETA 11, y hacer una captura de pantalla al concluir el proceso de tu descarga. &#8230; <a href="https://hectorperez.wordpress.com/2012/04/20/concurso-descarga-vs-11-beta-envanos-tu-captura-de-pantalla-y-gana-20042012-al-07052012/" class="more-link">Continuar leyendo <span class="screen-reader-text">Concurso: Descarga VS 11 BETA, Env&#237;anos tu Captura de Pantalla y Gana (20/04/2012 al&#160;06/05/2012</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p align="justify">Premios : </p>
<ul>
<li>
<div align="justify"><strong>1er. Lugar. Licencia original de Windows 7 Ultimate</strong></div>
</li>
<li>
<div align="justify"><strong>2º. Lugar. Licencia original de Visual Studio 2010 Ultimate</strong></div>
</li>
<li>
<div align="justify"><strong>3er. Lugar. Licencia original de Office Professional Plus 2010.</strong></div>
</li>
</ul>
<p align="justify">Para participar debes hacer lo siguiente:</p>
<p align="justify">· Realizar la descarga de VS BETA 11, y hacer una captura de pantalla al concluir el proceso de tu descarga. (En la captura debe poder apreciarse la hora de la descarga). Ejemplo:</p>
<p align="justify"><a href="https://hectorperez.wordpress.com/wp-content/uploads/2012/04/image.png"><img loading="lazy" style="background-image:none;border-bottom:0;border-left:0;padding-left:0;padding-right:0;display:block;float:none;margin-left:auto;border-top:0;margin-right:auto;border-right:0;padding-top:0;" title="image" border="0" alt="image" src="https://hectorperez.wordpress.com/wp-content/uploads/2012/04/image_thumb.png?w=328&#038;h=254" width="328" height="254" /></a></p>
<p align="justify">Enlace de descarga:   <br /><a href="http://www.microsoft.com/visualstudio/11/es-es/downloads#vs">http://www.microsoft.com/visualstudio/11/es-es/downloads#vs</a></p>
<p align="justify">(Son válidas las descargas de VS Professional, Premium y Ultimate).</p>
<p align="justify">· Enviar la captura de pantalla a las siguientes direcciones</p>
<p align="justify"><a href="mailto:dpelatam@hotmail.com">dpelatam@hotmail.com</a></p>
<p align="justify"><a href="mailto:gs_alfaro@hotmail.com">gs_alfaro@hotmail.com</a></p>
<p align="justify">· En el asunto debes escribir lo siguiente : <strong>VS11BETA – Geovanni Simuta Alfaro</strong></p>
<p align="justify">· En el contenido del mail envía la siguiente información   <br />-Tu nombre completo.    <br />-Nombre de tu Escuela    <br />-Ciclo</p>
<p align="justify">(Los datos anteriores nos servirán para ponernos en contacto contigo).   <br />Todos los correos recibidos serán almacenados, para que el día 6 de mayo se haga un sorteo entre las personas participantes y se obtenga a los 3 ganadores.    <br />La Fecha limite de envío de la Captura de pantalla y los datos es a las 23:59 hrs del Día Domingo 6 de Mayo.</p>
<p align="justify">Fecha del Concurso: Del 20 de Abril al 6 de Mayo del 2012</p>
<p align="justify">El 7 de Mayo después de realizar el sorteo nos pondremos en contacto con los ganadores y publicaremos los resultados por este mismo medio.    <br />NOTA: Las licencias pueden ser elegidas dependiendo la arquitectura del equipo de los ganadores, X86 o X64 según deseen. Cualquier duda sobre el concurso pueden enviar un mail a <a href="mailto:gs_alfaro@hotmail.com">gs_alfaro@hotmail.com</a></p>
<p align="justify">ESPERAMOS SU PARTICIPACION&#8230;.!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://hectorperez.wordpress.com/2012/04/20/concurso-descarga-vs-11-beta-envanos-tu-captura-de-pantalla-y-gana-20042012-al-07052012/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">771</post-id>
		<media:content url="https://1.gravatar.com/avatar/d5470cbae4baec70037bcb8002d500454cd05af89c1dedb32b0fc7aff97a67c2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Héctor Uriel Pérez Rojas</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2012/04/image_thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>Instalando Windows 8 Consumer Preview en VHD(Virtual Hard Disk), sin m&#225;quinas virtuales y sin necesidad de particionar el disco</title>
		<link>https://hectorperez.wordpress.com/2012/03/08/instalando-windows-8-consumer-preview-en-vhdvirtual-hard-disk-sin-mquinas-virtuales-y-sin-necesidad-de-particionar-el-disco/</link>
					<comments>https://hectorperez.wordpress.com/2012/03/08/instalando-windows-8-consumer-preview-en-vhdvirtual-hard-disk-sin-mquinas-virtuales-y-sin-necesidad-de-particionar-el-disco/#comments</comments>
		
		<dc:creator><![CDATA[hectorperez]]></dc:creator>
		<pubDate>Thu, 08 Mar 2012 19:08:00 +0000</pubDate>
				<category><![CDATA[VHD]]></category>
		<category><![CDATA[Windows 8]]></category>
		<category><![CDATA[Windows 8 Consumer Preview]]></category>
		<guid isPermaLink="false">http://hectorperez.wordpress.com/?p=766</guid>

					<description><![CDATA[Introducción Windows 8, como bien sabemos, será el próximo sistema operativo de Microsoft, contando con una interfaz diferente a lo que estamos acostumbrados a ver en sus versiones anteriores. Pues bien, esta guía, es para poder instalar la versión Consumero Preview disponible en el sitio oficial. La ventaja de este método, sobre el uso de &#8230; <a href="https://hectorperez.wordpress.com/2012/03/08/instalando-windows-8-consumer-preview-en-vhdvirtual-hard-disk-sin-mquinas-virtuales-y-sin-necesidad-de-particionar-el-disco/" class="more-link">Continuar leyendo <span class="screen-reader-text">Instalando Windows 8 Consumer Preview en VHD(Virtual Hard Disk), sin m&#225;quinas virtuales y sin necesidad de particionar el&#160;disco</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p align="justify"><strong><font size="3">Introducción</font></strong></p>
<p align="justify">Windows 8, como bien sabemos, será el próximo sistema operativo de Microsoft, contando con una interfaz diferente a lo que estamos acostumbrados a ver en sus versiones anteriores. Pues bien, esta guía, es para poder instalar la versión Consumero Preview disponible en el sitio oficial.</p>
<p align="justify">La ventaja de este método, sobre el uso de virtualización a través de máquinas virtuales, es que sólo el disco duro es virtualizado, mientras que los demás dispositivos no. Esto como te imaginarás, te da un mayor realismo sobre cómo se comportará tu máquina una vez que Windows 8 sea lanzado.</p>
<p align="justify"><font size="3"><strong>Dos alternativas</strong></font></p>
<p align="justify">Existen en la red muchos tutoriales sobre cómo crear discos duros virtuales al estilo de Scott Hanselman en su artículo <a href="http://www.hanselman.com/blog/GuideToInstallingAndBootingWindows8DeveloperPreviewOffAVHDVirtualHardDisk.aspx">Guide to Installing and Booting Windows 8 Developer Preview off a VHD</a>, expone varias formas para instalar un disco duro virtual, las cuales pueden ser dividas en dos formas:</p>
<p align="justify">a) Se hace una configuración de un nuevo disco virtual y luego se instala el sistema operativo sobre este. En este proceso, se requiere la creación de una memoria o dvd booteables creados a partir de una imagen .iso de Windows 8, dándote la misma experiencia de una instalación&#160; en una máquina recién formateada. (Este camino es el que Scott sigue en el artículo).</p>
<p align="justify">b) Los otros métodos crean el disco duro virtual completo sin la necesidad de haceer un booteo de la unidad de instalación y siguiendo los pasos típicos. Este proceso se conoce como “sysprepping” y crea un sistema “casi terminado” en el disco duro virtual. Cuando se reinicias la máquina una vez ejecutado este método, tienes una experiencia similar a cuando compras una máquina OEM con unos pasos mínimos para ajustar la configuración.</p>
<p align="justify"><font size="3"><strong>Advertencia</strong></font></p>
<p align="justify"><font size="2">Ante todo recuerda que esta versión de Windows es una versión Consumer Preview, es decir, aún falta algún tiempo antes de que alcance un grado de madurez final, por lo que no puedo garantizarte que funcione de forma correcta en tu máquina como en la mía, además, debes tener mucho cuidado al seguir estos pasos, ya que podrías provocar comportamientos no deseados al no ejecutar los pasos correctamente.</font></p>
<h2 align="justify"><font size="3" face="Verdana">¿Qué necesitamos?</font></h2>
<ul>
<li>
<div align="justify">Imagen o disco de Windows 8 Consumer Preview, ya sea una versión de 32 ó 64 bits, la cual puedes descargar desde:</div>
</li>
</ul>
<p align="justify">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <a href="http://windows.microsoft.com/es-MX/windows-8/consumer-preview">.iso de Windows 8 Consumer Preview</a></p>
<ul>
<li>
<div align="justify">Script alojado en la galería de MSDN:</div>
</li>
</ul>
<p align="justify">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; <a href="http://archive.msdn.microsoft.com/InstallWindowsImage/Release/ProjectReleases.aspx?ReleaseId=2662">Script Necesario</a></p>
<p align="justify">&#160;</p>
<p align="justify"><font color="#4f81bd" size="3"><strong>Sección A: Creando el disco duro virtual.</strong></font></p>
<p align="justify">Lo primero que debemos hacer, es entrar a la administración de discos duros, esto se hace, dando click con el botón derecho sobre Equipo –&gt; Administrar</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2012/03/image.png"><img loading="lazy" style="background-image:none;padding-left:0;padding-right:0;display:block;float:none;margin-left:auto;margin-right:auto;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="https://hectorperez.wordpress.com/wp-content/uploads/2012/03/image_thumb.png?w=368&#038;h=371" width="368" height="371" /></a></p>
<p align="justify">Esto nos desplegará la consola de Administración de equipos, nos iremos a&#160; la sección de almacenamiento –&gt; Administración de discos</p>
<p>&#160;</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2012/03/image6.png"><img loading="lazy" style="background-image:none;padding-left:0;padding-right:0;display:block;float:none;margin-left:auto;margin-right:auto;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="https://hectorperez.wordpress.com/wp-content/uploads/2012/03/image6_thumb.png?w=464&#038;h=365" width="464" height="365" /></a></p>
<p>&#160;</p>
<p align="justify">Esto nos mostrará los discos&#160; instalados en nuestro equipo:</p>
<p>&#160;</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2012/03/image9.png"><img loading="lazy" style="background-image:none;padding-left:0;padding-right:0;display:block;float:none;margin-left:auto;margin-right:auto;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="https://hectorperez.wordpress.com/wp-content/uploads/2012/03/image9_thumb.png?w=462&#038;h=363" width="462" height="363" /></a></p>
<p>&#160;</p>
<p align="justify">Ahora, debemos crear un nuevo Disco Duro Virtual:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2012/03/image12.png"><img loading="lazy" style="background-image:none;padding-left:0;padding-right:0;display:block;float:none;margin-left:auto;margin-right:auto;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="https://hectorperez.wordpress.com/wp-content/uploads/2012/03/image12_thumb.png?w=369&#038;h=270" width="369" height="270" /></a></p>
<p>&#160;</p>
<p align="justify">En este paso, debemos poner la ruta donde se creará el nuevo disco virtual, en mi caso será C:\W8.vhd, y debemos selccionar qué tipo de formato tendrá nuestro disco duro virtual: Expansión dinámica(El espacio va aumentando conforme se va utilizando), ó Tamaño Fijo (Se aparta todo el espacio de una vez), y el espacio en nuestro disco duro que le asignaremos, en mi caso,&#160; utilizaré Expansión dinámica y un tamaño de 100 GB, a continuación, damos click en Aceptar:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2012/03/image21.png"><img loading="lazy" style="background-image:none;padding-left:0;padding-right:0;display:block;float:none;margin-left:auto;margin-right:auto;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="https://hectorperez.wordpress.com/wp-content/uploads/2012/03/image21_thumb.png?w=322&#038;h=321" width="322" height="321" /></a></p>
<p>&#160;</p>
<p align="justify">Una vez creado nuestro disco duro virtual, notaremos algo así:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2012/03/image24.png"><img loading="lazy" style="background-image:none;padding-left:0;padding-right:0;display:block;float:none;margin-left:auto;margin-right:auto;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="https://hectorperez.wordpress.com/wp-content/uploads/2012/03/image24_thumb.png?w=422&#038;h=196" width="422" height="196" /></a></p>
<p align="justify">El disco duro deberemos inicializarlo, damos click sobre el disco, y seleccionamos “Inicializar Disco”</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2012/03/image27.png"><img loading="lazy" style="background-image:none;padding-left:0;padding-right:0;display:block;float:none;margin-left:auto;margin-right:auto;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="https://hectorperez.wordpress.com/wp-content/uploads/2012/03/image27_thumb.png?w=335&#038;h=349" width="335" height="349" /></a></p>
<p align="justify">Con esto, saltará un menú, el cual debemos dejar con un estilo MBR, como se muestra a continuación, posterior a esto damos click en Aceptar:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2012/03/image30.png"><img loading="lazy" style="background-image:none;padding-left:0;padding-right:0;display:block;float:none;margin-left:auto;margin-right:auto;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="https://hectorperez.wordpress.com/wp-content/uploads/2012/03/image30_thumb.png?w=373&#038;h=302" width="373" height="302" /></a></p>
<p align="justify">Con esto, tendremos nuestro disco inicializado, falta crear un nuevo volúmen, esto lo haremos, dando click derecho sobre el disco, y damos click en “Nuevo volúmen simple”:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2012/03/image33.png"><img loading="lazy" style="background-image:none;padding-left:0;padding-right:0;display:block;float:none;margin-left:auto;margin-right:auto;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="https://hectorperez.wordpress.com/wp-content/uploads/2012/03/image33_thumb.png?w=394&#038;h=217" width="394" height="217" /></a></p>
<p>Nos saldrá un asistente:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2012/03/image36.png"><img loading="lazy" style="background-image:none;padding-left:0;padding-right:0;display:block;float:none;margin-left:auto;margin-right:auto;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="https://hectorperez.wordpress.com/wp-content/uploads/2012/03/image36_thumb.png?w=330&#038;h=272" width="330" height="272" /></a></p>
<p>Dejaremos la asignación de espacio tal cual:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2012/03/image39.png"><img loading="lazy" style="background-image:none;border-bottom:0;border-left:0;padding-left:0;padding-right:0;display:block;float:none;margin-left:auto;border-top:0;margin-right:auto;border-right:0;padding-top:0;" title="image" border="0" alt="image" src="https://hectorperez.wordpress.com/wp-content/uploads/2012/03/image39_thumb.png?w=328&#038;h=270" width="328" height="270" /></a></p>
<p>Dejaremos la letra asignada por el asistente:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2012/03/image42.png"><img loading="lazy" style="background-image:none;border-bottom:0;border-left:0;padding-left:0;padding-right:0;display:block;float:none;margin-left:auto;border-top:0;margin-right:auto;border-right:0;padding-top:0;" title="image" border="0" alt="image" src="https://hectorperez.wordpress.com/wp-content/uploads/2012/03/image42_thumb.png?w=346&#038;h=285" width="346" height="285" /></a></p>
<p>En el siguiente paso, asignaremos una etiqueta al volúmen, en mi caso le pondré Windows 8 CP:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2012/03/image45.png"><img loading="lazy" style="background-image:none;border-bottom:0;border-left:0;padding-left:0;padding-right:0;display:block;float:none;margin-left:auto;border-top:0;margin-right:auto;border-right:0;padding-top:0;" title="image" border="0" alt="image" src="https://hectorperez.wordpress.com/wp-content/uploads/2012/03/image45_thumb.png?w=340&#038;h=291" width="340" height="291" /></a></p>
<p>y damos click en Finalizar:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2012/03/image48.png"><img loading="lazy" style="background-image:none;border-bottom:0;border-left:0;padding-left:0;padding-right:0;display:block;float:none;margin-left:auto;border-top:0;margin-right:auto;border-right:0;padding-top:0;" title="image" border="0" alt="image" src="https://hectorperez.wordpress.com/wp-content/uploads/2012/03/image48_thumb.png?w=334&#038;h=275" width="334" height="275" /></a></p>
<p align="justify">Con esto tendremos nuestro nuevo disco virtual en el explorador de windows <em>(puede tardar alrededor de un minuto para que aparezca):</em></p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2012/03/image51.png"><img loading="lazy" style="background-image:none;border-bottom:0;border-left:0;padding-left:0;padding-right:0;display:block;float:none;margin-left:auto;border-top:0;margin-right:auto;border-right:0;padding-top:0;" title="image" border="0" alt="image" src="https://hectorperez.wordpress.com/wp-content/uploads/2012/03/image51_thumb.png?w=343&#038;h=217" width="343" height="217" /></a></p>
<p>&#160;</p>
<p align="justify"><strong><font color="#4f81bd" size="3">Sección B: Instalando Windows 8 Consumer Preview.</font></strong></p>
<p align="justify">Como primer lugar, montaremos nuestra imagen, o bien, insertaremos nuestro DVD:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2012/03/image54.png"><img loading="lazy" style="background-image:none;border-bottom:0;border-left:0;padding-left:0;padding-right:0;display:block;float:none;margin-left:auto;border-top:0;margin-right:auto;border-right:0;padding-top:0;" title="image" border="0" alt="image" src="https://hectorperez.wordpress.com/wp-content/uploads/2012/03/image54_thumb.png?w=383&#038;h=242" width="383" height="242" /></a></p>
<p align="justify">&#160;</p>
<p align="justify">Abrimos una consola de Powershell con privilegios de administrador(Click derecho –&gt; Ejecutar como administrador):</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2012/03/image57.png"><img loading="lazy" style="background-image:none;border-bottom:0;border-left:0;padding-left:0;padding-right:0;display:block;float:none;margin-left:auto;border-top:0;margin-right:auto;border-right:0;padding-top:0;" title="image" border="0" alt="image" src="https://hectorperez.wordpress.com/wp-content/uploads/2012/03/image57_thumb.png?w=397&#038;h=214" width="397" height="214" /></a></p>
<p align="justify">Permitiremos la ejecución de scripts con el comando:</p>
<blockquote>
<p align="justify">Set-ExecutionPolicy unrestricted</p>
</blockquote>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2012/03/image60.png"><img loading="lazy" style="background-image:none;border-bottom:0;border-left:0;padding-left:0;padding-right:0;display:block;float:none;margin-left:auto;border-top:0;margin-right:auto;border-right:0;padding-top:0;" title="image" border="0" alt="image" src="https://hectorperez.wordpress.com/wp-content/uploads/2012/03/image60_thumb.png?w=437&#038;h=220" width="437" height="220" /></a></p>
<p>a lo que responderemos con una S:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2012/03/image63.png"><img loading="lazy" style="background-image:none;border-bottom:0;border-left:0;padding-left:0;padding-right:0;display:block;float:none;margin-left:auto;border-top:0;margin-right:auto;border-right:0;padding-top:0;" title="image" border="0" alt="image" src="https://hectorperez.wordpress.com/wp-content/uploads/2012/03/image63_thumb.png?w=441&#038;h=162" width="441" height="162" /></a></p>
<p align="justify">Ahora, debemos ejecutar el script que hemos descargado, cuidando que no esté ubicado un lugar no permitido (por ejemplo, en raíz C:\), lo que haré será hacer un cambio de directorio, yendo a la carpeta donde se encuentra nuestro script(en mi caso la carpeta Downloads), y ejecutarlo de la siguiente forma:</p>
<blockquote>
<p align="justify">.\Install-WindowsImage.ps1 -WIM F:\sources\install.wim</p>
</blockquote>
<p align="justify">cuidando que la letra <strong>F</strong>, sea la letra de la unidad donde se encuentra ubicado nuestro disco de Windows:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2012/03/image66.png"><img loading="lazy" style="background-image:none;border-bottom:0;border-left:0;padding-left:0;padding-right:0;display:block;float:none;margin-left:auto;border-top:0;margin-right:auto;border-right:0;padding-top:0;" title="image" border="0" alt="image" src="https://hectorperez.wordpress.com/wp-content/uploads/2012/03/image66_thumb.png?w=492&#038;h=167" width="492" height="167" /></a></p>
<p>&#160;</p>
<p align="justify">Con esto obtendremos el índice de la unidad donde se encuentra Windows consumer Preview, ahora ejecutaremos lo siguiente:</p>
<blockquote>
<p align="justify">.\Install-WindowsImage.ps1 –WIM F:\Sources\Install.wim –Apply –Index 1 –Destination G:\</p>
</blockquote>
<p align="justify">Donde <strong>F</strong> es la unidad donde se encuentra nuestro disco de instalación, <strong>G</strong> es la unidad de la partición recién creada y <strong>1 </strong>es el índice que hemos obtenido anteriormente. Con el comando anterior iniciaremos la instalación:</p>
<p>&#160;</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2012/03/image1.png"><img loading="lazy" style="background-image:none;border-bottom:0;border-left:0;padding-left:0;padding-right:0;display:block;float:none;margin-left:auto;border-top:0;margin-right:auto;border-right:0;padding-top:0;" title="image" border="0" alt="image" src="https://hectorperez.wordpress.com/wp-content/uploads/2012/03/image_thumb1.png?w=445&#038;h=156" width="445" height="156" /></a></p>
<p>Este proceso es el mas tardado, todo dependerá de la capacidad de la máquina en la que nos encontremos, cuando termine la instalación, aparecerá algo como lo siguiente:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2012/03/image2.png"><img loading="lazy" style="background-image:none;border-bottom:0;border-left:0;padding-left:0;padding-right:0;display:block;float:none;margin-left:auto;border-top:0;margin-right:auto;border-right:0;padding-top:0;" title="image" border="0" alt="image" src="https://hectorperez.wordpress.com/wp-content/uploads/2012/03/image_thumb2.png?w=448&#038;h=159" width="448" height="159" /></a></p>
<p>Finalmente, debemos colocar nuestra partición como booteable, esto lo hacemos abriendo una consola <strong>con derechos de Administrador, </strong>y ejecutando el siguiente comando:</p>
<blockquote>
<p>bcdboot.exe G:\Windows</p>
</blockquote>
<p>donde <strong>G</strong>, es la unidad que creaste como disco duro virtual.</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2012/03/image3.png"><img loading="lazy" style="background-image:none;border-bottom:0;border-left:0;padding-left:0;padding-right:0;display:block;float:none;margin-left:auto;border-top:0;margin-right:auto;border-right:0;padding-top:0;" title="image" border="0" alt="image" src="https://hectorperez.wordpress.com/wp-content/uploads/2012/03/image_thumb3.png?w=434&#038;h=239" width="434" height="239" /></a></p>
<p>&#160;</p>
<p>Al reiniciar el equipo, deberías ver el menú para seleccionar qué sistema operativo deseas utilizar:</p>
<p><img loading="lazy" style="display:block;float:none;margin-left:auto;margin-right:auto;" title="New Windows 8 Boot Manager?" border="0" alt="New Windows 8 Boot Manager?" src="https://i0.wp.com/www.hanselman.com/blog/content/binary/Windows-Live-Writer/23450a5292bc_111B3/Photo%20Sep%2013%2C%2011%2008%2011%20PM.jpg" width="392" height="382" /></p>
<p align="justify">P. D. En mi caso, tuve que buscar una alternativa para instalar el sistema operativo diferente a la de Scott, debido a que la consola no me reconocía los comandos de create vdisk… y attach vdisk…., además, es un método donde puedes estar instalando el sistema operativo mientras realizas otras tareas.</p>
<p align="justify">Salu2</p>
<p align="right"><font size="4" face="Maiandra GD"><strong>Héctor Uriel Pérez Rojas</strong></font></p>
]]></content:encoded>
					
					<wfw:commentRss>https://hectorperez.wordpress.com/2012/03/08/instalando-windows-8-consumer-preview-en-vhdvirtual-hard-disk-sin-mquinas-virtuales-y-sin-necesidad-de-particionar-el-disco/feed/</wfw:commentRss>
			<slash:comments>10</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">766</post-id>
		<media:content url="https://1.gravatar.com/avatar/d5470cbae4baec70037bcb8002d500454cd05af89c1dedb32b0fc7aff97a67c2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Héctor Uriel Pérez Rojas</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2012/03/image_thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2012/03/image6_thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2012/03/image9_thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2012/03/image12_thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2012/03/image21_thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2012/03/image24_thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2012/03/image27_thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2012/03/image30_thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2012/03/image33_thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2012/03/image36_thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2012/03/image39_thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2012/03/image42_thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2012/03/image45_thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2012/03/image48_thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2012/03/image51_thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2012/03/image54_thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2012/03/image57_thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2012/03/image60_thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2012/03/image63_thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2012/03/image66_thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2012/03/image_thumb1.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2012/03/image_thumb2.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2012/03/image_thumb3.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="http://www.hanselman.com/blog/content/binary/Windows-Live-Writer/23450a5292bc_111B3/Photo%20Sep%2013,%2011%2008%2011%20PM.jpg" medium="image">
			<media:title type="html">New Windows 8 Boot Manager?</media:title>
		</media:content>
	</item>
		<item>
		<title>Windows 8 Hands On Lab</title>
		<link>https://hectorperez.wordpress.com/2011/10/19/windows-8-hands-on-lab/</link>
					<comments>https://hectorperez.wordpress.com/2011/10/19/windows-8-hands-on-lab/#respond</comments>
		
		<dc:creator><![CDATA[hectorperez]]></dc:creator>
		<pubDate>Wed, 19 Oct 2011 04:55:00 +0000</pubDate>
				<category><![CDATA[Hands On Lab]]></category>
		<category><![CDATA[Laboratorios]]></category>
		<category><![CDATA[Windows 8]]></category>
		<guid isPermaLink="false">http://hectorperez.wordpress.com/2011/10/19/windows-8-hands-on-lab/</guid>

					<description><![CDATA[Uff, excelente material para desarrollar sobre Windows 8, espero lo aprovechen &#160; &#160; Salu2 Héctor Uriel Pérez Rojas]]></description>
										<content:encoded><![CDATA[<p>Uff, excelente material para desarrollar sobre Windows 8, espero lo aprovechen <img style="border-style:none;" class="wlEmoticon wlEmoticon-winkingsmile" alt="Guiño" src="https://hectorperez.wordpress.com/wp-content/uploads/2011/10/wlemoticon-winkingsmile1.png?w=788" /></p>
<p>&#160;</p>
<p><a title="Windows 8 Hands On Lab" href="http://www.buildwindows.com/Labs" target="_blank"><img loading="lazy" style="background-image:none;padding-left:0;padding-right:0;display:inline;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="https://hectorperez.wordpress.com/wp-content/uploads/2011/10/image1.png?w=509&#038;h=334" width="509" height="334" /></a></p>
<p>&#160;</p>
<p>Salu2</p>
<p align="right"><font size="5" face="Arial">Héctor Uriel Pérez Rojas</font></p>
]]></content:encoded>
					
					<wfw:commentRss>https://hectorperez.wordpress.com/2011/10/19/windows-8-hands-on-lab/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">719</post-id>
		<media:content url="https://1.gravatar.com/avatar/d5470cbae4baec70037bcb8002d500454cd05af89c1dedb32b0fc7aff97a67c2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Héctor Uriel Pérez Rojas</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2011/10/wlemoticon-winkingsmile1.png" medium="image">
			<media:title type="html">Guiño</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2011/10/image1.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>&#034;Introduction to Databases&#034; free Standford course</title>
		<link>https://hectorperez.wordpress.com/2011/10/19/introduction-to-databases-free-standford-course/</link>
					<comments>https://hectorperez.wordpress.com/2011/10/19/introduction-to-databases-free-standford-course/#respond</comments>
		
		<dc:creator><![CDATA[hectorperez]]></dc:creator>
		<pubDate>Wed, 19 Oct 2011 03:31:00 +0000</pubDate>
				<category><![CDATA[Bases de Datos]]></category>
		<category><![CDATA[Cursos]]></category>
		<category><![CDATA[Standford]]></category>
		<guid isPermaLink="false">http://hectorperez.wordpress.com/2011/10/19/introduction-to-databases-free-standford-course/</guid>

					<description><![CDATA[A bold experiment in distributed education, &#34;Introduction to Databases&#34; is being offered free and online to students worldwide, October 10 &#8211; December 12, 2011. Students have access to lecture videos, are given assignments and exams, receive regular feedback on progress, and participate in a discussion forum. Those who successfully complete the course will receive a &#8230; <a href="https://hectorperez.wordpress.com/2011/10/19/introduction-to-databases-free-standford-course/" class="more-link">Continuar leyendo <span class="screen-reader-text">&#34;Introduction to Databases&#34; free Standford&#160;course</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p align="justify">A bold experiment in distributed education, &quot;Introduction to Databases&quot; is being offered free and online to students worldwide, October 10 &#8211; December 12, 2011. Students have access to lecture videos, are given assignments and exams, receive regular feedback on progress, and participate in a discussion forum. Those who successfully complete the course will receive a statement of accomplishment. Taught by Professor Jennifer Widom, the curriculum draws from Stanford&#8217;s popular Introduction to Databases course. A high speed internet connection is recommended as the course content is based on videos and online exercises</p>
<p align="justify">&#160;</p>
<p align="justify"><a title="Introduction to Databases" href="http://www.db-class.org/course/auth/welcome" target="_blank"><img loading="lazy" style="background-image:none;border-bottom:0;border-left:0;padding-left:0;padding-right:0;display:block;float:none;margin-left:auto;border-top:0;margin-right:auto;border-right:0;padding-top:0;" title="image" border="0" alt="image" src="https://hectorperez.wordpress.com/wp-content/uploads/2011/10/image.png?w=517&#038;h=350" width="517" height="350" /></a></p>
<p>¡Hay que aprovechar! <img style="border-style:none;" class="wlEmoticon wlEmoticon-winkingsmile" alt="Guiño" src="https://hectorperez.wordpress.com/wp-content/uploads/2011/10/wlemoticon-winkingsmile.png?w=788" /></p>
<p>&#160;</p>
<p>Salu2</p>
<p align="right"><font size="4" face="NSimSun">Héctor Uriel Pérez Rojas</font></p>
]]></content:encoded>
					
					<wfw:commentRss>https://hectorperez.wordpress.com/2011/10/19/introduction-to-databases-free-standford-course/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">716</post-id>
		<media:content url="https://1.gravatar.com/avatar/d5470cbae4baec70037bcb8002d500454cd05af89c1dedb32b0fc7aff97a67c2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Héctor Uriel Pérez Rojas</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2011/10/image.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2011/10/wlemoticon-winkingsmile.png" medium="image">
			<media:title type="html">Guiño</media:title>
		</media:content>
	</item>
		<item>
		<title>Creando una Biblioteca de Utilidades (Parte 1): Creando nuestro proyecto</title>
		<link>https://hectorperez.wordpress.com/2010/11/12/creando-una-biblioteca-de-utilidades-parte-1-creando-nuestro-proyecto/</link>
					<comments>https://hectorperez.wordpress.com/2010/11/12/creando-una-biblioteca-de-utilidades-parte-1-creando-nuestro-proyecto/#respond</comments>
		
		<dc:creator><![CDATA[hectorperez]]></dc:creator>
		<pubDate>Fri, 12 Nov 2010 03:59:00 +0000</pubDate>
				<category><![CDATA[Bibliotecas]]></category>
		<category><![CDATA[C#]]></category>
		<guid isPermaLink="false">http://hectorperez.wordpress.com/2010/11/12/creando-una-biblioteca-de-utilidades-parte-1-creando-nuestro-proyecto/</guid>

					<description><![CDATA[¡Hola a todos! Tengo que admitir, que cuando uno empieza a programar, comete sin fin de errores, uno de los más cometidos, es el de no reutilizar el código que ya se ha escrito en proyectos anteriores. En esta serie de entradas, escribiré acerca de cómo tener un set de clases y métodos, que podremos &#8230; <a href="https://hectorperez.wordpress.com/2010/11/12/creando-una-biblioteca-de-utilidades-parte-1-creando-nuestro-proyecto/" class="more-link">Continuar leyendo <span class="screen-reader-text">Creando una Biblioteca de Utilidades (Parte 1): Creando nuestro&#160;proyecto</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p align="justify">¡Hola a todos! Tengo que admitir, que cuando uno empieza a programar, comete sin fin de errores, uno de los más cometidos, es el de no reutilizar el código que ya se ha escrito en proyectos anteriores.</p>
<p align="justify">En esta serie de entradas, escribiré acerca de cómo tener un set de clases y métodos, que podremos utilizar y reutilizar a lo largo de nuestros proyectos, algunas piezas de código son mi creación, algunas otras debo admitir no son creación mía (siempre que pase esto, haré la referencia debida al autor); y por creación de set de clases, no me refiero únicamente a clases que tendrán métodos que nos ayudarán, sino también a controles personalizados, que extiendan la funcionalidad de controles ya existentes de .Net. Todo esto lo veremos a través de estas entradas, que si bien, tengo bastante código por compartir, me gustaría que me dieran su opinión, si hay piezas de código que quieran que examinemos, con gusto también lo haremos <img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p align="justify">Empecemos entonces nuestro viaje.</p>
<p align="justify">En primer lugar, crearemos un nuevo proyecto, del tipo Biblioteca de Clases, en mi caso lo haré en C#. Sin embargo, quiero destacar que la dll que se generará a través de este proyecto, funcionará en nuestros proyectos tanto de C# como de VB. En&#160; mi caso lo nombraré “Utilidades”</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2010/11/image2.png"><img loading="lazy" style="background-image:none;border-bottom:0;border-left:0;padding-left:0;padding-right:0;display:block;float:none;border-top:0;border-right:0;padding-top:0;" title="image" border="0" alt="image" src="https://hectorperez.wordpress.com/wp-content/uploads/2010/11/image_thumb2.png?w=458&#038;h=282" width="458" height="282" /></a></p>
<p>&#160;</p>
<p>Esto nos creará un archivo llamado Class1.cs. Lo eliminemos para empezar desde 0.</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2010/11/image3.png"><img loading="lazy" style="background-image:none;border-bottom:0;border-left:0;padding-left:0;padding-right:0;display:block;float:none;border-top:0;border-right:0;padding-top:0;" title="image" border="0" alt="image" src="https://hectorperez.wordpress.com/wp-content/uploads/2010/11/image_thumb3.png?w=230&#038;h=237" width="230" height="237" /></a></p>
<p align="justify">Bien, ya que tenemos listo esto, debemos tener una forma de organizar nuestras clases ¿verdad? Esto lo haremos a través de los llamados namespaces, en la próxima entrega hablaremos más de ellos =). </p>
<p><em>P.D. Para tener una lectura más amena de estos posts, recomiendo el visor modo Lectura de Safari, está increíble! y hace la lectura mas sencilla:</em></p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2010/11/image4.png"><img loading="lazy" style="background-image:none;border-bottom:0;border-left:0;padding-left:0;padding-right:0;display:block;float:none;border-top:0;border-right:0;padding-top:0;" title="image" border="0" alt="image" src="https://hectorperez.wordpress.com/wp-content/uploads/2010/11/image_thumb4.png?w=354&#038;h=367" width="354" height="367" /></a></p>
<h2 align="left">Salu2!</h2>
<h2 align="right">Héctor Uriel Pérez Rojas</h2>
]]></content:encoded>
					
					<wfw:commentRss>https://hectorperez.wordpress.com/2010/11/12/creando-una-biblioteca-de-utilidades-parte-1-creando-nuestro-proyecto/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">712</post-id>
		<media:content url="https://1.gravatar.com/avatar/d5470cbae4baec70037bcb8002d500454cd05af89c1dedb32b0fc7aff97a67c2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Héctor Uriel Pérez Rojas</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2010/11/image_thumb2.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2010/11/image_thumb3.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2010/11/image_thumb4.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>Creando una biblioteca de Utilidades (Intro)</title>
		<link>https://hectorperez.wordpress.com/2010/11/09/creando-una-biblioteca-de-utilidades-intro/</link>
					<comments>https://hectorperez.wordpress.com/2010/11/09/creando-una-biblioteca-de-utilidades-intro/#respond</comments>
		
		<dc:creator><![CDATA[hectorperez]]></dc:creator>
		<pubDate>Tue, 09 Nov 2010 04:44:47 +0000</pubDate>
				<category><![CDATA[Bibliotecas]]></category>
		<category><![CDATA[C#]]></category>
		<guid isPermaLink="false">http://hectorperez.wordpress.com/2010/11/09/creando-una-biblioteca-de-utilidades-intro/</guid>

					<description><![CDATA[¡Hola amigos y amigas! Gusto en saludarles =), ya tenía rato que no pasaba por aquí para escribir algo técnico, pero a veces el tiempo falta . En esta ocasión, iniciaré una serie de posts para crear un set de clases que podrán reutilizar para sus proyectos. Esta serie irá en aumento, si alguien tiene &#8230; <a href="https://hectorperez.wordpress.com/2010/11/09/creando-una-biblioteca-de-utilidades-intro/" class="more-link">Continuar leyendo <span class="screen-reader-text">Creando una biblioteca de Utilidades&#160;(Intro)</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p align="justify">¡Hola amigos y amigas! Gusto en saludarles =), ya tenía rato que no pasaba por aquí para escribir algo técnico, pero a veces el tiempo falta <img style="border-style:none;" class="wlEmoticon wlEmoticon-smilewithtongueout" alt="Lengua fuera" src="https://hectorperez.wordpress.com/wp-content/uploads/2010/11/wlemoticon-smilewithtongueout.png?w=788" />.</p>
<p align="justify">En esta ocasión, iniciaré una serie de posts para crear un set de clases que podrán reutilizar para sus proyectos. Esta serie irá en aumento, si alguien tiene algo que quiera compartir, algún tip, alguna pieza de código que podamos agregar a dicha biblioteca, bienvenido sea =).</p>
<p align="justify">Así que en esta semana, la primera clase o método para nuestra biblioteca, no desesperéis =D.</p>
<p align="justify">P.D. He agregado mi gamer tag de xbox live, por si alguien quiere echar una retita <img style="border-style:none;" class="wlEmoticon wlEmoticon-smilewithtongueout" alt="Lengua fuera" src="https://hectorperez.wordpress.com/wp-content/uploads/2010/11/wlemoticon-smilewithtongueout.png?w=788" />.</p>
<p align="justify">&#160;</p>
<p align="justify">Salu2</p>
<h2 align="right">Héctor Uriel Pérez Rojas</h2>
]]></content:encoded>
					
					<wfw:commentRss>https://hectorperez.wordpress.com/2010/11/09/creando-una-biblioteca-de-utilidades-intro/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">705</post-id>
		<media:content url="https://1.gravatar.com/avatar/d5470cbae4baec70037bcb8002d500454cd05af89c1dedb32b0fc7aff97a67c2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Héctor Uriel Pérez Rojas</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2010/11/wlemoticon-smilewithtongueout.png" medium="image">
			<media:title type="html">Lengua fuera</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2010/11/wlemoticon-smilewithtongueout.png" medium="image">
			<media:title type="html">Lengua fuera</media:title>
		</media:content>
	</item>
		<item>
		<title>Material Evento de Lanzamiento Windows Phone 7, Tuxtla Guti&#233;rrez</title>
		<link>https://hectorperez.wordpress.com/2010/11/09/material-evento-de-lanzamiento-windows-phone-7-tuxtla-gutirrez/</link>
					<comments>https://hectorperez.wordpress.com/2010/11/09/material-evento-de-lanzamiento-windows-phone-7-tuxtla-gutirrez/#respond</comments>
		
		<dc:creator><![CDATA[hectorperez]]></dc:creator>
		<pubDate>Tue, 09 Nov 2010 04:41:00 +0000</pubDate>
				<category><![CDATA[conferencias]]></category>
		<category><![CDATA[Lanzamientos]]></category>
		<category><![CDATA[XNA]]></category>
		<guid isPermaLink="false">http://hectorperez.wordpress.com/2010/11/09/material-evento-de-lanzamiento-windows-phone-7-tuxtla-gutirrez/</guid>

					<description><![CDATA[Aquí les dejo el material que usé para la conferencia de XNA en el lanzamiento de Windows Phone 7, el día 30 de septiembre del 2010, en Tuxtla Gutiérrez, Chiapas. Link Salu2! Héctor Uriel Pérez Rojas]]></description>
										<content:encoded><![CDATA[<p align="justify">Aquí les dejo el material que usé para la conferencia de XNA en el lanzamiento de Windows Phone 7, el día 30 de septiembre del 2010, en Tuxtla Gutiérrez, Chiapas.</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2010/11/image1.png"><img loading="lazy" style="background-image:none;border-bottom:0;border-left:0;padding-left:0;padding-right:0;display:block;float:none;border-top:0;border-right:0;padding-top:0;" title="image" border="0" alt="image" src="https://hectorperez.wordpress.com/wp-content/uploads/2010/11/image_thumb1.png?w=481&#038;h=300" width="481" height="300" /></a></p>
<p><a href="https://cid-2c11b62be5eb284d.office.live.com/view.aspx/Comunidad%20tuxtla.net/Evento%20de%20lanzamiento%20Windows%20Phone%207^J%2030%20de%20septiembre%202010/XNA%20Lanzamiento%20WinPhone%207.pptx" target="_blank">Link</a></p>
<p>Salu2!</p>
<h3 align="right">Héctor Uriel Pérez Rojas</h3>
]]></content:encoded>
					
					<wfw:commentRss>https://hectorperez.wordpress.com/2010/11/09/material-evento-de-lanzamiento-windows-phone-7-tuxtla-gutirrez/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">703</post-id>
		<media:content url="https://1.gravatar.com/avatar/d5470cbae4baec70037bcb8002d500454cd05af89c1dedb32b0fc7aff97a67c2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Héctor Uriel Pérez Rojas</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2010/11/image_thumb1.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>Material del curso Introducci&#243;n a Windows Communication Foundation 4.0 del d&#237;a 28 y 29 de Agosto del 2010</title>
		<link>https://hectorperez.wordpress.com/2010/11/09/material-del-curso-introduccin-a-windows-communication-foundation-4-0-del-da-28-y-29-de-agosto-del-2010/</link>
					<comments>https://hectorperez.wordpress.com/2010/11/09/material-del-curso-introduccin-a-windows-communication-foundation-4-0-del-da-28-y-29-de-agosto-del-2010/#comments</comments>
		
		<dc:creator><![CDATA[hectorperez]]></dc:creator>
		<pubDate>Tue, 09 Nov 2010 02:46:00 +0000</pubDate>
				<category><![CDATA[Cursos]]></category>
		<category><![CDATA[WCF]]></category>
		<guid isPermaLink="false">http://hectorperez.wordpress.com/2010/11/09/material-del-curso-introduccin-a-windows-communication-foundation-4-0-del-da-28-y-29-de-agosto-del-2010/</guid>

					<description><![CDATA[Aquí el material del curso que impartí en Tapachula Chiapas, días 28 y 29 de Agosto del 2010. &#160; Link &#160; Héctor Uriel Pérez Rojas]]></description>
										<content:encoded><![CDATA[<p>Aquí el material del curso que impartí en Tapachula Chiapas, días 28 y 29 de Agosto del 2010.</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2010/11/image.png"><img loading="lazy" style="background-image:none;border-bottom:0;border-left:0;padding-left:0;padding-right:0;display:block;float:none;border-top:0;border-right:0;padding-top:0;" title="image" border="0" alt="image" src="https://hectorperez.wordpress.com/wp-content/uploads/2010/11/image_thumb.png?w=405&#038;h=331" width="405" height="331" /></a></p>
<p>&#160;</p>
<p><a href="https://cid-2c11b62be5eb284d.office.live.com/view.aspx/Comunidad%20tuxtla.net/Curso%20WCF%204.0%2028%20y%2029%20de%20Agosto%202010/Curso%20WCF%204.0.pptx" target="_blank">Link</a></p>
<p>&#160;</p>
<h5 align="right">Héctor Uriel Pérez Rojas</h5>
]]></content:encoded>
					
					<wfw:commentRss>https://hectorperez.wordpress.com/2010/11/09/material-del-curso-introduccin-a-windows-communication-foundation-4-0-del-da-28-y-29-de-agosto-del-2010/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">700</post-id>
		<media:content url="https://1.gravatar.com/avatar/d5470cbae4baec70037bcb8002d500454cd05af89c1dedb32b0fc7aff97a67c2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Héctor Uriel Pérez Rojas</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2010/11/image_thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>Incre&#237;bles aplicaciones WPF # 2</title>
		<link>https://hectorperez.wordpress.com/2010/08/21/increbles-aplicaciones-wpf-2/</link>
					<comments>https://hectorperez.wordpress.com/2010/08/21/increbles-aplicaciones-wpf-2/#respond</comments>
		
		<dc:creator><![CDATA[hectorperez]]></dc:creator>
		<pubDate>Sat, 21 Aug 2010 20:12:00 +0000</pubDate>
				<category><![CDATA[Aplicaciones]]></category>
		<category><![CDATA[Aprendizaje]]></category>
		<category><![CDATA[WPF]]></category>
		<category><![CDATA[Aplicaciones WPF]]></category>
		<category><![CDATA[Lector]]></category>
		<guid isPermaLink="false">http://hectorperez.wordpress.com/2010/08/21/increbles-aplicaciones-wpf-2/</guid>

					<description><![CDATA[Hola! ¿Qué tal a todos?&#160; Espero que estén excelente , bueno, pues regresamos al mundo del blogueo, esta vez, siguiendo con la línea de Increíbles aplicaciones WPF. La aplicación en cuestión se llama Books.Show. Esta, es una aplicación de lectura, de ejemplo basada en WPF que está enfocada a Windows 7. Es un lector funcional &#8230; <a href="https://hectorperez.wordpress.com/2010/08/21/increbles-aplicaciones-wpf-2/" class="more-link">Continuar leyendo <span class="screen-reader-text">Incre&#237;bles aplicaciones WPF #&#160;2</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p align="justify">Hola! ¿Qué tal a todos?&#160; Espero que estén excelente <img style="border-style:none;" class="wlEmoticon wlEmoticon-smile" alt="Sonrisa" src="https://hectorperez.wordpress.com/wp-content/uploads/2010/08/wlemoticonsmile.png?w=788" />, bueno, pues regresamos al mundo del blogueo, esta vez, siguiendo con la línea de Increíbles aplicaciones WPF.</p>
<p align="justify">La aplicación en cuestión se llama Books.Show. Esta, es una aplicación de lectura, de ejemplo basada en WPF que está enfocada a Windows 7. Es un lector funcional totalmente que permite la lectura de alrededor de 40 libros de habla inglesa inluyentes de todos los tiempos. Soporta Touch para ir recorriendo las páginas, también encontrarás que integra con la Taskbar. Además, se incluye el código fuente de la aplicación de ejemplo, el cual, incluye el código completo de la aplicación para escribir aplicaciones con características cool de Windows 7.</p>
<p align="justify">&#160;</p>
<p align="justify">Sin mas por decir. algunas capturas de la aplicación:</p>
<p align="justify"><a href="https://hectorperez.wordpress.com/wp-content/uploads/2010/08/image.png"><img loading="lazy" style="padding-left:0;padding-right:0;display:block;float:none;margin-left:auto;margin-right:auto;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="https://hectorperez.wordpress.com/wp-content/uploads/2010/08/image_thumb.png?w=471&#038;h=415" width="471" height="415" /></a></p>
<p>&#160;</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2010/08/image1.png"><img loading="lazy" style="background-image:none;padding-left:0;padding-right:0;display:block;float:none;margin-left:auto;margin-right:auto;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="https://hectorperez.wordpress.com/wp-content/uploads/2010/08/image_thumb1.png?w=472&#038;h=426" width="472" height="426" /></a></p>
<p>&#160;</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2010/08/image2.png"><img loading="lazy" style="background-image:none;padding-left:0;padding-right:0;display:block;float:none;margin-left:auto;margin-right:auto;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="https://hectorperez.wordpress.com/wp-content/uploads/2010/08/image_thumb2.png?w=497&#038;h=437" width="497" height="437" /></a></p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2010/08/image3.png"><img loading="lazy" style="background-image:none;padding-left:0;padding-right:0;display:block;float:none;margin-left:auto;margin-right:auto;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="https://hectorperez.wordpress.com/wp-content/uploads/2010/08/image_thumb3.png?w=504&#038;h=444" width="504" height="444" /></a></p>
<p>&#160;</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2010/08/image4.png"><img loading="lazy" style="background-image:none;padding-left:0;padding-right:0;display:block;float:none;margin-left:auto;margin-right:auto;padding-top:0;border-width:0;" title="image" border="0" alt="image" src="https://hectorperez.wordpress.com/wp-content/uploads/2010/08/image_thumb4.png?w=507&#038;h=446" width="507" height="446" /></a></p>
<p>&#160;</p>
<p>Como ven, una aplicación rica visualmente, y lo mejor de todo, como ya dije anteriormente, con el código fuente disponible para descargar <img style="border-style:none;" class="wlEmoticon wlEmoticon-smile" alt="Sonrisa" src="https://hectorperez.wordpress.com/wp-content/uploads/2010/08/wlemoticonsmile.png?w=788" /></p>
<p>&#160;</p>
<p>El link de la aplicación:</p>
<p><a title="http://code.msdn.microsoft.com/Books" href="http://code.msdn.microsoft.com/Books">http://code.msdn.microsoft.com/Books</a></p>
<p>&#160;</p>
<p>Salu2.</p>
<h6 align="right"><font size="4">Héctor Uriel Pérez Rojas</font></h6>
]]></content:encoded>
					
					<wfw:commentRss>https://hectorperez.wordpress.com/2010/08/21/increbles-aplicaciones-wpf-2/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">695</post-id>
		<media:content url="https://1.gravatar.com/avatar/d5470cbae4baec70037bcb8002d500454cd05af89c1dedb32b0fc7aff97a67c2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Héctor Uriel Pérez Rojas</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2010/08/wlemoticonsmile.png" medium="image">
			<media:title type="html">Sonrisa</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2010/08/image_thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2010/08/image_thumb1.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2010/08/image_thumb2.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2010/08/image_thumb3.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2010/08/image_thumb4.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2010/08/wlemoticonsmile.png" medium="image">
			<media:title type="html">Sonrisa</media:title>
		</media:content>
	</item>
		<item>
		<title>3 Concurso del blog: &#161;G&#225;nate una licencia de Microsoft Office Profesional 2010!{Terminado}</title>
		<link>https://hectorperez.wordpress.com/2010/05/01/3-concruso-del-blog-gnate-una-licencia-de-microsoft-office-profesional-2010/</link>
					<comments>https://hectorperez.wordpress.com/2010/05/01/3-concruso-del-blog-gnate-una-licencia-de-microsoft-office-profesional-2010/#comments</comments>
		
		<dc:creator><![CDATA[hectorperez]]></dc:creator>
		<pubDate>Sat, 01 May 2010 17:18:00 +0000</pubDate>
				<category><![CDATA[Concursos del Blog]]></category>
		<guid isPermaLink="false">http://hectorperez.wordpress.com/2010/05/01/3-concruso-del-blog-gnate-una-licencia-de-microsoft-office-profesional-2010/</guid>

					<description><![CDATA[Estamos de fiesta con el lanzamiento de Office 2010, así que me he animado a realizar otro concurso, con el que son 2 ya los que están en curso. La temática es esta: Mi amiga Karinthia, hace algún tiempo encontró una foto de una chica que se parece bastante a ella, sin embargo, desconoce la &#8230; <a href="https://hectorperez.wordpress.com/2010/05/01/3-concruso-del-blog-gnate-una-licencia-de-microsoft-office-profesional-2010/" class="more-link">Continuar leyendo <span class="screen-reader-text">3 Concurso del blog: &#161;G&#225;nate una licencia de Microsoft Office Profesional 2010!{Terminado}</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p>Estamos de fiesta con el lanzamiento de Office 2010, así que me he animado a realizar otro concurso, con el que son 2 ya los que están en curso.</p>
<p>La temática es esta: Mi amiga Karinthia, hace algún tiempo encontró una foto de una chica que se parece bastante a ella, sin embargo, desconoce la identidad de dicha chica. Pongo a continuación una foto de ella, y una foto de la chica que se parece a ella.</p>
<p><strong>Mi amiga Karinthia:</strong></p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2010/05/image.png"><img loading="lazy" style="display:inline;border-width:0;" title="image" src="https://hectorperez.wordpress.com/wp-content/uploads/2010/05/image_thumb.png?w=172&#038;h=187" border="0" alt="image" width="172" height="187" /></a></p>
<p><strong>La chica que se parece a Karinthia</strong> </p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2010/05/foto_concurso1.jpg"><img loading="lazy" style="display:inline;border-width:0;" title="Foto_concurso1" src="https://hectorperez.wordpress.com/wp-content/uploads/2010/05/foto_concurso1_thumb.jpg?w=108&#038;h=244" border="0" alt="Foto_concurso1" width="108" height="244" /></a></p>
<p>Fue la foto más cercana en ángulo que encontré je je, la mecánica es esta:</p>
<p>La identidad de la chica se puede descubrir utilizando algunas herramientas disponibles en la web, así que, el primero que me diga la identidad de la chica  de la foto en blanco y negro, será el ganador de la licencia de Office 2010 profesional. Es posible descubrirla, puesto que yo ya lo he hecho <img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>Salu2</p>
<p><span style="font-family:TITUS Cyberbit Basic;font-size:medium;"><strong>Héctor Uriel Pérez Rojas</strong></span></p>
]]></content:encoded>
					
					<wfw:commentRss>https://hectorperez.wordpress.com/2010/05/01/3-concruso-del-blog-gnate-una-licencia-de-microsoft-office-profesional-2010/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">679</post-id>
		<media:content url="https://1.gravatar.com/avatar/d5470cbae4baec70037bcb8002d500454cd05af89c1dedb32b0fc7aff97a67c2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Héctor Uriel Pérez Rojas</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2010/05/image_thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2010/05/foto_concurso1_thumb.jpg" medium="image">
			<media:title type="html">Foto_concurso1</media:title>
		</media:content>
	</item>
		<item>
		<title>&#161;G&#225;nate un serial de Windows 7 Home Premium + serial de Office 2010 Profesional originales!{28/04/10 al 05/04/10}</title>
		<link>https://hectorperez.wordpress.com/2010/04/28/gnate-un-serial-de-windows-7-home-premium-serial-de-office-2010-profesional-originales280410-al-050410/</link>
					<comments>https://hectorperez.wordpress.com/2010/04/28/gnate-un-serial-de-windows-7-home-premium-serial-de-office-2010-profesional-originales280410-al-050410/#comments</comments>
		
		<dc:creator><![CDATA[hectorperez]]></dc:creator>
		<pubDate>Wed, 28 Apr 2010 05:27:00 +0000</pubDate>
				<category><![CDATA[Concursos del Blog]]></category>
		<guid isPermaLink="false">http://hectorperez.wordpress.com/2010/04/28/gnate-un-serial-de-windows-7-home-premium-serial-de-office-2010-profesional-originales280410-al-050410/</guid>

					<description><![CDATA[&#160; +&#160;&#160; Así es, este concurso es realmente sencillo, pero lleva algo de tiempo, además, cualquiera puede participar. Bien, por curiosidad, en días pasados me lancé a buscar algún documento donde estuvieran todas las fórmulas de excel, con descripción y ejemplo, pero no encontré ninguno. La mecánica es esta: Requiero un documento Excel con todas &#8230; <a href="https://hectorperez.wordpress.com/2010/04/28/gnate-un-serial-de-windows-7-home-premium-serial-de-office-2010-profesional-originales280410-al-050410/" class="more-link">Continuar leyendo <span class="screen-reader-text">&#161;G&#225;nate un serial de Windows 7 Home Premium + serial de Office 2010 Profesional originales!{28/04/10 al&#160;05/04/10}</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p align="justify"><img loading="lazy" src="https://i0.wp.com/www.mondotechblog.com/wp-content/uploads/2009/05/windows_7_c.jpg" width="172" height="172" />&#160; +&#160;&#160; <img loading="lazy" src="https://i0.wp.com/www.zona-net.com/wp-content/uploads/2009/12/Office-2010.jpeg" width="212" height="130" /></p>
<p align="justify">Así es, este concurso es realmente sencillo, pero lleva algo de tiempo, además, cualquiera puede participar.</p>
<p align="justify">Bien, por curiosidad, en días pasados me lancé a buscar algún documento donde estuvieran todas las fórmulas de excel, con descripción y ejemplo, pero no encontré ninguno.</p>
<p align="justify">La mecánica es esta:</p>
<p align="justify">Requiero un documento Excel con todas las fórmulas de excel en español, así como el siguiente ejemplo:</p>
<p align="justify"><a title="http://cid-2c11b62be5eb284d.skydrive.live.com/self.aspx/P%c3%bablico/formulas.xlsx" href="http://cid-2c11b62be5eb284d.skydrive.live.com/self.aspx/P%c3%bablico/formulas.xlsx">http://cid-2c11b62be5eb284d.skydrive.live.com/self.aspx/P%c3%bablico/formulas.xlsx</a></p>
<p align="justify">&#160;</p>
<p align="justify">Para que el trabajo no sea en vano, puedes licenciarlo bajo Creative Commons, y ser el primero en publicar un documento de esta índole.</p>
<p align="justify">Este concurso tiene una duración de una semana, y deberán mandar el archivo a la dirección <a href="mailto:unach@hotmail.com">unach@hotmail.com</a>.</p>
<p align="justify">Quiero destacar que entregaré seriales a todos los que envíen su archivo de solución, siempre y cuando, no haya sido copiado de algún otro sitio, o sea duplicado, obviamente que también esté completo. El jurado decidirá <img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p align="justify">Salu2</p>
<p align="right"><font size="4"><strong>Héctor Uriel Pérez Rojas</strong></font></p>
]]></content:encoded>
					
					<wfw:commentRss>https://hectorperez.wordpress.com/2010/04/28/gnate-un-serial-de-windows-7-home-premium-serial-de-office-2010-profesional-originales280410-al-050410/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">674</post-id>
		<media:content url="https://1.gravatar.com/avatar/d5470cbae4baec70037bcb8002d500454cd05af89c1dedb32b0fc7aff97a67c2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Héctor Uriel Pérez Rojas</media:title>
		</media:content>

		<media:content url="http://www.mondotechblog.com/wp-content/uploads/2009/05/windows_7_c.jpg" medium="image" />

		<media:content url="http://www.zona-net.com/wp-content/uploads/2009/12/Office-2010.jpeg" medium="image" />
	</item>
		<item>
		<title>Microsoft Office 2010 alcanza su estado RTM</title>
		<link>https://hectorperez.wordpress.com/2010/04/23/microsoft-office-2010-alcanza-su-estado-rtm/</link>
					<comments>https://hectorperez.wordpress.com/2010/04/23/microsoft-office-2010-alcanza-su-estado-rtm/#respond</comments>
		
		<dc:creator><![CDATA[hectorperez]]></dc:creator>
		<pubDate>Fri, 23 Apr 2010 03:18:00 +0000</pubDate>
				<category><![CDATA[Office]]></category>
		<category><![CDATA[Office 2010]]></category>
		<guid isPermaLink="false">http://hectorperez.wordpress.com/2010/04/23/microsoft-office-2010-alcanza-su-estado-rtm/</guid>

					<description><![CDATA[Así es señores, Office 2010 al fin llega a nosotros en su estado RTM, el día de hoy ha sido publicada la versión profesional para los suscriptores Technet&#160; y MSDN: En lo personal lo he bajado y me ha gustado mucho. Aquí les dejo algunas capturas de este nuevo paquete ofimático de la mano de &#8230; <a href="https://hectorperez.wordpress.com/2010/04/23/microsoft-office-2010-alcanza-su-estado-rtm/" class="more-link">Continuar leyendo <span class="screen-reader-text">Microsoft Office 2010 alcanza su estado&#160;RTM</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p align="justify">Así es señores, Office 2010 al fin llega a nosotros en su estado RTM, el día de hoy ha sido publicada la versión profesional para los suscriptores Technet&#160; y MSDN:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2010/04/image.png"><img loading="lazy" style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="image" border="0" alt="image" src="https://hectorperez.wordpress.com/wp-content/uploads/2010/04/image_thumb.png?w=551&#038;h=135" width="551" height="135" /></a> </p>
<p align="justify">En lo personal lo he bajado y me ha gustado mucho. Aquí les dejo algunas capturas de este nuevo paquete ofimático de la mano de los chicos de Redmond:</p>
<p>Microsoft Word 2010:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2010/04/image1.png"><img loading="lazy" style="border-bottom:0;border-left:0;display:block;float:none;margin-left:auto;border-top:0;margin-right:auto;border-right:0;" title="image" border="0" alt="image" src="https://hectorperez.wordpress.com/wp-content/uploads/2010/04/image_thumb1.png?w=425&#038;h=334" width="425" height="334" /></a> </p>
<p>Aquí una captura de Power Point 2010, con uno de los nuevos diseños:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2010/04/image2.png"><img loading="lazy" style="border-bottom:0;border-left:0;display:block;float:none;margin-left:auto;border-top:0;margin-right:auto;border-right:0;" title="image" border="0" alt="image" src="https://hectorperez.wordpress.com/wp-content/uploads/2010/04/image_thumb2.png?w=432&#038;h=296" width="432" height="296" /></a></p>
<p>Excel aplicando un formato de tabla nuevo: </p>
</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2010/04/image3.png"><img loading="lazy" style="border-bottom:0;border-left:0;display:block;float:none;margin-left:auto;border-top:0;margin-right:auto;border-right:0;" title="image" border="0" alt="image" src="https://hectorperez.wordpress.com/wp-content/uploads/2010/04/image_thumb3.png?w=443&#038;h=321" width="443" height="321" /></a> </p>
<p>Una de las características que me ha gustado de este nuevo Office, es la posibilidad de ver exactamente cómo lucirá tu documento cuando sea impreso:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2010/04/image4.png"><img loading="lazy" style="border-bottom:0;border-left:0;display:block;float:none;margin-left:auto;border-top:0;margin-right:auto;border-right:0;" title="image" border="0" alt="image" src="https://hectorperez.wordpress.com/wp-content/uploads/2010/04/image_thumb4.png?w=456&#038;h=361" width="456" height="361" /></a> </p>
<p>Otra característica nueva, es la posibilidad de publicar tus documentos, directamente en tu Skydrive:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2010/04/image5.png"><img loading="lazy" style="border-bottom:0;border-left:0;display:block;float:none;margin-left:auto;border-top:0;margin-right:auto;border-right:0;" title="image" border="0" alt="image" src="https://hectorperez.wordpress.com/wp-content/uploads/2010/04/image_thumb5.png?w=482&#038;h=378" width="482" height="378" /></a> </p>
<p align="justify">De verdad, las características nuevas son bastantes, para obtener mayor información, te recomiendo ir al sitio <a title="http://office2010.microsoft.com/es-mx/microsoft-office-2010-FX100996036.aspx" href="http://office2010.microsoft.com/es-mx/microsoft-office-2010-FX100996036.aspx">http://office2010.microsoft.com/es-mx/microsoft-office-2010-FX100996036.aspx</a> , donde tendrás acceso a las novedades en español de esta versión.</p>
<p align="justify">Tal vez me anime luego de realizar un concurso para sortear una licencia para esta suite, veremos q tal marchan las cosas je je, alguna sugerencia para esto?</p>
<p align="justify">Como comentario final, sigo trabajando en la serie de posts sobre creación de instaladores en Visual Studio, así que espérenlos con calma <img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p align="justify">Salu2</p>
<p align="right"><font size="3" face="Copperplate Gothic Bold">Héctor Uriel Pérez Rojas</font></p>
]]></content:encoded>
					
					<wfw:commentRss>https://hectorperez.wordpress.com/2010/04/23/microsoft-office-2010-alcanza-su-estado-rtm/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">673</post-id>
		<media:content url="https://1.gravatar.com/avatar/d5470cbae4baec70037bcb8002d500454cd05af89c1dedb32b0fc7aff97a67c2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Héctor Uriel Pérez Rojas</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2010/04/image_thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2010/04/image_thumb1.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2010/04/image_thumb2.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2010/04/image_thumb3.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2010/04/image_thumb4.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2010/04/image_thumb5.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>Tips para programar Orientado a Objetos con C#.- Tip #3: Ten un constructor central</title>
		<link>https://hectorperez.wordpress.com/2010/03/10/tips-para-programar-orientado-a-objetos-con-c-tip-3-ten-un-constructor-central/</link>
					<comments>https://hectorperez.wordpress.com/2010/03/10/tips-para-programar-orientado-a-objetos-con-c-tip-3-ten-un-constructor-central/#comments</comments>
		
		<dc:creator><![CDATA[hectorperez]]></dc:creator>
		<pubDate>Wed, 10 Mar 2010 17:08:00 +0000</pubDate>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Tips]]></category>
		<guid isPermaLink="false">http://hectorperez.wordpress.com/2010/03/10/tips-para-programar-orientado-a-objetos-con-c-tip-3-ten-un-constructor-central/</guid>

					<description><![CDATA[Hola, tercera tip para programar Orientado a Objetos en C#, cualquier duda o comentario, háganmelo saber 🙂 Contexto: Es muy común en las aplicaciones .Net, tener clases que tengan constructores de diversas firmas, es decir, que puedan ser llamadas de distintas formas. Un ejemplo, tomado de las clases del .NET Framework, es la clase SqlCommand, &#8230; <a href="https://hectorperez.wordpress.com/2010/03/10/tips-para-programar-orientado-a-objetos-con-c-tip-3-ten-un-constructor-central/" class="more-link">Continuar leyendo <span class="screen-reader-text">Tips para programar Orientado a Objetos con C#.- Tip #3: Ten un constructor&#160;central</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p align="justify">Hola, tercera tip para programar Orientado a Objetos en C#, cualquier duda o comentario, háganmelo saber <img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p><strong>Contexto:</strong></p>
<p align="justify">Es muy común en las aplicaciones .Net, tener clases que tengan constructores de diversas firmas, es decir, que puedan ser llamadas de distintas formas. Un ejemplo, tomado de las clases del .NET Framework, es la clase SqlCommand, la cual tiene varios parámetros con los cuales puede ser inicializado:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2010/03/image6.png"><img loading="lazy" style="display:block;float:none;margin-left:auto;margin-right:auto;border-width:0;" title="image" border="0" alt="image" src="https://hectorperez.wordpress.com/wp-content/uploads/2010/03/image_thumb6.png?w=456&#038;h=89" width="456" height="89" /></a> </p>
<p align="justify">Como puedes ver, cuando trabajas con esta clase, puedes llamar a la misma pasándole ningún parámetro, una cadena como parámetro, o bien un cadena y un objeto del tipo SqlConnection, para los que no lo sepan, a esto se le llama overloading (o sobrecarga en español), y nos sirve para tener un mismo método con el mismo nombre, pero que reciba diferentes parámetros.</p>
<p align="justify">Hagamos nosotros un ejemplo de esto, creemos una nueva clase, con 3 propiedades, y 1 constructor, que será básicamente lo que hemos visto en el tip # 2:</p>
<div style="border-bottom:silver 1px solid;text-align:left;border-left:silver 1px solid;line-height:12pt;background-color:#f4f4f4;width:97.5%;font-family:&#39;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;border-top:silver 1px solid;cursor:text;border-right:silver 1px solid;margin:20px 0 10px;padding:4px;" id="codeSnippetWrapper">
<div style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0;" id="codeSnippet">
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum1">   1:</span> <span style="color:#0000ff;">class</span> Cliente</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum2">   2:</span> {</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum3">   3:</span>     <span style="color:#0000ff;">public</span> <span style="color:#0000ff;">string</span> Nombre { get; set; }</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum4">   4:</span>     <span style="color:#0000ff;">public</span> <span style="color:#0000ff;">int</span> Edad { get; set; }</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum5">   5:</span>     <span style="color:#0000ff;">public</span> <span style="color:#0000ff;">decimal</span> Efectivo { get; set; }</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum6">   6:</span>&#160; </pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum7">   7:</span>     <span style="color:#0000ff;">public</span> Cliente(<span style="color:#0000ff;">string</span> _nombre, <span style="color:#0000ff;">int</span> _edad, <span style="color:#0000ff;">decimal</span> _efectivo)</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum8">   8:</span>     {</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum9">   9:</span>         <span style="color:#0000ff;">this</span>.Nombre = _nombre;</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum10">  10:</span>         <span style="color:#0000ff;">this</span>.Edad = _edad;</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum11">  11:</span>         <span style="color:#0000ff;">this</span>.Efectivo = _efectivo;</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum12">  12:</span>     }</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum13">  13:</span> }</pre>
<p><!--CRLF--></div>
</div>
<p align="justify">A esta clase, le agregaremos un nuevo constructor, el cual tendrá una sobrecarga de 2 parámetros, y en el cual, inicializaremos el valor efectivo a 0:</p>
<p>&#160;</p>
<div style="border-bottom:silver 1px solid;text-align:left;border-left:silver 1px solid;line-height:12pt;background-color:#f4f4f4;width:97.5%;font-family:&#39;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;border-top:silver 1px solid;cursor:text;border-right:silver 1px solid;margin:20px 0 10px;padding:4px;" id="codeSnippetWrapper">
<div style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0;" id="codeSnippet">
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum1">   1:</span> <span style="color:#0000ff;">class</span> Cliente</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum2">   2:</span> {</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum3">   3:</span>     <span style="color:#0000ff;">public</span> <span style="color:#0000ff;">string</span> Nombre { get; set; }</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum4">   4:</span>     <span style="color:#0000ff;">public</span> <span style="color:#0000ff;">int</span> Edad { get; set; }</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum5">   5:</span>     <span style="color:#0000ff;">public</span> <span style="color:#0000ff;">decimal</span> Efectivo { get; set; }</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum6">   6:</span>&#160; </pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum7">   7:</span>     <span style="color:#0000ff;">public</span> Cliente(<span style="color:#0000ff;">string</span> _nombre, <span style="color:#0000ff;">int</span> _edad, <span style="color:#0000ff;">decimal</span> _efectivo)</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum8">   8:</span>     {</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum9">   9:</span>         <span style="color:#0000ff;">this</span>.Nombre = _nombre;</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum10">  10:</span>         <span style="color:#0000ff;">this</span>.Edad = _edad;</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum11">  11:</span>         <span style="color:#0000ff;">this</span>.Efectivo = _efectivo;</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum12">  12:</span>     }</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum13">  13:</span>&#160; </pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum14">  14:</span>     <span style="color:#0000ff;">public</span> Cliente(<span style="color:#0000ff;">string</span> _nombre, <span style="color:#0000ff;">int</span> _edad)</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum15">  15:</span>     {</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum16">  16:</span>         <span style="color:#0000ff;">this</span>.Nombre = _nombre;</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum17">  17:</span>         <span style="color:#0000ff;">this</span>.Edad = _edad;</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum18">  18:</span>         <span style="color:#0000ff;">this</span>.Efectivo = 0.00M;</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum19">  19:</span>     }</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum20">  20:</span> }</pre>
<p><!--CRLF--></div>
</div>
<p align="justify">¿Y si tuviéramos otro constructor que no recibiera parámetros y quisiéramos inicializar todo a 0? ¿Qué tal otro constructor que solo reciba un parámetro? Y si tuvieras un constructor que tuviera 10 parámetros y tuviéramos que inicializar cada propiedad mediante la asignación de estos parámetros? Tendríamos que empezar a copiar y a pegar el código de cada constructor. <u>Se dice que cuando se empieza a repetir nuestro código</u>, algo está mal.</p>
<p align="justify"> Mucho lío ¿No?</p>
<p><strong></strong></p>
<p><strong>Solución:</strong></p>
<p align="justify">Crear un constructor central, que haga todo el trabajo, y que sea solamente llamado en los constructores que deriven de él.</p>
<p align="justify">Así es, en nuestro ejemplo, tomaremos como constructor base el primer constructor con 3 parámetros, y lo único que haremos, será usarlo en nuestro segundo constructor de la siguiente manera:</p>
<div style="border-bottom:silver 1px solid;text-align:left;border-left:silver 1px solid;line-height:12pt;background-color:#f4f4f4;width:97.5%;font-family:&#39;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;border-top:silver 1px solid;cursor:text;border-right:silver 1px solid;margin:20px 0 10px;padding:4px;" id="codeSnippetWrapper">
<div style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0;" id="codeSnippet">
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum1">   1:</span> <span style="color:#0000ff;">public</span> Cliente(<span style="color:#0000ff;">string</span> _nombre, <span style="color:#0000ff;">int</span> _edad) </pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum2">   2:</span>             : <span style="color:#0000ff;">this</span>(_nombre, _edad, 0.00M)</pre>
<p><!--CRLF--></div>
</div>
<p>Esa es la manera de crear constructores que usen a uno principal. Para que veas que tanto se simplifica el código, aquí dejo el código para crear los constructores con ninguno, uno, dos y tres parámetros.</p>
<div style="border-bottom:silver 1px solid;text-align:left;border-left:silver 1px solid;line-height:12pt;background-color:#f4f4f4;width:97.5%;font-family:&#39;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;border-top:silver 1px solid;cursor:text;border-right:silver 1px solid;margin:20px 0 10px;padding:4px;" id="codeSnippetWrapper">
<div style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0;" id="codeSnippet">
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum1">   1:</span> <span style="color:#0000ff;">class</span> Cliente</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum2">   2:</span> {</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum3">   3:</span>     <span style="color:#0000ff;">public</span> <span style="color:#0000ff;">string</span> Nombre { get; set; }</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum4">   4:</span>     <span style="color:#0000ff;">public</span> <span style="color:#0000ff;">int</span> Edad { get; set; }</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum5">   5:</span>     <span style="color:#0000ff;">public</span> <span style="color:#0000ff;">decimal</span> Efectivo { get; set; }</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum6">   6:</span>&#160; </pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum7">   7:</span>     <span style="color:#0000ff;">public</span> Cliente(<span style="color:#0000ff;">string</span> _nombre, <span style="color:#0000ff;">int</span> _edad, <span style="color:#0000ff;">decimal</span> _efectivo)</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum8">   8:</span>     {</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum9">   9:</span>         <span style="color:#0000ff;">this</span>.Nombre = _nombre;</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum10">  10:</span>         <span style="color:#0000ff;">this</span>.Edad = _edad;</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum11">  11:</span>         <span style="color:#0000ff;">this</span>.Efectivo = _efectivo;</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum12">  12:</span>     }</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum13">  13:</span>     </pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum14">  14:</span>     <span style="color:#0000ff;">public</span> Cliente(<span style="color:#0000ff;">string</span> _nombre, <span style="color:#0000ff;">int</span> _edad) </pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum15">  15:</span>         : <span style="color:#0000ff;">this</span>(_nombre, _edad, 0.00M)</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum16">  16:</span>     {</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum17">  17:</span>     }</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum18">  18:</span>     <span style="color:#0000ff;">public</span> Cliente(<span style="color:#0000ff;">string</span> _nombre)</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum19">  19:</span>         : <span style="color:#0000ff;">this</span>(_nombre, 18, 0.00M)</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum20">  20:</span>     {</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum21">  21:</span>     }</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum22">  22:</span>     <span style="color:#0000ff;">public</span> Cliente()</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum23">  23:</span>         : <span style="color:#0000ff;">this</span>(<span style="color:#006080;">&quot;Héctor&quot;</span>, 18, 0.00M)</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum24">  24:</span>     {</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum25">  25:</span>     }</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum26">  26:</span> }</pre>
<p><!--CRLF--></div>
</div>
<p>Ahora sí, tenemos disponibles diferentes inicializaciones para nuestra clase:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2010/03/image7.png"><img loading="lazy" style="border-bottom:0;border-left:0;display:block;float:none;margin-left:auto;border-top:0;margin-right:auto;border-right:0;" title="image" border="0" alt="image" src="https://hectorperez.wordpress.com/wp-content/uploads/2010/03/image_thumb7.png?w=448&#038;h=176" width="448" height="176" /></a> </p>
<p>Nada de copiar y pegar. Cool eh? <img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>Link de la solución: <a title="Tip3.zip" href="http://rapidshare.com/files/361572551/Tip3.zip">Tip3.zip</a></p>
<p>Salu2</p>
<p align="right"><font size="4" face="ge"><strong><em>Héctor Uriel Pérez Rojas</em></strong></font></p>
]]></content:encoded>
					
					<wfw:commentRss>https://hectorperez.wordpress.com/2010/03/10/tips-para-programar-orientado-a-objetos-con-c-tip-3-ten-un-constructor-central/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">659</post-id>
		<media:content url="https://1.gravatar.com/avatar/d5470cbae4baec70037bcb8002d500454cd05af89c1dedb32b0fc7aff97a67c2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Héctor Uriel Pérez Rojas</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2010/03/image_thumb6.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2010/03/image_thumb7.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>Convertir N&#250;meros a Letras</title>
		<link>https://hectorperez.wordpress.com/2010/03/09/convertir-nmeros-a-letras/</link>
					<comments>https://hectorperez.wordpress.com/2010/03/09/convertir-nmeros-a-letras/#comments</comments>
		
		<dc:creator><![CDATA[hectorperez]]></dc:creator>
		<pubDate>Tue, 09 Mar 2010 04:22:00 +0000</pubDate>
				<category><![CDATA[Code Snippets]]></category>
		<category><![CDATA[Utilidades]]></category>
		<guid isPermaLink="false">http://hectorperez.wordpress.com/2010/03/09/convertir-nmeros-a-letras/</guid>

					<description><![CDATA[He agregado a la sección utilidades, una clase llamada Conversiones, que básicamente lo que hace es convertir números a letras. Veremos su funcionamiento. En primer lugar, lo que tienes que hacer es agregar la clase la cual puedes descargar de aquí, de la siguiente manera (Lo haré como demostración en una aplicación Windows Forms): Para &#8230; <a href="https://hectorperez.wordpress.com/2010/03/09/convertir-nmeros-a-letras/" class="more-link">Continuar leyendo <span class="screen-reader-text">Convertir N&#250;meros a&#160;Letras</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p align="justify">He agregado a la sección utilidades, una clase llamada Conversiones, que básicamente lo que hace es convertir números a letras. Veremos su funcionamiento.</p>
<p align="justify">En primer lugar, lo que tienes que hacer es agregar la clase la cual puedes descargar de <a href="http://rapidshare.com/files/360889690/NumeroALetras.zip" target="_blank">aquí</a>, de la siguiente manera (Lo haré como demostración en una aplicación Windows Forms):</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2010/03/image2.png"><img loading="lazy" style="border-bottom:0;border-left:0;display:block;float:none;margin-left:auto;border-top:0;margin-right:auto;border-right:0;" title="image" border="0" alt="image" src="https://hectorperez.wordpress.com/wp-content/uploads/2010/03/image_thumb2.png?w=326&#038;h=266" width="326" height="266" /></a> </p>
<p align="justify"><a href="https://hectorperez.wordpress.com/wp-content/uploads/2010/03/image3.png"><img loading="lazy" style="border-bottom:0;border-left:0;display:block;float:none;margin-left:auto;border-top:0;margin-right:auto;border-right:0;" title="image" border="0" alt="image" src="https://hectorperez.wordpress.com/wp-content/uploads/2010/03/image_thumb3.png?w=180&#038;h=120" width="180" height="120" /></a>Para la demostración, como escenario, supondré que tengo una aplicación que requiere convertir una cantidad de dinero en texto, para esto, he agregado un textbox, donde ingresaremos la cantidad que queramos convertir, y un label, que será donde se muestre el texto convertido:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2010/03/image4.png"><img loading="lazy" style="border-bottom:0;border-left:0;display:block;float:none;margin-left:auto;border-top:0;margin-right:auto;border-right:0;" title="image" border="0" alt="image" src="https://hectorperez.wordpress.com/wp-content/uploads/2010/03/image_thumb4.png?w=306&#038;h=213" width="306" height="213" /></a> </p>
</p>
<p align="justify">Sobre el código, he usado el evento TextChanged para convertir la cantidad en números, a la cantidad en letras:</p>
<div style="border-bottom:silver 1px solid;text-align:left;border-left:silver 1px solid;line-height:12pt;background-color:#f4f4f4;width:97.5%;font-family:&#39;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;border-top:silver 1px solid;cursor:text;border-right:silver 1px solid;margin:20px 0 10px;padding:4px;" id="codeSnippetWrapper">
<div style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0;" id="codeSnippet">
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum1">   1:</span> <span style="color:#0000ff;">private</span> <span style="color:#0000ff;">void</span> txbCantidad_TextChanged(<span style="color:#0000ff;">object</span> sender, EventArgs e)</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum2">   2:</span> {</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum3">   3:</span>     <span style="color:#0000ff;">string</span> cantidad = txbCantidad.Text;</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum4">   4:</span>     <span style="color:#0000ff;">string</span> newcantidad = cantidad.Remove(0, 1);</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum5">   5:</span>     lblCantidadLetras.Text = <span style="color:#006080;">&quot;Son: &quot;</span> </pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum6">   6:</span>          + Conversiones.NumeroALetras(newcantidad) + <span style="color:#006080;">&quot; M.N.&quot;</span>;</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum7">   7:</span> }</pre>
<p><!--CRLF--></div>
</div>
<p align="justify">Ahora, cuando empezamos a escribir, automáticamente nos convierte a letras la cantidad:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2010/03/image5.png"><img loading="lazy" style="border-bottom:0;border-left:0;display:block;float:none;margin-left:auto;border-top:0;margin-right:auto;border-right:0;" title="image" border="0" alt="image" src="https://hectorperez.wordpress.com/wp-content/uploads/2010/03/image_thumb5.png?w=314&#038;h=222" width="314" height="222" /></a> </p>
<p>Quiero aclarar que el código de la clase no es mío, si alguien conoce al autor de dicha clase, hágamelo saber para darle su respectivo crédito <img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>Salu2</p>
<p>Clase: <a title="NumeroALetras.zip" href="http://rapidshare.com/files/360889690/NumeroALetras.zip">NumeroALetras.zip</a></p>
<p align="right"><font size="4" face="ge"><strong>Héctor Uriel Pérez Rojas</strong></font></p>
]]></content:encoded>
					
					<wfw:commentRss>https://hectorperez.wordpress.com/2010/03/09/convertir-nmeros-a-letras/feed/</wfw:commentRss>
			<slash:comments>3</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">652</post-id>
		<media:content url="https://1.gravatar.com/avatar/d5470cbae4baec70037bcb8002d500454cd05af89c1dedb32b0fc7aff97a67c2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Héctor Uriel Pérez Rojas</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2010/03/image_thumb2.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2010/03/image_thumb3.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2010/03/image_thumb4.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2010/03/image_thumb5.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>Tips para programar Orientado a Objetos con C#.- Tip #2: Crea y Usa Constructores</title>
		<link>https://hectorperez.wordpress.com/2010/03/02/tips-para-programar-orientado-a-objetos-con-c-tip-2-crea-y-usa-constructores/</link>
					<comments>https://hectorperez.wordpress.com/2010/03/02/tips-para-programar-orientado-a-objetos-con-c-tip-2-crea-y-usa-constructores/#comments</comments>
		
		<dc:creator><![CDATA[hectorperez]]></dc:creator>
		<pubDate>Tue, 02 Mar 2010 06:19:00 +0000</pubDate>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Tips]]></category>
		<guid isPermaLink="false">http://hectorperez.wordpress.com/2010/03/02/tips-para-programar-orientado-a-objetos-con-c-tip-2-crea-y-usa-constructores/</guid>

					<description><![CDATA[&#160; Segundo Tip para programar Orientado a Objetos con C#, espero que a mas de uno le sirva 🙂 Contexto: En el ejemplo del tip # 1, hemos creado una clase Cliente, el cual tiene 3 propiedades (Nombre, Edad y Cuenta). Cuando hemos hecho uso de esta clase, ha sido de la siguiente forma: 1: &#8230; <a href="https://hectorperez.wordpress.com/2010/03/02/tips-para-programar-orientado-a-objetos-con-c-tip-2-crea-y-usa-constructores/" class="more-link">Continuar leyendo <span class="screen-reader-text">Tips para programar Orientado a Objetos con C#.- Tip #2: Crea y Usa&#160;Constructores</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2010/03/image.png"><img loading="lazy" style="display:block;float:none;margin-left:auto;margin-right:auto;border-width:0;" title="image" border="0" alt="image" src="https://hectorperez.wordpress.com/wp-content/uploads/2010/03/image_thumb.png?w=370&#038;h=282" width="370" height="282" /></a></p>
<p>&#160;</p>
<p align="justify">Segundo Tip para programar Orientado a Objetos con C#, espero que a mas de uno le sirva <img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p align="justify"><strong>Contexto:</strong></p>
<p align="justify">En el ejemplo del tip # 1, hemos creado una clase Cliente, el cual tiene 3 propiedades (Nombre, Edad y Cuenta). Cuando hemos hecho uso de esta clase, ha sido de la siguiente forma:</p>
<div style="border-bottom:silver 1px solid;text-align:left;border-left:silver 1px solid;line-height:12pt;background-color:#f4f4f4;width:97.5%;font-family:&#39;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;border-top:silver 1px solid;cursor:text;border-right:silver 1px solid;margin:20px 0 10px;padding:4px;" id="codeSnippetWrapper">
<div style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0;" id="codeSnippet">
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum1">   1:</span> <span style="color:#0000ff;">static</span> <span style="color:#0000ff;">void</span> Main(<span style="color:#0000ff;">string</span>[] args)</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum2">   2:</span> {</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum3">   3:</span>     Cliente cliente = <span style="color:#0000ff;">new</span> Cliente();</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum4">   4:</span>     cliente.Nombre = <span style="color:#006080;">&quot;Héctor&quot;</span>;</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum5">   5:</span>     cliente.Edad = 23;</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum6">   6:</span>     cliente.Cuenta = 22312;</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum7">   7:</span>     System.Console.WriteLine(cliente);</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum8">   8:</span> }</pre>
<p><!--CRLF--></div>
</div>
<p>Como podemos ver, tenemos que inicializar explícitamente cada una de las propiedades (cliente.Nombre=”Héctor; ….).</p>
<p>Imagina que tienes que crear una lista de Clientes, e inicializarla desde el inicio, una posible solución sería esta:</p>
<div style="border-bottom:silver 1px solid;text-align:left;border-left:silver 1px solid;line-height:12pt;background-color:#f4f4f4;width:97.5%;font-family:&#39;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;border-top:silver 1px solid;cursor:text;border-right:silver 1px solid;margin:20px 0 10px;padding:4px;" id="codeSnippetWrapper">
<div style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0;" id="codeSnippet">
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum1">   1:</span> <span style="color:#0000ff;">public</span> List&lt;Cliente&gt; RellenarLista()</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum2">   2:</span> {</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum3">   3:</span>     List&lt;Cliente&gt; lista = <span style="color:#0000ff;">new</span> List&lt;Cliente&gt;();</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum4">   4:</span>&#160; </pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum5">   5:</span>     Cliente cliente1 = <span style="color:#0000ff;">new</span> Cliente();</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum6">   6:</span>     cliente1.Nombre = <span style="color:#006080;">&quot;Héctor&quot;</span>;</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum7">   7:</span>     cliente1.Edad = 23;</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum8">   8:</span>     cliente1.Cuenta = 1111;</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum9">   9:</span>     lista.Add(cliente1);</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum10">  10:</span>&#160; </pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum11">  11:</span>     Cliente cliente2 = <span style="color:#0000ff;">new</span> Cliente();</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum12">  12:</span>     cliente2.Nombre = <span style="color:#006080;">&quot;Vianey&quot;</span>;</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum13">  13:</span>     cliente2.Edad = 23;</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum14">  14:</span>     cliente2.Cuenta = 1111;</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum15">  15:</span>     lista.Add(cliente2);</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum16">  16:</span>&#160; </pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum17">  17:</span>     Cliente cliente3 = <span style="color:#0000ff;">new</span> Cliente();</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum18">  18:</span>     cliente3.Nombre = <span style="color:#006080;">&quot;Anahí&quot;</span>;</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum19">  19:</span>     cliente3.Edad = 23;</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum20">  20:</span>     cliente3.Cuenta = 1111;</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum21">  21:</span>     lista.Add(cliente3);</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum22">  22:</span>&#160; </pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum23">  23:</span>     <span style="color:#0000ff;">return</span> lista;</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum24">  24:</span> }</pre>
<p><!--CRLF--></div>
</div>
<p align="justify">Ahora imagina, si fueran decenas de clientes los que tuvieras que inicializar, esto se vuelve cada vez mas complicado, con la sintaxis que hemos estado utilizando.</p>
<p align="justify"><strong>Solución:</strong></p>
<p align="justify">El tip de este día es, crear constructores para inicializar los valores de las propiedades una vez creada la clase. ¿Cómo se hace esto? </p>
<p align="justify">A través de un constructor. Un constructor es un método que se ejecutará cuando la clase sea instanciada. Si no está declarado uno por nosotros, el .NET&#160; Framework creará uno por nosotros.</p>
<p align="justify">Primero debemos modificar nuestra clase Clientes, creando un constructor. Un constructor tiene la forma:</p>
<div style="border-bottom:silver 1px solid;text-align:left;border-left:silver 1px solid;line-height:12pt;background-color:#f4f4f4;width:97.5%;font-family:&#39;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;border-top:silver 1px solid;cursor:text;border-right:silver 1px solid;margin:20px 0 10px;padding:4px;" id="codeSnippetWrapper">
<div style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0;" id="codeSnippet">
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum1">   1:</span> Class Cliente</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum2">   2:</span> {</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum3">   3:</span>     <span style="color:#0000ff;">public</span> Cliente()</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum4">   4:</span>     {</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum5">   5:</span>     }</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum6">   6:</span> }</pre>
<p><!--CRLF--></div>
</div>
<p align="justify">Como puedes ver, es parecido a un método, toma el mismo nombre que la clase, y no tiene ningún tipo de retorno. Este constructor será llamado cuando se utilice la palabra new.</p>
<p align="justify">Para nuestro ejemplo, debemos modificar nuestro constructor, de tal forma que podamos inicializar nuestras propiedades (Nombre, Edad y Cuenta), una vez que sea creada la instancia de la clase. Esto lo logramos de la siguiente manera:</p>
<div style="border-bottom:silver 1px solid;text-align:left;border-left:silver 1px solid;line-height:12pt;background-color:#f4f4f4;width:97.5%;font-family:&#39;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;border-top:silver 1px solid;cursor:text;border-right:silver 1px solid;margin:20px 0 10px;padding:4px;" id="codeSnippetWrapper">
<div style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0;" id="codeSnippet">
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum1">   1:</span> <span style="color:#0000ff;">class</span> Cliente</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum2">   2:</span> {</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum3">   3:</span>     <span style="color:#0000ff;">public</span> <span style="color:#0000ff;">string</span> Nombre { get; set; }</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum4">   4:</span>     <span style="color:#0000ff;">public</span> <span style="color:#0000ff;">int</span> Edad { get; set; }</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum5">   5:</span>     <span style="color:#0000ff;">public</span> <span style="color:#0000ff;">int</span> Cuenta { get; set; }</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum6">   6:</span>&#160; </pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum7">   7:</span>     <span style="color:#0000ff;">public</span> Cliente(<span style="color:#0000ff;">string</span> _nombre, <span style="color:#0000ff;">int</span> _edad, <span style="color:#0000ff;">int</span> _cuenta)</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum8">   8:</span>     {</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum9">   9:</span>         <span style="color:#0000ff;">this</span>.Nombre = _nombre;</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum10">  10:</span>         <span style="color:#0000ff;">this</span>.Edad = _edad;</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum11">  11:</span>         <span style="color:#0000ff;">this</span>.Cuenta = _cuenta;</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum12">  12:</span>     }</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum13">  13:</span> }</pre>
<p><!--CRLF--></div>
</div>
<p align="justify">Ahora bien, cuando queramos crear una nueva instancia de Cliente, se nos pedirá que le pasemos los parámetros solicitados por el constructor que hemos creado, si no, este marcará error:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2010/03/image1.png"><img loading="lazy" style="display:inline;border-width:0;" title="image" border="0" alt="image" src="https://hectorperez.wordpress.com/wp-content/uploads/2010/03/image_thumb1.png?w=514&#038;h=132" width="514" height="132" /></a></p>
<p align="justify">Lo que el error nos dice, es que el constructor de Cliente, tiene 3 parámetros, y que está tratando de ser invocado, sin ninguno, por lo que nuestra inicialización quedaría:</p>
<div style="border-bottom:silver 1px solid;text-align:left;border-left:silver 1px solid;line-height:12pt;background-color:#f4f4f4;width:97.5%;font-family:&#39;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;border-top:silver 1px solid;cursor:text;border-right:silver 1px solid;margin:20px 0 10px;padding:4px;" id="codeSnippetWrapper">
<div style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0;" id="codeSnippet">
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum1">   1:</span> <span style="color:#0000ff;">class</span> ListaClientes</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum2">   2:</span> {</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum3">   3:</span>     <span style="color:#0000ff;">public</span> List&lt;Cliente&gt; RellenarLista()</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum4">   4:</span>     {</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum5">   5:</span>         List&lt;Cliente&gt; lista = <span style="color:#0000ff;">new</span> List&lt;Cliente&gt;();</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum6">   6:</span>&#160; </pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum7">   7:</span>         Cliente cliente1 = <span style="color:#0000ff;">new</span> Cliente(<span style="color:#006080;">&quot;Héctor&quot;</span>, 23, 1111);</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum8">   8:</span>         lista.Add(cliente1);</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum9">   9:</span>&#160; </pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum10">  10:</span>         Cliente cliente2 = <span style="color:#0000ff;">new</span> Cliente(<span style="color:#006080;">&quot;Vianey&quot;</span>, 21, 2342);</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum11">  11:</span>         lista.Add(cliente2);</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum12">  12:</span>&#160; </pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum13">  13:</span>         Cliente cliente3 = <span style="color:#0000ff;">new</span> Cliente(<span style="color:#006080;">&quot;Anahí&quot;</span>, 22, 8232);</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum14">  14:</span>         lista.Add(cliente3);</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum15">  15:</span>&#160; </pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum16">  16:</span>         <span style="color:#0000ff;">return</span> lista;</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum17">  17:</span>     }</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum18">  18:</span> }</pre>
<p><!--CRLF--></div>
</div>
<p align="justify">Como vemos, se ha simplificado muchísimo el código, haciéndolo mas fácil de leer, y de escribir. Cualquier duda o comentario, no duden en escribirlo <img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p align="justify">Link del ejemplo: <a title="Tip2.zip" href="http://rapidshare.com/files/357721593/Tip2.zip">Tip2.zip</a></p>
<p>Salu2</p>
<p align="right"><font size="3" face="ge"><strong><em>Héctor Uriel Pérez Rojas</em></strong></font></p>
]]></content:encoded>
					
					<wfw:commentRss>https://hectorperez.wordpress.com/2010/03/02/tips-para-programar-orientado-a-objetos-con-c-tip-2-crea-y-usa-constructores/feed/</wfw:commentRss>
			<slash:comments>8</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">639</post-id>
		<media:content url="https://1.gravatar.com/avatar/d5470cbae4baec70037bcb8002d500454cd05af89c1dedb32b0fc7aff97a67c2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Héctor Uriel Pérez Rojas</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2010/03/image_thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2010/03/image_thumb1.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>Tips para programar Orientado a Objetos con C#.- Tip #1: Override ToString()</title>
		<link>https://hectorperez.wordpress.com/2010/02/21/tips-para-programar-orientado-a-objetos-con-c-tip-1-override-tostring/</link>
					<comments>https://hectorperez.wordpress.com/2010/02/21/tips-para-programar-orientado-a-objetos-con-c-tip-1-override-tostring/#comments</comments>
		
		<dc:creator><![CDATA[hectorperez]]></dc:creator>
		<pubDate>Sun, 21 Feb 2010 05:52:00 +0000</pubDate>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Tips]]></category>
		<guid isPermaLink="false">http://hectorperez.wordpress.com/2010/02/21/tips-para-programar-orientado-a-objetos-con-c-tip-1-override-tostring/</guid>

					<description><![CDATA[&#160; Hola! ¿Qué tal? Espero que todos anden bien 😉 En esta nueva colección de posts, mencionaré algunos tips que pueden ayudar a mas de uno, a sacar el mayor provecho mientras desarrolla en una programación Orientada&#160; a Objetos. Espero que les gusten, como siempre, comentarios, preguntas son recibidos, así que empezamos. Contexto: Muchas veces, &#8230; <a href="https://hectorperez.wordpress.com/2010/02/21/tips-para-programar-orientado-a-objetos-con-c-tip-1-override-tostring/" class="more-link">Continuar leyendo <span class="screen-reader-text">Tips para programar Orientado a Objetos con C#.- Tip #1: Override&#160;ToString()</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2010/02/image.png"><img loading="lazy" style="display:block;float:none;margin-left:auto;margin-right:auto;border-width:0;" title="image" border="0" alt="image" src="https://hectorperez.wordpress.com/wp-content/uploads/2010/02/image_thumb.png?w=476&#038;h=366" width="476" height="366" /></a></p>
<p>&#160;</p>
<p align="justify">Hola! ¿Qué tal? Espero que todos anden bien <img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /> En esta nueva colección de posts, mencionaré algunos tips que pueden ayudar a mas de uno, a sacar el mayor provecho mientras desarrolla en una programación Orientada&#160; a Objetos. Espero que les gusten, como siempre, comentarios, preguntas son recibidos, así que empezamos.</p>
<p align="justify"><strong>Contexto</strong>:</p>
<p align="justify">Muchas veces, cuando somos nuevos programando, cometemos el error de trabajar con nuestras clases sin sobreescribir el método ToString que viene por defecto en la clase, a qué me refiero con esto? Pues a esto:</p>
<p align="justify">Supongamos que tenemos una clase Cliente, con la siguiente estructura:</p>
<div style="border-bottom:silver 1px solid;text-align:left;border-left:silver 1px solid;line-height:12pt;background-color:#f4f4f4;width:97.5%;font-family:&#39;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;border-top:silver 1px solid;cursor:text;border-right:silver 1px solid;margin:20px 0 10px;padding:4px;" id="codeSnippetWrapper">
<div style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0;" id="codeSnippet">
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum1">   1:</span> <span style="color:#0000ff;">class</span> Cliente</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum2">   2:</span> {</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum3">   3:</span>     <span style="color:#0000ff;">public</span> <span style="color:#0000ff;">string</span> Nombre { get; set; }</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum4">   4:</span>     <span style="color:#0000ff;">public</span> <span style="color:#0000ff;">int</span> Edad { get; set; }</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum5">   5:</span>     <span style="color:#0000ff;">public</span> <span style="color:#0000ff;">int</span> Cuenta { get; set; }</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum6">   6:</span> }</pre>
<p><!--CRLF--></div>
</div>
<p align="justify">Para probarla, he creado una solución de tipo consola, sobre la cual creo una nueva instancia de la clase, le asigno vales a sus propiedades, y posteriormente la mando a llamar para su impresión a través del método WriteLine de la Consola:</p>
<div style="border-bottom:silver 1px solid;text-align:left;border-left:silver 1px solid;line-height:12pt;background-color:#f4f4f4;width:97.5%;font-family:&#39;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;border-top:silver 1px solid;cursor:text;border-right:silver 1px solid;margin:20px 0 10px;padding:4px;" id="codeSnippetWrapper">
<div style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0;" id="codeSnippet">
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum1">   1:</span> <span style="color:#0000ff;">static</span> <span style="color:#0000ff;">void</span> Main(<span style="color:#0000ff;">string</span>[] args)</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum2">   2:</span> {</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum3">   3:</span>     Cliente cliente = <span style="color:#0000ff;">new</span> Cliente();</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum4">   4:</span>     cliente.Nombre = <span style="color:#006080;">&quot;Héctor&quot;</span>;</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum5">   5:</span>     cliente.Edad = 23;</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum6">   6:</span>     cliente.Cuenta = 22312;</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum7">   7:</span>     System.Console.WriteLine(cliente);</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum8">   8:</span> }</pre>
<p><!--CRLF--></div>
</div>
<p>Esto, nos tira el siguiente resultado:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2010/02/image1.png"><img loading="lazy" style="display:block;float:none;margin-left:auto;margin-right:auto;border-width:0;" title="image" border="0" alt="image" src="https://hectorperez.wordpress.com/wp-content/uploads/2010/02/image_thumb1.png?w=327&#038;h=94" width="327" height="94" /></a> </p>
</p>
<p align="justify"><strong>Solución</strong>:</p>
<p align="justify">Ok, vamos con el tip, sobreescribir el método ToString que viene por defecto en cada clase, para especificar qué queremos imprimir cuando ésta sea llamada, lo único que tenemos que hacer, es agregar la siguiente sintaxis a nuestra clase:</p>
<div style="border-bottom:silver 1px solid;text-align:left;border-left:silver 1px solid;line-height:12pt;background-color:#f4f4f4;width:97.5%;font-family:&#39;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;border-top:silver 1px solid;cursor:text;border-right:silver 1px solid;margin:20px 0 10px;padding:4px;" id="codeSnippetWrapper">
<div style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0;" id="codeSnippet">
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum1">   1:</span> <span style="color:#0000ff;">public</span> <span style="color:#0000ff;">override</span> <span style="color:#0000ff;">string</span> ToString(){}</pre>
<p><!--CRLF--></div>
</div>
<p>Con lo que, específicamente nuestra clase quedaría:</p>
<div style="border-bottom:silver 1px solid;text-align:left;border-left:silver 1px solid;line-height:12pt;background-color:#f4f4f4;width:97.5%;font-family:&#39;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;border-top:silver 1px solid;cursor:text;border-right:silver 1px solid;margin:20px 0 10px;padding:4px;" id="codeSnippetWrapper">
<div style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0;" id="codeSnippet">
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum1">   1:</span> <span style="color:#0000ff;">class</span> Cliente</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum2">   2:</span> {</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum3">   3:</span>     <span style="color:#0000ff;">public</span> <span style="color:#0000ff;">string</span> Nombre { get; set; }</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum4">   4:</span>     <span style="color:#0000ff;">public</span> <span style="color:#0000ff;">int</span> Edad { get; set; }</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum5">   5:</span>     <span style="color:#0000ff;">public</span> <span style="color:#0000ff;">int</span> Cuenta { get; set; }</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum6">   6:</span>&#160; </pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum7">   7:</span>     <span style="color:#0000ff;">public</span> <span style="color:#0000ff;">override</span> <span style="color:#0000ff;">string</span> ToString()</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum8">   8:</span>     {</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum9">   9:</span>         <span style="color:#0000ff;">return</span> <span style="color:#006080;">&quot;Mi nombre es: &quot;</span> + Nombre</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum10">  10:</span>             + <span style="color:#006080;">&quot; y tengo: &quot;</span> + Edad</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum11">  11:</span>             + <span style="color:#006080;">&quot;y mi cuenta ficticia es: &quot;</span> + Cuenta;</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum12">  12:</span>     }</pre>
<p><!--CRLF--></div>
</div>
<p>Ahora, volvemos a llamar a nuestra clase desde nuestra aplicación de consola, con lo que nos retorna:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2010/02/image2.png"><img loading="lazy" style="display:block;float:none;margin-left:auto;margin-right:auto;border-width:0;" title="image" border="0" alt="image" src="https://hectorperez.wordpress.com/wp-content/uploads/2010/02/image_thumb2.png?w=452&#038;h=89" width="452" height="89" /></a> </p>
<p><strong>Ejemplo práctico:</strong></p>
<p align="justify">Ahora bien, para que no se quede todo en una aplicación de consola, para probar esto mismo he creado un formulario en WPF(igual pudo haber sido una aplicación Windows Forms, ASP.NET, etc):</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2010/02/image3.png"><img loading="lazy" style="display:block;float:none;margin-left:auto;margin-right:auto;border-width:0;" title="image" border="0" alt="image" src="https://hectorperez.wordpress.com/wp-content/uploads/2010/02/image_thumb3.png?w=395&#038;h=250" width="395" height="250" /></a> </p>
<p align="justify">Básicamente, el concepto es el mismo, introduce el usuario un nombre, su edad y su cuenta, y posteriormente es agregado a la lista de los clientes. </p>
<div style="border-bottom:silver 1px solid;text-align:left;border-left:silver 1px solid;line-height:12pt;background-color:#f4f4f4;width:97.5%;font-family:&#39;direction:ltr;max-height:200px;font-size:8pt;overflow:auto;border-top:silver 1px solid;cursor:text;border-right:silver 1px solid;margin:20px 0 10px;padding:4px;" id="codeSnippetWrapper">
<div style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;padding:0;" id="codeSnippet">
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum1">   1:</span> <span style="color:#0000ff;">private</span> <span style="color:#0000ff;">void</span> btnAgregar_Click(<span style="color:#0000ff;">object</span> sender, RoutedEventArgs e)</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum2">   2:</span> {</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum3">   3:</span>     Cliente cliente = <span style="color:#0000ff;">new</span> Cliente();</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum4">   4:</span>     cliente.Nombre = txbNombre.Text;</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum5">   5:</span>     cliente.Edad = <span style="color:#0000ff;">int</span>.Parse(txbEdad.Text);</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum6">   6:</span>     cliente.Cuenta = <span style="color:#0000ff;">int</span>.Parse(txbCuenta.Text);</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:white;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum7">   7:</span>     lsbCuentas.Items.Add(cliente);</pre>
<p><!--CRLF--></p>
<pre style="text-align:left;line-height:12pt;background-color:#f4f4f4;width:100%;font-family:&#39;direction:ltr;color:black;font-size:8pt;overflow:visible;border-style:none;margin:0;padding:0;"><span style="color:#606060;" id="lnum8">   8:</span> }</pre>
<p><!--CRLF--></div>
</div>
<p align="justify">Ahora bien, si esto es usado sin el método sobreescrito de nuestra clase clientes, lo que se agrega es lo siguiente:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2010/02/image4.png"><img loading="lazy" style="display:block;float:none;margin-left:auto;margin-right:auto;border-width:0;" title="image" border="0" alt="image" src="https://hectorperez.wordpress.com/wp-content/uploads/2010/02/image_thumb4.png?w=456&#038;h=289" width="456" height="289" /></a> </p>
</p>
<p>mientras, que sobreescribiendo el método ToString, obtenemos:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2010/02/image5.png"><img loading="lazy" style="display:block;float:none;margin-left:auto;margin-right:auto;border-width:0;" title="image" border="0" alt="image" src="https://hectorperez.wordpress.com/wp-content/uploads/2010/02/image_thumb5.png?w=466&#038;h=348" width="466" height="348" /></a> </p>
<p align="justify">Les dejo el archivo de la solución en Visual Studio:</p>
<p><a title="Tip1.zip" href="http://rapidshare.com/files/353618519/Tip1.zip">Tip1.zip</a></p>
<p>Salu2</p>
<p align="right"><font size="4" face="Vijaya"><strong>Héctor Uriel Pérez Rojas</strong></font></p>
]]></content:encoded>
					
					<wfw:commentRss>https://hectorperez.wordpress.com/2010/02/21/tips-para-programar-orientado-a-objetos-con-c-tip-1-override-tostring/feed/</wfw:commentRss>
			<slash:comments>7</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">633</post-id>
		<media:content url="https://1.gravatar.com/avatar/d5470cbae4baec70037bcb8002d500454cd05af89c1dedb32b0fc7aff97a67c2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Héctor Uriel Pérez Rojas</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2010/02/image_thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2010/02/image_thumb1.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2010/02/image_thumb2.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2010/02/image_thumb3.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2010/02/image_thumb4.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2010/02/image_thumb5.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>El proveedor &#8216;Microsoft.ACE.OLEDB.12.0&#8217; no est&#225; registrado en el equipo local.</title>
		<link>https://hectorperez.wordpress.com/2010/01/26/el-proveedor-microsoft-ace-oledb-12-0-no-est-registrado-en-el-equipo-local/</link>
					<comments>https://hectorperez.wordpress.com/2010/01/26/el-proveedor-microsoft-ace-oledb-12-0-no-est-registrado-en-el-equipo-local/#comments</comments>
		
		<dc:creator><![CDATA[hectorperez]]></dc:creator>
		<pubDate>Tue, 26 Jan 2010 20:31:00 +0000</pubDate>
				<category><![CDATA[Access]]></category>
		<category><![CDATA[Bases de Datos]]></category>
		<category><![CDATA[Windows Forms]]></category>
		<guid isPermaLink="false">http://hectorperez.wordpress.com/2010/01/26/el-proveedor-microsoft-ace-oledb-12-0-no-est-registrado-en-el-equipo-local/</guid>

					<description><![CDATA[Bueno, todo empezó debido a que enlazaba un datagridview de windows forms, a un orígen de datos de una base de datos acces, sin embargo, parecía como que si las tablas estuvieran vacías: Ante tal fenómeno que no lograba resolver, decidí hacerlo a través de código puro y duro, sin embargo, cuando trataba de ejecutar &#8230; <a href="https://hectorperez.wordpress.com/2010/01/26/el-proveedor-microsoft-ace-oledb-12-0-no-est-registrado-en-el-equipo-local/" class="more-link">Continuar leyendo <span class="screen-reader-text">El proveedor &#8216;Microsoft.ACE.OLEDB.12.0&#8217; no est&#225; registrado en el equipo&#160;local.</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p align="justify">Bueno, todo empezó debido a que enlazaba un datagridview de windows forms, a un orígen de datos de una base de datos acces, sin embargo, parecía como que si las tablas estuvieran vacías:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2010/01/image2.png"><img loading="lazy" style="border-bottom:0;border-left:0;display:block;float:none;margin-left:auto;border-top:0;margin-right:auto;border-right:0;" title="image" border="0" alt="image" src="https://hectorperez.wordpress.com/wp-content/uploads/2010/01/image_thumb.png?w=244&#038;h=224" width="244" height="224" /></a> </p>
<p align="justify">Ante tal fenómeno que no lograba resolver, decidí hacerlo a través de código puro y duro, sin embargo, cuando trataba de ejecutar la aplicación me aparecía el siguiente mensaje:</p>
<p align="justify"><strong>El proveedor &#8216;Microsoft.ACE.OLEDB.12.0&#8217; no está registrado en el equipo local.</strong></p>
<p align="justify">Solución:</p>
<p align="justify">Buscando entre varios foros, logré descubrir que esto se debe a que no existen drivers de office 2007 para la plataforma de 64-bits, para lo cual, debes cambiar las opciones de compilación en las propiedades del proyecto:</p>
<p align="justify"><a href="https://hectorperez.wordpress.com/wp-content/uploads/2010/01/image3.png"><img loading="lazy" style="border-bottom:0;border-left:0;display:block;float:none;margin-left:auto;border-top:0;margin-right:auto;border-right:0;" title="image" border="0" alt="image" src="https://hectorperez.wordpress.com/wp-content/uploads/2010/01/image_thumb1.png?w=414&#038;h=238" width="414" height="238" /></a></p>
<p align="justify">Espero que a más de 1 le ahorre tiempo.</p>
<p align="justify">Salu2</p>
<p align="right"><strong><font size="4" face="High Tower Text">Héctor Uriel Pérez Rojas</font></strong></p>
]]></content:encoded>
					
					<wfw:commentRss>https://hectorperez.wordpress.com/2010/01/26/el-proveedor-microsoft-ace-oledb-12-0-no-est-registrado-en-el-equipo-local/feed/</wfw:commentRss>
			<slash:comments>73</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">618</post-id>
		<media:content url="https://1.gravatar.com/avatar/d5470cbae4baec70037bcb8002d500454cd05af89c1dedb32b0fc7aff97a67c2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Héctor Uriel Pérez Rojas</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2010/01/image_thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2010/01/image_thumb1.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>Memory Test!</title>
		<link>https://hectorperez.wordpress.com/2010/01/24/memory-test/</link>
					<comments>https://hectorperez.wordpress.com/2010/01/24/memory-test/#respond</comments>
		
		<dc:creator><![CDATA[hectorperez]]></dc:creator>
		<pubDate>Sun, 24 Jan 2010 03:11:00 +0000</pubDate>
				<category><![CDATA[Desarrollo]]></category>
		<category><![CDATA[Mix 10]]></category>
		<category><![CDATA[Silverlight]]></category>
		<guid isPermaLink="false">http://hectorperez.wordpress.com/2010/01/24/memory-test/</guid>

					<description><![CDATA[Hey! qué tal? ya tiene rato que no posteo, pero la verdad, esto de la graduación y titulación me ha tenido sin tiempo, en un rato libre que he tenido, he desarrollado una pequeña y sencilla aplicación para el concurso 10k MIX Challenge, es un juego sencillo, en el cual tienes que recordar el color &#8230; <a href="https://hectorperez.wordpress.com/2010/01/24/memory-test/" class="more-link">Continuar leyendo <span class="screen-reader-text">Memory Test!</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p align="justify">Hey! qué tal? ya tiene rato que no posteo, pero la verdad, esto de la graduación y titulación me ha tenido sin tiempo, en un rato libre que he tenido, he desarrollado una pequeña y sencilla aplicación para el concurso <a href="http://mix10k.visitmix.com/" target="_blank">10k MIX Challenge</a>, es un juego sencillo, en el cual tienes que recordar el color que la máquina ha hecho brillar. Ha sido un reto para mí, ya que 10k es bastante poco, jaja, pero una labor satisfactoria al ver tu trabajo posteado <img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p><a href="http://mix10k.visitmix.com/Entry/Details/222" target="_blank"><img loading="lazy" style="border-bottom:0;border-left:0;display:block;float:none;margin-left:auto;border-top:0;margin-right:auto;border-right:0;" title="image" border="0" alt="image" src="https://hectorperez.wordpress.com/wp-content/uploads/2010/01/image.png?w=354&#038;h=291" width="354" height="291" /></a> </p>
<p>La aplicación en cuestión:</p>
<p align="justify"><a href="http://mix10k.visitmix.com/Entry/Details/222" target="_blank"><img loading="lazy" style="border-bottom:0;border-left:0;display:block;float:none;margin-left:auto;border-top:0;margin-right:auto;border-right:0;" title="image" border="0" alt="image" src="https://hectorperez.wordpress.com/wp-content/uploads/2010/01/image1.png?w=355&#038;h=276" width="355" height="276" /></a>Pasado el día último de inscripción de aplicaciones para el concurso, estaré discutiendo cómo he desarrollado esta pequeña aplicación, y porqué no? desarrollar una versión mas completa en WPF <img src="https://s0.wp.com/wp-content/mu-plugins/wpcom-smileys/twemoji/2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>Vota por mi aplicación en: <a title="http://mix10k.visitmix.com/Entry/Details/222" href="http://mix10k.visitmix.com/Entry/Details/222">http://mix10k.visitmix.com/Entry/Details/222</a></p>
<p>Gracias de antemano.</p>
<p>Salu2</p>
<p align="right"><font size="3" face="Trebuchet MS"><em><strong>Héctor Uriel Pérez Rojas</strong></em></font></p>
]]></content:encoded>
					
					<wfw:commentRss>https://hectorperez.wordpress.com/2010/01/24/memory-test/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">613</post-id>
		<media:content url="https://1.gravatar.com/avatar/d5470cbae4baec70037bcb8002d500454cd05af89c1dedb32b0fc7aff97a67c2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Héctor Uriel Pérez Rojas</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2010/01/image.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2010/01/image1.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>5 Invitaciones para Google Wave</title>
		<link>https://hectorperez.wordpress.com/2009/12/10/5-invitaciones-para-google-wave/</link>
					<comments>https://hectorperez.wordpress.com/2009/12/10/5-invitaciones-para-google-wave/#comments</comments>
		
		<dc:creator><![CDATA[hectorperez]]></dc:creator>
		<pubDate>Thu, 10 Dec 2009 16:21:00 +0000</pubDate>
				<category><![CDATA[Google Wave]]></category>
		<guid isPermaLink="false">http://hectorperez.wordpress.com/2009/12/10/5-invitaciones-para-google-wave/</guid>

					<description><![CDATA[&#160; Bueno, el día de hoy, vengo regalando 5 invitaciones para Google Wave, a los primeros 5 que me comenten esta entrada dejando un comentario con su correo. P. D. : &#160; TEORIA:&#160; Viva! Colaboración! – Siii! REALIDAD: Aguien ahi?&#160;&#160;&#160;&#160;&#160; – hola? y el resto: Invitenme por favor!! ( obtenido de http://www.angelux.net/2009/11/16/wtf-google-wave.html) &#160; Salu2 Héctor &#8230; <a href="https://hectorperez.wordpress.com/2009/12/10/5-invitaciones-para-google-wave/" class="more-link">Continuar leyendo <span class="screen-reader-text">5 Invitaciones para Google&#160;Wave</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2009/12/image2.png"><img loading="lazy" style="border-bottom:0;border-left:0;display:block;float:none;margin-left:auto;border-top:0;margin-right:auto;border-right:0;" title="image" border="0" alt="image" src="https://hectorperez.wordpress.com/wp-content/uploads/2009/12/image_thumb2.png?w=244&#038;h=111" width="244" height="111" /></a> </p>
<p>&#160;</p>
<p>Bueno, el día de hoy, vengo regalando 5 invitaciones para Google Wave, a los primeros 5 que me comenten esta entrada dejando un comentario con su correo.</p>
<p><strong>P. D. :</strong></p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2009/12/image3.png"><img loading="lazy" style="border-bottom:0;border-left:0;display:block;float:none;margin-left:auto;border-top:0;margin-right:auto;border-right:0;" title="image" border="0" alt="image" src="https://hectorperez.wordpress.com/wp-content/uploads/2009/12/image_thumb3.png?w=290&#038;h=336" width="290" height="336" /></a> </p>
<p>&#160;</p>
<p><strong>TEORIA</strong>:&#160; Viva! Colaboración! – Siii!</p>
<p><strong>REALIDAD</strong>: Aguien ahi?&#160;&#160;&#160;&#160;&#160; – hola?    <br />y el resto: Invitenme por favor!! ( obtenido de <a title="http://www.angelux.net/2009/11/16/wtf-google-wave.html" href="http://www.angelux.net/2009/11/16/wtf-google-wave.html">http://www.angelux.net/2009/11/16/wtf-google-wave.html</a>)</p>
<p>&#160;</p>
<p>Salu2</p>
<p align="right"><font size="4" face="Vivaldi">Héctor Uriel Pérez Rojas</font></p>
]]></content:encoded>
					
					<wfw:commentRss>https://hectorperez.wordpress.com/2009/12/10/5-invitaciones-para-google-wave/feed/</wfw:commentRss>
			<slash:comments>12</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">602</post-id>
		<media:content url="https://1.gravatar.com/avatar/d5470cbae4baec70037bcb8002d500454cd05af89c1dedb32b0fc7aff97a67c2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Héctor Uriel Pérez Rojas</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2009/12/image_thumb2.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2009/12/image_thumb3.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>Calendarios 2010!</title>
		<link>https://hectorperez.wordpress.com/2009/12/10/calendarios-2010/</link>
					<comments>https://hectorperez.wordpress.com/2009/12/10/calendarios-2010/#respond</comments>
		
		<dc:creator><![CDATA[hectorperez]]></dc:creator>
		<pubDate>Thu, 10 Dec 2009 07:03:00 +0000</pubDate>
				<category><![CDATA[Documentos]]></category>
		<category><![CDATA[Plantillas Office]]></category>
		<guid isPermaLink="false">http://hectorperez.wordpress.com/2009/12/10/calendarios-2010/</guid>

					<description><![CDATA[Nada como empezar bien el año, para esto, en esta ocasión les traigo algunos calendarios para poder empezar a planear las actividades del próximo año :).&#160; En total son 5, 2 archivos .xltx (Excel), 1 .dotx(Word), 1 potx (PowerPoint) y un archivo .pub (Publisher). Algunas capturas: &#160; Link: http://cid-2c11b62be5eb284d.skydrive.live.com/self.aspx/P%c3%bablico/Blog%20archives/Calendarios2010.zip Espero que les sirvan. Salu2 Héctor &#8230; <a href="https://hectorperez.wordpress.com/2009/12/10/calendarios-2010/" class="more-link">Continuar leyendo <span class="screen-reader-text">Calendarios 2010!</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p>Nada como empezar bien el año, para esto, en esta ocasión les traigo algunos calendarios para poder empezar a planear las actividades del próximo año :).&#160; En total son 5, 2 archivos .xltx (Excel), 1 .dotx(Word), 1 potx (PowerPoint) y un archivo .pub (Publisher).</p>
<p>Algunas capturas:</p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2009/12/image.png"><img loading="lazy" style="border-bottom:0;border-left:0;display:block;float:none;margin-left:auto;border-top:0;margin-right:auto;border-right:0;" title="image" border="0" alt="image" src="https://hectorperez.wordpress.com/wp-content/uploads/2009/12/image_thumb.png?w=307&#038;h=225" width="307" height="225" /></a> </p>
<p><a href="https://hectorperez.wordpress.com/wp-content/uploads/2009/12/image1.png"><img loading="lazy" style="border-bottom:0;border-left:0;display:block;float:none;margin-left:auto;border-top:0;margin-right:auto;border-right:0;" title="image" border="0" alt="image" src="https://hectorperez.wordpress.com/wp-content/uploads/2009/12/image_thumb1.png?w=310&#038;h=242" width="310" height="242" /></a> </p>
<p>&#160;</p>
<p>Link: <a title="http://cid-2c11b62be5eb284d.skydrive.live.com/self.aspx/P%c3%bablico/Blog%20archives/Calendarios2010.zip" href="http://cid-2c11b62be5eb284d.skydrive.live.com/self.aspx/P%c3%bablico/Blog%20archives/Calendarios2010.zip">http://cid-2c11b62be5eb284d.skydrive.live.com/self.aspx/P%c3%bablico/Blog%20archives/Calendarios2010.zip</a></p>
<p>Espero que les sirvan.</p>
<p>Salu2</p>
<p align="right"><font size="4" face="Vrinda"><strong>Héctor Uriel Pérez Rojas</strong></font></p>
]]></content:encoded>
					
					<wfw:commentRss>https://hectorperez.wordpress.com/2009/12/10/calendarios-2010/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">601</post-id>
		<media:content url="https://1.gravatar.com/avatar/d5470cbae4baec70037bcb8002d500454cd05af89c1dedb32b0fc7aff97a67c2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Héctor Uriel Pérez Rojas</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2009/12/image_thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2009/12/image_thumb1.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>Office 2010 Beta liberado!</title>
		<link>https://hectorperez.wordpress.com/2009/11/19/office-2010-beta-liberado/</link>
					<comments>https://hectorperez.wordpress.com/2009/11/19/office-2010-beta-liberado/#comments</comments>
		
		<dc:creator><![CDATA[hectorperez]]></dc:creator>
		<pubDate>Thu, 19 Nov 2009 16:36:00 +0000</pubDate>
				<category><![CDATA[Office]]></category>
		<guid isPermaLink="false">http://hectorperez.wordpress.com/2009/11/19/office-2010-beta-liberado/</guid>

					<description><![CDATA[Así es chavales, ya está disponible la versión 2010 Beta para todos aquellos que lo quieran probar. &#160; &#160; Link: http://www.microsoft.com/office/2010/es/download-office-professional-plus/default.aspx Salu2 Héctor Uriel Pérez Rojas]]></description>
										<content:encoded><![CDATA[<p align="center"><a href="https://hectorperez.wordpress.com/wp-content/uploads/2009/11/image.png"><img loading="lazy" style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="image" border="0" alt="image" src="https://hectorperez.wordpress.com/wp-content/uploads/2009/11/image_thumb.png?w=218&#038;h=134" width="218" height="134" /></a> </p>
<p>Así es chavales, ya está disponible la versión 2010 Beta para todos aquellos que lo quieran probar. </p>
<p align="center"><a href="https://hectorperez.wordpress.com/wp-content/uploads/2009/11/image1.png"><img loading="lazy" style="border-bottom:0;border-left:0;display:inline;border-top:0;border-right:0;" title="image" border="0" alt="image" src="https://hectorperez.wordpress.com/wp-content/uploads/2009/11/image_thumb1.png?w=389&#038;h=162" width="389" height="162" /></a> </p>
<p align="center">&#160;</p>
<p align="center">&#160;</p>
<p>Link: <a title="http://www.microsoft.com/office/2010/es/download-office-professional-plus/default.aspx" href="http://www.microsoft.com/office/2010/es/download-office-professional-plus/default.aspx">http://www.microsoft.com/office/2010/es/download-office-professional-plus/default.aspx</a></p>
<p>Salu2</p>
<p align="right"><font size="4" face="Viner Hand ITC">Héctor Uriel Pérez Rojas</font></p>
]]></content:encoded>
					
					<wfw:commentRss>https://hectorperez.wordpress.com/2009/11/19/office-2010-beta-liberado/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">596</post-id>
		<media:content url="https://1.gravatar.com/avatar/d5470cbae4baec70037bcb8002d500454cd05af89c1dedb32b0fc7aff97a67c2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Héctor Uriel Pérez Rojas</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2009/11/image_thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>

		<media:content url="https://hectorperez.wordpress.com/wp-content/uploads/2009/11/image_thumb1.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>Windows 7 &#8211; $399 Pesos para Estudiantes</title>
		<link>https://hectorperez.wordpress.com/2009/10/22/windows-7-399-pesos-para-estudiantes/</link>
					<comments>https://hectorperez.wordpress.com/2009/10/22/windows-7-399-pesos-para-estudiantes/#respond</comments>
		
		<dc:creator><![CDATA[hectorperez]]></dc:creator>
		<pubDate>Thu, 22 Oct 2009 16:29:00 +0000</pubDate>
				<category><![CDATA[Windows 7]]></category>
		<guid isPermaLink="false">http://hectorperez.wordpress.com/2009/10/22/windows-7-399-pesos-para-estudiantes/</guid>

					<description><![CDATA[Hoy, debido al lanzamiento oficial de Windows 7, Rubén me ha enviado un correo, tal vez a alguno le interese: &#160; Estimados Amigos, Sin duda alguna el día de hoy Microsoft vuelve hacer historia en la industria de tecnologías de información en el mundo.&#160; Estoy muy contento y motivado por el impacto que estamos generando &#8230; <a href="https://hectorperez.wordpress.com/2009/10/22/windows-7-399-pesos-para-estudiantes/" class="more-link">Continuar leyendo <span class="screen-reader-text">Windows 7 &#8211; $399 Pesos para&#160;Estudiantes</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p>Hoy, debido al lanzamiento oficial de Windows 7, Rubén me ha enviado un correo, tal vez a alguno le interese:</p>
<p>&#160;</p>
<p>Estimados Amigos, </p>
<p align="justify">Sin duda alguna el día de hoy Microsoft vuelve hacer historia en la industria de tecnologías de información en el mundo.&#160; Estoy muy contento y motivado por el impacto que estamos generando en nuestro país. Comenzando por ustedes que sin duda encontrarán en Windows, innovación, sencillez, rapidez, confiabilidad, compatibilidad, seguridad, movilidad, entretenimiento como nunca (fotos, video, música, media Room, etc..),&#160; <b><u>usar su PC más fácil que nunca!!!!,</u></b> Los beneficios son para todo tipo de personas y organizaciones la mamá, el papá,&#160; el amigo, la amiga, el niño, el estudiante, la abuelita, el abuelito, el músico, el DJ, las pymes, los colegios, las universidades, las&#160; grandes organizaciones todos ellos encontraran grandes beneficios con Windows 7&#160; que en conjunto con tecnologías&#160; como Windows Live, Windows Server 2008&#160; R2 y Microsoft Exchange 2010 podrán hablar de beneficios increíbles para el consumidor final y una nueva eficiencia en las organizaciones, como reducir costos, aumentar productividad y generar innovación.</p>
<p align="justify">Más allá de un lanzamiento el impacto que estamos generando en nuestro país es formidable, les comparto unos datos interesantes, en nuestro país generamos más de 90,000 empleos indirectos, en la industria de TI existen 611,000 empleos de los cuáles el 54%&#160; de ellos están relacionados con tecnologías Microsoft, más de 300,000 empleos.&#160; Se estima que en nuestro país la industria produzca 144,000 nuevos empleos en los próximos 3 años y se van a crear más de 1,000 compañías. La industria de SW empleara el 44% de estos nuevos empleos.&#160; Por cada peso de ingresos que hacemos en México se generan 11.64 pesos de ingresos en nuestro ecosistema, esto es contribuir a la economía mexicana.</p>
<p align="justify">El compromiso que tenemos con México nunca había sido tan grande como lo es hoy,&#160; es momento de que ELEVEMOS MEXICO,&#160; nuestro país necesita crecer, mejorar su desarrollo económico y social, las tecnologías de información son un factor crítico en esta nueva era. Hemos construido grandes cosas estos últimos 24 años y el futuro es aún más prometedor.</p>
<p align="justify">¡¡¡¡¡¡Con lo anterior, quiero además compartir con ustedes que desde el día de hoy 22 de Octubre del 2009, hasta la primera semana de Enero, <b>Windows 7 costará $399.00 (Pesos) para Estudiantes Universitarios!!!!!!</b></p>
<p align="justify">Los detalles los pueden encontrar aquí: <a href="http://www.windows7paraestudiantes.com.mx">www.windows7paraestudiantes.com.mx</a></p>
<p align="justify">Transmitan esto a sus amigos, es una gran oportunidad que jamás habíamos tenido y que ahora en México hemos logrado.</p>
<p align="justify">Gracias a todos por recibir mis correos y tomarse el tiempo para leer la información que les comparto.</p>
<p align="justify">Les envío un gran saludo y les deseo mucho éxito.</p>
<p align="justify">&#160;</p>
<p align="justify">Salu2</p>
<p align="justify">&#160;</p>
<p align="right">Héctor Uriel Pérez Rojas</p>
]]></content:encoded>
					
					<wfw:commentRss>https://hectorperez.wordpress.com/2009/10/22/windows-7-399-pesos-para-estudiantes/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">591</post-id>
		<media:content url="https://1.gravatar.com/avatar/d5470cbae4baec70037bcb8002d500454cd05af89c1dedb32b0fc7aff97a67c2?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Héctor Uriel Pérez Rojas</media:title>
		</media:content>
	</item>
	</channel>
</rss>
