Como verificar con C# si un archivo existe en un servidor remoto, sin descargar el archivo

Posted by Gabriel on February 26th, 2012

.NET logo

Con este codigo de C# se puede verificar si un archivo existe en un servidor remoto, sin bajarlo.

var request = WebRequest.Create(new Uri("http://www.site.com/file1.zip"));

request.Method = "HEAD";

try
{
	var response = request.GetResponse();
	Console.WriteLine("{0} - {1}", response.ContentLength, response.ContentType);
}
catch (WebException ex)
{
	var resp = (HttpWebResponse) ex.Response;

	if (resp.StatusCode == HttpStatusCode.NotFound)
	{
		Console.WriteLine("File does not exist");
	}

}

La diferencia es el uso del metodo HEAD en lugar de POST o GET. El metodo HEAD regresa exactamente los mismos Headers que un request tipo GET, con la excepcion de que no transfiere el message-body, o en este caso, el contenido del archivo en bytes. Este codigo funciona para verificar la existencia de archivos fisicos, o URLs virtuales (ya que no siempre un URL corresponde a un archivo fisico).

Una vez que obtenemos una respuesta, podemos verificar varias propiedades del archivo, como el tamaño (ContentLength) o el tipo (ContentType). Si el archivo no existe, el Framework va a lanzar una WebException, de la cual tomamos la propiedad Response y le podemos hacer un cast al tipo HttpWebResponse, para poder verificar el error especifico HTTP que el servidor arrojó. Si el codigo es 404, significa que el archivo no existe.

Espero les sirva.

Como ayudar a mejorar el .NET Framework

Posted by Gabriel on April 24th, 2011

Últimamente, Microsoft ha dado mucho peso a las opiniones y sugerencias de los desarrolladores que usan el .NET Framework. Varios líderes de equipo de los diferentes bloques que componen el framework (ASP.NET, Entity Framework, WCF, WPF, etc) han utilizado redes sociales, blog posts y varios otros medios para solicitar retroalimentación de los usuarios de .NET sobre las nuevas funcionalidades del framework que han liberado, o sobre ideas y solicitudes para futuras funcionalidades.

Aquí les dejo las ligas a las páginas donde pueden votar por ideas o solicitudes de funcionalidades nuevas hechas por otros usuarios, o donde hasta ustedes mismos pueden crear una nueva solicitud. Esto ayuda a Microsoft a enterarse de cuales funcionalidades o cualidades nuevas los programadores desean que estén incluidas en el framework.

A votar!

Curso de ASP.NET MVC 3 de Pluralsight gratis gracias a Microsoft

Posted by Gabriel on March 13th, 2011

Scott Guthrie simplemente sigue produciendo cosas geniales…

Hace unos días, Scott anunció que Microsoft logró un acuerdo con Pluralsight para que abrieran de forma gratuita su curso en linea de ASP.NET MVC 3, pero solo hasta Marzo 18.

El curso sobre los siguientes temas principalmente:

  • Introducción a ASP.NET MVC 3
  • Razor View Engine (ya no se siente mas el spaguetti-code feeling)
  • Controllers
  • Models
  • NuGet (so cool)
  • Dependency Resolucion

Aprovechen y vean el curso. Llevo poco aprendiendo ASP.NET MVC pero ya me gusta suficiente como para dejar WebForms…

Espero les sirva.

Liga: Curso de ASP.NET MVC 3 gratis

Extensiones de Visual Studio para funcionalidad agregada

Posted by Gabriel on February 17th, 2011

Visual Studio 2010 Logo

A pesar de estar utilizando Visual Studio 2010 por ya casi un año, fue hasta apenas este fin de semana pasado que descubrí el sistema de Extensiones de Visual Studio 2010.

El “Extension Manager” es la manera en que Microsoft permite extender y mejorar Visual Studio, a través de plugins, add-ins, macros, templates y más (a las que ahora se refieren solamente como “extensiones“), pero de una manera centralizada y estandarizada.

Visual Studio Extension Manager Tool Menu

Antes, si alguien aprovechaba algún plugin para Visual Studio, era porque se lo había topado en alguna página, blog, revista o recomendado por alguien más, y ya no es así. Microsoft creó la Visual Studio Gallery, que es un repositorio centralizado de Extensiones de Visual Studio, y que podemos navegar tanto con un browser, como directamente dentro del Extension Manager de Visual Studio. El Extension Manager se ve así:

Visual Studio 2010 Extension Manager

La interfaz visual es muy buena, y la funcionalidad es todavía mejor. Desde la ventana única del Extension Manager podemos instalar nuevas extensiones, visualizar todas las extensiones que tenemos instaladas, filtrarlas por categoría (Controles, Templates, Tools), deshabilitar o desinstalar extensiones individualmente, y hasta actualizar las extensiones. Eso significa ahorrarse el trabajo de ir a la página web de cada desarrollador de las extensiones que tengamos instaladas, bajar un ejecutable para actualizar la extensión, etc.

El Extension Manager de Visual Studio 2010 aprovecha que Microsoft diseñó Visual Studio e integró MEF (Managed Extensibility Framework), que es un framework público (y Open Source) ofrecido por Microsoft para que los desarrolladores de software puedan diseñar sus aplicaciones considerando puntos de extensión, pero eso es otro post.

El hecho de haber descubierto esta funcionalidad de Visual Studio, hizo que me pasara unas 2 horas buscando extensiones útiles, las cuales iré recomendado y describiendo en posts futuros, pero la primera que les dejo es una que provee una de las funcionalidades que más utilizo de ReSharper: Ctrl + Click para ir a la definición de un Type. La extensión se llama “Go To Definition“, y fue creada por Noah Richards.

Espero les sirva y aprovechen esta excelente funcionalidad e de Visual Studio.


Copyright © 2007 Gabriel Rodriguez Plancarte. All rights reserved.