Remoting net

Solo disponible en BuenasTareas
  • Páginas : 19 (4589 palabras )
  • Descarga(s) : 0
  • Publicado : 31 de enero de 2011
Leer documento completo
Vista previa del texto
Introducción
.Net Remoting es un entorno (framework) para la construcción de sistemas distribuidos. Como cualquier framework de esta naturaleza, .Net Remoting nos aporta una serie de servicios (incluyendo la creación y gestión del tiempo de vida de los objetos) y mecanismos para el transporte de los mensajes entre objetos que se denominan canales. Nuestro objetivo a la hora de crear estasprácticas es ver como usar estos servicios y mecanismos mediante una sucesión de ejemplos, quizás algo sencillos al principio pero que ganarán en riqueza a lo largo del curso. El entorno de desarrollo que os recomendamos es Mono y algunas herramientas adicionales como MonoDevelop, Nant o Nunit, pero podéis usar el entorno que más os guste siempre y cuando los ejecutables finales de las prácticasfuncionen correctamente en los laboratorios. Si alguno prefiere utilizar un entorno integrado para el desarrollo os propongo VisualStudio en Windows o SharpDevelop/MonoDevelop en Linux. En los web respectivos podréis encontrar las instrucciones para la descarga e instalación de todas estas herramientas. A dia de hoy son de libre acceso.

Curso de Remoting. Práctica 1.

1 de 21

Primer ejemplo
Alprincipio vamos a construir una pequeña aplicación que nos permitirá familiarizarnos con C# y con el entorno de desarrollo. Vamos a utilizar un ejemplo muy usual en este tipo de cursos: una calculadora. Esta aplicación será inicialmente local (no remota) y posteriormente la vamos a transformar en una aplicación distribuida. El primer paso pues será definir la clase de la calculadora. Os proponemosun código de ejemplo, pero os aconsejamos que intentéis crear uno vosotros mismos.

// Calculadora.cs using System; namespace Calculo { public class Calculadora { public double Suma(double izq, double dch) { return izq+dch; } public double Producto(double izq, double dch) { return izq*dch; } } }

Para usar este código vamos a construir un programa principal que hará llamadas a dicha clase. Unejemplo sería:

Curso de Remoting. Práctica 1.

2 de 21

// Principal.cs using System; using Calculo; public class Principal { public static void Main (string[] args) { Console.WriteLine("Esto es una prueba"); Calculadora calc = new Calculadora(); Console.WriteLine("Suma 5+3=" + calc.Suma(5,3)); Console.WriteLine("Producto calc.Producto(5,3)); } } 5*3=" +

Para compilar este código conMono tendréis que teclear:
mcs -target:library Calculadora.cs mcs -r:Calculadora.dll Principal.cs

Si, en lugar de utilizar los comandos de Mono, os gusta más usar herramientas de construcción automática, os recomiendo NAnt. Dicha herramienta es la versión para .Net de otra herramienta llamada Ant, muy utilizada en el entorno Java. Otra herramienta que podéis usar para el mismo propósito sería“make”. Finalmente, si queréis usar un entorno integrado tipo MonoDevelop, basta con crear una solución o combinado, añadir el fichero de código y compilar (build). Si tienes problemas, pregunta a tu profesor de prácticas. Si optáis por NAnt, os propongo un fichero de configuración de ejemplo:

Curso de Remoting. Práctica 1.

3 de 21

Un ejemplo para las practicas.En nuestro primer ejemplo nos harían falta otras operaciones tales como dividir o Curso de Remoting. Práctica 1. 4 de 21

restar. Lo dejamos para que lo hagáis vosotros mismos como ejercicio. Otra mejora que necesitaremos en breve es la definición de un interface para la calculadora. Os recomiendo que sigáis la nomenclatura habitual en C# y la denominéis “ICalculadora”. Haced que vuestracalculadora herede (extienda) vuestro interface. Finalmente os recomiendo que insertéis alguna traza en las funciones de la clase calculadora; de esta forma podremos observar donde se está ejecutando el objeto cuando pasemos al modelo distribuido.

Cuando veas este símbolo, nos gustaría llamar tu atención sobre algún aspecto de la práctica. Es un buen momento para que tu profesor os cuente...
tracking img