<?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>Linux, computación y más... &#187; Programación</title>
	<atom:link href="http://antoniomtz.org/category/programacion/feed/" rel="self" type="application/rss+xml" />
	<link>http://antoniomtz.org</link>
	<description></description>
	<lastBuildDate>Thu, 09 Feb 2012 06:04:07 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Crear columnas dinámicas en gridView de .NET</title>
		<link>http://antoniomtz.org/2010/03/crear-columnas-dinamicas-en-gridview-de-net/</link>
		<comments>http://antoniomtz.org/2010/03/crear-columnas-dinamicas-en-gridview-de-net/#comments</comments>
		<pubDate>Mon, 08 Mar 2010 16:31:16 +0000</pubDate>
		<dc:creator>antoniomtz</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[Tutoriales]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[c#]]></category>

		<guid isPermaLink="false">http://www.antoniomtz.org/?p=537</guid>
		<description><![CDATA[Me he topado con un problema, el cual era generar un gridView de manera dinámica desde el codebehind con C#. El problema no fué crear el gridView como tal sino la creación de las columnas personalizadas. Googleando un poco me encontré con diferentes tutoriales, en los cuales saqué varias ideas, la manera de resolverlo fué [...]]]></description>
			<content:encoded><![CDATA[<p>Me he topado con un problema, el cual era generar un <strong>gridView</strong> de manera dinámica desde el codebehind con <strong>C#</strong>. El problema no fué crear el gridView como tal sino la creación de las columnas personalizadas.</p>
<p>Googleando un poco me encontré con diferentes tutoriales, en los cuales saqué varias ideas, la manera de resolverlo fué la siguiente:</p>
<pre name="code" class="c#">
//Creamos nuestro gridView
GridView gv1 = new GridView();
//Llenamos nuestro gridView mediante un DataSet previamente creado.
gv1.DataSource = ds;
//Ponemos la propiedad AutoGenerateColumns en False,
//ya que nosotros las crearemos
gv1.AutoGenerateColumns = false;
//Creamos las columnas dinámicamente,
//en mi caso tenemos una lista con las columnas.
 for (int i = 0; i < report.FieldsInfo.Count; i++)
    {
      //Objeto Columna:
       BoundField ColumnBound;
      //Crear Columna:
       ColumnBound = new BoundField();
       ColumnBound.DataField = report.FieldsInfo[i].DATAFIELD.Trim();
       ColumnBound.HeaderText = report.FieldsInfo[i].Title1.Trim();
       gv1.Columns.Add(ColumnBound);
    }
</pre>
<p>Espero que les sea de utilidad, estaré posteando algunas soluciones a problemas no frecuentes.</p>
]]></content:encoded>
			<wfw:commentRss>http://antoniomtz.org/2010/03/crear-columnas-dinamicas-en-gridview-de-net/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Globalización y localización en Flex</title>
		<link>http://antoniomtz.org/2010/01/globalizacion-y-localizacion-en-flex/</link>
		<comments>http://antoniomtz.org/2010/01/globalizacion-y-localizacion-en-flex/#comments</comments>
		<pubDate>Fri, 22 Jan 2010 20:39:01 +0000</pubDate>
		<dc:creator>antoniomtz</dc:creator>
				<category><![CDATA[flex]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Tutoriales]]></category>

		<guid isPermaLink="false">http://www.antoniomtz.org/?p=526</guid>
		<description><![CDATA[Uno de los puntos importantes que tenemos que tomar en cuenta a la hora de desarrollar una aplicación es la Globalización y localización, ¿Qué significa cada de uno de éstos términos? Hablamos de globalización cuando nos referimos a todas aquellas acciones relacionadas con el desarrollo de aplicaciones que se adapten a culturas diferentes. Mientras que [...]]]></description>
			<content:encoded><![CDATA[<p><center><img src="http://www.antoniomtz.org/wp-content/uploads/2010/01/imagenes-de-la-globalizacion-235x300.jpg" alt="imagenes-de-la-globalizacion" title="imagenes-de-la-globalizacion" width="235" height="300" class="alignnone size-medium wp-image-527" /></center></p>
<p>Uno de los puntos importantes que tenemos que tomar en cuenta a la hora de desarrollar una aplicación es la Globalización y localización, ¿Qué significa cada de uno de éstos términos?</p>
<p>Hablamos de <strong>globalización </strong>cuando nos referimos a todas aquellas acciones relacionadas con el desarrollo de aplicaciones que se adapten a culturas diferentes.</p>
<p>Mientras que la <strong>localización</strong> hace referencia a todos aquellos procesos de traducción de los distintos recursos para una cultura especifica.</p>
<p>Para localizar una aplicación Flex se realizan los siguentes pasos:</p>
<ol>
<li>En la carpeta del proyecto crear en raíz una carpeta llamada <em>locale</em>.
<li>Dentro de esa carpeta creamos una llamada es_MX, en este ejemplo lo haremos para español de México
<li>Dentro de la carpeta es_MX vamos a crear los recursos, ej. resources.properties
<li>En el archivo resources podremos agregar nuestros términos que queremos que sean localizados en el formato key=valor. Ejemplo:<br />
Label.Nombre = Nombre<br />
Label.Edad = Edad<br />
Boton.aceptar = Aceptar</p>
<li>Ahora tenemos que crear los recursos es_MX para flex, ya que solo los trae para inglés y japonés. Para ello abrimos una consola, nos situamos en la carpeta bin de la instalación de flex y tecleamos :<br />
<b> copylocale en_US es_MX</b></p>
<li>Ahora configuramos los parámetros de la configuración en Proyecto -> propiedades -> Flex compiler y agregamos:
<p>-locale=es_MX  -source-path=..\locale\{locale}</p>
<li>Ahora con la siguiente instrucción , le decimos a nuestra aplicación cual recurso utilizar.
<pre name="code" class="xml">
  <mx:Metadata>
    [ResourceBundle("resources")]
  </mx:Metadata>
</pre>
<li>Ahora cada ves que queramos hacer uso de los recurso , lo haremos de la siguiente manera:
<pre name="code" class="javascript">
<mx:Button id="zoomButton" label="@Resource(bundle='resources', key='Boton.aceptar')" />
</pre>
]]></content:encoded>
			<wfw:commentRss>http://antoniomtz.org/2010/01/globalizacion-y-localizacion-en-flex/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Introducción a Adobe Flex</title>
		<link>http://antoniomtz.org/2010/01/introduccion-a-adobe-flex/</link>
		<comments>http://antoniomtz.org/2010/01/introduccion-a-adobe-flex/#comments</comments>
		<pubDate>Thu, 21 Jan 2010 21:24:34 +0000</pubDate>
		<dc:creator>antoniomtz</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[opensource]]></category>

		<guid isPermaLink="false">http://www.antoniomtz.org/?p=522</guid>
		<description><![CDATA[Pues bien, me he adentrado un poco al mundo de Flex y quiero compartirles mis expericiencias con respecto a ésta nueva y prometedora tecnología. Primero vamos a hablar un poco de lo que es el Framework Flex. ¿Qué es flex? Adobe Flex es el término con el que se denomina a la tecnología que da [...]]]></description>
			<content:encoded><![CDATA[<p><center><img src="http://www.antoniomtz.org/wp-content/uploads/2010/01/flex-300x300.jpg" alt="flex" title="flex" width="300" height="300" class="alignnone size-medium wp-image-523" /></center></p>
<p>Pues bien, me he adentrado un poco al mundo de Flex y quiero compartirles mis expericiencias con respecto a ésta nueva y prometedora tecnología. Primero vamos a hablar un poco de lo que es el Framework Flex.</p>
<h3>¿Qué es flex?</h3>
<p><strong>Adobe Flex</strong> es el término con el que se denomina a la tecnología que da soporte al desarrollo de las aplicaciones RIA, <strong>Rich Internet Applications</strong> (Aplicaciones Ricas de Internet). Este tipo de aplicaciones tratan de combinar las ventajas de las aplicaciones Web y las aplicaciones tradicionales.</p>
<p>Flex nos permite crear aplicaciones sofisticadas, atractivas y multiplataforma, actualmente se encuentra la versión 3.0 pero ya está previsto el lanzamiento de Flex 4.0 para el 2010, si eres desarrollador es un buen momento para aprender a desarrollar este tipo de aplicaciones porque cada vez la exigencia será mayor y probablemente para próximas versiones la curva de aprendizaje sea mucho más dura.</p>
<p>Sin duda, muchos programadores de PHP, Jquery, Ajax, etc&#8230; estarán encontra de ésta tecnología, ya que se le asemeja mucho a flash y su indexación con google no es óptima. Leyendo un poco , me topé con un post que habla sobre los 7 mitos de flex:</p>
<p><span id="more-522"></span></p>
<ol>
<li><b>Su interfaz no es nativa al navegador</b>
<p>Flex tiene por defecto una interfaz llamada &#8220;Halo&#8221; que unifica el aspecto de los controles de usuario y se ve más linda que el chrome normal del sistema operativo. También permite cambiar el diseño de todo y con Flash Catalyst, será posible crear una aplicación entera con diseño personalizado desde Illustrator, Fireworks o Photoshop.</p>
<p>La critica central es que, cambiando el diseño, rompe en el usuario la costumbre a los elementos de UX. Pero la gran mayoría de aplicaciones web en AJAX ya hacen esto por buenas razones. Mientras los elementos de interfaz no sean extremadamente raros y sigan lineamientos básicos de interfaces humanas, esto es un no-problema.</p>
<p><center><img src="http://www.antoniomtz.org/wp-content/uploads/2010/01/flex-constraints-300x173.png" alt="flex-constraints" title="flex-constraints" width="300" height="173" class="alignnone size-medium wp-image-524" /></center></p>
<li><b>No cambia su tamaño de acuerdo a la resolución del navegador</b>
<p>Todo lo contrario, Flex tiene el mejor sistema de ajuste a múltiples resoluciones. Mil veces superior a cualquier interfaz liquida en CSS/HTML. Activado por defecto. Cualquier programador en Flex moderadamente competente sabe cómo crear una interfaz liquida ajustable a cualquier resolución en Flex. Y en cuatro clicks. Nada de crear divs, javascript, porcentajes, probar en IE, etc.</p>
<li><b>No se ve en dispositivos móviles</b>
<p>Adobe trabaja en esto y al final del año veremos AIR Mobile en el MAX (Oops, spoiler). Sin embargo actualmente es verdad. Aunque nos podemos preguntar ¿Las aplicaciones web en AJAX normales funcionan perfecto en teléfonos? ¿O quizás versiones especialmente diseñadas?</p>
<li><b>Es demasiado pesada</b>
<p>¿Realmente tardó tanto en cargar? Sí, una app Flex tiene un peso base de cerca de 300KB. Pero, por ejemplo, el home de Yahoo pesa 336KB, Slashdot, 861KB, twitter, 260KB, facebook, 608KB. Depende de tu audiencia. Siendo una aplicación web, seguro no le apuntas a tus padres con modem.</p>
<li><b>No es indexable por buscadores</b>
<p>Sigh. Flash sí es indexable por buscadores. No tan fácil, pero 100% probable. ¿Saben quien es no indexable? AJAX. Para indexar contenido AJAX en los buscadores, hay que usar una serie de hacks que son similares o más complejos que en Flash. Flex es muy indexable.</p>
<li><b>Todo lo que hace Flex lo puede hacer AJAX/jQuery/HTML 5</b>
<p>Lo escucho tantas veces que duele. ¿AJAX o HTML 5 pueden hacer conexión con sockets binarios en tiempo real? ¿Manipular bitmaps, bit por bit? ¿Qué hay de manipular datos binarios? ¿Transmitir video en streaming? ¿Qué tal video y audio en tiempo real? ¿Interfaces redimensionables a cualquier resolución en cuatro clicks?</p>
<li><b>Flash Player es un plugin cerrado. HTML, CSS y Javascript son estándares abiertos</b>
<p>Flex es open source y el formato SWF es abierto (en parte). Es verdad que no son un estándar abierto y depende de una empresa. Pero HTML, CSS y Javascript, a pesar de ser abiertos, son diferentes en cada navegador. Webkit tiene cosas que Firefox no, que nunca llegarán a IE8. Aun falta consenso en los codecs y comportamientos de <video> y etiquetas como <canvas> están a medio implementar entre Chrome, Safari y el navegador del Android.</p>
<p>Sí, no es abierto, pero es absolutamente multiplataforma. Es algo que das para lo que recibes.</p>
<p>¿Algún otro mito que escuches de Flash o Flex? O más importante ¿Alguna aplicación web que conozcas que no se pueda hacer en HTML, CSS, JS o HTML 5?</p>
]]></content:encoded>
			<wfw:commentRss>http://antoniomtz.org/2010/01/introduccion-a-adobe-flex/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Monodevelop 2.2 Beta 1 sobre windows XP</title>
		<link>http://antoniomtz.org/2009/10/monodevelop-2-2-beta-1-sobre-windows-xp/</link>
		<comments>http://antoniomtz.org/2009/10/monodevelop-2-2-beta-1-sobre-windows-xp/#comments</comments>
		<pubDate>Sat, 03 Oct 2009 13:17:38 +0000</pubDate>
		<dc:creator>antoniomtz</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Imágenes]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Mono]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.antoniomtz.org/?p=446</guid>
		<description><![CDATA[De pura curiosidad quise instalar el monodevelop para windows xp, en la página oficial de Monodevelop viene el ejecutable para ser instalado en sistemas operativos windows, pero sólo la versión 2.2 Beta 1. Lo primero que se tiene que instalar es las librerias Gtk que también vienen el ejecutable disponible en la página, y después [...]]]></description>
			<content:encoded><![CDATA[<p>De pura curiosidad quise instalar el monodevelop para windows xp, en la página oficial de <a href="http://monodevelop.com/Download">Monodevelop</a> viene el ejecutable para ser instalado en sistemas operativos windows, pero sólo la versión 2.2 Beta 1.</p>
<p>Lo primero que se tiene que instalar es las librerias Gtk que también vienen el ejecutable disponible en la página, y después instalar monodevelop 2.2 Beta 1, la instalación fué satisfactoria:<br />
<center><br />
<a href="http://farm4.static.flickr.com/3506/3974292223_19ce9e4097_o.png" title="monodevelop por tono_mtz, en Flickr"><img src="http://farm4.static.flickr.com/3506/3974292223_fd4c6563b7.jpg" width="500" height="308" alt="monodevelop" /></a></center></p>
]]></content:encoded>
			<wfw:commentRss>http://antoniomtz.org/2009/10/monodevelop-2-2-beta-1-sobre-windows-xp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Componentes de un sitio web exitoso &#8211; La analogía del iceberg</title>
		<link>http://antoniomtz.org/2009/10/componentes-de-un-sitio-web-exitoso-la-analogia-del-iceberg/</link>
		<comments>http://antoniomtz.org/2009/10/componentes-de-un-sitio-web-exitoso-la-analogia-del-iceberg/#comments</comments>
		<pubDate>Fri, 02 Oct 2009 15:41:40 +0000</pubDate>
		<dc:creator>antoniomtz</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[Seguridad]]></category>

		<guid isPermaLink="false">http://www.antoniomtz.org/?p=444</guid>
		<description><![CDATA[A la hora de desarrollar un sitio web , debemos tener en cuenta muchos factores para que éste triunfe. Un sitio web debe de estar bien construido , para el usuario deberá ser transparente el funcionamiento del mismo, al usuario final, sólamente le interesa la vista, por lo tanto unas simples imágenes y cajas de [...]]]></description>
			<content:encoded><![CDATA[<p><center><img src="http://farm3.static.flickr.com/2574/3974817870_6c8bc6fe8f_o.gif"></center></p>
<p>A la hora de desarrollar un sitio web , debemos tener en cuenta muchos factores para que éste triunfe.</p>
<p>Un sitio web debe de estar bien construido , para el usuario deberá ser transparente el funcionamiento del mismo, al usuario final, sólamente le interesa la vista, por lo tanto unas simples imágenes y cajas de texto es lo que deberíamos mostrar. Dentras de todo eso, se encuentra una enorme infraestructura, como por ejemplo:</p>
<ul>
<li><strong>La tecnología que se piensa utilizar</strong>: ésta debe de cumplir con todos los requerimientos de sistema a desarrollar.</li>
<li><strong>Diseño orientado a objetos</strong>: Muchos de los lenguajes actuales ya soportan éste tipo de programación, un diseño estructural es cosa del pasado y no es nada matenible ni escalable.</li>
<li><strong>SEO</strong>: Aunque nuestro sistema esté bien desarrollado, si no se cuenta con un buen SEO, nuestro sistema no tendrá ningún éxito.</li>
<li><strong>Mantenimiento y Escalabilidad</strong>: Nuestro sistema tendrá que ser capaz de ser mantenible por cualquiera y a su vez, tener la posibilidad de que éste sea escalable.</li>
<li><strong>Seguridad</strong>: Todo lo anterior, no tendría sentido sin la seguridad, uno de los factores más olvidados pero más importantes.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://antoniomtz.org/2009/10/componentes-de-un-sitio-web-exitoso-la-analogia-del-iceberg/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>PHP- El tercer lenguaje más popular</title>
		<link>http://antoniomtz.org/2009/09/php-el-tercer-lenguaje-mas-popular/</link>
		<comments>http://antoniomtz.org/2009/09/php-el-tercer-lenguaje-mas-popular/#comments</comments>
		<pubDate>Fri, 25 Sep 2009 04:05:06 +0000</pubDate>
		<dc:creator>antoniomtz</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Noticias]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[software libre]]></category>

		<guid isPermaLink="false">http://www.antoniomtz.org/?p=430</guid>
		<description><![CDATA[TIOBE, la empresa que publica mensualmente su Programming Community Index con los 10 lenguajes de programación más populares según la disponibilidad mundial de ingenierios, cursos, vendedores de software y búsquedas populares en Google, MSN, Yahoo!, Wikipedia y YouTube, anuncia en sus resultados para este mes de Septiembre del 2009 que PHP llegó al puesto número [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-432" title="gu88m" src="http://antoniomtz.org/wp-content/uploads/2009/09/gu88m.png" alt="gu88m" width="480" height="260" /></p>
<p><a href="http://www.tiobe.com">TIOBE</a>, la empresa que publica mensualmente su <strong>Programming Community Index</strong> con los 10 lenguajes de programación más populares según la disponibilidad mundial de ingenierios, cursos, vendedores de software y búsquedas populares en Google, MSN, Yahoo!, Wikipedia y YouTube, anuncia en sus resultados para este mes de Septiembre del 2009 que PHP llegó al puesto número 3 por primera vez desde que se comenzó a publicar en el 2001.</p>
<p>Los puestos 1 y 2 (Java y C respectivamente) son fundamentalmente lenguajes de propósito general, por lo que el ascenso de PHP al tercer puesto seguramente significa que el desarrollo para la web en general también está creciendo, comparado con otras plataformas más tradicionales.</p>
]]></content:encoded>
			<wfw:commentRss>http://antoniomtz.org/2009/09/php-el-tercer-lenguaje-mas-popular/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Función JavaScript &#8211; Calcular Edad apartir de una fecha</title>
		<link>http://antoniomtz.org/2009/09/funcion-javascript-calcular-edad-apartir-de-una-fecha/</link>
		<comments>http://antoniomtz.org/2009/09/funcion-javascript-calcular-edad-apartir-de-una-fecha/#comments</comments>
		<pubDate>Fri, 11 Sep 2009 20:01:56 +0000</pubDate>
		<dc:creator>antoniomtz</dc:creator>
				<category><![CDATA[Programación]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://www.antoniomtz.org/?p=383</guid>
		<description><![CDATA[Función de javascript para calcular la edad apartir de una fecha: function(fecha) { hoy = new Date() var array_fecha = fecha.split("/") var ano ano = parseInt(array_fecha[2], 10); if (isNaN(ano)) return false var mes mes = parseInt(array_fecha[1], 10); if (isNaN(mes)) return false var dia dia = parseInt(array_fecha[0], 10); if (isNaN(dia)) return false edad = hoy.getFullYear() - [...]]]></description>
			<content:encoded><![CDATA[<p>Función de javascript para calcular la edad apartir de una fecha:</p>
<pre name="code" class="javascript">
function(fecha) {
                hoy = new Date()
                var array_fecha = fecha.split("/")
                var ano
                ano = parseInt(array_fecha[2], 10);
                if (isNaN(ano))
                    return false
                var mes
                mes = parseInt(array_fecha[1], 10);
                if (isNaN(mes))
                    return false
                var dia
                dia = parseInt(array_fecha[0], 10);
                if (isNaN(dia))
                    return false
                edad = hoy.getFullYear() - ano - 1;

                if (hoy.getMonth() + 1 - mes < 0) {
                    return edad;

                }
                if (hoy.getMonth() + 1 - mes > 0) {
                    edad = edad + 1
                    return edad;
                }

                if (hoy.getUTCDate() - dia >= 0) {
                    edad = edad + 1
                    return edad;
                }

                     return edad;
            }
</pre>
]]></content:encoded>
			<wfw:commentRss>http://antoniomtz.org/2009/09/funcion-javascript-calcular-edad-apartir-de-una-fecha/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Crear un webservice para validación de E-mail</title>
		<link>http://antoniomtz.org/2009/08/crear-un-webservice-para-validacion-de-e-mail/</link>
		<comments>http://antoniomtz.org/2009/08/crear-un-webservice-para-validacion-de-e-mail/#comments</comments>
		<pubDate>Wed, 19 Aug 2009 17:29:34 +0000</pubDate>
		<dc:creator>antoniomtz</dc:creator>
				<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Mono]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Tutoriales]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://www.antoniomtz.org/?p=324</guid>
		<description><![CDATA[En éste tutorial, veremos como crear un webservice que contenga un método para validar si una dirección de emial es válida ó no. También crearemos una aplicación web en asp.net para consumir el webservice. En ésta ocasión utilizaremos VS2008 con el framework 3.5 SP1. Lo primero que haremos será crear un sitio web del tipo [...]]]></description>
			<content:encoded><![CDATA[<p>En éste tutorial, veremos como crear un webservice que contenga un método para validar si una dirección de emial es válida ó no. También crearemos una aplicación web en asp.net para consumir el webservice. En ésta ocasión utilizaremos VS2008 con el framework 3.5 SP1.</p>
<p>Lo primero que haremos será crear un sitio web del tipo webservice, para ello vamos a <b>Fila->New-WebSite</b>, en la ventana que nos aparece seleccionamos <b>ASP.NET WebService</b>:</p>
<p><center><img src="http://farm4.static.flickr.com/3479/3836496271_d75b08565e.jpg"></center></p>
<p>Por default nos creará un método que regresa un simple &#8220;Hola Mundo&#8221;, modificaremos ese método y agregamos lo siguiente:</p>
<pre>
[WebMethod]
public bool EmailValidation(string email)
  {
string expresion = "\\w+([-+.']\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*";
if (System.Text.RegularExpressions.Regex.IsMatch(email, expresion))
      {
if (System.Text.RegularExpressions.Regex.Replace(email, expresion,String.Empty).Length == 0)
      { return true; }
       else
      { return false; }
      }
     else
      { return false; }
    }
</pre>
<p>Quedaría de la siguiente manera:</p>
<p><center><img src="http://farm3.static.flickr.com/2498/3836561029_d034f79890.jpg"></center></p>
<p>Con ésto ya tenemos creado nuestro webservice con un método que nos validará un email, ahora agregaremos un nuevo proyecto a nuestra solución, será un proyecto web asp.net, para ello, vamos a <b>File->Add->New Project</b> y seleccionamos <b>ASP.NET Web Application</b>:</p>
<p><center><img src="http://farm3.static.flickr.com/2635/3836503907_3914b5f89f.jpg"></center></p>
<p>Lo primero que debemos hacer es agregar la referencia del webservice a nuestro nuevo proyecto web, para ello damos click derecho en <b>Referencia</b> y luego Agregar referencia web&#8230;</p>
<p><center><img src="http://farm4.static.flickr.com/3532/3836496273_bd0810e623_o.jpg"></center></p>
<p>Nos aparecerá una ventana para seleccionar la fuente del webservice, seleccionaremos <b>WebService en this solution</b>:</p>
<p><center><img src="http://farm3.static.flickr.com/2583/3836503891_cfd5fc1d43.jpg"></center></p>
<p>Ahí nos aparecerá el webservice que habíamos creado, lo seleccionamos y le damos <b>Add Reference</b>:</p>
<p><center><img src="http://farm4.static.flickr.com/3572/3836503879_efdf1d91a7.jpg"></center></p>
<p><center><img src="http://farm3.static.flickr.com/2588/3836503881_32fcc3e7fd_o.jpg"></center></p>
<p>Una vez que ya está agregada la referencia, vamos a modificar el archivo Default.aspx y le ponemos un TextBox y un Botón:</p>
<p><center><img src="http://farm4.static.flickr.com/3477/3836503899_21d36b2377.jpg"></center></p>
<p>Ahora en el evento OnClick del botón, agregamos el siguiente código:</p>
<pre>
 localhost.Service EmailService = new localhost.Service();
   bool Valid = EmailService.EmailValidation(TextBox1.Text);
       if (Valid)
          Response.Write("Email Correcto");
         else
          Response.Write("Email Incorrecto");
</pre>
<p>Quedaría de la siguiente manera:</p>
<p><center><img src="http://farm3.static.flickr.com/2524/3836496269_0e2d85729f.jpg"></center></p>
<p>Para correr el proyecto, configuramos el proyecto webapplication para que arranque de inicio , dando click derecho en el proyecto y le damos en <b>Set as StartUp Project</b>:</p>
<p><center><img src="http://farm3.static.flickr.com/2496/3836496267_612acd95d9_o.jpg"></center></p>
<p>Listo!, probamos:</p>
<p><center><img src="http://farm4.static.flickr.com/3438/3836496265_05a894aafe_o.jpg"></center><br />
<center><img src="http://farm3.static.flickr.com/2477/3836496233_3dfdef04c5_o.jpg"></center></p>
<p>Si quieres hacer un webservice libre utilizando Mono, puedes visitar mi artículo anterior: <a href="http://www.antoniomtz.org/2009/05/crear-un-web-service-en-monodevelop/">Crear un webservice en monodevelop</a></p>
]]></content:encoded>
			<wfw:commentRss>http://antoniomtz.org/2009/08/crear-un-webservice-para-validacion-de-e-mail/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ASP.NET MVC Framework &#8211; FAQ</title>
		<link>http://antoniomtz.org/2009/08/asp-net-mvc-framework-faq/</link>
		<comments>http://antoniomtz.org/2009/08/asp-net-mvc-framework-faq/#comments</comments>
		<pubDate>Mon, 17 Aug 2009 19:34:52 +0000</pubDate>
		<dc:creator>antoniomtz</dc:creator>
				<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Mono]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[c#]]></category>

		<guid isPermaLink="false">http://www.antoniomtz.org/?p=322</guid>
		<description><![CDATA[He estado utilizando ASP.NET MVC Framework para unos proyectos, sin duda es una herramienta que nos ayuda bastante a realizar aplicaciones ABC sin escribir mucho código, aquí les dejo algunas preguntas frecuentes sobre éste framework: 1. ¿Qué es MVC? Aunque de forma algo simplista, podríamos definir MVC como un patrón arquitectural que describe una forma [...]]]></description>
			<content:encoded><![CDATA[<p>He estado utilizando ASP.NET MVC Framework para unos proyectos, sin duda es una herramienta que nos ayuda bastante a realizar aplicaciones ABC sin escribir mucho código, aquí les dejo algunas preguntas frecuentes sobre éste framework:</p>
<h3>1. ¿Qué es MVC?</h3>
<p>Aunque de forma algo simplista, podríamos definir MVC como un patrón arquitectural que describe una forma de desarrollar aplicaciones software separando los componentes en tres grupos (o capas):</p>
<ul>
<li><strong>El Modelo </strong>que contiene una representación de los datos que maneja el sistema, su lógica de negocio, y sus mecanismos de persistencia.
<li><strong>La Vista</strong>, o interfaz de usuario, que compone la información que se envía al cliente y los mecanismos interacción con éste.
<li><strong>El Controlador</strong>, que actúa como intermediario entre el Modelo y la Vista, gestionando el flujo de información entre ellos y las transformaciones para adaptar los datos a las necesidades de cada uno.<br />
MVC son las siglas de Modelo-Vista-Controlador, y se trata de un modelo muy maduro y que ha demostrado su validez a lo largo de los años en todo tipo de aplicaciones, y sobre multitud de lenguajes y plataformas de desarrollo.
</ul>
<h3>2.¿Qué ventajas tiene el uso del patrón MVC? </h3>
<ul>
<li>Clara separación entre interfaz, lógica de negocio y de presentación, que además provoca parte de las ventajas siguientes.
<li>Sencillez para crear distintas representaciones de los mismos datos.
<li>Facilidad para la realización de pruebas unitarias de los componentes, así como de aplicar desarrollo guiado por pruebas (TDD).
<li>Reutilización de los componentes.
<li>Simplicidad en el mantenimiento de los sistemas.
<li>Facilidad para desarrollar prototipos rápidos.
<li>Los desarrollos suelen ser más escalables.
</ul>
<h3>3.¿Qué es ASP.NET MVC framework? </h3>
<p>Es un framework, un entorno de trabajo cuya primera versión acaba de ver la luz, creado por Microsoft con objeto de ayudarnos a desarrollar aplicaciones que sigan la filosofía MVC sobre ASP.NET.</p>
<p>Además del conjunto de librerías (ensamblados) que proporcionan las nuevas funcionalidades a nivel de API, incluye plantillas y herramientas que se integran en Visual Studio 2008 (tanto en la versión Express de Visual Web Developer como en sus hermanas mayores) para facilitarnos un poco las cosas.</p>
<h3>13. ¿Es ASP.NET MVC framework software libre?</h3>
<p>He aquí una de las grandes novedades respecto al post que escribí un año atrás. Por aquellos tiempos era inimaginable que esta pregunta pudiera responderse de forma afirmativa, pero… efectivamente, <strong>ASP.NET MVC Framework es software libre.</strong></p>
<p>A primeros de abril de 2009 se comenzó a distribuir oficialmente el código fuente de ASP.NET MVC con licencia MS-PL (Microsoft Public License), un modelo de licencia aprobado por la OSI (Open Source Initiative) que permite el uso del software en aplicaciones comerciales y no comerciales.</p>
]]></content:encoded>
			<wfw:commentRss>http://antoniomtz.org/2009/08/asp-net-mvc-framework-faq/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Programación en 3 capas</title>
		<link>http://antoniomtz.org/2009/07/programacion-en-3-capas/</link>
		<comments>http://antoniomtz.org/2009/07/programacion-en-3-capas/#comments</comments>
		<pubDate>Fri, 31 Jul 2009 21:25:32 +0000</pubDate>
		<dc:creator>antoniomtz</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Mono]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[Tutoriales]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[software libre]]></category>

		<guid isPermaLink="false">http://www.antoniomtz.org/?p=305</guid>
		<description><![CDATA[Una buena práctica a la hora de desarrollar un sistema, es tratar de que la arquitectura sea de mínimo 3 capas: Presentación, lógica de negocio y datos. En ésta imágen se puede entender mejor la arquitectura de 3 capas: En la capa de presentación sería la interfaz del usuario, ya sea con windows form, GTK [...]]]></description>
			<content:encoded><![CDATA[<p>Una buena práctica a la hora de desarrollar un sistema, es tratar de que la arquitectura sea de mínimo 3 capas: <strong>Presentación, lógica de negocio y datos</strong>.</p>
<p>En ésta imágen se puede entender mejor la arquitectura de 3 capas:</p>
<p><img src="http://farm3.static.flickr.com/2456/3775345369_8cec34f8b7_o.jpg" alt="3 capas" /></p>
<p>En la capa de presentación sería la interfaz del usuario, ya sea con windows form, GTK ó Web; la capa de la lógica de negocio serían todas las validaciones y/o métodos, mientras que la capa de datos sería la fuente de datos, puede ser una base de datos, un archivo XML, etc&#8230;</p>
<p>Cómo práctica haremos una pequeña aplicación en 3 capas sobre un login en <b>c# con la ayuda de monodevelop</b>. Para comenzar creamos una nueva solución en blanco llamada <b>Proyecto3Capas</b>.</p>
<p>Primero comenzaremos con la capa de datos, para ello, damos click derecho en la solución llamada Proyecto3Capas->Añadir->Nuevo Proyecto, seleccionamos un proyecto web vacio y le ponemos de nombre <b>Datos</b>:</p>
<p><center><img src="http://farm3.static.flickr.com/2584/3775370339_26853a7d18.jpg"></center></p>
<p>Nuestra capa de datos será un webservice dónde contendra el usuario y password del login. Una vez tengamos damos click derecho en el proyecto Datos->Añadir->Nuevo archivo y seleccionamos <b>Servicio web con code Behide</b>, si tienes dificultades para crear el webservice puede ir al post: <a href="http://www.antoniomtz.org/2009/05/crear-un-web-service-en-monodevelop/">crear un webservice en monodevelop</a>.</p>
<p>En el archivo webservice.asmx.cs agregaremos un nuevo método:</p>
<pre name="code" class="c#">
  [WebMethod]
    public bool Datos(string user, string pass)

    {

        if(user=="admin" &#038;&#038; pass=="admin")
				return true;
			else
				return false;

    }
</pre>
<p>Es un simple método que valida usuario = admin y password también admin.</p>
<p>Luego, seguirá la lógica de negocio, para ello, damos click derecho en la solución, Añadir->Nuevo proyecto, y seleccionamos una Librería en c# (puede ser VB.NET si lo desea),le pondremos como nombre <b>Logica</b>, lo bueno de ésto es que se creará una DLL por lo que puede ser escrita en cualquier lenguaje.</p>
<p><center><img src="http://farm3.static.flickr.com/2534/3763960361_645908018b.jpg"></center></p>
<p>Para ser uso de la capa de Datos , damos click derecho en la carpeta de <b>Referencia->Editar referencia</b> , vamos a la pestaña de <b>Proyectos</b> y agregamos la capa de Datos:</p>
<p><center><img src="http://farm4.static.flickr.com/3482/3776217504_fc48743027.jpg"></center></p>
<p>Agregaremos un método llamado <b>Autentificacion</b> con lo siguiente:</p>
<pre name="code" class="c#">
	public bool Autentificacion(string user, string pass)
		{
			Datos.webservice service = new Datos.webservice();
			bool resultado = service.Datos(user,pass);
			if(resultado==true)
				return true;
			else
				return false;
		}
</pre>
<p>Ahora Falta crear la capa de <b>Presentación</b>, nuevamente damos click derecho en la solución y añadimos un proyecto GTK# llamado <b>Presentación</b>, una vez creado, agregamos la referencia de la capa de la lógica.</p>
<p><center><img src="http://farm4.static.flickr.com/3468/3763960357_a54d4d6a83.jpg"></center></p>
<p>Creamos una interfaz donde acepte un usuario, contraseña, un label para mostrar resultado y un botón, en el evento click del botón, añadimos lo siguiente:</p>
<pre name="code" class="c#">
Logica.Logica login = new Logica.Logica();
bool result = login.Autentificacion(this.entry1.Text,this.entry2.Text);
	if(result==true)
		label3.Text = "correcto";
	else
		label3.Text = "incorrecto";
</pre>
<p><center><img src="http://farm3.static.flickr.com/2541/3763960355_997d20238a_o.png"></center></p>
<p>Ésto sería un proyecto muy sencillo pero muy claro de como se puede dividir un proyecto en 3 capas, ésto nos ayudará a identificar mejor los posibles errores, mantenible,etc&#8230;</p>
<p>Les dejo el proyecto terminado para su descarga: <a href="http://www.antoniomtz.org/files/Proyecto3Capas.zip">Proyecto 3 Capas.zip</a></p>
<p>Comentarios, dudas, sugerencias son bien aceptadas.</p>
]]></content:encoded>
			<wfw:commentRss>http://antoniomtz.org/2009/07/programacion-en-3-capas/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

