2014/10/17

Windows Update rompe aplicaciones web ASP.NET MVC 3 (patch version 3.0.0.1)

Si luego de una actualización de Windows Update has recibido alguno de los mensajes siguientes al querer compilar algún proyecto web:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1605,5): 
warning MSB3245: Could not resolve this reference. Could not locate the assembly "System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL". Check to make sure the assembly exists on disk. If this reference is required by your code, you may get compilation errors.

error CS0234: The type or namespace name 'Mvc' does not exist in the namespace 'System.Web' (are you missing an assembly reference?)

Lo que ocurrió fue que windows update ha instalado un parche (hotfix) para la versión de runtime que tenías referenciada, por lo que deberás actualizar la referencia para que te vuelva a compilar sin problemas.

La solución que me ha funcionado de maravilla, es la siguiente:
http://stackoverflow.com/questions/26406877/asp-net-mvc-security-patch-to-version-3-0-0-1-breaks-build

Los pasos a seguir son los siguientes:

1) Borra la referencia a la versión en desuso de System.Web.Mvc en tus proyectos afectados (Versión 3.0.0.0)
Esto lo hacemos buscando la carpeta llamada "References" en el root de tu aplicación web MVC, luego buscando la referencia llamada "System.Web.Mvc" dentro de carpeta y haciendo botón derecho y click en "Remove"

2) Agregar la referencia a la nueva versión de System.Web.Mvc (Versión 3.0.0.1)
Esto lo hacemos sobre la carpeta "References", botón derecho y click en "Add Reference...", se abrirá una ventana de dialogo donde debemos buscar la versión nueva que necesitamos.

3) Cambiar la propiedad de la nueva referencia a Copia local.
Esto lo hacemos ubicando la nueva referencia que acabamos de agregar en la carpeta "References", botón derecho y click en "Properties", luego ubicar el ítem que dice "Copy Local" y cambiar el valor a TRUE.

4) Finalmente en nuestro web.config debemos cambiar la referencia también.
Esto lo hacemos ubicando la sección correspondiente y cambiando la linea vieja por la nueva.

 <runtime>  
   <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">  
     <dependentAssembly>  
       <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />  
       <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.1" />  
     </dependentAssembly>  
   ...  

Al terminar todo esto y volver a compilar debería andar todo bien.

2014/02/17

Visual Studio 2012 Intellisense (color en la clases) no funciona

Estaba usando alegremente mi Visual Studio 2012 como habitualmente lo hago cuando de un momento a otro noté que el querido intellisense había empezado a dejar de mostrarme las clases en color como siempre lo hacía.
Después de buscar en algunos foros el por qué de esta situación, parece ser que el culpable sería una extensión que siempre eh utilizado y cada tanto parece provocar esta falla, la extensión sería Productivity Power Tools 2012

La solución para que todo vuelva a funcionar como siempre, es deshabilitar una de las opciones de la extensión, más precisamente:

Herramientas -> Opciones -> Productivity Power Tools, y poner en OFF la opción "Colorized Parameter Help" (ver imagen)


Por supuesto una vez cambiada la opción debemos reiniciar el visual studio para ver los cambios.

2012/08/18

Entity Framework 4.3 Migrations (Migraciones)

La version 4.3 de Entity Framework viene con la posibilidad de utilizar migraciones para el desarrollo iterativo mediante Code-First y su impacto en la base de datos al mejor estilo Ruby on Rails.

Aquí les dejo una serie de tips que son muy útiles y recomiendo seguir para cualquiera que quiera incursionar en esta modalidad de trabajo.

http://elegantcode.com/2012/04/12/entity-framework-migrations-tips/


Saludos!!!

2012/03/12

Curso de Saas (software as service) de la universidad de Berkeley

Recomiendo este curso de la Universidad de Berkeley, es online y totalmente gratis, eso sí se necesita saber un poco de inglés para saber que carahos se esta haciendo.

https://www.coursera.org/saas/auth/welcome

El curso recorre el modelo Saas (Software como servicio), utilizando para ello la tecnología Ruby on Rails (http://rubyonrails.org/) y servicios de cloud computing (computación en la nube) para hacer el deploy de los proyectos (http://www.heroku.com/ - http://aws.amazon.com/)


 

2011/12/19

IntelliTrace dejó de funcionar

Este es un error que por alguna razón me empezó a aparecer en el Visual Studio 2010 cuando quería hacer debugging con el IntelliTrace ("IntelliTrace is not collecting data for this debugging session.")



Después de peliarme un buen rato descubrí que el error (al menos en mi caso) se debía a tener activado el SQL Server debugger.
Entonces en caso de tener este error, recomiendo ir al tab de debug y asegurarnos de que el SQL Server debugger este desactivado.




2011/05/30

Uso de Firefox 4 - Notificador para gmail

En este ultimo tiempo hice uso básicamente de dos navegadores, el Chrome de Google y el Firefox de Mozilla, el Chrome es en general más rápido y tiene bastantes plugins hoy en día (tantos o aún más que el Firefox) más la ventaja de no tener que reiniciar y no tener problemas con la versiones para el uso de los mismos. Sin embargo aún hoy en día el Firefox es más utilizado como alternativa al Internet Explorer, sumado a que algunos sitios no terminan de funcionar correctamente con Chrome.

Es por eso que usaré al menos hasta nuevo aviso el Firefox 4 como navegador principal.
Una de las cosas que me costó un poco encontrar fue un notificador de correo para gmail, ya que el que usaba anteriormente no es compatible con esta nueva versión.

El plugin que ahora uso y recomiendo es: https://addons.mozilla.org/en-US/firefox/addon/gmail-manager/
Cuyo website es: http://www.longfocus.com/firefox/gmanager/

Espero que les sirva.

2011/04/13

User Control y Javascript en UpdatePanel

Cuando queremos utilizar script de javascript (server side) desde un user control que esta dentro de un update panel, podemos tener el problema de que el javascript no llegue al navegador hasta que se haga el postback lo que limita su uso en llamados asincronicos (AJAX), para solucionar esto disponemos de la clase ScripManager.

Veamos un ejemplo para ver su utilización:
Generalmente para mostrar un alert utilizamos el siguiente código:


Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "key", "alert('hola');", true);


Bueno, este código no funciona en un user control que este dentro de un update panel, para que esto funcione debemos reemplazar el código por la siguiente linea, que hace uso de la clase ScriptManager:


ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "key", "alert('hola');", true);
Ahora el script funciona ok, espero que les sirva.