Archivo de la categoría: Windows

Temas relacionados con Windows y Microsoft.

Asegurar release siempre en la publicación .Net

La publicación de una aplicación .Net permite utilizar la configuración Debug y Release y dependerá casi siempre de lo que tengamos seleccionado en el momento de la publicación.

Sin embargo, en muchas ocasiones solo nos interesará publicar con la configuración Release.
Sobre todo cuando tengamos en nuestro código sentencias condicionales del tipo:

#if DEBUG

#else

#endif

Para asegurarnos de que siempre utilizaremos la configuración release deberíamos editar el archivo csproj de nuestro proyecto e introducir lo siguiente justo antes del cierre de la etiqueta :

<Target Name="BeforePublish">
	<Error Condition="'$(Configuration)' == 'Debug'" Text="¡Estás intentando publicar la configuración Debug!" />
  </Target>

Convertir UNIX TimeStamp a DateTime

Es posible que en alguna ocasión en tu vida de programador te hayas encontrado con valores de fecha que aparentemente no lo son, pueden ser generalmente valores enteros muy grandes como por ejemplo 1415463675.

En mi experiencia lo que puedes estar viendo es un valor almacenado en un formato Excel o un UNIX timestamp.

Para convertir UNIX TimeStamp a DateTime en C# .Net podremos utilizar lo siguiente:

public static DateTime UnixTimeStampToDateTime( double unixTimeStamp )
{
    // Unix timestamp son los segundos pasados después de una fecha establecida, por lo general unix utiliza esta fecha 
    System.DateTime dtDateTime = new DateTime(1970,1,1,0,0,0,0,System.DateTimeKind.Utc);
    dtDateTime = dtDateTime.AddSeconds( unixTimeStamp ).ToLocalTime();
    return dtDateTime;
}

De esta manara podrás ver que el valor 1415463675 se corresponde a la fecha 11/08/2014 / 4:21pm (UTC).

Copiar y restaurar bases de datos MySQL con codificación de caracteres intacta

Si quieres preservar caracteres como ñ, ó, ç u otros del estilo cuando migras una base de datos MySQL deberás usar mysqldump con las siguientes opciones:

mysqldump -u <tu_usario> -p <tu_password> –default-character-set latin1 –skip- character-set <tu_db> archivo.sql

Para restaurarla:

mysql -u <tu_usuario> -p <tu_password> –default-character-set latin1 <tu_db> < archivo.sql 

Esto solucionará problemas al restaurar copias de seguridad mediante código. En mi código .Net realizaba un proceso que creaba tanto la copia de seguridad en scripts .sql y también tenía otro proceso que realizaba la copia de seguridad a partir del fichero generado anteriormente. Sin embargo si el comando lo ejecutaba a través de la consola de windows el proceso lo realizaba correctamente.

Aparentemente el primer proceso generaba correctamente el archivo sql pero a la hora de ejecutar el proceso no podía continuar cuando encontraba un caracter especial, (en mi caso la ñ).

Si realizas copias programadas también deberás tenerlo en cuenta sobre todo si ejecutas la restauración mediante alguna aplicación .net. Y sobre todo leer el fichero de esta manera:

StreamReader reader = new StreamReader(file,Encoding.GetEncoding(«latin1»));

Como ves los ingleses lo tienen más fácil porque nunca le ocurrirán problemas de este tipo a no ser que trabajen con aplicaciones multiidioma. Pero en cualquier caso deberías tener siempre en cuenta copiar y restaurar bases de datos MySQL con codificación adecuada.

 

Qué es Visual Studio LightSwitch

Con esta tecnología Microsoft pretende llevar el campo de desarrollo a manos que no se dedican especialmente a la programación.

Su utilización se asemeja a lo que pueda ser access comparado a cualquier gestor de base de datos.

En visual studio 2013 puedes elegir entre crear una aplicación LightSwitch de escritorio o una de tipo web.

Si bien todas estas soluciones rápidas de desarrollo son muy poco personalizables puede llegar en alguna ocasión a ser interesante para desarrollar una aplicación de una manera rápida y sencilla.

Más Info

Problema con firma en Outlook, una imagen ha dejado de mostrarse

Puede que te ocurra esto…

Has estado mandando correos con tu firma que contiene una imagen sin problemas hasta el día de hoy, pero de la noche a la mañana la imagen ya no se ve como debería en los nuevos correos que envías. Cuando redactas el correo la imagen no se ve y en su lugar aparece una imagen tipo auto-forma que puedes girar, expandir o contraer.

Esto es lo que le pasó a una persona que trabaja conmigo y aprovechó que estaba por ahí para pedirme que lo arreglara… ¡sí hombre! ¡como si yo conociera Outlook al dedillo!

El caso es que después de darle algunas vueltas sin encontrar solución decidí reiniciar el programa y de esta manera tan sencilla se solucionó.

 

Bases de datos para desplegar con una aplicación .Net

Cómo realizar una instalación de una aplicación nativa en cliente que utilice una base de datos pero sin tener que realizar la instalación completa de sqlserver u oracle por ejemplo que dificultan el despliegue de todo el sistema.

Para solucionar este problema, de momento, he encontrado estas soluciones.

  • Desplegar una base de datos de tipo SQL Server CE (Compact Edition) junto a la aplicación. Cómo desplegar una Base de datos SQL Server Compact con una aplicación.
  • Utilizar SQLite. Es una base de datos que se integra en ficheros casi planos y que es fácil de desplegar con una solución en Visual Studio. Existe una librería en .Net (System.Data.SQLite.dll) que permite acceder. También debe funcionar con Entity Framework pero esto todavía no lo he podido comprobar.
  • Siempre puedes usar un fichero Access para este tipo de despliegues.

 

OWIN: Otra novedad en Visual Studio 2013

Open Web Interface for .NET (OWIN) define una nueva capa de abstración entre el servidor web y una aplicación web. De este modo OWIN permite a las aplicaciones que no les importe en que host esté hospedado. Por ejemplo una aplicación web se puede hospedar en IIS o en un proceso personalizado.

Esta tecnología se conoce también como el proyecto Katana y se inspira en otras tecnologías del estilo node.js.

El problema que intenta solucionar OWIN es desacoplar la dependencia que tenían las aplicaciones ASP.Net con el servidor IIS introduciendo una capa que maneje las peticiones Http.

Sin Open Web Interface for .Net:

Sin OWIN

Con Open Web Interface for .Net:

Con OWIN

Razor en ASP NET

Desde la aparición de Visual Studio 2010 en las aplicaciones MVC se utiliza Razor pero… ¿qué es Razor en ASP Net?

Razor no es un lenguaje de programación sino que es un código insertado en ficheros .cshtml (c#) o .vbhtml (visual basic) que interpreta el servidor. Es decir, Razor es un marcado que «escapa» el código html para utilizar el que es en realidad el verdadero lenguaje de programación (C# o Visual Basic). El caracter con el que «escapa» el código html es @.

Cuando conocí Razor la primera idea que me vino a la cabeza fue que esto llevaba inventado mucho tiempo pero con otros nombres: asp clásico, php incluso en asp.net se puede «escapar» el código con las etiquetas <%%>. Todo esto es cierto pero la ventaja fundamental que ofrece Razor es su simplicidad que se traduce posteriormente en una mayor legibilidad del código.

Un ejemplo:

ASP.Net Sin Razor:

sin_razor

ASP.Net con Razor:

con razor

En mi opinión es muy fácil de aprender, se mejora la legibilidad y más sencillo de escribir. Además en Visual Studio funciona el Intellisense.