Mostrando entradas con la etiqueta general. Mostrar todas las entradas
Mostrando entradas con la etiqueta general. Mostrar todas las entradas

sábado, 27 de octubre de 2012

Actualizando a Windows 8 Pro desde Windows 8 Release Preview

Desde ayer está disponible el nuevo Windows 8 para todos los públicos. Pese a que desde hace tiempo estoy usando la Release Preview ya era hora de actualizar el sistema, para entre otras cosas poder instalar el Visual Studio 2012 Pro (versión definitiva). En el momento de realizar la actualización me surgieron dos dudas
  1. Desde la página web donde podías comprar la actualización no decía nada de que se pudiera actualizar desde las versiones "betas" de Windows 8. Sólo se podía actualizar desde Windows XP SP3, Windows Vista y Windows 7.
  2. Si compraba la actualización, ¿qué era lo que realmente estaba comprando?¿una iso?¿una actualización  Y si mañana me compro un SSD y quiero hacer una instalación limpia, ¿puedo reinstalar mi Windows 8?
Con esta dudas lo primero que hice fue intentar acceder a la actualización a través de la propiedades del sistema. Pero tras varios intentos siempre obtenía el mismo error.


El siguiente pasó fue ir a la página de actualización y descargarme un ejecutable se encargaría del proceso de actualización. Así lo hice y de esta manera todo fue correcto. Nada más arrancar el "actualizador" éste se tomará su tiempo para analizar tu sistema actual e informarte de los problemas que puedes tener con la aplicaciones instaladas a la hora de actualizar tu sistema. En mi caso solo tendría problemas con el Daemon Tools Lite que uso para montar imágenes, o sea, un problema menor teniendo en cuenta que el Windows ya trae este comportamiento de serie. Tras esto podemos realizar la compra de la actualización





Tras realizar el pago se iniciará la descarga de la actualización. Una vez terminada la descarga nos preguntará que queremos hacer, si instalarla o por ejemplo crear un medio de instalación. En mi caso seleccione está opción, y cree una ISO que yo posteriormente quemé en un DVD y desde el que ahora mismo estoy realizando la instalación de Windows 8 sin problemas. Así que, pese a que estamos comprando una actualización tenemos una ISO que podemos guardar para posteriormente realizar otra instalación.


Notas
  • Desde esta página https://www.mswos.com/ podemos reiniciar la descarga introduciendo algunos datos como el número de pedido y el apellido y correo electrónico que usamos en la compra.
  • La nueva instalación me ha respetado completamente el arranque dual que tenía con Windows 7.

Happy coding!


miércoles, 24 de octubre de 2012

Atajos de teclado en Windows 8

A medida que han ido pasando las semanas usando Windows 8 me he ido acostumbrando a usar los atajos de teclado. Buscando por internet encontré un listado que puede ser útil.


Los más que uso son

  • WIN + Q: Para buscar aplicaciones.
  • WIN + I: Panel de opciones para luego poder apagar o suspender el equipo.
  • WIN + D: Ir al escritorio (esta no es de Windows 8).
  • WIN + E: Ir al explorador de Windows (tampoco es exclusiva de Windows 8).
Os podéis descargar la imagen desde aquí.

martes, 24 de abril de 2012

CS0012: El tipo 'System.Data.Objects.DataClasses.EntityObject' está definido en un ensamblado al que no se hace referencia...

Hoy, haciendo una prueba me he tropezado el siguiente error al intentar usar un objecto definido en el modelo del Entity Framework

Mensaje de error del compilador: CS0012: El tipo 'System.Data.Objects.DataClasses.EntityObject' está definido en un ensamblado al que no se hace referencia. Debe agregar una referencia al ensamblado 'System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.

Lo que estaba haciendo en la vista era lo siguiente
@model Model.Persona
@{
    ViewBag.Title = "Detalle";
    Layout = "~/Views/Shared/_Public.cshtml";
}
<h2>@Model.Nombre</h2>
Vamos algo relativamente normal. Lo curioso del error era que mi proyecto ASP.NET MVC si tenía agregada la referencia a System.Data.Entity como se puede ver en la imagen


La solución pasa por añadir la referencia a System.Data.Entity en el web.config de la manera siguiente
<system.web>
  <compilation debug="true" targetFramework="4.0">
    <assemblies>
      <add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
    </assemblies>
  </compilation>
</system.web>

Happy coding!

jueves, 19 de abril de 2012

Como crear un proyecto para servicios web en Visual Studio 2010

Hoy en el foro de la MSDN ha surgido la duda de como crear un servicio web en Visual Studio 2010. La verdad es que está un poco rebuscado y por eso he decidido crear un pequeño artículo de como se debe hacer.
  • En nuestra solución añadimos un nuevo proyecto
  • Buscamos el desplegable donde estará marcado ".NET Framework 4"
  • Seleccionamos ".NET Framework 3.5", y vamos a "Visual C#" > "Web" para C# u "Otros lenguajes" > "Visual Basic" > "Web" para VB.NET y seleccionamos "Aplicación de servicio Web de ASP.NET"

  • Veremos que se añade un nuevo proyecto a nuestra solución
  • Marcamos el proyecto como proyecto de inicio y ejecutamos nuestra solución. Veremos que nuestro WebService se ejecuta sin problemas

NOTA: En caso de estar haciendo un proyecto nuevo recomiendo una lectura sobre Windows Communication Foundation

lunes, 9 de abril de 2012

#1 Error, navegador no reconocido

Hoy voy a inaugurar un nuevo tipo de artículo, en los que iré poniendo fallos, que algunas veces son graciosos y otras vez no lo son tanto, dentro del mundo de la informática o la tecnología en general. Para inaugurar está sección os muestro un aviso que da la página de Microsoft Partner Nework a la hora de conectarnos al Partner Membership Center con el Internet Explorer 9.


En fin, que ni en Microsoft saben como identificar su navegador favorito...

lunes, 26 de marzo de 2012

Analizando el Null-coalescing operator u operador ?? en C#

En mi anterior artículo sobre el operador ?? y tras un comentario sobre la legibilidad del código me surgió la duda de como resolvería internamente el compilador este operador, porque si lo resuelve como el clásico if...then...else puede que alguno prefiera esta sintaxis a la del operador ??, aunque a mi personalmente me gusta más el código limpio así que cuanto menos escriba mejor.

Para hacer la prueba usaré el siguiente código

public string ObtenerValor()
{
    return null;
}

public string Test1()
{
    if (ObtenerValor() == null)
        return "Test1";
    else
        return ObtenerValor();
}

public string Test2()
{
    return (ObtenerValor() == null ? "Test2" : ObtenerValor());
}

public string Test3()
{
    return (ObtenerValor() ?? "Test3");
}

Como vemos no se trata de un código muy complejo, simplemente simulamos una llamada a un método que he llamado ObtenerValor, que devuelve un simple null. Este método puede ser la obtención de un valor en una base de datos y llevarnos muchos segundos. Tras compilar el código lo analizamos con el IL Disassembler de lo que obtenemos lo siguiente


Ahí vemos nuestros métodos ObtenerValor, Test1, Test2 y Test3 y al hacer doble click en ellos veremos el código CIL, anteriormente llamado MSIL, que ha generado el compilador.

 Código CIL de nuestro método Test1

  Código CIL de nuestro método Test2


Código CIL de nuestro Test3

Como en código CIL del método Test1 hace dos llamadas a nuestra función ObtenerValor. El código del método Test2, aun siendo más corto que el del método Test1 sigue haciendo también dos llamadas a nuestro método ObtenerValor. El código del método Test3 nos muestra tal y como esperábamos una sola  llamada al método ObtenerValor por lo que ganamos en eficiencia en el código ejecutado y en la legibilidad del código fuente (desde mi punto de vista). Así que, ¿a qué esperamos para usar el operador ?? en todas nuestras comparaciones con null?


Para el que esté interesado en como se ejecuta cada uno de los métodos puede ver que significa cada OpCode en las referencias del artículo.


Happy coding!

Mas info | Código CIL | OpCodes Fields

jueves, 2 de febrero de 2012

Technorati Claim Token

CMD2TVPZYYHP

No hagan caso de este artículo, lo necesito para que technorati indexe el blog y poder aparecer allí también! Cuando registras tu blog te envían este correo:
This is an automatically-generated email.
Thank you for submitting your blog claim on Technorati. Technorati will need to verify that you are an author of the site http://smarrerof.blogspot.com/ by looking for a unique code. We have just assigned the claim token CMD2TVPZYYHP to this claim. Please visit http://technorati.com/account/ for more details, including how to use the claim token.
Thank you.
Y lo que hay que hacer es poner el claim token en un post para que technorati pueda comprobar que eres el dueño del blog que estás intentando registrar.

Una vez más, Happy coding !

domingo, 16 de octubre de 2011

Hello world !

Como no podía ser de otra manera en un blog relacionado con la informática, estreno este blog de manera "oficial" con una post titulado 'Hello World', u 'Hola Mundo' en español (siempre me ha gustado más como queda en inglés).