Práctica 1. Introducción a.net, aplicaciones básicas, namespaces, paquetes y código intermedio.

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Práctica 1. Introducción a.net, aplicaciones básicas, namespaces, paquetes y código intermedio."

Transcripción

1 Práctica 1. Introducción a.net, aplicaciones básicas, namespaces, paquetes y código intermedio. El objetivo de esta práctica es programar una aplicación sencilla para familiarizarnos con el entorno de programación de.net. Durante el desarrollo de las prácticas se van realizar prácticas para dispositivos limitados (PDA). Conociendo el Entorno de Desarrollo Comenzamos por crear un nuevo proyecto con Visual Studio 2005 o 2008: Una vez pulsemos, aparecerá en la pantalla los posibles proyectos. El número y tipo de proyectos dependerá de los SDKs instalados en el sistema: Vamos a crear un proyecto Visual C#, para dispositivo limitado (Smart Device), usando el SDK de Windows Mobile 5.0 o 6.0 dependiendo del que tengamos instalado. La plantilla del proyecto es Empty Project. Le damos un nombre, por ejemplo MiAplicacion o como uno desee. Seleccionamos la ubicación que más nos convenga.

2 Todos los proyectos que hagamos, se incorporan a una solución, daremos el nombre MiSolución o el que nos apetezca a la solución. Ten en cuenta que la solución es un conjunto de proyectos y el nombre debería representar algo común a todos los proyectos incluidos en él. Al crear el proyecto, podemos ver en el explorador de soluciones (Si no aparece, menú View[Ver]>Explorador de soluciones) que el proyecto está vacío completamente. Como podemos ver, la solución no contiene ningún fichero de código. Para introducir un nuevo fichero de código, que será el programa principal, sobre el proyecto MiAplicación, haremos click con el botón derecho y pulsaremos sobre añadir añadir elemento nuevo. Al hacer esto, aparecen varias posibilidades, entre las que se encuentra Archivo de código. Hay otras plantillas, como la de clase o interfaz, que generan parte del código, la estructura etc

3 Llamaremos a este fichero programa.cs. En él vamos a escribir el código de la primera aplicación para Windows Mobile. El fichero está vacío, dado que no se ha utilizado ninguna plantilla de clase o de interfaz. El programa principal Vamos a escribir el programa principal. Para ello se pueden utilizar las siguientes clausulas: public static int Main(), public static void Main(), public static void Main(string[] args) public static int Main(string[] args) Vamos a probar el siguiente código, que calcula el factorial de un número entero de 64 bits. public class MiAplicacion public static Int64 factorial(int64 num) if ((num == 1) (num == 0)) return 1; return num * factorial(num - 1); public static void Main(string[] args) MiAplicacion.factorial(2); factorial(6); Copiad este código en el fichero programa.cs. Para compilar, podeis hacer click con el botón derecho en el proyecto y pulsar en

4 generar o build. Si hacéis esto mismo con la solución, compilará todos los proyectos contenidos en la solución. En la ventana de resultados (si no se ve la pestaña, pulsad en el menú Ver Resultados) podréis ver si la compilación ha sido correcta o no. Si vamos a la carpeta donde hemos guardado el proyecto, en la ruta MiSolucion\MiAplicacion\Bin\Debug podemos ver dos ficheros, MiAplicación.exe y MiAplicación.pdb. Estos ficheros tienen información de depuración, pueden ser un poco más lentos que los programas sin información de depuración. Si cambiáramos la configuración a Release (sin debug) crearía un fichero más eficiente, pero en el caso que nos ocupa, vamos a aprender, así que dejamos el sistema en modo debug. Depurar el programa A continuación veremos cómo se depura un programa con Visual Studio. Para depurar, podemos poner puntos de interrupción pulsando en la parte gris del editor de texto, justo en la línea en la que queremos insertar el breakpoint o bien mediante el menú debug. Si lo que queremos es ejecutar paso a paso pulsamos F10 o para meternos dentro de las funciones F11 (menú debug StepOver, StepInto). Para probarlo usaremos un emulador. En Visual Studio hay un desplegable que permite ver los emuladores instalados. En ese menú desplegable seleccionaremos el emulador que queramos ejecutar (es posible que al depurar nos pregunte de nuevo por el emulador a utilizar). Pulsaremos ahora F10 y comenzará la ejecución. Al comenzar la depuración el entorno de desarrollo cambia y nos muestra nuevas ventanas:

5 Línea donde se encuentra la ejecución Pila de llamadas Ventana de Automático: Variables en uso en cada momento Variables locales: Variables el método en comandos

6 Si pulsamos F10, ejecutará la primera instrucción MiAplicacion.factorial(2); y continuará por la siguiente. Si en la siguiente en lugar de pulsar F10, pulsamos F11, se introducirá en el método factorial, si posteriormente, en el método factorial volvéis a pulsar F11 en la llamada recursiva, volverá a llevaros a factorial. Comprobadlo, echadle un vistazo a la pila de llamadas y podréis ver el efecto de la recursividad en la pila de llamadas: Observad también como varía en valor de las variables mediante las ventanas de Automático y Variables Locales. Estas ventanas permiten cambiar el valor de las variables que se están utilizando. Las tripas del programa, MSIL (MS Intermediate Language) Para ver el código intermedio, generado por el compilador de C#, tendremos que usar una herramienta llamada ildasm.exe que es un desensamblador de MSIL. Como es posible que sea difícil de localizar dentro de la maraña de directorios de Windows y como probablemente no esté en el PATH, una buena forma de usar las utilizades asociadas a Visual Studio es mediante la consola Visual Studio Command Prompt. Cuando aparezca esta consola, ejecuta ildasm.exe y aparecerá una utilidad gráfica. Buscamos el fichero binario MiAplicación.exe y lo analizamos con el desensamblador de lenguaje intermedio. Como se pude ver, no existe el método factorial, pero si nos fijamos en el main, podremos comprobar que, como medida de eficiencia, el compilador lo ha incluido en el interior de main.

7 Más adelante veremos cómo varía el código intermedio con programas más complejos. Acceso a ficheros para depurar Ahora que sabemos cómo depurar un programa, ver el contenido del código intermedio etc, vamos a continuar. Las plataformas Windows Mobile no disponen de consola (se puede instalar usando algunas utilidades GNU) por lo que no es posible hacer depuración sobre consola, pero si en fichero de texto, que además es muy útil. Para hacer esto vamos a crear un ensamblado o librería de log. En primer lugar vamos a dar un espacio de nombres a nuestra aplicación. Hasta el momento, no hemos necesitado que nuestra aplicación tuviera un nombre único, que la diferenciara de las demás a efectos de reutilizar código, pero ahora va a ser necesario; por esta razón, cambiamos el código de la práctica por el siguiente: using System; namespace ComputacionRed.MiAplicacion public class MiAplicacion public static void Main(string[] args) MiAplicacion ma = new MiAplicacion(); /* de momento no hace nada */

8 Acto seguido miramos las propiedades de la aplicación y cambiamos el nombre del ensamblado en la configuración: Una vez hecho esto vamos a crear un nuevo proyecto. Sobre MiSolución, botón derecho Añadir nuevo proyecto. Tipo Class Library. El nombre que le daremos será UtilidadLog. Cambiamos el namespace de la aplicación tal y como aparece bajo estas líneas. using System; using System.Collections.Generic; using System.Text; namespace Utilidades.UtilidadLog public class Log Actualice la información en las propiedades, de forma que el nombre del ensamblado y el espacio de nombres predeterminado sean Utilidades.UtilidadLog Observa que el nombre de la clase es independiente del nombre del fichero, no ocurre igual en java. A continuación daremos funcionalidad a la clase de Log, de forma que podamos escribir información a un fichero que permita depurar el programa. Para ello, es necesario declarar en

9 el código mediante using qué parte de la Base Class Library se utilizará. En concreto usaremos System.IO. Para escribir en un fichero usaremos la clase TextWriter, cuya documentación puede encontrarse en es/library/system.io.textwriter(vs.80).aspx. La función de log se utilizará en adelante para probar el correcto funcionamiento del programa y debido a que las aplicaciones gráficas que veremos más adelante son multihilo (si pulsas un botón y la ejecución tarda, puede que al pulsar otro botón se genere otro hilo de ejecución) y a que el fichero sobre el que vamos a escribir es un recurso compartido: hay que usar un Mutex. El paquete que tiene la implementación de TextWriter es System.IO y el que contiene la implementación de Mutex es System.Threading. A continuación se muestra como utilizar ambos en el programa de la clase Log. Esta clase muestra cómo usar un mutex y como escribir en un fichero de texto. using System; using System.IO; using System.Collections.Generic; using System.Text; using System.Threading; namespace Utilidades.UtilidadLog public class Log /* TextWriter */ TextWriter tw = null; Mutex filemutex; int indent = 0; public Log(string filename) tw = new StreamWriter(fileName,true); filemutex = new Mutex(); ~Log() tw.flush(); tw.close(); public void Trace(String msg) filemutex.waitone(); for (int i = 0; i < indent; i++) tw.write("\t"); tw.write(msg); tw.flush(); filemutex.releasemutex();

10 public void BeginTrace(String fname) indent++; Trace(DateTime.Now.Hour +":"+ DateTime.Now.Minute + ":: Entrando en " + fname + "\n"); public void EndTrace(String fname) indent--; Trace(DateTime.Now.Hour + ":" + DateTime.Now.Minute + ":: Entrando en " + fname + "\n"); public void Trace(String fname, String msg) Trace(DateTime.Now.Hour + ":" + DateTime.Now.Minute + "::" + fname + "::" + msg + "\n"); Los atributos de la clase Log son una referencia a la clase Textwriter, que permite escribir al fichero; un semáforo Mutex, que controlará el acceso al recurso compartido (fichero) ; y una variable de tipo entero que almacena la indentación a añadir a cada línea. El constructor de la clase crea una instancia de la clase Textwriter proporcionándole el nombre del fichero a utilizar. Si compruebas la documentación del constructor de StreamWriter podrás ver qué implica el segundo parámetro (true). A continuación podemos ver una función cuanto menos extraña para aquellos sin experiencia en C++. Es la función ~Log() que se conoce como destructor. En C++ esa función se utiliza para liberar memoria una vez concluye la ejecución de la clase y el objeto se destruye. E n los lenguajes como Java o cualquiera de los presentes en.net, no es necesario liberar memoria, eso lo hace el recolector de basura; en cambio, se permite el uso de esta función para realizar una serie de tareas antes de destruir el objeto (como en este caso, hacer flush y cerrar el fichero). Aunque no es necesario, en ocasiones es útil. El siguiente método, es Trace. Este método escribe una traza de log en el fichero. Primero comprueba el semáforo y si es necesario espera un tiempo dado hasta que deje de ser usado. En ese momento tabula el texto, escribe el mensaje, hace flush y por último libera el semáforo para que otros métodos puedan usar el fichero. El resto de los métodos no requieren explicación.

11 Utilizando la clase Log desde otro programa Para poder utilizar la clase Log desde MiAplicación, hacemos click con el botón derecho sobre la carpeta References contenida en el proyecto aplicación y luego sobre Add Reference. Vamos a la pestaña Proyectos y ahí encontraremos UtildadLog. La seleccionamos y pulsamos aceptar. A partir de ese momento podremos utilizar la clase Log, contenida en el espacio de nombres Utilidades.UtilidadLog. A continuación probaremos la clase Log, pero antes vamos a facilitar la tarea modificando las propiedades del emulador. Para ello, en el menú File del emulador, seleccionamos configure cuando aparece el cuadro de diálogo en la caja de texto Shared Folder navegamos hasta la ruta donde se encuentre la aplicación compilada, es decir, carpetadelproyecto\bin\debug. A partir de ese momento si abrimos el explorador de ficheros en la PDA emulada y navegamos, veremos que existe un directorio llamado Storage Card que simula una tarjeta SD introducida en el slot. Si consultamos los ficheros contenidos en ella, veremos cómo aparecen los contenidos en el directorio seleccionado. Ahora vamos a modificar el programa para probar la clase de Log. Utilice el siguiente código:

12 using System; using Utilidades.UtilidadLog; namespace ComputacionRed.MiAplicacion public class MiAplicacion Log log; public MiAplicacion() log = new Log("\\Storage Card\\milog.txt"); public void mifuncion2() log.begintrace("mifuncion2"); log.trace("mifuncion2", "Un mensaje de mifuncion2"); log.endtrace("mifuncion2"); public void mifuncion() log.begintrace("mifuncion"); log.trace("mifuncion2", "Un mensaje de mifuncion1"); mifuncion2(); log.endtrace("mifuncion"); public static void Main(string[] args) MiAplicacion ma = new MiAplicacion(); ma.mifuncion(); Como se puede apreciar, el fichero seleccionado para guardar los resultados del log se encuentra en la carpeta de la aplicación dentro del PC (no de la PDA). Lo siguiente que haremos, será probar la aplicación. Para ver el fichero con comodidad (puede verse directamente en la PDA emulada, pero debido a que el tamaño de la pantalla no es muy grande, es preferible hacerlo en el PC) lo abrimos con visual studio. A partir de este momento no hace falta cerrarlo y volverlo a abrir para ver los cambios, si el fichero cambia, Visual Studio lo notificará. El resultado de la ejecución debe ser algo similar a esto:

13 2:34:: Entrando en mifuncion 2:36:: Entrando en mifuncion 2:36::mifuncion2::Un mensaje de mifuncion1 2:36:: Entrando en mifuncion2 2:36::mifuncion2::Un mensaje de mifuncion2 2:36:: Entrando en mifuncion2 2:36:: Entrando en mifuncion Observe que una llamada a una función dentro de otra función aumenta la indentación. Práctica 2. Introducción a.net, programación gráfica. El objetivo de esta práctica es programar una aplicación sencilla para familiarizarnos con el entorno visual de programación de.net con Formularios de Windows. Conociendo el Entorno de Desarrollo Comenzamos por crear un nuevo proyecto con Visual Studio 2005 o 2008: Una vez pulsemos, aparecerá en la pantalla los posibles proyectos. El número y tipo de proyectos dependerá de los SDKs instalados en el sistema: Vamos a crear un proyecto Visual C#, para dispositivo limitado (Smart Device), usando el SDK de Windows Mobile 5.0 o 6.0 dependiendo del que tengamos instalado. La plantilla del proyecto es Device Application. Le damos un nombre, por ejemplo miapp. Seleccionamos la ubicación que más nos convenga. Todos los proyectos que hagamos, se incorporan a una solución, utilizaremos la

14 solución que ya teníamos creada. Una vez creado, aparecerá el interfaz de usuario. En el que podemos ver una imagen de lo que será el programa. Además existen menús útiles para el desarrollo como son (Están identificados en la imagen): El explorador de soluciones Vista de clases Propiedades Toolbox Resultados Lista de errores Si no ves alguno de las pestañas marcadas con círculos sobre las imágenes, puedes usar el menú View (ver) y pulsar sobre cada una de las que necesitas. Luego puedes arrastrarlas por la pantalla para colocarlas donde te resulten más cómodas de usar.

15 Aplicación Hello world Se trata de la aplicación que todo el mundo ha hecho alguna vez para comenzar a aprender un lenguaje. La aplicación tiene el efecto positivo de mostrar al usuario que algo funciona, a partir de ahí lo que imagines Un vistazo al código Antes de comenzar con la aplicación vamos a echar un vistazo al código generado por Visual Studio y que nos permitirá programar la aplicación. Vamos a ver el programa principal, la clase que permite la ejecución del formulario o ventana sobre la que colocaremos controles como botones o cajas de texto. Para ver el código pulse sobre program.cs como indica la figura: Al hacer esto, pulsar sobre Ver Código o hacer doble click sobre Program.cs, aparece el código en la pantalla principal. El código que se verá será este (o muy parecido): using System; using System.Collections.Generic; using System.Windows.Forms; namespace miapp static class Program /// <summary> /// The main entry point for the application. /// </summary> [MTAThread] static void Main() Application.Run(new Form1()); Este código es un programa principal como el que hemos visto en la anterior práctica, la única diferencia es que ahora existe un atributo llamado MTAThread que se usa en las aplicaciones de Formularios para conocer el lugar en el que comienza el programa. Consulta el código de la clase Form1.cs, comprobarás que es una clase que hereda de Form (la que gestiona los formularios en Windows). A continuación vamos a añadir funcionalidad a la aplicación. Para comenzar, debes poder usar el ToolBox o caja de herramientas. En ella encontrarás componentes gráficos para añadir a tu aplicación.

16 Para añadir nuevos controles gráficos, simplemente arrástralos desde el toolbox directamente a la pantalla.

17 Añade varios elementos:

18 Un textbox Un botón con el nombre hola Otro con el nombre mundo Cada uno de los controles que se colocan en la pantalla tiene una serie de propiedades. Una es el nombre dentro del programa Name otra es la información que aparece en pantalla Caption. Al hacer dobre click sobre un botón, Visual Studio creará un método. Este método puede usarse para cambiar las propiedades de los controles. Añada también unas etiquetas Label de modo que el interfaz de usuario quede de la siguiente manera: Tu turno: Da un nombre adecuado al namespace

19 Coloca entradas de Log para ver qué ocurre con la aplicación. Pon una al comienzo de cada clase y método, de forma que veas el flujo de la ejecución. Para ello, tendrás que importar la clase de Log (añadir referencia ) Tendrás que pasar la instancia de Log de una clase a otra para que todos escriban sobre el mismo fichero. Para ello, añade un atributo Log a la clase Form1. public partial class Form1 : Form Log log; public Form1() InitializeComponent(); log = new Log("\\Storage Card\\fichero.txt"); Añade funcionalidad a los métodos de los botones Hola y Mundo de forma que al pulsar el primero aparezca la palabra Hola en el cuadro de texto. Para modificar el texto utiliza la propiedad Text de del cuadro de texto.

20 Práctica 3. Introducción a sockets en.net Ahora que conoces el API de sockets de otros sistemas operativos y lenguajes como Java, vamos a aprender cómo usar sockets desde.net con el lenguaje C#. En esta práctica, usaremos el Framework de.net en lugar del Compact Framework, en cualquier caso, el contenido de estas prácticas es trasladable a pocket pc directamente. Estructura de clases Para utilizar sockets es necesario importar las librerías de la class library System.Net y System.Net.Sockets. Para ello, creamos un proyecto de tipo aplicación visual con el SDK correspondiente y le damos el nombre de VistaCliente.cs al fichero de código con el formulario. El otro fichero será program.cs. Introducimos el siguiente código en los ficheros:

21 /* Programa.cs */ using System; using System.Text; using System.Collections.Generic; using System.Windows.Forms; using System.Net; using System.Net.Sockets; using System.Diagnostics; namespace ComputacionRed.Sockets.Cliente static class Program /// <summary> /// The main entry point for the application. /// </summary> [MTAThread] static void Main() /* VistaCliente.cs [Formulario-Ver código]*/ using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace ComputacionRed.Sockets.Cliente public partial class VistaCliente : Form public VistaCliente() InitializeComponent();

22 La clase VistaCliente, es una clase que hereda de Form, por tanto se utiliza para proporcionar una GUI al usuario. Por otro lado, tendremos una clase controlador ClienteConnection que crearemos dentro del fichero programa.cs: /* Programa.cs */ using System; using System.Text; using System.Collections.Generic; using System.Windows.Forms; using System.Net; using System.Net.Sockets; using System.Diagnostics; namespace ComputacionRed.Sockets.Cliente static class Program /// <summary> /// The main entry point for the application. /// </summary> [MTAThread] static void Main() public class ClienteConnection IPAddress dirservidor; Int32 serverport = 0; IPEndPoint endpointservidor; Socket socket; Form vv = null; writelog log = null; public ClienteConnection(Form vv) this.vv = vv; /* destructor */ ~ClienteConnection() try if (socket!= null) if (socket.connected) socket.disconnect(false); catch (Exception ex) /* lo hemos intentado... */

23 En la clase ClienteConnection tendremos los siguientes atributos: IPAddress dirservidor : Estructura de dirección IP para conectar con el servidor o us/library/system.net.ipaddress.aspx IPEndPoint endpointservidor: Contiene tanto la dirección IP como el puerto local etc necesarios para conectar con el servidor o us/library/system.net.ipendpoint.aspx Int32 serverport: puerto del servidor Socket socket: estructura donde alojar el estado del socket o us/library/system.net.sockets.socket.aspx o API de sockets de Berkeley Form vv : Para poder controlar la visualización writelog log: Lo veremos más adelante, es un callback (delegado en.net) Localice el constructor de la clase ClienteConnection. Qué parámetro recibe? Qué hace el destructor de la clase ClienteConnection? En la clase VistaCliente usaremos el siguiente código para el constructor y los métodos de inicialización: public delegate void writelog(string msg); public partial class VistaCliente : Form ClienteConnection cc = null; byte[] sendbytes; byte[] receivebytes = new byte[2048]; public VistaCliente() InitializeComponent(); public void setcontroller(clienteconnection cc) this.cc = cc; La clase VistaCliente tiene los siguientes atributos: ClienteConnection cc = enlace con el controlador byte[] sendbytes: buffer de datos a enviar al servidor byte[] receivebytes: buffer de datos con la respuesta del servidor. Si echamos un vistazo al código anterior, veremos una declaración similar a un tipo: public delegate void writelog(string msg);

24 Consiste en un puntero a función, es decir, existe un tipo de función llamada writelog, que recibe una String y la imprime para que el usuario tenga información a modo de log. Interfaz gráfico A continuación vamos a diseñar el siguiente interfaz gráfico: servernametextbox textcheckboxuserinput button1 IPTextbox serverport senddatatextb oxuserinput conectbutton sendbutton ConnectionState updatebinary Button testconnectionbutton binarysenddata responsetext responsebinary logtextbox Como puedes comprobar, hay varios controles (cajas de texto, botones, checkbox ) y algunos de ellos están introducidos dentro de un contenedor. Esto es opcional, en cualquier caso, el control que engloba a los demás (como por ejemplo Connection que engloba 3 cajas de texto, tres botones y un label) puedes localizarlo en el toolbox como GroupBox. Para que el código que se proporciona en los siguientes apartados funcione correctamente, debes asegurarte de que los diferentes controles tienen la propiedad Name (dentro del apartado Design) que se indica en las cajas de texto apuntadas por las diferentes flechas.

25 Función de log A continuación vamos a resolver el problema del log. En la clase VistaCliente creamos la función writelog como se muestra a continuación: public void setcontroller(clienteconnection cc) this.cc = cc; public void writelog(string msg) logtextbox.appendtext(msg); Dicha función escribe añade texto en la caja de texto logtextbox cuando se la invoca. Si prestamos atención, veremos que dicho método tiene los mismos tipos definidos en la declaración del apartado anterior public delegate void writelog(string msg) por lo que puede usarse como delegado. En la clase ClienteConnection, inmediatamente después del destructor, creamos los métodos: /* set log */ public void setlogfn(writelog fn) this.log = fn; /* write log */ public void trace(string msg) StackTrace st = new StackTrace(false); string caller = st.getframe(1).getmethod().name; log(caller + " : " + msg + "\r\n"); /* presenta la vista */ public Form getvista() return vv; El método setlogfn recibe un puntero a una función de tipo writelog y la guarda en el atributo log. En método trace recibe una string, contruye un pila de llamadas y accede a la anterior para conocer desde que función ha sido llamada la función de log para así incluirlo en el texto de la línea de log. Finalmente, escribe la línea y le añade al final un retorno de carro y vuelve al comienzo de la línea ( \r\n es equivalente al \n de C/C++). La función getvista devuelve una instancia de la clase Form, así tanto el controlador como la vista, permanecen unidos. Compruebe como ambas clases VistaCliente y ClienteConnection están enlazadas

26 Sustituye el código del main por el siguiente: static class Program /// <summary> /// The main entry point for the application. /// </summary> [MTAThread] static void Main() ClienteConnection cc = new ClienteConnection(new VistaCliente()); ((VistaCliente)cc.getVista()).setController(cc); cc.setlogfn(((vistacliente)cc.getvista()).writelog); Application.Run(cc.getVista()); Qué hace el código? Comprobando la conectividad En este apartado vamos a comprobar la conectividad de la red antes de usarla. Para ello, el usuario dispone de un botón con el mensaje Test connection que cambiará el label ConnectionState indicando ok o error dependiendo del problema. En primer lugar vamos a diseñar dicha función. Para dar un error detallado sería necesario interrogar al API de NDIS de Windows (controla los dispositivos de red) de forma que se pudiera averiguar si existe conectividad o no, pero lo vamos a hacer desde el nivel más alto, desde sockets. Lo primero que haremos será definir un tipo enumerado con los posibles errores o estados: public enum connstate ok = 0, dnsproblem = 1, socketproblem = 2, dnsandsocketproblem = 3, networkerrororunreachable = 4 Los posibles estados son: 1. No hay error 2. Existe un problema con el DNS (lo cual no significa que no haya conexión) 3. Problema con la librería de sockets, con independencia del DNS no se puede abrir una conexión. 4. Hay problemas con el DNS y con los sockets 5. Es posible crear un socket pero probablemente la conexión sólo es local o un firewall bloquea el tráfico

27 A continuación, vamos a plantear la estrategia del test: 1. Tratamos de resolver el nombre a. Si falla dnsproblem y continuamos 2. Tenemos o no DNS, pero puede que sólo local a. Tratamos de conectar a una IP y si hay éxito continuamos b. Tratamos de conectar a una IP y si no hay éxito salimos con error socketproblem o dnsandsocketproblem. 3. Tratamos de descargar una página web a. Si hay éxito: ok b. Si falla: networkerrororunreachable Por lo tanto, el código del método para probar la conectividad es el siguiente (inclúyelo como métodos de la clase ClienteConnection: private connstate geterror(connstate current, connstate promoteto) trace("fetch error"); if (current == connstate.ok) return promoteto; if (current == connstate.dnsproblem) if (promoteto == connstate.socketproblem) return connstate.dnsandsocketproblem; else return promoteto; return promoteto; public String gettestconnectionresultstring() return testsocketconnection().tostring(); private connstate testsocketconnection() trace("testing client connection"); connstate res = connstate.ok; String testhttp = "GET /index.html HTTP/1.0\n\n"; String httpdoc = null; int recvlength = 0; Byte[] SendBytes = Encoding.ASCII.GetBytes(testHttp); Byte[] RecvBytes = new Byte[1024]; IPAddress testip = null; IPEndPoint testendpoint = null; Socket testsocket = null; try testip = Dns.GetHostEntry("www.google.es").AddressList[0]; testendpoint = new IPEndPoint(testIP, 80);

28 catch (Exception ex) trace("dns seems to be unavailable"); res = geterror(res, connstate.dnsproblem); try testip = Dns.GetHostEntry(" ").AddressList[0]; testendpoint = new IPEndPoint(testIP, 80); testsocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); catch (Exception ex) trace("something wrong with sockets"); return geterror(res, connstate.socketproblem); try testsocket.connect(testendpoint); testsocket.send(sendbytes, SendBytes.Length, SocketFlags.None); recvlength = testsocket.receive(recvbytes, RecvBytes.Length, SocketFlags.None); catch (Exception ex) trace("error connecting"); return geterror(res, connstate.networkerrororunreachable); httpdoc = Encoding.ASCII.GetString(RecvBytes, 0, recvlength); //Codificamos la respuesta trace("finished"); return res; Acabas de ver tu primer programa con sockets en.net: Cuál es el proceso para abrir una conexión con otro equipo? Qué NameSpaces se utilizan? Qué clases? Notas diferencias con otros APIs? Ahora incorpora la funcionalidad al botón de prueba (doble click y Visual Studio generará el método, el código es el siguiente: private void testconnectionbutton_click(object sender, System.EventArgs e) ConnectionState.Text = cc.gettestconnectionresultstring();

29 Interactuando con un servidor, preparando los datos Antes de comenzar a enviar datos al servidor, es necesario prepararlos. El cliente que estamos diseñando permite introducir datos de dos formas: 1. En modo texto: cualquier letra introducida se codifica con ASCII y se envía salvo el código \n que se traduce a retorno de carro. Esto es interesante por si se quiere usar HTTP directamente o para probar un servidor que estamos programando a. Para ello, el usuario introduciría GET /index.html HTTP/1.0\n\n directamente en el cuadro de texto senddatatextboxuserinput, haría click en la casilla textcheckboxuserinput (mirar la figura del GUI) y luego en updatebinarybutton 2. Modo hexadecimal: Se introduce la información en hexadecimal. Si se quiere introducir un buffer de datos 2FC487, se teclea 2F C4 87 y no se marca la casilla de modo texto. En cualquier caso, siempre es necesario pulsar el botón Update Binary antes de enviar algo al servidor. Por lo tanto, necesitamos un método que prepare los datos del usuario para su envío al servidor. El método se invoca cuando se pulsa el botón updatebinarybutton. Por tanto, para programarlo, haga doble click sobre dicho botón. Analiza el siguiente código y úsalo: private void updatebinarybutton_click(object sender, System.EventArgs e) sendbytes = null; binarysenddata.text = ""; String senddatatext = ""; int posicion = -1; if (textcheckboxuserinput.checked && senddatatextboxuserinput.text.length!= 0) if (senddatatextboxuserinput.text.indexof("\\n")!= -1) /* hay retorno(s) de carro (http/telnet) */ String[] subs = senddatatextboxuserinput.text.split(new String[] "\\n", StringSplitOptions.None); for (int i = 0; i < subs.length; i++) if (subs[i].equals("")) senddatatext += "\n"; else senddatatext += subs[i]; else senddatatext = senddatatextboxuserinput.text; sendbytes = Encoding.ASCII.GetBytes(sendDataText); else if (senddatatextboxuserinput.text.length >= 2) string delimiter = " ";

C.F.G.S. DESARROLLO DE APLICACIONES INFORMÁTICAS. MÓDULO: Diseño y realización de servicios de presentación en entornos gráficos.

C.F.G.S. DESARROLLO DE APLICACIONES INFORMÁTICAS. MÓDULO: Diseño y realización de servicios de presentación en entornos gráficos. C.F.G.S. DESARROLLO DE APLICACIONES INFORMÁTICAS MÓDULO: Diseño y realización de servicios de presentación en entornos gráficos Unidad 1 Introducción Visual Basic.NET El objetivo de la unidad es conocer

Más detalles

Taller: Introducción a Windows Communication Foundation

Taller: Introducción a Windows Communication Foundation Taller: Introducción a Windows Communication Foundation Autor: Carlos Milán Figueredo Nivel: 100 (Principiante) Pre-requisitos: Visual Studio 2008 Email: cmilanf@dotnetclubs.com Web: http://www.dotnetclubs.com

Más detalles

TUTORIAL APLICACIONES EVOLUTION CON ACTIVEX EVOLINK

TUTORIAL APLICACIONES EVOLUTION CON ACTIVEX EVOLINK TUTORIAL APLICACIONES EVOLUTION CON ACTIVEX EVOLINK 1 Introducción... 2 2 Requisitos previos... 2 3 Desarrollo de una aplicación call center.net con ActiveX evolink... 2 3.1 Crear un proyecto inicial...

Más detalles

Lo que necesitaremos para programar en Java, será un editor de texto o IDE y la JDK.

Lo que necesitaremos para programar en Java, será un editor de texto o IDE y la JDK. Introducción Java surgió en 1991 dentro de la empresa Sun Microsystems como un lenguaje de programación sencillo y universal destinado a electrodomésticos. La reducida potencia de cálculo y memoria de

Más detalles

[Titulo] : Creacion de un Troyano de Conexion Inversa [Lenguaje] : C# [Autor] : Doddy Hackman. [Temario]

[Titulo] : Creacion de un Troyano de Conexion Inversa [Lenguaje] : C# [Autor] : Doddy Hackman. [Temario] [Titulo] : Creacion de un Troyano de Conexion Inversa [Lenguaje] : C# [Autor] : Doddy Hackman [Temario] -- =================-------- 0x01 : Introduccion 0x02 : Creacion del servidor 0x03 : Creacion del

Más detalles

Práctica: Creación de un programa C# sencillo

Práctica: Creación de un programa C# sencillo Introducción a C# 1 Práctica: Creación de un programa C# sencillo Objetivos Al final de esta práctica, usted será capaz de: Crear un programa C#. Compilar y ejecutar un programa C#. Usar el Visual Studio

Más detalles

Automatización Industrial

Automatización Industrial ESCUELA SUPERIOR DE INFORMÁTICA UNIVERSIDAD DE CASILLA-LA MANCHA Automatización Industrial Programación de la Interfaz FTI con C# Tercera práctica Jose Domingo López López josed.lopez1@alu.uclm.es Raúl

Más detalles

.NET Compact Framework

.NET Compact Framework .NET Compact Framework Profesor: Dr. Jesús Soto Carrión (jesus.soto@upsam.net) Master de Ingeniería Web Desarrollo de aplicaciones para dispositivos móviles Contenido de la presentación Introducción Arquitectura

Más detalles

Aplicaciones Windows con Microsoft Visual Studio 2010...

Aplicaciones Windows con Microsoft Visual Studio 2010... Aplicaciones Windows con Microsoft Visual Studio 2010... Insertar un Link o Vínculo en una Aplicación Windows El presente es un pequeño manual/tutorial que nos indica los pasos que debemos seguir para

Más detalles

Herramientas Visuales de Programación

Herramientas Visuales de Programación Pág. 1 07/04/2013 Para la compilación y ejecución del código que se realizará a lo largo de este curso vamos a utilizar el entorno de programación de la Herramienta Visual Studio 2010. El entorno de programación

Más detalles

Pasos para crear un sitio web ASP.Net con el Visual Studio en cualquiera de sus versiones. Unidad 1. Conceptos [ASP.NET EN VISUAL STUDIO]

Pasos para crear un sitio web ASP.Net con el Visual Studio en cualquiera de sus versiones. Unidad 1. Conceptos [ASP.NET EN VISUAL STUDIO] Pasos para crear un sitio web ASP.Net con el Visual Studio en cualquiera de sus versiones Conceptos Lo primero que necesitamos para crear una aplicación o proyecto web es seleccionar el entorno del Visual

Más detalles

Para esto, he desarrollado una aplicación en Visual Studio con tres proyectos, como se presenta en la siguiente ilustración:

Para esto, he desarrollado una aplicación en Visual Studio con tres proyectos, como se presenta en la siguiente ilustración: Caso Práctico: Diffie-Hellman sobre socket de C# Este caso práctico se abordará en el ámbito de aplicaciones cliente/servidor; programación con Socket. Se aplicará el lenguaje C#, el.net Framework 3.5

Más detalles

http://www.oracle.com/technetwork/es/java/javase/downloads/index.html

http://www.oracle.com/technetwork/es/java/javase/downloads/index.html Introducción En esta primera parte del taller iremos viendo paso a paso como poner a punto todo tu entorno de trabajo para poder empezar cuanto antes a desarrollar tu primera aplicación Android para luego

Más detalles

Curso de Visual Basic 6.0 - Lección 1 Area Interactiva - www.areaint.com. www.areaint.com CURSO DE. Visual Basic 6.0 WWW.AREAINT.

Curso de Visual Basic 6.0 - Lección 1 Area Interactiva - www.areaint.com. www.areaint.com CURSO DE. Visual Basic 6.0 WWW.AREAINT. www.areaint.com CURSO DE Visual Basic 6.0 Pág. 1 LECCIÓN 1 En esta lección de introducción aprenderemos las principales características de un lenguaje de programación para crear aplicaciones bajo Windows.

Más detalles

Introducción a la programación (Java)

Introducción a la programación (Java) Introducción a la programación (Java) Preparar las herramientas de desarrollo Introducción La primera parte de este documento es una guía para la instalación del software necesario para realizar programas

Más detalles

Mi primer proyecto en Dev-C++

Mi primer proyecto en Dev-C++ Mi primer proyecto en Dev-C++ Para realizar esta actividad deberás disponer de un ordenador en el que esté instalado el Dev-C++. Debes ir realizando cada uno de los pasos indicados, en el mismo orden en

Más detalles

Programación III. 1. Facultad: Ingeniería Escuela: Computación Asignatura:Programación III I. OBJETIVOS II. INTRODUCCIÓN TEÓRICA

Programación III. 1. Facultad: Ingeniería Escuela: Computación Asignatura:Programación III I. OBJETIVOS II. INTRODUCCIÓN TEÓRICA Programación III. 1 Facultad: Ingeniería Escuela: Computación Asignatura:Programación III GUIA1: Uso de C# modo consola. I. OBJETIVOS Qué el estudiante: Conozca el lenguaje de programación Visual C#.Net

Más detalles

Práctica 5: Servidor web concurrente en Java

Práctica 5: Servidor web concurrente en Java Práctica 5: Servidor web concurrente en Java Esta práctica pretende familiarizar al alumno con la programación de servidores que emplean sockets TCP. Para ello partiremos del servidor web básico visto

Más detalles

Finalmente, aprenderá a interceptar y a manejar muchos de los eventos comunes que tienen los componentes y los formularios de Windows Form.

Finalmente, aprenderá a interceptar y a manejar muchos de los eventos comunes que tienen los componentes y los formularios de Windows Form. Sistemas expertos e Inteligencia Artificial,Guía 1 Facultad : Ingeniería Escuela : Computación Asignatura: Sistemas expertos e Inteligencia Artificial Tema: INTRODUCCIÓN AL IDE C#. Objetivo Identificar

Más detalles

Programación para dispositivos móviles con.net CF... Comunicaciones por Bluetooth

Programación para dispositivos móviles con.net CF... Comunicaciones por Bluetooth Programación para dispositivos móviles con NET CF Comunicaciones por Bluetooth Objetivos Desarrollar aplicaciones que comuniquen vía Bluetooth; Material a utilizar Visual Studio 2005 + Pocket PC 2005 SDK;

Más detalles

Página Personal. Cómo guardar mi página personal con FileZilla

Página Personal. Cómo guardar mi página personal con FileZilla Página Personal Cómo guardar mi página personal con FileZilla Este manual de servicio es propiedad de Telefónica de España SAU, queda terminante prohibida la manipulación total o parcial de su contenido

Más detalles

DreamWeaver. CS5 y CS6. Cursosindustriales. Curso de DreamWeaver CS6 1

DreamWeaver. CS5 y CS6. Cursosindustriales. Curso de DreamWeaver CS6 1 DreamWeaver CS5 y CS6 Cursosindustriales. Curso de DreamWeaver CS6 1 DREAMWEAVER CS5. DISEÑO DE PÁGINAS DINÁMICAS. En esta segunda sección de diseño de páginas Web con Dreamweaver CS, vamos a hablar sobre

Más detalles

Ejercicios - Persistencia en Android: ficheros y SQLite

Ejercicios - Persistencia en Android: ficheros y SQLite Ejercicios - Persistencia en Android: ficheros y SQLite Índice 1 Uso de ficheros (0.5 puntos)...2 2 Persistencia con ficheros (0.5 puntos)...3 3 Base de datos: SQLiteOpenHelper (0.5 puntos)... 3 4 Base

Más detalles

Prácticas de programación en C con MinGW Developer Studio

Prácticas de programación en C con MinGW Developer Studio Prácticas de programación en C con MinGW Developer Studio MinGW Developer Studio es un entorno de desarrollo integrado (IDE) para la programación en lenguaje C gratuito y cómodo de usar. Se ejecuta en

Más detalles

Dentro del.net los eventos se utilizan para notificar a nuestros objetos que se ha producido algún tipo de hecho al que nos hemos suscrito.

Dentro del.net los eventos se utilizan para notificar a nuestros objetos que se ha producido algún tipo de hecho al que nos hemos suscrito. Eventos ala.net Recientemente ha surgido en los grupos de C# una duda sobre si los eventos que usa el.net son del mismo tipo que los que nosotros podemos crear y usar. La respuesta obvia y evidente es

Más detalles

Kosmo Desktop Manual de desarrollo Instalación y configuración del código fuente de Kosmo en Eclipse

Kosmo Desktop Manual de desarrollo Instalación y configuración del código fuente de Kosmo en Eclipse Kosmo Desktop Manual de desarrollo Instalación y configuración del código fuente de Kosmo en Eclipse Versión 3.0 02/12/2010 2 3 1 Control de versiones VERSIÓN AUTOR FECHA CAMBIO 1.0 SAIG, S.L. 22/03/2007

Más detalles

TUTORIAL CONEXIÓN SQL SERVER 2005 CON VISUAL STUDIO 2005(TECNOLOGIA RAD)

TUTORIAL CONEXIÓN SQL SERVER 2005 CON VISUAL STUDIO 2005(TECNOLOGIA RAD) TUTORIAL CONEXIÓN SQL SERVER 2005 CON VISUAL STUDIO 2005(TECNOLOGIA RAD) Resumen:En este tutorial, aprenderá a sacar el máximo partido a las capacidades de diseño integradas en Visual Studio 2005 para

Más detalles

Manual de creación de Interfaces de Usuario en Netbeans

Manual de creación de Interfaces de Usuario en Netbeans Three Headed Monkey Manual de creación de Interfaces de Usuario en Versión 2.0 Jesús Omar Álvarez Márquez Miércoles, 14 de Abril de Contenido Introducción... 2 Propósito del documento... 2 Programas necesarios...

Más detalles

C#.NET. Capítulo 1. Este libro está dirigido a todas aquellas. personas que desean aprender. el lenguaje de programación C# y tienen

C#.NET. Capítulo 1. Este libro está dirigido a todas aquellas. personas que desean aprender. el lenguaje de programación C# y tienen C# Capítulo 1 C#.NET Este libro está dirigido a todas aquellas personas que desean aprender el lenguaje de programación C# y tienen conocimientos básicos de programación o no tienen ninguna experiencia

Más detalles

Temas de esta unidad :

Temas de esta unidad : Temas de esta unidad : Creación de Controles Web Personalizados Validación de entradas de usuarios Creación, lectura y escritura de archivos de texto Conceptos - Creacion de Controles Web Personalizados

Más detalles

Integración de Toolchain PTXdist sobre IDE gráfico basado en Eclipse

Integración de Toolchain PTXdist sobre IDE gráfico basado en Eclipse Integración de Toolchain PTXdist sobre IDE gráfico basado en Eclipse Objetivos Integrar un toolchain basado en PTXdist sobre un IDE gráfico basado en Eclipse. Creación y compilación de un pequeño proyecto.

Más detalles

Uso de Visual C++ Pre-Practica No. 3

Uso de Visual C++ Pre-Practica No. 3 Pre-Practica No. 3 Uso de Visual C++ Microsoft Visual C++ 2010 es una versión de Visual Studio específica para el lenguaje de programación C++. Es un entorno de desarrollo muy completo y profesional. Por

Más detalles

Capítulo 1 EMBEDDED VISUAL C++ (EVC)

Capítulo 1 EMBEDDED VISUAL C++ (EVC) Capítulo 1 EMBEDDED VISUAL C++ (EVC) 0 Introducción En la presente práctica se pretender ofrecer la primera toma de contacto con el entorno de desarrollo que se usa para programar PDAs en el lenguaje de

Más detalles

www.aprendoencasa.com Curso Introducción JAVA Pág.: 1

www.aprendoencasa.com Curso Introducción JAVA Pág.: 1 www.aprendoencasa.com Curso Introducción JAVA Pág.: 1 Introducción Java es un lenguaje basado en la programación orientada a objetos (POO), este tipo de programación va más allá del tipo de programación

Más detalles

Introducción al lenguaje Java

Introducción al lenguaje Java Tipo de entrega: Fecha límite: Lugar: Introducción al lenguaje Java por grupos de prácticas sesión de laboratorio Atenea Objetivos de la práctica: Escribir aplicaciones simples en Java Utilizar el entorno

Más detalles

Creación de controles de usuario

Creación de controles de usuario Creación de controles de usuario Índice Descripción 1 Lección: agregar controles de usuario a un formulario Web Form ASP.NET 2 Lección: crear controles de usuario 12 Creación de controles de usuario 1

Más detalles

NCover: Manual de usuario

NCover: Manual de usuario NCover: Manual de usuario Fecha: Referencia: EJIE S.A. Mediterráneo, 3 Tel. 945 01 73 00* Fax. 945 01 73 01 01010 Vitoria-Gasteiz Posta-kutxatila / Apartado: 809 01080 Vitoria-Gasteiz www.ejie.es Este

Más detalles

Video 2: Cómo Crear una plantilla para Generar Procedimientos Almacenados

Video 2: Cómo Crear una plantilla para Generar Procedimientos Almacenados Video 2: Cómo Crear una plantilla para Generar Procedimientos Almacenados A continuación se detallará paso a paso el proceso para generar Procedimientos Almacenados (SQL Stored Procedures) con Amonsys

Más detalles

Índice de contenido. Manual de administración de hospedaje para administradores de dominios

Índice de contenido. Manual de administración de hospedaje para administradores de dominios Índice de contenido 1. Webmin...2 1.1 Cambio de idioma y tema...2 2. Otros...3 2.1 Cargas y descargas...3 2.2 Conexión Telnet / SSH...4 2.3 Directorios Web Protegidos...5 2.4 Administrador de archivos...6

Más detalles

Trabajo Práctico N 4

Trabajo Práctico N 4 Trabajo Práctico N 4 Implementación de cliente y servidor TCP (y UDP) en C# (.NET), utilización de hilos para el manejo asincrónico de las comunicaciones Universidad de Buenos Aires Facultad de Ingeniería

Más detalles

Gestor de aplicaciones Java. Esta herramienta es el intérprete de los archivos de clase generados por el javac (compilador).

Gestor de aplicaciones Java. Esta herramienta es el intérprete de los archivos de clase generados por el javac (compilador). CAPÍTULO 4 Requerimientos de software Este capítulo presenta las herramientas necesarias para la construcción y ejecución de programas en el lenguaje de programación JAVA, los requerimientos mínimos de

Más detalles

OpenIRS DOCENTIA Módulo de Gestión. Manual de Usuario.

OpenIRS DOCENTIA Módulo de Gestión. Manual de Usuario. OpenIRS DOCENTIA Manual de Usuario. Versión 3.0.4 Diciembre 2013 Vicerrectorado de Evaluación de la Calidad 1 Contenido 1. INTRODUCCIÓN... 4 2. INSTALACIÓN DEL MÓDULO... 6 2.1. Requisitos Previos... 6

Más detalles

Pruebas de unidad con JUnit

Pruebas de unidad con JUnit Pruebas de unidad con JUnit Cuando se implementa software, resulta recomendable comprobar que el código que hemos escrito funciona correctamente. Para ello, implementamos pruebas que verifican que nuestro

Más detalles

Introducción a la programación con C#.

Introducción a la programación con C#. Introducción a la programación con C#. El programa básico, Hola Mundo. El siguiente programa es la versión C# que muestra la cadena Hola Mundo por consola. // Programa C# que muestra Hola Mundo por consola.

Más detalles

Instalación de Joomla en un servidor de hosting

Instalación de Joomla en un servidor de hosting Instalación de Joomla en un servidor de hosting En este tutorial vamos a detallar los pasos a seguir para trasladar nuestro sitio Joomla creado en un servidor local a en un servidor de hosting definitivo.

Más detalles

11 Conexión a base de datos.

11 Conexión a base de datos. Objetivos: 11 Conexión a base de datos. Identificar requisitos de conexión a las bases de datos. Elaborar conexiones. Recursos: Visual Studio 2010 o superior Guías prácticas. Datos ejemplo. Introducción

Más detalles

Configuración de un sitio local

Configuración de un sitio local Configuración de un sitio local Un sitio web es un conjunto de archivos y carpetas, relacionados entre sí, con un diseño similar o un objetivo común. Es necesario diseñar y planificar el sitio web antes

Más detalles

Dominios. Cómo guardar los datos de configuración de mi dominio y el contenido de los servicios asociados

Dominios. Cómo guardar los datos de configuración de mi dominio y el contenido de los servicios asociados Dominios Cómo guardar los datos de configuración de mi dominio y el contenido de los servicios asociados Este manual de servicio es propiedad de Telefónica de España SAU, queda terminante prohibida la

Más detalles

Figura1. La IDE de MVS Express 2012

Figura1. La IDE de MVS Express 2012 UNIVERSIDAD DEL ISTMO Ingeniería en computación Compiladores PROFESOR M. en C. J. Jesús Arellano Pimentel NÚMERO DE PRÁCTICA 1 NOMBRE DE LA PRÁCTICA OBJETIVO GENERAL OBJETIVOS ESPECÍFICOS EQUIPO REQUERIDO

Más detalles

Instalación del programa PSPP y obtención de una distribución de frecuencias.

Instalación del programa PSPP y obtención de una distribución de frecuencias. Práctica 2. Instalación del programa PSPP y obtención de una distribución de frecuencias. Con esta práctica instalaremos el programa PSPP. El programa es un software específico para el análisis estadístico

Más detalles

Programación en Java. Hola Jesus. Primera clase del curso de Java

Programación en Java. Hola Jesus. Primera clase del curso de Java Programación en Java Un programa o aplicación Java se compone de un conjunto de clases que contienen variables de diversos tipos utilizadas para almacenar datos, y métodos que implementan código capaz

Más detalles

" ##$ % & '( % & )*+),$ -##$ -!- $! "-./ - 0WebClass1-2

 ##$ % & '( % & )*+),$ -##$ -!- $! -./ - 0WebClass1-2 ! " ##$ % & '( % & )*+),$ -##$ -!- $! "-./ - 0WebClass1-2!" # 345 637 6$5!!!89 & 5 :8-7 & & ;(< 8 $ + - 8 : #= ' 7= : 0 & 0 &- =.> = ;(("9 &? WebClass - 1@#$% &'A1 ;(< 8- ( ) * *+ " $ % B9 5 5 # :!- WebClass

Más detalles

Programando por primera vez

Programando por primera vez Programando por primera vez Antes de comenzar a programar es necesario ubicar un entorno que disponga de un compilador para el lenguaje en el que queremos programar. Un compilador es un programa que se

Más detalles

Práctica 3ProgramacionRS232: Programación básica de la RS232

Práctica 3ProgramacionRS232: Programación básica de la RS232 Práctica 3ProgramacionRS232: Programación básica de la RS232 1 Objetivos El objetivo de esta práctica es la iniciación del alumno en la programación de las comunicaciones en un entorno de desarrollo basado

Más detalles

Integración de Toolchain PTXdist sobre IDE gráfico basado en Eclipse

Integración de Toolchain PTXdist sobre IDE gráfico basado en Eclipse Integración de Toolchain PTXdist sobre IDE gráfico basado en Eclipse Objetivos Integrar un toolchain basado en PTXdist sobre un IDE gráfico basado en Eclipse. Creación y compilación de un pequeño proyecto.

Más detalles

COLEGIO DE BACHILLERES ELABORADO POR: ING. IVETT ZARZA HIDALGO Y LIC. CLAUDIA HERNÀNDEZ ALPÍZAR PROFA. DE INFORMATICA Y DE CECAT-INFORMATICA

COLEGIO DE BACHILLERES ELABORADO POR: ING. IVETT ZARZA HIDALGO Y LIC. CLAUDIA HERNÀNDEZ ALPÍZAR PROFA. DE INFORMATICA Y DE CECAT-INFORMATICA Visual Basic.NET es la última versión del sistema de desarrollo Visual Basic. Antes de empezar a crear aplicaciones en Visual Basic.NET, le será útil conocer y entender algunos conceptos básicos de.net.

Más detalles

Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación. IIC1102 Introducción a la Programación

Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación. IIC1102 Introducción a la Programación Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación IIC1102 Introducción a la Programación Tutorial eclipse TM Introducción al uso de eclipse TM Contents

Más detalles

Tutorial DC++ Usarlo es muy sencillo y configurarlo también, aunque tiene algunos trucos importentes.

Tutorial DC++ Usarlo es muy sencillo y configurarlo también, aunque tiene algunos trucos importentes. Tutorial DC++ Para compartir, lo mejor es usar el DC++, que es un programa de intercambio P2P (como el emule) pero optimizado para usarlo en redes locales. Usarlo es muy sencillo y configurarlo también,

Más detalles

GUÍA DE TRABAJO N 11 LENGUAJE C# Programación de Software Articulación SENA Grado 10 Ing. Néstor Raúl Suarez Perpiñan Página 2 de 11

GUÍA DE TRABAJO N 11 LENGUAJE C# Programación de Software Articulación SENA Grado 10 Ing. Néstor Raúl Suarez Perpiñan Página 2 de 11 Página 1 de 11 GUIA N 11 - DESARROLLO DE SOFTWARE A TRES CAPAS Objetivo: Desarrollar una aplicación de software con tres capas (Presentación Lógica Persistencia) donde se establezca una conexión con una

Más detalles

ELEMENTOS DE INTERFAZ GRAFICA WindowsForms

ELEMENTOS DE INTERFAZ GRAFICA WindowsForms Capítulo 6 ELEMENTOS DE INTERFAZ GRAFICA WindowsForms Los programas de computador modernos, al menos en un alto porcentaje, a los que se enfrenta el usuario se caracterizan por un aspecto en común: ponen

Más detalles

Manual de NetBeans y XAMPP

Manual de NetBeans y XAMPP Three Headed Monkey Manual de NetBeans y XAMPP Versión 1.0 Guillermo Montoro Delgado Raúl Nadal Burgos Juan María Ruiz Tinas Lunes, 22 de marzo de 2010 Contenido NetBeans... 2 Qué es NetBeans?... 2 Instalación

Más detalles

Apéndice B. Telefonía a través de Microsoft TAPI 1. B1. Microsoft TAPI y algunos detalles de la corrida con CSLU Toolkit

Apéndice B. Telefonía a través de Microsoft TAPI 1. B1. Microsoft TAPI y algunos detalles de la corrida con CSLU Toolkit Apéndice B. Telefonía a través de Microsoft TAPI 1 B1. Microsoft TAPI y algunos detalles de la corrida con CSLU Toolkit El archivo que hace la llamada es TAPISend que se encuentra en formato ejecutable.

Más detalles

Proyecto visual C# 2005 Express Edition: Imprimir Página 1 de 5

Proyecto visual C# 2005 Express Edition: Imprimir Página 1 de 5 Proyecto visual C# 2005 Express Edition: Imprimir Página 1 de 5 PROYECTO Imprimir: Crear un Nuevo Proyecto desde Visual C# 2005 Express Edition, del tipo Aplicación de Escritorio para Windows, con el nombre

Más detalles

Introducción a JAX-WS Web Services

Introducción a JAX-WS Web Services INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE CÓMPUTO ALUMNO: SANLUIS CASTILLO JOSE DAVID PROFESOR: CIFUENTES ALVAREZ ALEJANDRO SIGFRIDO MATERIA: WEB APPLICATION DEVEPLOMENT Introducción a JAX-WS

Más detalles

Herramientas Informáticas para la Documentación Práctica 1. Introducción al navegador Netscape

Herramientas Informáticas para la Documentación Práctica 1. Introducción al navegador Netscape Herramientas Informáticas para la Documentación Práctica 1. Introducción al navegador Netscape Introducción y objetivos De modo muy resumido Internet es una red que interconecta redes de ordenadores. Conectándose

Más detalles

Notas para la instalación de un lector de tarjetas inteligentes.

Notas para la instalación de un lector de tarjetas inteligentes. Notas para la instalación de un lector de tarjetas inteligentes. Índice 0. Obtención de todo lo necesario para la instalación. 3 1. Comprobación del estado del servicio Tarjeta inteligente. 4 2. Instalación

Más detalles

Creando una webquests

Creando una webquests Creando una webquests 1. LO PRIMERO EL PROGRAMA Para crear paginas web necesitamos el software apropiado. Hay muchas formas y programas para hacerlo, pero por su facilidad de uso y por ser software libre

Más detalles

Federico Peinado www.federicopeinado.es

Federico Peinado www.federicopeinado.es Federico Peinado www.federicopeinado.es Depto. de Ingeniería del Software e Inteligencia Artificial disia.fdi.ucm.es Facultad de Informática www.fdi.ucm.es Universidad Complutense de Madrid www.ucm.es

Más detalles

Servicios Web con.net

Servicios Web con.net 1. Introducción a los servicios Web Servicios Web con.net Básicamente un servicio Web es un clase que se publica en un servidor Web con soporte para ASP.NET (actualmente el único disponible es el Internet

Más detalles

Programación 2 Curso 2013 2014. Guía de desarrollo C/C++ con Eclipse

Programación 2 Curso 2013 2014. Guía de desarrollo C/C++ con Eclipse Programación 2 Curso 2013 2014 Introducción Guía de desarrollo C/C++ con Eclipse Eclipse 1 es un entorno de programación que permite el desarrollo de aplicaciones en diferentes lenguajes. Consta de un

Más detalles

RECIBIR Y ENVIAR MENSAJES CON OUTLOOK EXPRESS

RECIBIR Y ENVIAR MENSAJES CON OUTLOOK EXPRESS RECIBIR Y ENVIAR MENSAJES CON OUTLOOK EXPRESS Outlook Express se puede ejecutar de varias formas. Las más inmediatas son hacer doble clic en el icono de Outlook Express situado en el escritorio, hacer

Más detalles

Instalación De ANDROID STUDIO

Instalación De ANDROID STUDIO Área y Sub-área: Informatica/Computacion Educador: _Luis Orozco Ciclo Escolar: 2015 Grado: 5to Secciones: A,B,C y D Instalación De ANDROID STUDIO Paso 1. Descarga e instalación de Java. Si aún no tienes

Más detalles

1.1. Instalación del entorno de desarrollo

1.1. Instalación del entorno de desarrollo 1.1. Instalación del entorno de desarrollo Para el desarrollo de las aplicaciones vamos a poder utilizar un potente y moderno entorno de desarrollo. Al igual que Android, todas las herramientas están basadas

Más detalles

I.- Objetivo. II.- Introducción

I.- Objetivo. II.- Introducción FACULTAD DE INGENIERÍA MECÁNICA Y ELÉCTRICA PROGRAMACIÓN VISUAL Profr. Víctor Castillo PRÁCTICA No. 8 Creación de una conexión de datos usando acceso no conectado con ADO.NET ALUMNO: GRUPO: I.- Objetivo

Más detalles

Módulo de Movilidad. Soluciones Gestión Administrativa e-gestión Factura. Guía de Instalación y Uso. Guia de manejo PDA (Movilidad) Página 1 de 32

Módulo de Movilidad. Soluciones Gestión Administrativa e-gestión Factura. Guía de Instalación y Uso. Guia de manejo PDA (Movilidad) Página 1 de 32 Módulo de Movilidad Soluciones Gestión Administrativa e-gestión Factura Guía de Instalación y Uso Fecha de revisión: 23/01/2009 Página 1 de 32 Índice 1. Introducción... 3 2. Instalación... 3 3. Configuración

Más detalles

2.1. Instalación local de CONSTRUCTOR en Linex

2.1. Instalación local de CONSTRUCTOR en Linex 1. Probamos a instalarlo? A la hora de conocer y trabajar con CONSTRUCTOR podemos optar por alguna de las posibilidades para las cuales está preparado. CONSTRUCTOR cuenta con paquetes para su instalación

Más detalles

Copias de Seguridad con SQL Server 2005. Realizar una copia de seguridad de Bases de Datos

Copias de Seguridad con SQL Server 2005. Realizar una copia de seguridad de Bases de Datos Propósito Copias de Seguridad con SQL Server 2005 Con Management Studio del SQL 2005 es posible crear copias de seguridad de las bases de Datos definidas en el servidor de SQL Server. Dicha copia de seguridad

Más detalles

1. El entorno de desarrollo Eclipse

1. El entorno de desarrollo Eclipse Índice 1. El entorno de desarrollo Eclipse 1 1.1. Qué es Eclipse?........................................................ 1 1.2. Trabajando con Eclipse....................................................

Más detalles

1 Introducción. Home Station ADSL

1 Introducción. Home Station ADSL ÍNDICE 1 Introducción 1 2 Descripción general de la interfaz de usuario 2 3 Configuración LAN y WLAN 8 4 Configuración de la conexión a Internet 11 5 Configuración y estado de los dispositivos conectados

Más detalles

MANUAL DE USO AUTORUN PRO ENTERPRISE V. 12

MANUAL DE USO AUTORUN PRO ENTERPRISE V. 12 MANUAL DE USO Autorun Pro Enterprise es una herramienta que permite crear menús de inicio interactivos para CD y DVD que se ejecutarán tras insertar un disco en el lector. Etiquetas, enlaces, botones,

Más detalles

MANUAL DEL INSTALADOR

MANUAL DEL INSTALADOR MANUAL DEL INSTALADOR Índice Índice... 2 Instalación... 3 Extracción de archivos... 3 Actualización de los archivos de sistema... 3 Pantalla inicial... 4 Selección de la ruta de instalación... 4 Selección

Más detalles

Sockets en C# Bueno, por ultimo apuntar que trabajaremos en modo consola, que aprticularmente me gusta más.

Sockets en C# Bueno, por ultimo apuntar que trabajaremos en modo consola, que aprticularmente me gusta más. Sockets en C# Index: Introducción Qué es un Socket? Teoria sobre Sockets en C# Programando una aplicacion Cliente-Servidor Implementación del protocolo HTTP en C# mediante Sockets Despedida 1. Introducción

Más detalles

Este taller estará orientado a aquellas personas que no han visto jamás Python y también a aquellos que quieran pasar de Python 2 al 3

Este taller estará orientado a aquellas personas que no han visto jamás Python y también a aquellos que quieran pasar de Python 2 al 3 Introducción En este taller veremos las novedades sobre Python 3, que cosas nuevas e interesantes trae, que lo diferencia con Python 2, a demás conoceremos los depuradores que trae. Miraremos por arriba

Más detalles

Tutorial. Configuración del entorno de programación Code::Blocks.

Tutorial. Configuración del entorno de programación Code::Blocks. Tutorial Configuración del entorno de programación Code::Blocks. Code::Blocks es un entorno de desarrollo multiplataforma para programación en C/C++. Se encuentra bajo una licencia GNU, lo cual lo hace

Más detalles

REDES DE ÁREA LOCAL. APLICACIONES Y SERVICIOS EN WINDOWS

REDES DE ÁREA LOCAL. APLICACIONES Y SERVICIOS EN WINDOWS REDES DE ÁREA LOCAL. APLICACIONES Y SERVICIOS EN WINDOWS Escritorio remoto - 1 - Escritorio Remoto...- 3 - Definición de Escritorio Remoto... - 3 - Habilitar Escritorio Remoto... - 4 - Instalación del

Más detalles

Crear una Nueva Solución Vacía:

Crear una Nueva Solución Vacía: Lo primero que haremos será crear una Solución Vacía, en la cual almacenaremos todos los proyectos y sus clases, que desarrol lemos a lo largo de este curso. Crear una Nueva Solución Vacía: Clic en el

Más detalles

Tutorial de Introducción a la Informática Tema 0 Windows. Windows. 1. Objetivos

Tutorial de Introducción a la Informática Tema 0 Windows. Windows. 1. Objetivos 1. Objetivos Este tema de introducción es el primero que debe seguir un alumno para asegurar que conoce los principios básicos de informática, como el manejo elemental del ratón y el teclado para gestionar

Más detalles

Arsys Backup Online Manual de Usuario

Arsys Backup Online Manual de Usuario Arsys Backup Online Manual de Usuario 1 Contenido 1. Instalación del Programa Cliente... 3 Pasos previos... 3 Instalación... 3 Configuración del acceso... 6 Ubicación del servidor de seguridad... 6 Datos

Más detalles

Recursos didácticos digitales en Educación Permanente Mª Luisa Miras Cidad

Recursos didácticos digitales en Educación Permanente Mª Luisa Miras Cidad Mi primer libro 1. Prepara tu ordenador Antes de comenzar a trabajar, sería recomendable que configuraras tu ordenador para ver las extensiones de los archivos. Una extensión es una serie de letras que

Más detalles

Guía de instalación del servidor

Guía de instalación del servidor Guía de instalación del servidor Autores: Versión: 1.0 Jesús Manuel Rodríguez Sánchez Miguel Ángel Lorente López Fecha: 22/01/2009 Tabla de contenido Manual de Instalación del Servidor 4 Paso 1) Instalar

Más detalles

Se accede pinchando en la opción Gestor bibliográfico Refworks del menú Aprendizaje e Investigación de la página WEB de la BURJC:

Se accede pinchando en la opción Gestor bibliográfico Refworks del menú Aprendizaje e Investigación de la página WEB de la BURJC: REFWORKS FORMAS DE ACCESO Se accede pinchando en la opción Gestor bibliográfico Refworks del menú Aprendizaje e Investigación de la página WEB de la BURJC: Los usuarios que se conecten por primera vez

Más detalles

INTRODUCCIÓN A.NET COMPACT FRAMEWORK 2.0

INTRODUCCIÓN A.NET COMPACT FRAMEWORK 2.0 INTRODUCCIÓN A.NET COMPACT FRAMEWORK 2.0 Derecho de Autor 2007 José Miguel Torres. Permiso para copiar, distribuir y/o modificar este documento bajo los términos de la Licencia de Documentación Libre GNU,

Más detalles

Instalar protocolo, cliente o servicio nuevo. Seleccionar ubicación de red. Práctica - Compartir y conectar una carpeta

Instalar protocolo, cliente o servicio nuevo. Seleccionar ubicación de red. Práctica - Compartir y conectar una carpeta Configuración de una red con Windows Aunque existen múltiples sistemas operativos, el más utilizado en todo el mundo sigue siendo Windows de Microsoft. Por este motivo, vamos a aprender los pasos para

Más detalles

Instrucciones para configurar la Plataforma FACe para la aplicación de Gestión Municipal, tanto Simplificada como Básica.

Instrucciones para configurar la Plataforma FACe para la aplicación de Gestión Municipal, tanto Simplificada como Básica. Instrucciones para configurar la Plataforma FACe para la aplicación de Gestión Municipal, tanto Simplificada como Básica. Con el fin de hacer más ordenado el proceso de configuración, hemos dividido este

Más detalles

Páginas web ::: Edición web en línea con Kompozer Diseño de materiales multimedia. Web 2.0. 1.16 Edición web en línea con Kompozer

Páginas web ::: Edición web en línea con Kompozer Diseño de materiales multimedia. Web 2.0. 1.16 Edición web en línea con Kompozer 129 1.16 Edición web en línea con Kompozer 130 1.16 Edición web en línea con Kompozer Kompozer es un programa que permite la edición en línea de un sitio web. Es decir que puedes actualizar directamente

Más detalles

Laboratorio de Redes y Sistemas Operativos Trabajo Práctico Final

Laboratorio de Redes y Sistemas Operativos Trabajo Práctico Final Laboratorio de Redes y Sistemas Operativos Trabajo Práctico Final Tema: Instalación de X2GO Profesor: Di Biase José Luis Integrantes: Cardozo Griselda Chiniewicz Stefania Arnez Inochea Eric 1 Índice: 1.

Más detalles

CREAR UN SERVICIO WEB BASICO CON JAVA AXIS2. Víctor J. Sosa vjsosa@tamps.cinvestav.mx

CREAR UN SERVICIO WEB BASICO CON JAVA AXIS2. Víctor J. Sosa vjsosa@tamps.cinvestav.mx CREAR UN SERVICIO WEB BASICO CON JAVA AXIS2. Víctor J. Sosa vjsosa@tamps.cinvestav.mx En este documento explicaré brevemente cómo construir un servicio web con Java Axis2 y cómo invocarlo desde un cliente

Más detalles

Código fuente C# Código asociado al formulario Splash

Código fuente C# Código asociado al formulario Splash Código fuente C# Código asociado al formulario Splash using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text;

Más detalles

Procesamiento Digital de Información

Procesamiento Digital de Información Práctica 1 Realización de archivo base José I. Gómez Quiñones Introducción Esta parte de la práctica consiste en realizar un programa que sirva como base para implementar algoritmos usando el DSP TMS320CV5510

Más detalles

Creando un Instalador con Inno Setup para Aplicaciones OpenDCL

Creando un Instalador con Inno Setup para Aplicaciones OpenDCL Creando un Instalador con Inno Setup para Aplicaciones OpenDCL Este tutorial le mostrará cómo crear un instalador para su aplicación OpenDCL de una manera sencilla. El instalador es un archivo EXE, el

Más detalles