miércoles, 28 de septiembre de 2011

Guardar un List<T> en ViewState

En un proyecto actual tengo que mantener el contenido de un GridView sin pasar por la base de datos. Para ello configuré una propiedad que del tipo List<T>, es decir tipada, y la quise almacenar directamente en el ViewState, pero no funcionó.

Para solucionar el problema lo primero es que la clase o estructura que va almacenar el objeto List debe ser serializable por lo cual en este ejemplo tengo que ponerle el tag correspondiente a la estructura Centros.

    [Serializable]
public struct Centros
{
public int IdCentro { get; set; }
public string NombreCentro { get; set; }
}


A continuación debo de construir la propiedad para que trabaje con array, en vez de con objetos List. Para ello lo primero que hago es configurar el ser para que el valor que me viene en forma de lista, lo almacene en forma de Array. Y, además, el Get debe hacer una conversión desde el ViewState a un Array<T> y y desde ese Array<T> a un objeto de tipo List<T> que es lo que devuelvo. Recuerda que en este ejemplo <T> se debe sustituir por <Centros>



protected List<Centros> listadoCentros
{
get
{
Centros[] MatrizDeCentros = (Centros[])ViewState["listadoCentros"];
List<Centros> listado = new List<Centros>(MatrizDeCentros);
return listado;
}
set { ViewState["listadoCentrosAsociados"] = value.ToArray(); }
}


Pero para evitar errores aplico el patron no null y le añado el código de lo que tiene que hacer si la propiedad no ha sido inicializada.



 




protected List<Centros> listadoCentros
{
get
{
if (ViewState["listadoCentros"] == null)
{ return new List<Centros>(); }
else
{
Centros[] MatrizDeCentros = Centros[])ViewState["listadoCentros"];
List<Centros> listado = new List<Centros>(MatrizDeCentros);
return listado;
}
}
set { ViewState["listadoCentrosAsociados"] = value.ToArray(); }
}





Y ya ta. Espero que haya sido de utilidad.

domingo, 25 de septiembre de 2011

Web Matrix 2.0 Beta, una mirada a la última actualización del editor. En GenbetaDev.

Acabo de publicar un análisis de esta herramienta de creación de sitios Web, en su versión Beta 2.0.

http://www.genbetadev.com/herramientas/web-matrix-20-beta-una-mirada-a-la-ultima-actualizacion-del-editor

He de reconocer que me ha costado un poquitín porque no había catado la versión anterior y pensaba que era un editor para diseñadores o noveles… lo cual ha sido un error.

En el proyecto que he realizado para ActiBva.mobi estuve haciendo virguerías con Eclipse contra TFS, cuando podría haber utilizado este editor para la parte php.

Ahora que le he dado un primer vistazo me ha gustado y lo quiero llevar al trabajo a ver si es tan bueno como me ha parecido.

sábado, 24 de septiembre de 2011

Curso de Scrum con TFS

Cuatro días intensos participando en un curso de cuatro días sobre Scrum y TFS. No es que haya aprendido conceptos nuevos, ya que llevo suficiente tiempo en Agilismo y utilizando TFS que me suenan o manejo con naturalidad casi todos los conceptos.

Pero Ariel me ha mostrado múltiples actividades y formas de transmitir esas cosas que me parecen el mínimo imprescindible para iniciarse en el complejo mundo del Coaching de implantaciones Agile en empresas.

Conceptos como multitarea, flujo, confianza, iteraciones, bloqueos funcionales, etc. Hacerlos entender de una forma dinámica y proactiva.

Un poquito mejor que hace una semana y dispuesto a aprender en un proceso de mejora continua.

Microsoft ha muerto… Ja!. en GenbetaDev

Acabo de publicar en GenbetaDev un post de opinión sobre la tan cacareada muerte de Microsoft.

http://www.genbetadev.com/actualidad/microsoft-ha-muerto-ja

Es curioso que un amigo mio, gran profesional de telecomunicaciones, está seguro de ello. Y el profesor de métodologías agiles del curso de TFS con Scrum que he disfrutado también. Y algún compañero un poquito talibán del blog lo dá por seguro.

En cambio la realidad tozuda, muestra la buena salud de Microsoft, a pesar de ser bloqueado en todo lo relativo con la docencia o las retorcidas mentiras de Stallman.

Lo que más me mola de este post son las imágenes ;D