3ENGINE

Programación y otros cachivaches

Etiqueta: programacion

Página 14/21

Tecnologia

Cloud computing


Cloud computing es una tecnología que permite ofrecer servicios de computación a través de Internet (gráfico ‘estado actual cloud computing 2008’). En el artículo ¿Qué es el Cloud Computing? Definición, tendencias y precauciones. se repasan las tendencias actuales y ‘trampas’ que esconde esta tecnología. Actualmente sólo existen un puñado de competidores:

Google App Engine
Página principal de Google App Engine
Google App Engine frente a los web services de Amazon
Google App Engine SDK Cheat Sheet
Debug mode ON: Grupo sobre Google App Engine
Probando ‘Google App Engine’, el ‘servidor de aplicaciones’ que utiliza GFS y BigTable
10 pasos fáciles para usar Google App Engine
Django y Google App Engine → (Semi) FAIL

Windows Azure
Página principal de Windows Azure
Windows Azure, plataforma como servicio de Microsoft
Cloud Development in Visual Studio 2010 (por lo visto está incluido en sus especificaciones)

Amazon EC2
Página principal de Amazon EC2
Tu aplicación sobre los Amazon Web Services (EC2, S3…)

IBM Blue Cloud
Página principal de IBM Blue Cloud
IBM amplía su oferta de soluciones Cloud Computing

VMware vCLOUD
Página principal de vCLOUD
VMware anuncia la Iniciativa vCloud

eyeOS
Página principal de eyeOS
eyeOS: Nubes para el publico.
eyeOS developers

Segun dicen los entendidos no hay que confundir las cloud computing con los mashups. Estos últimos son sitios web o aplicaciónes web que usan contenido de otras aplicaciones Web para crear un nuevo contenido completo, consumiendo servicios directamente siempre a través de protocolo http.




Sin categoría

Datasets: La propiedad NullValue y DefaultValue


Un truco para ahorrar código y quebraderos de cabeza cuando trabajamos con datasets de .NET es la propiedad NullValue que se encuentra en de la definición de las columnas de un DataTable. Si quieres mas detalles sobre DefaultValue y NullValue, lee éste artículo .

Pero en resumen, para ‘NullValue’ se trata de ahorrar la comprobación si el valor de la columna es nulo o no de modo que si la propiedad ‘NullValue’ la dejamos en blanco, de esto:

if (!row.IsObservacionesNull())
  obs = row.Observaciones;
else  
  obs = “”;

sólo necesitaremos hacer esto:

obs = row.Observaciones;

Con DefaultValue, la idea es que al dar a ciertas columnas valores por defecto, al insertar una nueva fila al Dataset sólo nos tendremos que preocupar por dar un valor a los campos que nos interese.




Tecnologia

MSLinqToSQLGenerator: Unspecified error


Cuando añades una partial class a una clase «Linq to SQL» de LINQ tienes todos los números que en un momento u otro acabe saliendo un error «‘MSLinqToSQLGenerator’ failed. Unspecified error» ¡incluso aunque tengas instalado el SP1 de Visual Studio 2008!. Gracias a éste enlace pude solucionar el problema.

1º paso: los using debe estar dentro del «namespace». Es decir de esto:

using System.Linq;
using System.Collections.Generic;
using System.Data;

namespace SIRAMcenter.Datos.Plugins
{
 partial class PluginInstanceDataContext
 {
   public IEnumerable GetNombreClasePluginsNoIControl(int idCentro)
   {

debes pasar a esto:

namespace SIRAMcenter.Datos.Plugins
{
 using System.Linq;
 using System.Collections.Generic;
 using System.Data;

 partial class PluginInstanceDataContext
 {
   public IEnumerable GetNombreClasePluginsNoIControl(int idCentro)
   {

2º paso: Ejecutar explicitamente la herramienta personalizada(MSLinqToSQLGenerator) de nuevo:

3ºpaso: limpia el proyecto y vuelve a compilar.




Tecnologia

LINQ con WCF: de carga diferida a explícita


LINQ por defecto utiliza la consulta diferida. Cuando «navegamos» entre las clases de un LINQ to SQL (.dbml) éste en background va generando las consultas y de este modo nos ahorramos consultas inutiles.

El problema viene cuando queramos devolver una clase que forma parte de un .dbml como resultado de un método marcado como [OperationContract].

Es necesario modificar el comportamiento por defecto de consulta diferida a una consulta forzada. Ejemplo:

PluginInstanceDataContext pluginsContext =  new PluginInstanceDataContext();

var orderloadOption = new System.Data.Linq.DataLoadOptions();
DataLoadOptions dlo = new DataLoadOptions();
dlo.LoadWith(p => p.PluginParametro);
dlo.LoadWith(p => p.PluginTipoControl);
pluginsContext.LoadOptions = dlo;

var consulta = from plugins in pluginsContext.Plugin
                    where plugins.IdCentro == idCentro
                    select plugins;

Sino lo hacemos así nos encontraremos que las «clases hijas» no contienen datos.