<?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>3f blog &#187; microsoft</title>
	<atom:link href="http://blog.soluciones3f.com.ar/tag/microsoft/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.soluciones3f.com.ar</link>
	<description>Experiencias compartidas</description>
	<lastBuildDate>Tue, 01 Nov 2011 18:08:49 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Evitar el acceso con navegadores viejos (httpModules .NET)</title>
		<link>http://blog.soluciones3f.com.ar/2008/11/08/evitar-el-acceso-con-navegadores-viejos-httpmodules-net/</link>
		<comments>http://blog.soluciones3f.com.ar/2008/11/08/evitar-el-acceso-con-navegadores-viejos-httpmodules-net/#comments</comments>
		<pubDate>Sat, 08 Nov 2008 06:02:49 +0000</pubDate>
		<dc:creator>fafa</dc:creator>
				<category><![CDATA[Sin categoría]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[httpmodule]]></category>
		<category><![CDATA[microsoft]]></category>

		<guid isPermaLink="false">http://blog.soluciones3f.com.ar/?p=169</guid>
		<description><![CDATA[La gente de Microsoft, en su afán de mejorar la arquitectura de su tecnología web, implementó algo nuevo conocido como httpModules. Obviamente, no es algo nuevo, pero si es algo que se está comenzando a usar hace muy poco tiempo. La propuesta es muy similar a lo que Java llama Filtros. Básicamente todo request que [...]]]></description>
			<content:encoded><![CDATA[<p>La gente de Microsoft, en su afán de mejorar la arquitectura de su tecnología web, implementó algo <em>nuevo</em> conocido como httpModules. Obviamente, no es algo nuevo, pero si es algo que se está comenzando a usar hace muy poco tiempo.</p>
<p>La propuesta es muy similar a lo que Java llama Filtros. Básicamente todo <em>request</em> que llegue al servidor, pasaría por estos httpModules quienes harían su trabajo y toman decisiones. Para aquellos que quieren entender de qué estoy hablando en 5 minutos, la idea es <strong>muy simple</strong> un patrón Observer. Lo que hay que hacer es:</p>
<ol>
<li>Definir estos módulos (así los bautizó MS) deben estar definidas para <em>escuchar</em> un cierto evento que ocurra con el servidor. Por ejemplo, GET (para ver todo los eventos que se pueden atrapar, ver <a href="http://support.microsoft.com/kb/307996">este link</a>)</li>
<li>Modificar el web.config para agregar ese <em>módulo</em> a la configuración de la aplicación web.</li>
<li>Tener precaución, porque este filtro actuará sobre <strong>todo acceso</strong> que se realice con el servidor y nos podría ocasionar problemas si queremos redirigir a una página de error, por ejemplo.</li>
</ol>
<p>En nuestro caso, necesitábamos evitar que navegadores viejos ingresaran a un sitio. Tan simple como eso. Tuvimos que tomar algunas precauciones, pero luego de mucha búsqueda encontramos una solucíon muy satisfactoria con los módulos (y claramente superior a cualquier <em>chanchada</em>). Aquí les adjunto el código para que lo vean (como dice el dicho: <em>El camino se hace rodando</em>)</p>
<p><span id="more-169"></span></p>
<pre lang="csharp" line="1">
using System;
using System.Web;
using log4net;

namespace modulos
{
	public class OldBrowserModule : IHttpModule
	{
		#region IHttpModule Members

		public void Init(HttpApplication application)
		{
			application.BeginRequest += new EventHandler(OnBeginRequest);
		}
		public void Dispose() { }

		#endregion

		public delegate void MyEventHandler(Object s, EventArgs e);
		private MyEventHandler _eventHandler = null;

		public event MyEventHandler MyEvent
		{
			add { _eventHandler += value; }
			remove { _eventHandler -= value; }
		}

		private bool applyFilter(HttpRequest req)
		{
			bool retVal = true;
			retVal != !(req.FilePath.IndexOf("UnsupportedBrowserGlobal.aspx") > 0);
			retVal != req.FilePath.EndsWith(".aspx");
			return retVal;

		}

		public void OnBeginRequest(Object s, EventArgs e)
		{
			HttpApplication app = (HttpApplication)s;
			HttpRequest req = app.Context.Request;
			if (applyFilter(req))
			{
				if (req.Browser.Browser.Equals("IE") &#038;&#038; req.Browser.MajorVersion < 6)
				{
					app.Response.Redirect("~/UnsupportedBrowserGlobal.aspx");
				}
			}
		}

	}
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.soluciones3f.com.ar/2008/11/08/evitar-el-acceso-con-navegadores-viejos-httpmodules-net/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nuevo formato estándar OOXML</title>
		<link>http://blog.soluciones3f.com.ar/2008/04/13/nuevo-formato-estandar-ooxml/</link>
		<comments>http://blog.soluciones3f.com.ar/2008/04/13/nuevo-formato-estandar-ooxml/#comments</comments>
		<pubDate>Sun, 13 Apr 2008 03:59:24 +0000</pubDate>
		<dc:creator>fernando</dc:creator>
				<category><![CDATA[sociedad]]></category>
		<category><![CDATA[iso]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[odf]]></category>
		<category><![CDATA[ooxml]]></category>

		<guid isPermaLink="false">http://blog.soluciones3f.com.ar/?p=42</guid>
		<description><![CDATA[Por un tiempo abandoné un tema realmente importante y hoy, que lo retomo para ver que había sucedido, me entero del fatídico resultado. Aparentemente la ISO (Industrial International Standard Organization) aprobó el estándar DIS 29500, más conocido como OOXML (Office Open XML) (ya con el nombre uno se imagina la empresa detrás de esto verdad?) [...]]]></description>
			<content:encoded><![CDATA[<p>Por un tiempo abandoné un tema realmente importante y hoy, que lo retomo para ver que había sucedido, me entero del fatídico resultado.</p>
<p>Aparentemente la ISO (<span style="text-decoration: line-through;">Industrial</span> International Standard Organization) aprobó el estándar DIS 29500, más conocido como OOXML (Office Open XML) (ya con el nombre uno se imagina la empresa detrás de esto verdad?)</p>
<p><a href="http://blog.soluciones3f.com.ar/wp-content/uploads/2008/04/isomeeting.jpg" rel="lightbox[42]"><img class="alignright size-full wp-image-43" title="Reunion ISO" src="http://blog.soluciones3f.com.ar/wp-content/uploads/2008/04/isomeeting.jpg" alt="" width="500" height="463" /></a></p>
<p><span id="more-42"></span></p>
<p>Historia larga hecha corta, con su suite de aplicaciones Microsoft Office creó el formato de archivo OOXML (por eso la gente que tiene Office2008 dice que otras personas no pueden ver sus archivos, ahora estos terminando en x, por ejemplo xmlx, docx, etc)</p>
<p>En <span style="text-decoration: line-through;">afán monopólico</span> buena fe Microsoft decidió hacer su formato de archivo abierto y lo propuso como estándar ISO. El problema es que ya existe un formato de archivo ISO bastante usado (solo que no por Microsoft) llamado ODF el cual sirve, ya hace tres años, para la misma función que el que Microsoft ahora propone.</p>
<p>Por razones bastantes simples de imaginar no es bueno tener estándares diferentes para lo mismo (ahora que lo pienso hasta casi como que pierde el sentido de estándar) y no se necesita ser un genio para darse cuenta de eso.</p>
<p>Sin embargo, luego de un rechazo inicial, miles de denuncias de serias irregularidades, graves problemas técnicos en los papers,   miles de dolares, y Dios sabe que cosas más, el 2 de Abril logró ser aprobado para el beneficio de ¿todos?</p>
<p>Se que todo lo escrito arriba pareciera ser mi forma habitual de despotricar contra Microsoft, sin embargo analizando fríamente el asunto continuo con mi comentario.</p>
<p>Desde mi perspectiva es muy molesto que la principal aplicación de oficina (Ms Office) no tenga un formato de archivo estándar (obvio que ms no usa los estándar&#8230; los creo aunque ya existan) ya que en mi casa, donde uso Linux y todas aplicaciones free me cuesta acceder a esos archivos y debo tener mucho cuidado cuando envío archivos a otras personas para que puedan abrirlos.</p>
<p>Con el estándar OOXML <span style="text-decoration: line-through;">de Microsoft</span> tengo la esperanza que sea adoptado masivamente por todas las aplicaciones y eventualmente reemplace al, según mucha gente que sabe más que yo, técnicamente superior, formato ODF y a partir de entonces todos vivamos felices con un único estándar.</p>
<p>Sucedió en el pasado, y sucederá nuevamente (eso enseña la historia), que no importa la calidad de un producto tanto como la cantidad de gente que ciegamente lo use y dependa de él para garantizar el éxito y en cierta forma la unicidad de él, contra la obsolescencia de los demás. Esto es comúnmente llamado progreso.</p>
<p>Afortunadamente se que esto sucederá, y el hecho que ISO le haya dado la categoría de estándar a OOXML pesa en su favor, pero al final de cuentas es como dije anteriormente, la adopción que tenga el que lo consagrará efectivamente como un estándar usado, soportado y vivo. Pero puede ser que la industria le de la espalda y favorezca a ODF forzando eventualmente a MS a aceptar ese formato.</p>
<p>Dejo para mayores lecturas una tendenciosa pagina web (mi tendencia, definitivamente no la de 3f) sobre este tema.</p>
<p><a href="http://www.noooxml.org/petition"><img src="http://www.noooxml.org/local--files/start/banner1.png" border="0" alt="" /></a></p>
<p>Para los que les gusta las cosas en español este otro banner</p>
<p><a href="http://www.openxml.info"><img title="Office OpenXML (OOXML) no debe ser ISO 29500" src="http://people.ffii.org/~abarrio/openxml.info/bannerOOXMLnoApto.gif" border="0" alt="Office OpenXML (OOXML) no debe ser ISO 29500" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.soluciones3f.com.ar/2008/04/13/nuevo-formato-estandar-ooxml/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DropDownList y OptionGroups</title>
		<link>http://blog.soluciones3f.com.ar/2008/02/26/dropdownlist-y-optiongroups/</link>
		<comments>http://blog.soluciones3f.com.ar/2008/02/26/dropdownlist-y-optiongroups/#comments</comments>
		<pubDate>Tue, 26 Feb 2008 18:23:17 +0000</pubDate>
		<dc:creator>fernando</dc:creator>
				<category><![CDATA[programacion]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[DropDownList]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[OptionGroup]]></category>

		<guid isPermaLink="false">http://blog.soluciones3f.com.ar/?p=7</guid>
		<description><![CDATA[Hoy estaba trabajando sobre un proyecto asp.Net y como casi siempre me doy cuenta de lo difícil que es, al menos para mi, hacer lo que quiero con las herramientas que me da el lenguaje. Y siempre termino buscando en internet algun control gratuito que alguien con mi mismo problema haya realizado anteriormente. Mi requerimiento [...]]]></description>
			<content:encoded><![CDATA[<p>Hoy estaba trabajando sobre un proyecto asp.Net y como casi siempre me doy cuenta de lo difícil que es, al menos para mi, hacer lo que quiero con las herramientas que me da el lenguaje. Y siempre termino buscando en internet algun control gratuito que alguien con mi mismo problema haya realizado anteriormente.</p>
<p>Mi requerimiento puntual, de este día, era hacer un DropDownList que tuviera colores y títulos. Esto si programara directamente sobre el HTML lo hubiera hecho usando el tag OptionGroup, pero lamentablemente estaba en .Net resulta que no soporta este Tag.</p>
<p>Como era de esperar, en internet solo encontré blogs como el de <a href="http://weblogs.asp.net/jeff/archive/2006/12/27/dropdownlist-with-optgroup.aspx">Jeff&#8217;s Junk</a> que propone un una forma de soluciona, en cierta manera, la limitación pero que igualmente no se explican como microsoft no implementó algo tan util como eso, y que esta constante se ve repetida en muchos aspectos del framework. (el de no implementar algunas cosas y hacer increiblemente dificiles que un programador las haga)</p>
<p>En fin, sigo aca mascando bronca y buscando alguna forma elegante de resolver mi problemita.. cuando la encuentre, si la encuentro, la posteo</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.soluciones3f.com.ar/2008/02/26/dropdownlist-y-optiongroups/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

