3ENGINE

Programación y otros cachivaches

Categoría: Tecnologia

Página 36/45

Tecnologia

Fiddler: analizador del trafico http


Fiddler es una analizador del trafico http que genera nuestro equipo. Fiddler captura todas las peticiones que realiza el navegador y muestra el detalle de cada petición y su correspondiente respuesta.


artículo relacionado: Fiddler – Indispensable para el desarrollo Web




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.




Tecnologia

Clonar or not clonar: that is the question


Programando yo el otro día en c#… necesitaba realizar un copia integra de un objeto, pero duplicando direcciones de memoria, es decir un objeto completamente nuevo pero que contenga los mismos datos… me interesaba que fuera una rutina universal que me sirviera para copiar cualquier objeto independientemente de su tipo.

A partir del artículo de Christian Bigentini descubrí que utilizando técnica de serialización y deserialización podia hacer lo que me proponia.

Pero por otro lado, me interesaba que el método que realiza una copia de mi objeto estuviera de algun modo asociado al tipo… para esto, lo mejor es utilizar las extensiones, una técnica que c# ha incluido a partir de la versión 3.0.

El código resultante es éste:

public static class MyExtensions{
  public static MiTipo Copia(this MiTipo plugin) {
    MemoryStream ms = new System.IO.MemoryStream();
    BinaryFormatter bf = new BinaryFormatter(null,
      new StreamingContext(StreamingContextStates.Clone));
    bf.Serialize(ms, plugin);
    ms.Seek(0, SeekOrigin.Begin);
    MiTipo copia = (MiTipo)bf.Deserialize(ms);
    ms.Close();
    return copia;
  }
}

Un ejemplo de su uso:

using espacio.nombres.declaracion.extensiones...
MiTipo objeto1 = new MiTipo();
objeto1.propiedad = "hola";
MiTipo objeto2 = objeto1.Copia();
...



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.