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)
ref class CHipoteca : IHipotecaEn 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.
{
public:
double virtual 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;
}
};
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");Ésta se trata de la parte más interesante ya que incluye el ABC de WCF:
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;
- 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.
Hasta pronto.
3 comentarios:
Hola,
estoy intentando hacer un aplicación cliente/servidor WCF con visual c++ 2005. He visto tu ejemplo pero no consigo que me funcione, además me falta la parte cliente.
Podrías enviarme el/los proyecto/s?
si es posible.
Gracias
Hola,
estoy intentando hacer un aplicación cliente/servidor WCF con visual c++ 2005. He visto tu ejemplo pero no consigo que me funcione, además me falta la parte cliente.
Podrías enviarme el/los proyecto/s?
si es posible.
Gracias
Hola ismasps,
Tienes razón que me falta el cliente, así que en breve lo publicare para acabar con la serie.
Por lo que comentas dices que estás utilizando visual c++ 2005. Esa versión utiliza el .Net versión 2, en esta versión no se creo WCF que apareció con la versión 3 y con el Visual Studio 2008.
Prueba a hacer los ejemplos con VS 2008 o posterior.
Una cosa importante es agregar la referencia a System::ServiceModel, esto hay que hacerlo incluso con C#.
¿Puedes agreagar esta referencia?
Para hacerlo hay que ir al Explorador de soluciones y con el menu contextual "agregar referencia" o ver las propiedades del proyecto y ahí puedes agregar la referencia.
Por resumir:
1 Necesitas la versión 3.0 o superior de .Net (vs2005 usa la 2).
2 Agregar la referencia al ensamblado ServiceModel.
Un saludo.
Publicar un comentario