domingo 3 de octubre de 2010

Nuevo Blog

Hoy he visto un nuevo blog de lo mas interesante es:
Tocados por Eugenia
En este blog se pueden ver los tocados mas exclusivos del momento.

Espero que os guste

lunes 30 de marzo de 2009

WCF en C++ (2 de 3)

En este artículo vamos a crear una aplicación de consola que hace de servidor e implementa la interfaz que definimos en el artículo anterior. A esta aplicación de consola, se conectará el cliente que crearemos en el siguiente artículo para obtener los datos.

Creación del servidor

Para implementar el servidor, añadimos una aplicación de consola del CLR a la solución actual. Y a continuación le agregamos las siguientes referencias:
  1. Una referencia al proyecto que hemos creado en el artículo anterior, que contiene la interfaz de la hipoteca
  2. Una referencia a System::ServiceModel (para evitar “error de la compilación” que aparece si no la hacemos)

Una vez añadidas estas referencias, procedemos a codificar la clase que implementa la interfaz IHipoteca, así que definimos una clase que deriva de IHipoteca y escribimos el código para el método CuotaMensual:

ref class CHipoteca : IHipoteca
{
public:
virtual double CuotaMensual(double capital, double interes, int meses)
{
double interes2 = interes / 100.0;
double div = 1 + interes2;
div = Math::Pow(div, -meses);
double resultado = capital * interes2 / (1 - div);
Console::WriteLine("Capital: {0}, interes: {1}, meses: {2}, resultado: {3}", capital, interes, meses, resultado);
return resultado;
}
};

En esta implementación del método se incluye el capital, la tasa de interés sin dividir por cien y el número de meses de la operación.

Una vez definido el objeto que va a dar servicio, vamos a crear el servidor. Para ello, usamos la aplicación de consola y ponemos el código necesario según WCF en el método main:

Uri^ direccionBase = gcnew Uri("net.tcp://localhost:888/Hipoteca");
ServiceHost^ servicio = gcnew ServiceHost(CHipoteca::typeid, direccionBase);
servicio->AddServiceEndpoint(IHipoteca::typeid, gcnew NetTcpBinding(), direccionBase);
servicio->Open();
Console::WriteLine("Servicio funcionando ...");
Console::WriteLine("Pulse una tecla para acabar");
Console::ReadKey();
return 0;

Ésta se trata de la parte más interesante ya que incluye el ABC de WCF:

  • A de “address”, se encuentra en la primera línea del código de arriba, en el objeto direccionBase;
  • B de “binding”, aparece en la tercera línea, cuando se hace gcnew NetTcpBinding();
  • C de “contract”, está en la tercera línea donde se hace IHipoteca::typeid.

En el siguiente artículo, veremos cómo crear un cliente que consume este servicio.

Hasta pronto.

viernes 20 de febrero de 2009

WCF en C++ (1 de 3)

Introducción

Windows Communication Foundation (WCF) está diseñado para ofrecer un enfoque manejable a la informática distribuida, interoperabilidad ancha y asistencia directa para la orientación sobre el servicio. Como reza en la página Web de Microsoft de la Msdn En definitiva es una ayuda que nos hace transparente el medio de transporte y en principio nos tenemos que centrar en el contrato. En este ejemplo voy a crear un servidor en C++/CLI que use WCF y en el ultimo artículo desarrollaré un cliente también en C++/CLI que consuma este servicio.

Contrato

En primer lugar crearé una biblioteca de clases en la cual crearé un interfaz que expondrá el contrato, en este caso haré el calculo de la cuota mensual de un préstamo o hipoteca.

Antes de codificar hay que  añadir la referencia a System::ServiceModel y hacer  un using del namesapce.

El código de la interfaz es el siguiente:

namespace Hipoteca {

  [ServiceContract]

    public interface class IHipoteca
    {

        [OperationContract]
        double CuotaMensual(double capital, double interes, int meses);
    }
}

Con esto ya tenemos nuestra biblioteca de clases, la compilamos y es la que usaremos tanto en el servicio como en el cliente. En esta declaración no hay código, ya que la implementación de esta interfaz se hará en el servidor. Esto es todo por hoy en el próximo artículo crearé el servidor en C++ y en el siguiente haré el cliente que utiliza el servicio.

viernes 25 de julio de 2008

Nuevo IDE para Delphi llamado Tiburon


Veo en el blog de Nick Hodges que ya tienen pantallas de proximo entorno de programación para Delphi y C++ Builder que tiene el sugerente nombre de Tiburon.
La imagen es bastante impresioniante ya que se ve el desarrollo de una aplicación que usa el novedoso interfaz de la cinta o como se dice en inglés Ribbon.

En los blogs de CodeGear se está dando información sobre Tiburon en el que cabe destacar que tiene completo soporte a Unicode, esto también se ve en la imagen.

Estoy ansioso por ver que nos puede ofrecer este entorno de desarrollo.

jueves 17 de abril de 2008

Post creado desde Facebook

Una simple entrada para probar como meter un post desde Facebook

Parece bastante sencillo

Veremos que tal queda el resultado. ;)

lunes 25 de febrero de 2008

Truco para Visual Studio

Hoy os propongo un truco que he visto en The .Net Tip of Day.org que consiste en pulsar la tecla Control cuando ha salido el menú contextual de IntelliSense, con esto se consigue que este menú se vuelva transparente y ver el código que hay debajo.

Powered by ScribeFire.

jueves 21 de febrero de 2008

Las leyes

Voy a introducir un apartado dedicado a citas y empiezo por una de G. K. Chesterton.

"Cuando vulneras las grandes leyes no consigues la libertad, ni siquiera consigues la anarquía. Lo que consigues son pequeñas leyes."

G. K. Chesterton.


Powered by ScribeFire.

miércoles 20 de febrero de 2008

Curiosidades de C++

Una curiosidad de C++ es el que cuando se accede a un elemento de un array se pueden intercambiar el índice del array con el array, veamos un ejemplo:

int array[20];
...
array[0] = 1;
1[array] = 2;

En el primer caso se accede al primer elemento y en el segundo también, esto compila (que ya es mucho decir) y funciona (que ya es la repera) en cualquier compilador.

La explicación es bastante sencilla ya que en el fondo un array es un puntero constante, no se puede cambiar el valor del puntero si de lo que apunta, y por lo tanto entra en la aritmetica de punteros y la suma es conmutativa y el orden de los sumandos no altera el resultado.

jueves 7 de febrero de 2008

Aun sigo vivo

Después de mucho tiempo sin actualizar el blog ya he vuelto espero tener mas tiempo y poder escribir mas.

De momento tengo pendiente el tema de Windows Comuniction Foundation, ya estoy preparando la 2ª parte que tendré en unos días.

Para acabar solo comentare el siguiente artículo How to recognise a good programmer visto a través de menéame. En este articulo se comenta las características de un buen programador en las que estoy totalmente de acuerdo.

En el artículo propone 6 puntos en los cuales destaca la habilidades y al final señala cuales son los indicadores positivos y cuales los negativos.

En mi experiencia he podido comprobar que la mayoría de los indicadores tanto positivos para reconocer un buen programador como los negativos para ver un mal programador son ciertos y se cumplen.

jueves 4 de octubre de 2007

Codigo fuente de .Net

Leo en el blog de Scott Guthrie que se va a distribuir el código fuente del .Net Framework.
Se va a distribuir con una licencia en la cual vas a poder ver que es lo que se hace pero no se puede modificar.
Esto es una buena noticia, ya que vas a saber en todo momento que es lo que se está haciendo por debajo, y si algo falla vas a saber por qué.
También es una oportunidad para aprender a programar.

lunes 1 de octubre de 2007

Accesos directos para Outlook

Veo Lifehacker un truco muy interesante para Outlook 2003. Se crea un acceso directo con la siguiente ruta:

"%programfiles%\Microsoft Office\Office11\outlook.exe" /c ipm.note /m dir.at.correo.es

Al hacer doble clic sobre el acceso directo te aparece la ventana para mandar un correo a la dirección señalada despues del parámetro /m.

En esta página encontrarás la información completa sobre todos los parámetros con los que se puede llamar; en el se puede ver como crear tareas nuevas, contactos, etcétera.

Un truco bastante bueno para aumentar la productividad.

miércoles 26 de septiembre de 2007

Introducción a WCF 1ª Parte

Windows Comunication Foundation es una tecnología que fue creada con el fin de permitir una programación rápida de sistemas distribuidos y el desarrollo de aplicaciones basadas en arquitecturas orientadas a servicios.

WCF se basa en tres conceptos clave que son el contrato, el anfitrión y por ultimo el cliente que va a usar ese contrato. Definir el contrato es declarar una clase en la cual se especifica que métodos y que miembros van a estar disponibles. Después se define un tipo de anfitrión, quien sin ánimo de ser exhaustivo enumero, una aplicación de consola, una aplicación de Windows, un servicio de Windows, un servicio Web, etc. Y por ultimo tememos el cliente que va a usar esa contrato, que puede ser cualquier tipo de aplicación.

Para empezar esta introducción voy a crear un contrato. Primero declaro una interfaz, también puede valer una clase pero así queda mas claro que es un contrato, en el cual se ponen unos determinando atributos que están declarados dentro del namespace System.ServiceModel. En la declaración de la interfaz se le pone el atributo "ServiceContract" y a cada método "OperationContract" veamos un ejemplo:

using System;
using System.ServiceModel;

namespace Finalcial
{
[ServiceContract()]
public interface IHipoteca
{
[OperationContract()]
double CuotaMensual(long capital, double interes, int años);
}
}

En próximas entregas os mostraré como hacer un anfitrión para dar el servicio y un cliente que lo consuma.

miércoles 19 de septiembre de 2007

Hola Mundo

Inicio un nuevo blog, en este caso en vez de dedicarlo solo a un lenguaje como era Mundo Delphi, en este lo dedicare a otros lenguajes de programación.
Hablare de la programación en general no centrandome en un solo lenguaje, aunque si me centraré en una plataforma que será Windows.
Además de la programación también hablaré algo de cine, el nombre del blog se asemeja a una película de Woody Allen.