C# día 19: Webservices

Vaya, pues esto de los webservices, con c# parece más fácil de lo esperado. Primero se crea una clase hija de WebService, atención a la extensión

<%@WebService Language="C#" Class="Saludo"%>

/**
* Saluda.asmx
* Ejemplo básico de webservice.
* SE trata de una clase con un método accesible
* como servicio web, un método que muestra el saludo standar
* En el caso de IIS, cuelgaló en inetpub/wwwroot y verás que pasa:
* se detecta el servicio y te permite ejecutarlo
*
* Para crear el proxy:
* E:>wsdl http://localhost/Saluda.asmx?wsdl /out:c:inetpubwwwrootSaluda.cs
*
* Para crear la libreria a partir del proxy:
* csc /t:library Saluda.cs
*/

using System;
using System.Web.Services;

// Nuestra clase hereda de WebService
public class Saludo : WebService
{

[WebMethod]
public string saludoStandar( string quien )
 {
	return "Hola nena, un saludo de parte de " + quien;
 }
 
}
Podemos colgar ese fichero directamente de IIS y ver lo que ocurre. Magia! A continuación creamos un proxy de nuestro servicio web, cosa de la que se encarga el compilador. Y luego, podemos crear un cliente de prueba, adjuntando la librería del proxy en la compilación:
/**
* ClienteSaluda.cs
* Un programa cliente del servicio Web Saluda
* Muy simple, hay que compilarlo usando la librería creada
* con el proxy del webservice.
* Compilacion: csc /r:Saluda.dll ClienteSaluda.cs
*/

using System;


public class ClienteSaluda
{

	// Método principal
	public static void Main ()
	{
		string resultado = "";
		
		System.Console.WriteLine("Vamos a invocar el servicio web");
		
		// creamos la instancia del servicio
		Saludo miSaludo = new Saludo();
		resultado = miSaludo.saludoStandar("Icaza");
		
		System.Console.WriteLine("Resultado: {0}", resultado );
		
	}
}

by Pello Altadill 07/05/2006 10:00:51 - 26077 hits

C# día 18: acceso a BD

Acceso a BBDD con ADO.NET. Para ejemplos simples se puede usar un ficherillo de access o una conexión odbc cualquiera. La cosa no cambia mucho; /** * AccesoBD.cs * Clase para probar el acceso a BD desde C# * Se usa el ADO.NET * En este caso se prueba una select, pero las otras sentencias * se ejecutan del mismo modo, aunque sin guardar resultado en un DataReader claro. */ using System; // Para el acceso a BBDD using System.Data; using System.Data.OleDb; public class AccesoBD { // MÃÂ...

by Pello Altadill 07/04/2006 23:07:47 - 5226 hits

More »

Theme de wordpress

Bueno, para variar un poco que mejor que hacerse un theme de Wordpress. Puede resultar algo contradictorio hablar de eso en un blog tan descaradamente drupaliano como este, pero lo cierto es que hacer ese theme no es más que una excusa para poner en práctica (más bien en tela de juicio) los conocimientos de css, y más en concreto del posicionamiento de bloques. Lo malo es que cuando se te mete un diseño como este en la cabeza: ...

by Pello Altadill 07/04/2006 15:39:20 - 9459 hits

More »

Sunflowers theme for Wordpress 2

This is just another Wordpress theme. The design is based in sunflowers fields, with random pictures from som fields of Pamplona-Iruñea. This theme has a images/random directory where you can upload image files to be shown in header background. It uses a v...

by Pello Altadill 07/04/2006 15:01:57 - 4573 hits

More »

C# día 17: aplicaciones windows

Solo por encima vamos a ver algunos elementos más que podemos meter en las aplicaciones visuales con c#. Veamos algunos elementos nuevos /** * Elementos.cs * Ejemplo de uso de elementos de windows. * A la hora de compilar, para ejecutar como aplicación de windows * y para que no salga una ventana de DOS, hay que usar estas opciones * csc /t:winexe Formularios.cs o en su defecto * csc /r:System.Windows.Forms.dll /t:winexe Formularios.cs * */ // Usamos esta librería para los formu...

by Pello Altadill 07/03/2006 22:07:37 - 8532 hits

More »

C# dí­a 16: formularios windows

Bueno, pese a que este no es el tema que más interesa hay que verlo: el de las aplicaciones para entornos de ventanas. Hay que tener cuidado a la hora de compilar. Este tema se maneja en entornos Case o IDEs como Visual Studio. Veamos el ejemplo mínimo: /** * Formularios.cs * Ejemplo de uso de formularios windows. * A la hora de compilar, para ejecutar como aplicación de windows * y para que no salga una ventana de DOS, hay que usar estas opciones * csc /t:winexe Formularios.cs o...

by Pello Altadill 07/02/2006 21:14:44 - 3654 hits

More »

C# dí­a 15: clases útiles

Vamos a conocer algunas clases útiles de C#, presentes en cualquier otro lenguaje. Veamos el práctico temporizador con Timer /** * Temporizador.cs * Muestra el uso de la clase Timer para crear temporizadores. * Se puede asociar un evento a un temporizador para que el programa * reaccione al cabo de x tiempo. * Info sobre el standar http://msdn.microsoft.com/net/ecma */ using System; using System.Timers; // Vamos a usar El timer a través de nuestra clase temporizador publ...

by Pello Altadill 07/01/2006 22:44:20 - 19412 hits

More »

C# dí­a 14: sobrecarga de operadores

Al igual que en C++ también podemos sobrecargar operadores en C#. Desde los aritmeticos binarios (+, -, *,..), comparativos, unarios(++), hasta Equals. Este ejemplo no muy útil muestra un poco la forma de sobrecargar operadores, no tiene mucho misterio pero hay que fijarse bien en los parámetros y returns para cada caso. /** * SobrecargaOperadores.cs * Este archivo muestra como sobrecargar operadores * en concreto los binarios simples: +,-,*,/.%, etc.. */ using System; // Defin...

by Pello Altadill 06/30/2006 09:05:24 - 2892 hits

More »

C# día 13: indexadores, delegados, eventos

Hoy vamos a ver unos objetos y métodos algo especiales. Todo esta explicado en el código. Por un lado, los indexadores /** * Indexadores.cs * Los indexadores sirven para acceder a un array que puede haber dentro * de la clase de forma directa. Supongamos que tenemos un atributo que es un * array de nombres: protected string[] nombres; * Con el indexador o indexer accederiamos a ese array así: * MiClase clase = new MiClase(); * clase[0] = "Nuevo valor"; * Y para eso hay que def...

by Pello Altadill 06/29/2006 08:00:35 - 7202 hits

More »