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

<channel>
	<title>Gabriel Rodriguez Plancarte &#187; Desarrollo de Software</title>
	<atom:link href="http://gabrielrodriguez.net/category/desarrollo/feed/" rel="self" type="application/rss+xml" />
	<link>http://gabrielrodriguez.net</link>
	<description>Tecnologia, Diseño, Negocios y Desarrollo</description>
	<lastBuildDate>Mon, 29 Mar 2010 07:58:45 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>MIX10 &#8211; excelentes conferencias y recursos de desarrollo</title>
		<link>http://gabrielrodriguez.net/mix10-excelentes-conferencias-y-recursos-de-desarrollo/</link>
		<comments>http://gabrielrodriguez.net/mix10-excelentes-conferencias-y-recursos-de-desarrollo/#comments</comments>
		<pubDate>Sun, 21 Mar 2010 22:19:31 +0000</pubDate>
		<dc:creator>Gabriel</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Desarrollo Web]]></category>
		<category><![CDATA[Desarrollo de Software]]></category>
		<category><![CDATA[Diseño Web]]></category>
		<category><![CDATA[MIX]]></category>

		<guid isPermaLink="false">http://gabrielrodriguez.net/?p=734</guid>
		<description><![CDATA[
Del pasado 15 al 17 de Marzo se llevó a cabo la conferencia MIX10, que es una serie de conferencias de diseño y desarrollo web organizada por Microsoft, con platicas impartidas por la gente que está causando más impacto en la comunidad de desarrollo online (las sesiones son escogidas en base a votos, durante meses [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-735" title="MIX10 Logo" src="http://gabrielrodriguez.net/wp-content/uploads/2010/03/mix10-logo.png" alt="MIX10" width="218" height="62" /></p>
<p>Del pasado 15 al 17 de Marzo se llevó a cabo la conferencia <strong>MIX10</strong>, que es una <strong>serie de conferencias de diseño y desarrollo web </strong>organizada por Microsoft, con platicas impartidas por la gente que está causando más impacto en la comunidad de desarrollo online (las sesiones son escogidas en base a votos, durante meses anteriores al evento).</p>
<p>Las platicas de este año se ve que estuvieron muy interesantes&#8230;así que aquí les dejo las ligas a los videos de las pláticas y también a una muy buena sección de recursos que armaron en el site de <strong>MIX10</strong>, con ligas a <strong>guías de desarrollo</strong> para <strong>Windows 7 Phone Series, Silverlight 4, WCF RIA</strong> y otros tantos temas que son lo relevante de hoy en día.</p>
<p>Algunas de las pláticas fueron:</p>
<ul>
<li>Overview of the Windows Phone 7 Series Application Platform</li>
<li>10 Ways to Attack a Design Problem and Come Out Winning</li>
<li>Stepping Outside the Browser with Microsoft Silverlight 4</li>
<li>Total Experience Design</li>
<li>Understanding the Model-View-ViewModel Pattern</li>
<li>Beyond File | New Company: From Cheesy Sample to Social Platform</li>
<li>The Microsoft Silverlight Analytics Framework</li>
</ul>
<p>Ligas:</p>
<p><a title="MIX10 - The Next Web Now Homepage" href="http://live.visitmix.com/">MIX10 &#8211; The Next Web Now</a></p>
<p><a title="MIX10 - Resources Page (Windows 7 Phone Series, Silverlight 4, etc)" href="http://live.visitmix.com/Resources">MIX10 &#8211; Resources Page (Windows 7 Phone Series, Silverlight 4, etc)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://gabrielrodriguez.net/mix10-excelentes-conferencias-y-recursos-de-desarrollo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Automapper y un buen articulo de diseño de software</title>
		<link>http://gabrielrodriguez.net/automapper-y-un-buen-articulo-de-diseno-de-software/</link>
		<comments>http://gabrielrodriguez.net/automapper-y-un-buen-articulo-de-diseno-de-software/#comments</comments>
		<pubDate>Sat, 20 Mar 2010 06:36:38 +0000</pubDate>
		<dc:creator>Gabriel</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Arquitectura]]></category>
		<category><![CDATA[Desarrollo de Software]]></category>
		<category><![CDATA[Mejores Practicas]]></category>
		<category><![CDATA[AutoMapper]]></category>
		<category><![CDATA[Patrones de Diseño]]></category>

		<guid isPermaLink="false">http://gabrielrodriguez.net/?p=716</guid>
		<description><![CDATA[
La semana pasada descubrí AutoMapper, que es un proyecto de .NET gratis y open-source de Jimmy Bogard.
Un desarrollador de la oficina me preguntó si había una manera integrada en el framework de transformar las clases generadas por LINQ-To-SQL en clases sencillas (DTOs). No creí que lo hubiera&#8230;pero le comenté que seguramente lo podía hacer por [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-728" title="Logo AutoMapper" src="http://gabrielrodriguez.net/wp-content/uploads/2010/03/automapper-logo.png" alt="Logo AutoMapper" width="480" height="49" /></p>
<p>La semana pasada descubrí <a title="AutoMapper" href="http://automapper.codeplex.com/">AutoMapper</a>, que es un proyecto de .NET gratis y open-source de <a title="Jimmy Bogard" href="http://www.lostechies.com/blogs/jimmy_bogard/default.aspx">Jimmy Bogard</a>.</p>
<p>Un desarrollador de la oficina me preguntó si había una manera integrada en el framework de transformar las clases generadas por LINQ-To-SQL en clases sencillas (DTOs). No creí que lo hubiera&#8230;pero le comenté que seguramente lo podía hacer por Reflection. Yo ya habia hecho eso antes, pero supuse que debía haber alguna mejor manera. Después de buscar un poco en StackOverflow.com, alguna de las respuestas linkeaba a AutoMapper y descubrí que era exactamente lo que aquel desarrollador estaba buscando.</p>
<p><strong>AutoMapper </strong>es descrito en su página principal de la siguiente manera:</p>
<p><em>AutoMapper uses a fluent configuration API to define an object-object  mapping strategy.  AutoMapper uses a convention-based matching algorithm  to match up source to destination values.  Currently, AutoMapper is  geared towards model projection scenarios to flatten complex object  models to DTOs and other simple objects, whose design is better suited  for serialization, communication, messaging, or simply an  anti-corruption layer between the domain and application layer.</em></p>
<p>Excelente&#8230;no solo utiliza <a title="Fluent Interfaces" href="http://en.wikipedia.org/wiki/Fluent_interface"><strong>interfaces fluidas</strong></a>, sino que también se basa en <a title="Convention over Configuration" href="http://en.wikipedia.org/wiki/Convention_over_configuration"><strong>Convention Over Configuration</strong></a>. Es decir&#8230;solo tenemos que (y podemos!) configurar las situaciones excepcionales. Las <strong>ventajas </strong>que le veo a utilizar AutoMapper (a pesar de estar incorporando una referencia más a nuestros proyectos) es que es un proyecto público (de open source) y que además tiene a un muy buen desarrollador respaldándolo, que por ser su proyecto, se enfoca en mejorarlo y perfeccionarlo con nuevas funcionalidades, haciéndolo más eficiente, etc. Además, debido a que ya tiene una considerable base de usuarios (3,702 downloads), la mayoría de los bugs que pudiéramos toparnos, ya han sido resueltos.</p>
<p>Un <strong>ejemplo </strong>exagerádamente básico del uso de AutoMapper:</p>
<pre class="brush: csharp;">

public class Class1
 {
   public string FullName { get; set; }
   public int Age { get; set; }
   public char Gender { get; set; }
   public void DoIt()
   {
     Console.WriteLine(&quot;Test&quot;);
   }

   public List&lt;string&gt; Addresses { get; set; }

   public Class1()
   {
     Addresses = new List&lt;string&gt;();
   }
 }

 public class Class2
 {
   public string FullName { get; set; }
   public int Age { get; set; }
   public char Gender { get; set; }
 }

private void Form1_Load(object sender, EventArgs e)
{
   Mapper.CreateMap&lt;Class1, Class2&gt;();

   var c2 = Mapper.Map&lt;Class1, Class2&gt;(c1);
   MessageBox.Show(c2.FullName);
}
</pre>
<p>Ok, de este ejemplo podemos ver:</p>
<ul>
<li>Class1 es poco más compleja que Class2, ya que tiene una List&lt;string&gt; y un método definido (DoIt())</li>
<li>Class2 es una versión simple de Class1, con el objetivo de funcionar como un <a title="Data Transfer Object" href="http://en.wikipedia.org/wiki/Data_transfer_object"><strong>Data Transfer Object</strong></a>.</li>
</ul>
<p>Como pueden ver, con la instrucción:</p>
<pre class="brush: csharp;">
Mapper.CreateMap&lt;Class1, Class2&gt;();
</pre>
<p>estamos indicándole a AutoMapper que la Class1 y Class2 están relacionadas (mappeadas). Y la siguiente línea de código:</p>
<pre class="brush: csharp;">
var c2 = Mapper.Map&lt;Class1, Class2&gt;(c1);&lt;/pre&gt;
</pre>
<p>está creando una instancia de tipo Class2, basada en la instancia de c1 que ya teníamos, inicializada y asignando dinámicamente los valores de dicha instancia (c1) a la nueva instancia c2.</p>
<p>Class1, en este caso, sería un ejemplo de una clase de LINQ-To-SQL, mientras que Class2 sería la clase que queremos usar como DTO.</p>
<p><strong>Esta funcionalidad es sólamente la más básica de AutoMapper (flattening</strong>). También soporta <strong>proyecciones </strong>(utilizar ciertas propiedades o sub-sets de un valor para mapear a otra propiedad), <strong>Listas y Arrays</strong>, etc. Para más información, visisten la <a title="Documentacion de AutoMapper" href="http://automapper.codeplex.com/documentation">documentación de AutoMapper</a>.</p>
<p>Y sobre el buen artículo de diseño&#8230;para mi sorpresa lo encontré 2 dias después de haber descubierto AutoMapper, y el artículo lo escribió Jimmy Bogard.</p>
<p>El artículo se llama originalmente &#8220;<a title="Strengthening your domain: Encapsulated collections" href="http://www.lostechies.com/blogs/jimmy_bogard/archive/2010/03/10/strengthening-your-domain-encapsulated-collections.aspx">Strengthening your domain: Encapsulated collections</a>&#8220;. Jimmy habla de como debemos de diseñar nuestras clases para <strong>no exponer inadvertidamente funcionalidad de más (extra, innecesaria) que podría permitir operaciones no lógicas sobre nuestras entidades</strong>, y enfocarnos en <strong>soportar exclusiva y claramente sólo las operaciones que el dominio de negocio debe permitir sobre las entidades de nuestro proyecto</strong>. El artículo también me hizo pensar que <strong>los accesors son algo que mucha gente no considera</strong> a la hora de exponer sus propiedades. Léanlo y si gustan dejar sus comentarios&#8230;adelante.</p>
]]></content:encoded>
			<wfw:commentRss>http://gabrielrodriguez.net/automapper-y-un-buen-articulo-de-diseno-de-software/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Aplicar formatos condicionales a numeros con string.Format</title>
		<link>http://gabrielrodriguez.net/aplicar-formatos-condicionales-a-numeros-con-string-format/</link>
		<comments>http://gabrielrodriguez.net/aplicar-formatos-condicionales-a-numeros-con-string-format/#comments</comments>
		<pubDate>Fri, 15 Jan 2010 06:13:10 +0000</pubDate>
		<dc:creator>Gabriel</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Desarrollo de Software]]></category>
		<category><![CDATA[C#]]></category>

		<guid isPermaLink="false">http://gabrielrodriguez.net/?p=693</guid>
		<description><![CDATA[Esto es algo que descubrí hoy referente a formateo de números en .NET y que por más simple que parezca, tiene mucha utilidad, ya que puede reducir un bloque de 3 o 6 líneas de código, a una sola línea.
En lugar de necesitar varios if&#8217;s para evaluar el valor del número que vamos a formatear [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_381" class="wp-caption alignnone" style="width: 250px"><a href="http://gabrielrodriguez.net/wp-content/uploads/2009/07/net-logo.png"><img class="size-full wp-image-381" title=".NET" src="http://gabrielrodriguez.net/wp-content/uploads/2009/07/net-logo.png" alt="" width="240" height="74" /></a><p class="wp-caption-text">.NET</p></div>
<p>Esto es algo que descubrí hoy referente a <strong>formateo de números en .NET</strong> y que por más simple que parezca, tiene mucha utilidad, ya que puede reducir un bloque de 3 o 6 líneas de código, a una sola línea.</p>
<p>En lugar de necesitar varios if&#8217;s para evaluar el valor del número que vamos a formatear y poder determinar el formato que se va a aplicar (desplegar el número entre paréntesis si es negativo, desplegar la palabra Cero si el número es 0, etc), se puede hacer todo el una sola línea, ya que el metodo <strong>ToString()</strong> permite formatos condicionales de 2 o 3 condiciones&#8230;es decir, podemos hacer esto:</p>
<pre class="brush: csharp;">

const string formato = &quot;000;(##);Cero&quot;;

 Console.WriteLine(7.ToString(formato)); // va a desplegar &quot;007&quot;
 Console.WriteLine((-5).ToString(formato)); // va a desplegar &quot;(5)&quot;
 Console.WriteLine(0.ToString(formato)); // va a desplegar &quot;Cero&quot;
</pre>
<div id="attachment_695" class="wp-caption alignnone" style="width: 357px"><img class="size-full wp-image-695" title="Formatos condicionales en .NET usando ToString()" src="http://gabrielrodriguez.net/wp-content/uploads/2010/01/net-formatos-condicionales-strings.png" alt="Formatos condicionales en .NET usando ToString()" width="347" height="129" /><p class="wp-caption-text">Formatos condicionales en .NET usando ToString()</p></div>
<p>El formato entonces es: <strong> &#8220;positivo;negativo;cero&#8221;</strong>.</p>
<p>También es posible especificar solo el formato positivo y negativo.</p>
<p>Espero les sirva.</p>
]]></content:encoded>
			<wfw:commentRss>http://gabrielrodriguez.net/aplicar-formatos-condicionales-a-numeros-con-string-format/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cursos de Visual Studio 2010 y .NET Framework 4.0 gratis</title>
		<link>http://gabrielrodriguez.net/cursos-de-visual-studio-2010-y-net-framework-4-0-gratis/</link>
		<comments>http://gabrielrodriguez.net/cursos-de-visual-studio-2010-y-net-framework-4-0-gratis/#comments</comments>
		<pubDate>Thu, 22 Oct 2009 04:54:25 +0000</pubDate>
		<dc:creator>Gabriel</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Desarrollo de Software]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[.NET 4.0]]></category>
		<category><![CDATA[programacion]]></category>
		<category><![CDATA[Visual Studio 2010]]></category>

		<guid isPermaLink="false">http://gabrielrodriguez.net/?p=577</guid>
		<description><![CDATA[La gente de Channel 9, uno de los mejores sites para aprender de desarrollo y especificamente de .NET, acaba de abrir una sección nueva llamada Channel 9 Learning Center.
Para inaugurar la sección, publicaron dos cursos iniciales:

Visual Studio 2010 and .NET Framework 4.0
Windows 7 Online Training

La calidad del contenido que este site genera es buenísima. Los [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_579" class="wp-caption alignnone" style="width: 306px"><img class="size-full wp-image-579" title="Channel 9 Logo" src="http://gabrielrodriguez.net/wp-content/uploads/2009/10/channel-9-logo.PNG" alt="Channel 9 Logo" width="296" height="126" /><p class="wp-caption-text">Channel 9 Logo</p></div>
<p>La gente de <a title="Channel 9" href="http://channel9.msdn.com/"><strong>Channel 9</strong></a>, uno de los<strong> mejores sites para aprender de desarrollo y especificamente de .NET</strong>, acaba de abrir una <strong>sección nueva</strong> llamada <a title="Channel 9 Learning Center" href="http://channel9.msdn.com/learn/"><strong>Channel 9 Learning Center</strong></a>.</p>
<p>Para inaugurar la sección, publicaron dos cursos iniciales:</p>
<ul>
<li><a title="Visual Studio 2010 and .NET Framework 4 Training Course" href="http://channel9.msdn.com/learn/courses/VS2010/">Visual Studio 2010 and .NET Framework 4.0</a></li>
<li><a title="Windows 7 Online Training" href="http://channel9.msdn.com/learn/courses/Windows7/">Windows 7 Online Training</a></li>
</ul>
<div id="attachment_580" class="wp-caption alignnone" style="width: 243px"><img class="size-full wp-image-580" title="Visual Studio 2010 Logo" src="http://gabrielrodriguez.net/wp-content/uploads/2009/10/visual-studio-2010-logo.PNG" alt="Visual Studio 2010 Logo" width="233" height="178" /><p class="wp-caption-text">Visual Studio 2010 Logo</p></div>
<p>La <strong>calidad del contenido</strong> que este site genera es <strong>buenísima</strong>. Los videos siempre son <strong>interesantes</strong>, y las personas que conducen y son entrevistadas en los videos siempre es <strong>gente importante y muy conocedora de la industria</strong>.</p>
<p>Algunos de los <strong>temas del curso de Visual Studio 2010</strong> son:</p>
<ul>
<li>ASP.NET 4.0</li>
<li>Data Platform</li>
<li>Application Lifecycle Management</li>
<li>Windows Communication Foundation and Workflow</li>
<li>Managed Languages</li>
</ul>
<p>Así que si no se quieren quedar obsoletos&#8230;vayan a aprovechar este material.<strong> Las mejoras en el .NET Framework 4.0 son muchas</strong>, y <strong>esta version implica cambio de CLR</strong>&#8230;así que hay mucho que aprender.</p>
]]></content:encoded>
			<wfw:commentRss>http://gabrielrodriguez.net/cursos-de-visual-studio-2010-y-net-framework-4-0-gratis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Principios de Diseño Orientado a Objetos (OOD)</title>
		<link>http://gabrielrodriguez.net/principios-de-diseno-orientado-a-objetos-ood/</link>
		<comments>http://gabrielrodriguez.net/principios-de-diseno-orientado-a-objetos-ood/#comments</comments>
		<pubDate>Mon, 17 Aug 2009 00:59:19 +0000</pubDate>
		<dc:creator>Gabriel</dc:creator>
				<category><![CDATA[Desarrollo de Software]]></category>
		<category><![CDATA[Arquitectura]]></category>
		<category><![CDATA[Mejores Practicas]]></category>
		<category><![CDATA[OOP]]></category>
		<category><![CDATA[Principios Basicos]]></category>

		<guid isPermaLink="false">http://gabrielrodriguez.net/?p=476</guid>
		<description><![CDATA[Siguiendo con esas cosas que todos deberían saber&#8230;pero que muchos no comprenden totalmente:
Robert Martin, mejor conocido como Uncle Bob, explica de manera muy clara los principios básicos de diseño orientado a objetos. No solo es necesario poder recitar estos principios, sino que hay que entenderlos y poder explicar las razones de su importancia.
Precisamente de este [...]]]></description>
			<content:encoded><![CDATA[<p>Siguiendo con esas cosas que todos deberían saber&#8230;pero que muchos no comprenden totalmente:</p>
<p><strong>Robert Martin</strong>, mejor conocido como <strong>Uncle Bob</strong>, explica de manera muy clara<strong> los principios básicos de diseño orientado a objetos</strong>. No solo es necesario poder recitar estos principios, sino que<strong> hay que entenderlos y poder explicar las razones de su importancia</strong>.</p>
<p>Precisamente de este articulo que voy a poner la liga, cito un párrafo que es muy cierto:</p>
<p><em>&#8220;All too often today&#8217;s programmers are unaware of the principles that are the foundation of the disciplines that their languages were derived around.&#8221;</em></p>
<p>Los primeros 5 principios son los famosos <strong>SOLID</strong><strong> </strong>(que en muchas ocasiones les tocará leer el acrónimo en artículos)<strong> </strong>y son orientados a <strong>diseño de clases</strong>. Los 3 siguientes<strong> </strong>son orientados a <strong>Cohesión </strong>de librerías de código, y los últimos 3 son orientados a <strong>dependencias </strong>entre librerías de código.</p>
<p>Los principios SOLID:</p>
<ul>
<li><strong>S</strong>ingle Responsibility Principle (SRP)</li>
<li><strong>O</strong>pen-Closed Principle (OCP)</li>
<li><strong>L</strong>iskov Substitution Principle (LSP)</li>
<li><strong>I</strong>nterface Segregation Principle (ISP)</li>
<li><strong>D</strong>ependency Inversion Principle (DIP)</li>
</ul>
<p>Incluso cada uno de los principios está claramente explicado y disponible para <strong>bajarse en PDF por separado</strong>. La siguiente es la liga:</p>
<p><a title="The Principles of OOD" href="http://butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod">The principles of Object Oriented Design</a>, by UncleBob</p>
]]></content:encoded>
			<wfw:commentRss>http://gabrielrodriguez.net/principios-de-diseno-orientado-a-objetos-ood/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Voy por la certificacion de Microsoft Certified Professional Developer</title>
		<link>http://gabrielrodriguez.net/voy-por-la-certificacion-de-microsoft-certified-professional-developer/</link>
		<comments>http://gabrielrodriguez.net/voy-por-la-certificacion-de-microsoft-certified-professional-developer/#comments</comments>
		<pubDate>Sat, 15 Aug 2009 08:20:49 +0000</pubDate>
		<dc:creator>Gabriel</dc:creator>
				<category><![CDATA[Desarrollo de Software]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[Certificacion]]></category>
		<category><![CDATA[MCDP]]></category>

		<guid isPermaLink="false">http://gabrielrodriguez.net/?p=470</guid>
		<description><![CDATA[Tiene años, probablemente fue en el 2005 o 2006, que presente el examen de Web Applications en .NET y consegui ser MCP. Definitivamente el puro título ha abierto muchas puertas, asi que creo que iré por una certificación un poco más completa y extensa.
La certificación de Microsoft Certified Professional Developer (MCPD) es la que me [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_471" class="wp-caption aligncenter" style="width: 285px"><img class="size-full wp-image-471" title="Microsoft Learning" src="http://gabrielrodriguez.net/wp-content/uploads/2009/08/MicrosoftLearning.PNG" alt="Microsoft Learning" width="275" height="68" /><p class="wp-caption-text">Microsoft Learning</p></div>
<p>Tiene años, probablemente fue en el 2005 o 2006, que presente el examen de Web Applications en .NET y consegui ser MCP. Definitivamente el puro título ha abierto muchas puertas, asi que creo que iré por una certificación un poco más completa y extensa.</p>
<p>La certificación de <a title="Microsoft Certified Professional Developer (MCPD)" href="http://www.microsoft.com/learning/en/us/certification/mcpd.aspx#tab2">Microsoft Certified Professional Developer (MCPD)</a> es la que me llama la atención, especificamente la especializada <strong>Enterprise Application Developer 3.5 on Visual Studio 2008</strong>.</p>
<p>Tiene 5 examenes de <strong>MCTS (Microsoft Certified Technology Specialist) </strong>como pre-requisito, y el examen de MCPD es el <strong>PRO: Designing and Developing Enterprise Applications Using the Microsoft .NET Framework 3.5 (70-565)</strong>.</p>
<p>La lista de examenes requisito para ser Entrerprise Application Developer:</p>
<div id="attachment_472" class="wp-caption aligncenter" style="width: 713px"><img class="size-full wp-image-472" title="MCPD Enterprise Application Developer Exam List" src="http://gabrielrodriguez.net/wp-content/uploads/2009/08/MCPD-Enterprise-Application-Developer.PNG" alt="MCPD Enterprise Application Developer Exam List" width="703" height="218" /><p class="wp-caption-text">MCPD Enterprise Application Developer Exam List</p></div>
<p>Voy por el primero, el Application Development Foundation&#8230;voy a leer el material y presentar un examen de prueba en TestKing, espero para Octubre-Noviembre ya haber pasado ese.</p>
]]></content:encoded>
			<wfw:commentRss>http://gabrielrodriguez.net/voy-por-la-certificacion-de-microsoft-certified-professional-developer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tres buenos libros para aprender .NET y ASP.NET</title>
		<link>http://gabrielrodriguez.net/tres-buenos-libros-para-aprender-net-y-asp-net/</link>
		<comments>http://gabrielrodriguez.net/tres-buenos-libros-para-aprender-net-y-asp-net/#comments</comments>
		<pubDate>Sun, 09 Aug 2009 04:53:30 +0000</pubDate>
		<dc:creator>Gabriel</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Desarrollo de Software]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[ASP.NET]]></category>
		<category><![CDATA[Libros]]></category>
		<category><![CDATA[programacion]]></category>

		<guid isPermaLink="false">http://gabrielrodriguez.net/?p=455</guid>
		<description><![CDATA[Ultimamente en el trabajo he entrevisando a varios desarrolladores candidatos a unirse a la empresa, que dicen han trabajado en proyectos relacionados con sitios de ASP.NET, pero que dificilmente podían explicar el ciclo de vida de una pagina en ASP.NET, o que no saben explicar exactamente que es el ViewState y otras features basicas de [...]]]></description>
			<content:encoded><![CDATA[<p>Ultimamente en el trabajo <strong>he entrevisando a varios desarrolladores candidatos</strong> a unirse a la empresa, que dicen han trabajado en proyectos relacionados con sitios de ASP.NET, pero <strong>que dificilmente podían explicar</strong> el ciclo de vida de una pagina en ASP.NET, o que no saben explicar exactamente que es el ViewState y otras <strong>features basicas de .NET en general</strong>.</p>
<p>Decidí escribir este post para <strong>recomendar estos tres libros</strong>, que creo que son los primeros que leí sobre .NET y que <strong>considero me dieron ventaja sobre otros candidatos </strong>al presentarme a alguna entrevista de trabajo. Estos libros son <strong>relativamente baratos y definitivamente pueden cambiar tu carrera</strong>. Si apenas vas empezando a aprender .NET o si simplemente quieres volverte un mejor programador, te recomiendo estos libros. <strong>Puede que sea una inversion al principio, pero los reviews de estos libros hablan por sí solos</strong>, y creo que el costo de estos se regresa inmediatamente al conseguir un trabajo gracias a lo aprendido por ellos.</p>
<p style="text-align: center;">
<div id="attachment_456" class="wp-caption aligncenter" style="width: 240px"><a href="http://www.amazon.com/Teach-Yourself-ASP-NET-Complete-Starter/dp/0672329972/ref=sr_1_1?ie=UTF8&amp;qid=1249790926&amp;sr=8-1"><img class="size-full wp-image-456" title="Sams Teach Yourself ASP.NET 3.5 in 24 Hours" src="http://gabrielrodriguez.net/wp-content/uploads/2009/08/samsteachourselfaspnet.jpg" alt="Sams Teach Yourself ASP.NET 3.5 in 24 Hours" width="230" height="300" /></a><p class="wp-caption-text">Sams Teach Yourself ASP.NET 3.5 in 24 Hours</p></div>
<p>El primer libro se llama <strong><a title="Sams Teach Yourself ASP.NET 3.5 in 24 Hours, Complete Starter Kit (Sams Teach Yourself -- Hours) (Paperback)" href="http://www.amazon.com/Teach-Yourself-ASP-NET-Complete-Starter/dp/0672329972/ref=sr_1_1?ie=UTF8&amp;qid=1249790926&amp;sr=8-1">Sams Teach Yourself ASP.NET 3.5 in 24 Hours</a></strong>. Lo que me gustó es que como el titulo del libro lo indica, dividen el contenido en lecciones cortas pero completas que puedes aprender en un dia.  Trata principalmente los conceptos básicos de .NET y ASP.NET. El autor es <a title="Scott Mitchell" href="http://www.4guysfromrolla.com/ScottMitchell.shtml">Scott Mitchell</a>, tambien relacionado con el sitio 4GuysFromRolla.com que fue de los primeros en proporcionar articulos muy completos sobre .NET. El libro cuesta $23 USD en Amazon.</p>
<p style="text-align: center;">
<div id="attachment_457" class="wp-caption aligncenter" style="width: 212px"><a href="http://www.amazon.com/ASP-NET-2-0-Website-Programming-Programmer/dp/0764584642/ref=sr_1_2?ie=UTF8&amp;qid=1249790443&amp;sr=8-2"><img class="size-full wp-image-457" title="ASP.NET 2.0 Website Programming: Problem - Design - Solution (Programmer to Programmer)" src="http://gabrielrodriguez.net/wp-content/uploads/2009/08/aspnet20websiteprogramming.jpg" alt="ASP.NET 2.0 Website Programming: Problem - Design - Solution (Programmer to Programmer)" width="202" height="256" /></a><p class="wp-caption-text">ASP.NET 2.0 Website Programming: Problem - Design - Solution (Programmer to Programmer)</p></div>
<p>El segundo libro es <a title="ASP.NET 2.0 Website Programming: Problem - Design - Solution (Programmer to Programmer)" href="http://www.amazon.com/ASP-NET-2-0-Website-Programming-Programmer/dp/0764584642/ref=sr_1_2?ie=UTF8&amp;qid=1249790443&amp;sr=8-2"><strong>ASP.NET 2.0 Website Programming: Problem &#8211; Design &#8211; Solution (Programmer to Programmer)</strong></a>. <strong>Este libro enseña a diseñar sites de ASP.NET de principio a fin</strong>, desde la arquitectura general hasta las features más especificas de interfaz de usuario, y explica cada decision que se toma. Se tratan y explicas temas como el Provider Model, ASP.NET Membership, ASP.NET Health Monitoring, MasterPages,  Webparts, databound controls, etc. El proyecto/sitio que se desarrolla con las lecciones de este libro se llama <strong>The BeerHouse</strong>, una combinacion de CMS (Content Management System)  e E-Comerce, y <strong>es una solución tan bien diseñada </strong>que posteriormente <a title="TheBeerHouse: CMS &amp; E-commerce Site Starter Kit" href="http://www.asp.net/Downloads/starter-kits/the-beer-house/">se convirtió en un Starter Kit de ASP.NET, promocionado en el mismo site de ASP.NET de Microsoft</a>. Muchos desarrolladores junior simplemente adoptan el estilo de desarrollo de la empresa para la cual trabajan, <strong>sin cuestionar o aprender la base sobre el por qué se hacen las cosas de esa manera</strong>, y <strong>este libro explica la razon de decisiones</strong> sobre aspectos como arquitectura de la aplicación, clases base, estrategias de Caching, etc. <strong>Definitivamente lean este libro</strong>, escrito excelentemente por <strong>Marco Bellinaso</strong>. Cuesta $26 dolares en Amazon.</p>
<p style="text-align: center;">
<div id="attachment_460" class="wp-caption aligncenter" style="width: 219px"><a href="http://www.amazon.com/ASP-NET-3-5-Unleashed-Stephen-Walther/dp/0672330113/ref=sr_1_1?ie=UTF8&amp;qid=1249792256&amp;sr=8-1"><img class="size-full wp-image-460" title="ASP.NET 3.5 Unleashed" src="http://gabrielrodriguez.net/wp-content/uploads/2009/08/aspnet35unleashed.jpg" alt="ASP.NET 3.5 Unleashed" width="209" height="272" /></a><p class="wp-caption-text">ASP.NET 3.5 Unleashed</p></div>
<p><a title="ASP.NET 3.5 Unleashed (Hardcover)" href="http://www.amazon.com/ASP-NET-3-5-Unleashed-Stephen-Walther/dp/0672330113/ref=sr_1_1?ie=UTF8&amp;qid=1249792256&amp;sr=8-1"><strong>ASP.NET 3.5 Unleashed</strong></a> es el último libro, y es como la biblia (1920 páginas) de ASP.NET. Siempre que necesitaba hacer algo muy específico en ASP.NET y no sabía como, en este libro lo encontraba. Este libro cuesta un poco mas, $40 dolares, pero como dije al principio, los reviews hablan por si solos.</p>
]]></content:encoded>
			<wfw:commentRss>http://gabrielrodriguez.net/tres-buenos-libros-para-aprender-net-y-asp-net/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Fundamentos de Programacion &#8211; Libro ebook gratis</title>
		<link>http://gabrielrodriguez.net/fundamentos-de-programacion-libro-ebook-gratis/</link>
		<comments>http://gabrielrodriguez.net/fundamentos-de-programacion-libro-ebook-gratis/#comments</comments>
		<pubDate>Mon, 03 Aug 2009 05:03:09 +0000</pubDate>
		<dc:creator>Gabriel</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Arquitectura]]></category>
		<category><![CDATA[Desarrollo de Software]]></category>
		<category><![CDATA[Ebooks]]></category>
		<category><![CDATA[programacion]]></category>

		<guid isPermaLink="false">http://gabrielrodriguez.net/?p=448</guid>
		<description><![CDATA[Karl Seguin, blogger de CodeBetter.com, acaba de actualizar su serie de articulos convertidos a Ebook, llamado Foundations Of Programming.
El libro trata temas como:

Principios ideales de programación como YAGNI (You Aren&#8217;t Going to Need It), DRY (Don&#8217;t Repeat Yourself), Continuous Integration, Coupling, etc.
Domain Drive Design (DDD)
Dependency Injection
Unit Testing
Object Relational Mappers (ORMs)
Exception Handling.
Mocking

Y más. El libro es [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_449" class="wp-caption aligncenter" style="width: 250px"><img class="size-full wp-image-449" title="CodeBetter Logo" src="http://gabrielrodriguez.net/wp-content/uploads/2009/08/codebetter-logo.jpg" alt="CodeBetter Logo" width="240" height="74" /><p class="wp-caption-text">CodeBetter Logo</p></div>
<p><a title="Karl Seguin" href="http://codebetter.com/blogs/karlseguin/">Karl Seguin</a>, blogger de<strong> CodeBetter.com</strong>, acaba de actualizar su serie de articulos convertidos a Ebook, llamado <strong>Foundations Of Programming</strong>.</p>
<p>El libro trata temas como:</p>
<ul>
<li><strong>Principios ideales de programación</strong> como YAGNI (You Aren&#8217;t Going to Need It), DRY (Don&#8217;t Repeat Yourself), Continuous Integration, Coupling, etc.</li>
<li>Domain Drive Design (DDD)</li>
<li><strong>Dependency Injection</strong></li>
<li>Unit Testing</li>
<li><strong>Object Relational Mappers</strong> (ORMs)</li>
<li>Exception Handling.</li>
<li><strong>Mocking</strong></li>
</ul>
<p>Y más. El libro es bueno, y definitivamente creo que cualquiera de nosotros conoce la mayoría de los temas del libro, pero definitivamente<strong> se puede sacar mucho provecho de esta publicación</strong> que Karl se tomó el tiempo de hacer.</p>
<p>Ya sea que domines varios de estos temas y quieras familiarizarte con uno que no conoces, o que no sepas sobre arquitectura en general y quieras aprender, este libro te puede ayudar.</p>
<p>Esta serie de aprendizaje también<strong> incluye una aplicación de muestra</strong>, llamada <strong>Canvas Learning Application</strong>, que<strong> implementa varios de los principios de programación que se enseñan en el libro</strong>. Esto para los que nos gusta aprender de manera más practica, analizando código.</p>
<p>Las ligas al ebook y a la aplicación:</p>
<p><a title="Foundations Of Programming PDF" href="http://codebetter.com/media/p/179694.aspx">Foundations Of Programming (PDF)</a></p>
<p><a title="Foundations Of Programming (docx Word Document)" href="http://openmymind.net/FoundationsOfProgramming.docx">Foundations Of Programming (DocX)</a></p>
<p><a title="Canvas Learning Application - Foundations Of Programing Sample Application" href="http://codebetter.com/blogs/karlseguin/archive/2009/05/25/revisiting-codebetter-canvas.aspx">Canvas Learning Application (Sample Application)</a></p>
<p>Espero les sirva.</p>
]]></content:encoded>
			<wfw:commentRss>http://gabrielrodriguez.net/fundamentos-de-programacion-libro-ebook-gratis/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Como escribir archivos temporales en el Framework .NET</title>
		<link>http://gabrielrodriguez.net/como-escribir-archivos-temporales-en-el-framework-net/</link>
		<comments>http://gabrielrodriguez.net/como-escribir-archivos-temporales-en-el-framework-net/#comments</comments>
		<pubDate>Sun, 14 Jun 2009 16:43:58 +0000</pubDate>
		<dc:creator>Gabriel</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Desarrollo de Software]]></category>
		<category><![CDATA[Archivos Temporales]]></category>
		<category><![CDATA[System.IO]]></category>

		<guid isPermaLink="false">http://gabrielrodriguez.net/?p=371</guid>
		<description><![CDATA[Hace poco estuve optimizando una aplicación web que desarrollé usando .NET 1.1. have muchos años. Y por optimizar me refiero a actualizarla a .NET 3.5 y mejorar la calidad del código, ya que esa aplicación fue desarrollada cuando todavía estaba en la escuela.
Parte de la optimización fue mejorar la funcionalidad de manejar archivos temporales. La [...]]]></description>
			<content:encoded><![CDATA[<p>Hace poco estuve optimizando una aplicación web que desarrollé usando .NET 1.1. have muchos años. Y por optimizar me refiero a actualizarla a .NET 3.5 y mejorar la calidad del código, ya que esa aplicación fue desarrollada cuando todavía estaba en la escuela.</p>
<p>Parte de la optimización fue <strong>mejorar la funcionalidad de manejar archivos temporales</strong>. La aplicación generaba reportes en PDF, y para poder integrar unas gráficas al archivo PDF, primero tenía que guardarlas a disco.</p>
<p>No sé si en esa versión del .NET Framework no existían las nuevas funciones ahora utilizo, o si simplemente no eran tan conocidas, pero en aquel momento tuve que escribir <strong>mis propias funciones para obtener un nombre único de archivo</strong> (usando Date.Now.Ticks, mezclado con otras variables) y tambien tuve que crear un <strong>directorio temporal dentro de la aplicación</strong>, para poder escribir los archivos ahi y después borrarlos.</p>
<p>.NET tiene ahora 2 funciones muy buenas para facilitar el trabajo del programador:</p>
<p>1. <strong>System.IO.Path.GetTempFileName() </strong>- Regresa un string con el path completo de un nombre único para un archivo temporal. Por ejemplo: <strong>C:\Documents and Settings\Gabriel\Local Settings\Temp\tmp16A.tmp</strong>. Como pueden ver, ni siquiera tuve que molestarme en conseguir el path del folder temporal del sistema. Esta función me regresa todo ya concatenado.</p>
<p>2. <strong>System.IO.Path.GetTempPath()</strong> &#8211; obtiene el nombre del folder (o carpeta, o directorio, como le quieran llamar) temporal del sistema, donde no es necesario tener permisos especiales para poder escribir archivos. Lo cual es una ventaja porque no hay que asegurarse o preocuparse de que el usuario ASPNET tenga privilegios, como antes.</p>
<p>Otra ventaja es que <strong>si escribimos nuestros archivos temporales a la carpeta de Archivos temporales del sistema, Windows borrará automaticamente los archivos la próxima vez que el sistema se reinicie</strong>. Claro, esto puede servir para Thin Applications (aplicaciones que corren del lado del cliente), pero <strong>no debemos confiarnos de esto si estamos ejecutando este código en el servidor</strong>, ya que en teoría nunca se reinician, o toman muchísimo más tiempo y podríamos saturar el disco.</p>
<p>Espero les sirva.</p>
]]></content:encoded>
			<wfw:commentRss>http://gabrielrodriguez.net/como-escribir-archivos-temporales-en-el-framework-net/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WCF: Comparacion de BasicHttpBinding y WSHttpBinding</title>
		<link>http://gabrielrodriguez.net/wcf-comparacion-de-basichttpbinding-y-wshttpbinding/</link>
		<comments>http://gabrielrodriguez.net/wcf-comparacion-de-basichttpbinding-y-wshttpbinding/#comments</comments>
		<pubDate>Sun, 03 May 2009 07:18:13 +0000</pubDate>
		<dc:creator>Gabriel</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[Desarrollo de Software]]></category>
		<category><![CDATA[BasicHttpBinding]]></category>
		<category><![CDATA[WCF]]></category>
		<category><![CDATA[WSHttpBinding]]></category>

		<guid isPermaLink="false">http://gabrielrodriguez.net/?p=309</guid>
		<description><![CDATA[
Estoy experimentando con diferentes settings para configurar unos WCF Services y me tope con este articulo&#8230;definitivamente interesante para cualquiera que trabaje con Windows Communication Foundation.
El articulo habla sobre las diferencias de seguridad, confiabilidad y estabilidad del binding WSHttpBinding contra el BasicHttpBinding.
WCF : BasicHttpBinding compared to WSHttpBinding at SOAP packet level
]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;">
<div id="attachment_64" class="wp-caption aligncenter" style="width: 190px"><img class="size-full wp-image-64" title="Microsoft .NET Framework" src="http://gabrielrodriguez.net/wp-content/uploads/2009/01/microsoft-net-logo-white.png" alt="Microsoft .NET Framework" width="180" height="115" /><p class="wp-caption-text">Microsoft .NET Framework</p></div>
<p>Estoy experimentando con <strong>diferentes settings</strong> para configurar unos <strong>WCF Services </strong>y me tope con este articulo&#8230;definitivamente interesante para cualquiera que trabaje con Windows Communication Foundation.</p>
<p>El articulo habla sobre las<strong> diferencias de seguridad, confiabilidad y estabilidad</strong> del binding <strong>WSHttpBinding </strong>contra el <strong>BasicHttpBinding</strong>.</p>
<p><a id="viewpost_ascx_TitleUrl" title="WCF : BasicHttpBinding compared to WSHttpBinding at SOAP packet level" href="http://geekswithblogs.net/claeyskurt/archive/2008/04/22/121508.aspx">WCF : BasicHttpBinding compared to WSHttpBinding at SOAP packet level</a></p>
]]></content:encoded>
			<wfw:commentRss>http://gabrielrodriguez.net/wcf-comparacion-de-basichttpbinding-y-wshttpbinding/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
