domingo 3 de octubre de 2010
Nuevo Blog
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)
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:- Una referencia al proyecto que hemos creado en el artículo anterior, que contiene la interfaz de la hipoteca
- 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:
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.namespace Hipoteca {
[ServiceContract]
public interface class IHipoteca
{[OperationContract]
double CuotaMensual(double capital, double interes, int meses);
}
}
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
Parece bastante sencillo
Veremos que tal queda el resultado. ;)
lunes 25 de febrero de 2008
Truco para Visual Studio
Powered by ScribeFire.
jueves 21 de febrero de 2008
Las leyes
"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++
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
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
"%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
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.