Db4o. Qué no encontrará aquí. Introducción

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

Download "Db4o. Qué no encontrará aquí. Introducción"

Transcripción

1 Db4o Muchas veces cuando se presenta un artículo tan técnico, se lo orienta hacia un público especializado o avanzado, y el enfoque es mostrar los últimos detalles del producto de turno, sin embargo si hicieramos esto aquí dejaríamos afuera a los lectores que descubren db4o. Tal vez no entenderían cuándo será viable su uso o bien qué es realmente lo grandioso de db4o. En cambio si el enfoque fuera arranquemos desde cero, los desarrolladores avanzados, o incluso intermedios, se aburrirían y dejarían de lado el artículo buscando las últimas novedades. Por ello les recomiendamos a quienes estén avanzados, que en el caso de no responder a sus dudas, consulten hacia el final de este artículo en donde se encuentran las direcciones URL de recursos, entre ellos los de la gran comunidad de usuarios de db4o, donde pueden realizar consultas específicas. Tanto si usted ha tenido alguna experiencia con bases de objetos (ODBMS), los conocidos como mapeadores objetos relacionales (ORDBMS), es de la vieja guardia de las bases relacionales (RDBMS), como si jamás ha tenido experiencia persistiendo información y quiere averiguar si db4o es para usted, creemos que este artículo puede serle de ayuda. Qué no encontrará aquí La elección de un esquema de persistencia, aún cuando debería ser técnicamente una de las cuestiones menos polémicas debido a la enorme cantidad de documentación y comparativas realizadas y disponibles públicamente, ha sido desde hace unos años objeto de múltiples controversias. Sin embargo, el objetivo de este artículo no está centrado en los aspectos netamente comparativos, ni en convencer al lector de abandonar su preferencia por las bases relacionales o herramientas de mapeo, tareas que de por sí requerirían de un artículo aparte y cierta disposición especial al cambio. La idea aquí es presentar un vistazo a las características fundamentales de db4o, dejando a los lectores la posibilidad de generar nuevas entregas, ahondando en cuestiones que consideren de su interés. Introducción Vamos a ver entonces algunas características claves de db4o, la base de objetos nativa de alto rendimiento para.net y. A continuación mostraremos cómo instalar y comenzar a utilizar este motor de persistencia. Y seguidamente incluiremos cómo resolver algunas tareas simples en (muy fácilmente adaptables a ), una pequeña conclusión y daremos fuentes para más información. A grandes rasgos, las características fundamentales de db4o son: Alto rendimiento: Ofreciendo notables ventajas con sistemas que utilizan objetos anidados o compuestos, o en donde existen referencias cruzadas, herencia o interacciones ricas entre los objetos.

2 Por su bajo consumo de recursos, (de 600Kb a 800Kb de footprint) es especialmente apta para dispositivos móviles y entornos Clientes/Servidor, aunque no necesariamente limitada sólo a ellos. Doble licencia: GPL (Open Source) y Comercial (que incluye soporte). Gran comunidad de usuarios. Alto nivel de respuesta y participación. Documentación: Clara, amplia y ordenada. Orientada a ejemplos y de fácil lectura. Dos modos de trabajo: Embebido y Cliente/Servidor. Transparencia Persistente / Consultas Nativas. Soporte de versionado. Portabilidad entre.net, Mono y. Transacciones ACID: Atomicidad, Consistencia, Aislamiento, Durabilidad. Clientes de peso avalan su uso: BMW, Intel, Boeing, Ricoh, Seagate, Bosch, Novell, etc. Instalación Para empezar a utilizar db4o, es necesario descargar la versión apropiada para su equipo. Actualmente existen versiones para.net 1.x y 2.0, para y para Mono..NET Lo primero que necesita saber es qué versión de.net está instalada en su computadora. Una comprobación rápida es observar si existe un directorio parecido a "c:\windows\microsoft.net\framework\", allí dentro debería tener un subdirectorio con el número de versión (ver tabla abajo) por cada versión instalada. La versión más profesional de esta verificación es ejecutar el siguiente script.vbs: strcomputer = "." Set objwmiservice = GetObject("winmgmts:\\" & strcomputer & "\root\cimv2") Set colitems = objwmiservice.execquery("select * from Win32_Product") For Each objitem in colitems If InStr(objItem.Name, "Microsoft.NET Framework") > 0 Then Wscript.Echo objitem.version End If Next * Debería aparecer un cuadro de diálogo por cada versión instalada. Si no ha actualizado el framework.net separadamente, la siguiente tabla puede darle una idea de la versión instalada en su equipo: Visual Studio.NET Nombre de Versión Número de versión Beta ???? Beta

3 RTM SP SP SP RTM SP * 1.1 SP Beta RTM RTM * = (Windows Server 2003 Version) Si tiene varias versiones de.net instaladas, es posible especificar con qué versión desea utilizar db4o editando un archivo de configuración de la aplicación [1] (que no es más que un XML con extensión.config), sin embargo esto no es necesario ya que por omisión db4o tomará la última versión de.net instalada. La distribución de Db4o para.net consiste en un archivo instalador MSI, por lo que deberá tener habilitado el servicio "Windows Installer" para poder instalarlo. Ingrese en la "Consola de administración de Microsoft" escribiendo services.msc en Inicio > Ejecutar para poder habilitarlo si no está ya habilitado. Para empezar se debe tener instalada la máquina virtual de Sun (JRE). Por el uso de los generics y mejoras en la ejecución del for, se recomienda utilizar 5.0 en lo posible. Db4o también corre sobre la máquina virtual de Microsoft, para la cual se debe utilizar JDK 1.1 a partir de la versión 6.1 de Db4o. Db4o puede ejecutarse sobre las plataformas J2EE, J2SE y dialectos J2ME que soporten reflexión computacional como CDC, PersonalProfile, Symbian, Savaje y Zaurus. Está planeado el soporte sobre dialectos sin reflexión como CLDC, Palm OS y RIM/Blackberry. La distribución para viene en formato ZIP que debemos extraer en donde creamos conveniente. Lenguajes La siguiente tabla presenta los lenguajes y entornos soportados por Db4o: Lenguaje/Entorno Soporte Sí (JRE) Sí (J#) Sí VisualBasic.Net Sí Delphi.NET Sí C++ Administrado (C++/CLI) Ruby (JRuby) Vía reflector

4 Python (IronPython) Python (Jython) Boo ASP.NET Compact Framework Sí Vía reflector Sí Sí Sí Configuración Suficiente hasta aquí con cuestiones de instalación. Db4o posee dos modos de trabajo: Embebido y Cliente/Servidor. A los propósitos de este artículo solo veremos el primer modo, dejando a futuras revisiones el modo cliente/servidor. Para poder distribuir aplicaciones con db4o, sólo necesita copiar una librería (.dll) muy pequeña y configurar algunas cosas en su entorno de desarrollo preferido (además de escribir el código necesario desde luego!). VisualStudio.NET 2005 Estos son los pasos para comenzar a desarrollar con db4o 6.0 bajo este entorno: 1. Agregar la referencia de la dll en nuestro proyecto haciendo click con el botón derecho sobre References en el Solution Explorer. 2. Elegir Add Reference y luego Browse 3. Seleccionar db4o.dll, Open y finalmente Ok Y listo. No es necesaria la administración de la base de objetos. Los pasos de configuración son similares para el entorno SharpDevelop Eclipse Sólo hay que agregar las referencias al.jar correspondiente al entorno de trabajo. 1. Abrir las propiedades del proyecto haciendo click con el botón derecho sobre el proyecto en el Package Explorer y seleccionando Properties. 2. Seleccionar Build Path y hacer click sobre la pestaña Libraries. 3. Agregar el JAR correspondiente haciendo click en el botón Add External JARs y navegando hasta encontrar el JAR para la versión de que esté utilizando.

5 Ejemplo: Tienda de renta de DVDs Vamos a trabajar con un ejemplo típico. Supongamos un cliente que hace un alquiler en nuestra tienda de renta de DVDs. A modo de ejemplo instanciemos una película y su respectiva copia física del DVD en nuestro sistema, y posteriormente un nuevo alquiler del cliente, asociando la información correspondiente. Gráficamente nuestras instancias quedarían así: Por ahora, supongamos también que para el siguiente código de ejemplo tenemos un objeto db sobre el cual se pueden realizar dos operaciones, Set() y Commit(), que persisten los datos. El código que generaría nuestras instancias sería algo como lo siguiente:

6 // Creamos una nueva película Pelicula unapelicula = new Pelicula("The Godfather", Francis Ford Coppola ); // Creamos un nueva copia física para la película // y asociamos la película a la copia física Dvd copiadvd = new Dvd(5, unapelicula); // Alquiler por 2 días Alquiler alquiler = new Alquiler ("Juan Perez", copiadvd, 2); // Finalmente almacenamos el alquiler db.set(alquiler); db.commit(); (El proyecto que prueba este Script se llama ConsoleApplicatioDb4oTest SimpleScript JAVA) // Creamos una nueva película Pelicula unapelicula = new Pelicula("The Godfather", Francis Ford Coppola ); // Creamos un nueva copia física para la película // y asociamos la película a la copia física Dvd copiadvd = new Dvd(5, unapelicula); // Alquiler por 2 días Alquiler alquiler = new Alquiler ("Juan Perez", copiadvd, 2); // Finalmente almacenamos el alquiler db.set(alquiler); db.commit(); (El proyecto que prueba este Script se llama ConsoleApplicatioDb4oTest SimpleScript CS) Si nunca trabajó con bases de objetos es importante que tenga en cuenta lo siguiente: En Db4o, las referencias a los objetos especifican la relación entre ellos, por lo tanto en nuestro ejemplo, la película (unapelicula) y la copia física (copiadvd) son almacenados implícitamente al hacer db.set(alquiler). El db.commit() finalmente cierra la transacción. Es fundamental que recuerde esta especie de principio que determina el funcionamiento de las bases de objetos. Hasta aquí podemos sacar varias conclusiones. Como observamos, con db4o no es necesario crear un esquema de persistencia, es decir, no hay que hacer el diseño de la base de datos ya que es el modelo de clases de nuestro sistema lo que se persiste. Esto nos libera de varias cosas, entre ellas, el uso de herramientas de administración de base de datos, un administrador de base de datos, y de poseer conocimientos bases de datos relacionales (álgebra relacional, SQL), entre otras tareas. Para los siguientes ejemplos, puede ser útil ir inspeccionando la base mientras se trabaja con ella. Db4o posee un explorador con el cual podemos navegar nuestras bases y realizar copias de seguridad, defragmentaciones, consultas, etc. Este se llama Object Manager, y se puede descargar desde el Centro de Descargas de Db4o (ver sección de

7 enlaces). En la sección de herramientas de este artículo incluimos un listado de otras utilidades para db4o. Desde el Object Manager entonces, nuestro alquiler recientemente almacenado en la base, se vería de la siguiente manera: Haciendo click en el ícono del árbol de cada ítem, se muestra una vista jerárquica del item seleccionado. Para poder ejecutar el Object Manager, deberá tener instalada una máquina virtual en su sistema (por ejemplo el llamado Runtime Environment o JRE). La forma correcta de ejecución entonces es llamando al archivo por lotes (.bat) que se encuentra

8 dentro de la carpeta del Object Manager y es el encargado de instanciar el applet de (.jar). Entorno de trabajo En el CD se encuentran dos proyectos para VisualStudio: uno que incluye acceso vía S.O.D.A. y otro mediante Consultas Nativas, temas que trataremos a continuación. Ambos proyectos están a la XP, es decir, se incluyen tests Nunit para verificar su correcto funcionamiento. En principio hagamos algunas consultas muy simples sobre Pelicula, a fin de familiarizarnos con el acceso a db4o, y luego nos moveremos a algunas más interesantes. Trabajaremos con y que son los lenguajes más populares en la comunidad de db4o. En ambos casos, primero deberá incluir las rutas necesarias para que el enlazador encuentre los métodos: import com.db4o.db4o; import com.db4o.query; using Db4objects.Db4o; using Db4objects.Db4o.Query; La API de db4o es similar en todos los lenguajes soportados. Usualmente la forma de trabajo es similar al siguiente molde: // Crear una base si no existe, abrirla si ya existe. File file = new File("testDb4o.yap"); String fullpath = file.getabsolutepath(); ObjectContainer db = Db4oFactory.openFile(file); try { // realizar alguna acción con db4o // Ejemplos : db.set(obj); // Almacena un objeto en la base db.commit(); // Realizar la transacción (y arrancar otra) db.delete(obj); finally { db.close(); // Eliminar un objeto en la base // Cerrar la base y liberar los recursos // Crear una base si no existe, abrirla si ya existe. IObjectContainer db = Db4oFactory.OpenFile("testDb4o.yap"); try { // realizar alguna acción con db4o

9 // Ejemplos : db.set(obj); db.commit(); db.delete(obj); finally { db.close(); // Almacena un objeto en la base // Realizar la transacción (y arrancar otra) // Eliminar un objeto en la base // Cerrar la base y liberar los recursos La base de objetos consta de un archivo denominado YAP, en donde se almacenarán los objetos serializados. A nivel de aplicación se lo llama ObjectContainer y es el objeto sobre el cual se realizarán las operaciones de persistencia (Set(), Get(), Commit(), etc.). En los ejemplos a continuación, asumiremos que el código se ejecuta dentro del bloque try {, y están incluidos los espacios de nombres citados arriba a fin de que se encuentren las funciones necesarias. Acceso a Db4o Antes de ver las formas de acceso a datos en Db4o, vamos a ponernos un poco en contexto: El acceso a los datos en una base de objetos es navigacional. La eficiencia en velocidad (una de las características notables de db4o) viene dada por el hecho de que las referencias son almacenadas directamente en cada instancia, mientras que en las bases de datos tradicionales (que fueron realizadas antes de que el mecanismo de herencia fuera ampliamente utilizado), el acceso es tabular, y lo que generalmente se intenta en estos casos para salvar la distancia con el mundo de objetos, es utilizar mapeadores Objeto Relacionales, que incluyen API s o lenguajes que dan la ilusión de trabajar con objetos. En db4o existen tres formas de realizar consultas, cada una basada en una tecnología diferente. Estas son: S.O.D.A.: Simple Object Database Access / Acceso Simple a Bases de Datos de Objetos. Q.B.E.: Query By Example / Consulta por Ejemplo o Plantilla. N.Q.: Native Queries / Consultas Nativas En un principio, db4o permitía acceder mediante Q.B.E. y S.O.D.A. [2], siendo esta última la interface preferida por ser una tecnología desarrollada por el mismo creador de db4o, Carl Rosenberg. La experiencia tomada con los usuarios durante el período ha valido para dar cuenta de sus limitaciones y proponer una nueva tecnología de acceso a datos persistidos, que supliera con estas limitaciones. A partir de la versión 6 de db4o, las Consultas Nativas (N.Q.) se convirtieron en la interface principal de acceso, mientras que S.O.D.A. se ha mantenido por cuestiones de compatibilidad y para el uso de consultas generadas dinámicamente. A pesar de su reciente inclusión en db4o, las idea detrás de las Consultas Nativas no son un concepto nuevo; las colecciones de Smalltalk ya incluían esta capacidad desde su especificación en Veamos cuales son sus ventajas y desventajas principales:

10 Tecnología Ventajas Desventajas QBE Simplicidad, recomendada para principiantes. Funcionalidades limitadas: Carece de consultas con juntores (AND, NOT, OR, etc). Se necesita agregar un constructor para crear objetos sin campos inicializados. No se puede consultar por valores nulos SODA Independencia del lenguaje de programación utilizado. API simple. Minimiza el uso de cadenas para consultas Opera sobre propiedades Introduce conceptos relacionados con grafos de nodos (natural a las bases de objetos): Descender y Restringir por nodos que pueden ser una o muchas clases, un atributo de una clase, o consultas mismas. NQs Interface recomendada para Db4o 100% segura en tipos: Verificación de errores semánticos y sintácticos en tiempo de compilación. 100% refactorizable 100% nativas: no hay necesidad de aprender lenguajes de consultas o API s No se verifican tipos en tiempo de compilación (query.descend( dirctor ) fallaría en tiempo de ejecución) Demasiado explícita (verbose). Opera sobre campos, (pelicula._director) en vez de propiedades (pelicula.getdirector() o pelicula.director) Requiere actualizar las consultas cuando se refactoriza o modifica el modelo de clases. Consultas basadas en cadenas embebidas son blanco para ataques vía inyección de código. Las consultas deben ser traducidas al lenguaje o API del motor, esto puede penalizar en rendimiento en el caso de consultas complejas, donde no es posible hacerlo sin instanciar algunos objetos persistidos. Acceso mediante S.O.D.A. (Simple Object Database Access): Al trabajar con db4o, debemos imaginar nuestros datos como en un grafo en el que podemos navegar (o consultar), a diferencia de lo que haríamos con una base relacional donde los datos están tabulados y la idea predominante es combinar resultados en tablas. El acceso con S.O.D.A. se realiza mediante la clase Query, que es obtenida a través del ObjectContainer. Consideremos algunas operaciones típicas: // Instanciamos un objeto query para realizar las consultas Query query = db.query(); // Indicamos el objeto contra el cual se realizará la consulta query.constrain(pelicula.class);

11 //////////////////////////////////////////////////////////////// // Configuramos la/s consulta/s en el objeto query //////////////////////////////////////////////////////////////// // Por dato particular : Recuperemos la(s) Pelicula(s) llamada(s) // El Padrino si existe(n). query.descend("nombre").constrain("el Padrino"); // Por negación : Recuperar las películas que no se llamen // El Padrino si existen. query.descend("nombre").constrain("el Padrino").not(); // Por conjunción : Recuperar las películas llamadas El Padrino y // cuyo director sea Francis Ford Coppola Constraint constr = query.descend("nombre").constrain("el Padrino"); query.descend("director").constrain( Francis Ford Coppola ).and(constr); // Por disyunción : Recuperar las películas llamadas El Padrino o // cuyo director se llame Francis Ford Coppola Constraint constr = query.descend("nombre").constrain("el Padrino"); query.descend("director").constrain( Francis Ford Coppola ).or(constr); // Por similitud: Recuperar las películas que contengan God en su título IConstraint constr = query.descend("nombre").constrain("god").like(); // Ordenando resultados de forma ascendente query.descend("nombre").orderascending(); // Ordenando resultados de forma descendente query.descend("nombre").orderdescending(); // Ejecutar la consulta y Mostrar los resultados ObjectSet result = query.execute(); listresult(result); // Instanciamos un objeto query para realizar las consultas Query query = db.query(); // Indicamos el objeto contra el cual se realizará la consulta query.constrain(typeof(pelicula)); //////////////////////////////////////////////////////////////// // Configuramos la/s consulta/s en el objeto query //////////////////////////////////////////////////////////////// // Por dato particular : Recuperemos la(s) Pelicula(s) llamada(s) // El Padrino si existe(n). query.descend("_nombre").constrain("el Padrino"); // Por negación : Recuperar las películas que no se llamen // El Padrino si existen. query.descend("_nombre").constrain("el Padrino").Not(); // Por conjunción : Recuperar las películas llamadas El Padrino y // cuyo director sea Francis Ford Coppola Constraint constr = query.descend("_nombre").constrain("el Padrino"); query.descend("_director").constrain( Francis Ford Coppola ).And(constr); // Por disyunción : Recuperar las películas llamadas El Padrino o

12 // cuyo director se llame Francis Ford Coppola Constraint constr = query.descend("_nombre").constrain("el Padrino"); query.descend("_director").constrain( Francis Ford Coppola ).Or(constr); // Por similitud: Recuperar las películas que contengan God en su título IConstraint constr = query.descend("_nombre").constrain("god").like(); // Ordenando resultados de forma ascendente query.descend("_nombre").orderascending(); // Ordenando resultados de forma descendente query.descend("_nombre").orderdescending(); // Ejecutar la consulta y Mostrar los resultados ObjectSet result = query.execute(); listresult(result); Observamos en los ejemplos previos que mediante una consulta se desciende por los nodos especificando un atributo. Estos nodos pueden referir a tanto tipos primitivos como String en los ejemplos de _nombre o _director, o bien referir a otros objetos de nuestra aplicación, como veremos adelante en el ejemplo de acceso a objetos anidados. Finalmente, se restringe por el dato que queremos consultar ("El Padrino", Stanley Kubrick, Pelicula, DVD, etc). Observemos que las restricciones se dan en dos lugares: Al comienzo, cuando especificamos la clase de lo que queremos obtener (query.constrain(typeof(pelicula))) y al final mismo (Constrain( Francis Ford Coppola )). A su vez, estas restricciones (Constraints), se pueden combinar mediante juntores (Or, And, Not) y operadores de comparación (Equal, Identity, Like, Contains, Smaller, Greater, etc). Por lo tanto, descender y restringir son básicamente las ideas principales con S.O.D.A.. Descender por una consulta da como resultado otra consulta, a la cual podemos descender nuevamente y realizar la restricción que nos interese: // Acceso a objetos anidados query.constrain(alquiler.class); query.descend("copiafisica").descend("pelicula").constrain( nombre ); // Acceso a objetos anidados query.constrain(typeof(alquiler)); query.descend("copiafisica").descend("pelicula").constrain( _nombre ); Aquí restringimos por Alquiler, descendimos dos niveles por copiafisica y pelicula, para luego restringir por nombre. Esta idea de descenso, conlleva de por sí la idea de profundidad. Veamos un caso en donde la profundidad es importante, la actualización de objetos. Pongamos por ejemplo que deseamos actualizar una Película:

13 // Obtenemos una película utilizando un prototipo 1. Query query = db.query(); 2. ObjectSet result = db.get(new Pelicula("El laberinto del Fauno")); 3. Pelicula found = (Pelicula)result.next(); // Actualizar el director 4. found.director = Guillermo del Toro ; 5. db.set (found); // Mostrar resultados 6. Result = db.get (new Pelicula("El laberinto del Fauno")); 7. listresult(result); // Obtenemos una película utilizando un prototipo 1. Query query = db.query(); 2. ObjectSet result = db.get(new Pelicula("El laberinto del Fauno")); 3. Pelicula found = (Pelicula)result.Next(); // Actualizar el director 4. found.director = Guillermo del Toro ; 5. db.set (found); // Mostrar resultados 6. Result = db.get (new Pelicula("El laberinto del Fauno")); 7. listresult(result); Observamos una forma alternativa de recuperar un objeto, especificando un prototipo, el equivalente de las líneas 2 y 3 sin prototipos sería: 1. Query query = db.query(); 2. query.constrain(typeof(pelicula)); 3. query.descend("_name").constrain("el laberinto del Fauno"); ObjectSet result = query.execute(); 1. Query query = db.query(); 2. query.constrain(pelicula.class); 3. query.descend("name").constrain("el laberinto del Fauno"); ObjectSet result = query.execute(); Volviendo a la cuestión de la profundidad: Por omisión, sólo se actualizará el objeto pasado como parámetro al método Set(), es decir, los miembros primitivos de ese objeto, por ello la profundidad de actualización (update depth) será igual a 1. Es importante recordarlo ya que en general un modelo de objetos medianamente complejo seguramente utilizará más de un nivel de contención de objetos que no son primitivos. Si quisiéramos actualizar los objetos miembros, es decir, aquellos que están asociados a un objeto, debemos configurar el objeto raíz en cuestión para que actualice el grafo a la profundidad deseada. // Actualizar el grafo completo de objetos desde Pelicula Db4o.configure().objectClass(Pelicula.class).cascadeOnUpdate(true);

14 // Actualizar el grafo completo de objetos desde Pelicula Db4o.Configure().ObjectClass(typeof(Pelicula)).CascadeOnUpdate(true); En general es conveniente realizar un plan de actualización de tal forma que al ejecutar las consultas, sólo se recuperen aquellos objetos que necesiten actualizarse y no más, a fin de no penalizar en velocidad de acceso. Acceso mediante Consultas Nativas (NQs): Como vimos, una base de objetos en db4o se crea mediante código escrito en el mismo lenguaje de desarrollo de la aplicación (,, Visual Basic, etc.), por lo que no es necesario aprender otros lenguajes como SQL, HQL de Hibernate, OQL, JDOQL, EJBQL, o SODA (además del lenguaje de desarrollo elegido) para persistir nuestros datos. Esta característica es llamada Transparencia Persistente, "Native Queries" o simplemente NQs, y está marcando una tendencia entre los usuarios de Db4o. Aún cuando considere que el uso o aprendizaje de otro lenguaje no es realmente relevante, existe otra gran dificultad con los lenguajes de consultas, y es que están basados en cadenas. Estas cadenas deben ser analizadas léxicamente y sintácticamente por el parser del motor de persistencia, esto desde ya añade tiempo y es un proceso propenso a errores. S.O.D.A incluso, que minimiza el uso de cadenas, también tiene la dificultad de que el compilador no puede verificar la validez del atributo de una clase. Sin embargo, internamente, las Consultas Nativas funcionan sobre S.O.D.A., por lo que existe un conversor y un optimizador de consultas llamado Native Query Optimizer para maximizar su rendimiento. En concreto, la idea tras NQs es posibilitar la forma más simple posible de realizar una consulta. Esta forma más simple trabajaría con una instancia prototípica, es decir, una creada como si fuera un ejemplo, pero que representa a todas las de su tipo. Naturalmente esto sería algo tan simple como: // Obtener las películas que contienen la cadena Padrino Pelicula.getNombre().contains( Padrino ); // Obtener las películas que contienen la cadena Padrino Pelicula.Nombre.Contains( Padrino ); Siempre tenemos que tener en cuenta que lo principal de la consulta es esta expresión, que realiza la acción que nos interesa. A partir de aquí en adelante lo que veremos es de algún modo, cómo conformar a cada compilador y al motor de Db4o para que acepten esta expresión de la forma más simple posible. Esto no es fundamental, ni tampoco es complejo, pero sí es necesario aprenderlo para poder utilizar Consultas Nativas. Para que esto funcione entonces, lo primero que necesitaríamos es especificarle el tipo de esta instancia prototípica (película) a la expresión sobre la cual realizamos la consulta, y devolver los resultados en algún tipo de contenedor. Algo como:

15 // Obtener las películas que contienen la cadena Padrino (Pelicula pelicula) { return pelicula.getnombre().contains( Padrino ); // Obtener las películas que contienen la cadena Padrino (Pelicula pelicula) { return pelicula.nombre.contains( Padrino ); La próxima característica a agregar a la expresión necesita una introducción. Hace un instante mencionamos que, internamente, db4o realiza un proceso de análisis, conversión y posible optimización sobre las consultas. Esto agrega un nuevo requerimiento a nuestra expresión, que debería ser de tal forma que pueda pasarse como parámetro al motor de la base de objetos, u otro procesador de consultas, y así poder ser modificada. Siempre priorizando la simplicidad sintáctica, necesitaríamos entonces un objeto que pueda referenciar una especie de método anónimo que sea usado como parámetro y sea modificable, ya sea bien optimizándose o simplemente traduciéndose a SODA. Esto es posible a partir de.net 2.0 utilizando los llamados delegados. Un delegado es como un par objeto método que funciona como una retrollamada (callback), y sirve para tratar a un método como un objeto de primera clase, y así pasarse como parámetro a otros métodos. Los delegados son muy usados en el mundo de.net para realizar notificaciones de eventos, ejecuciones encadenadas y algunos otros casos en los que se necesite reflexión computacional. En y 5.0, es posible emular este comportamiento utilizando la clase Predicate como una clase anónima, y escribiendo en un método match la expresión dentro de ella, un detalle que le resta simplicidad en comparación con la versión de. En el caso particular de 5.0, se puede hacer uso de los generics. En código esto sería: // Obtener las películas que contienen la cadena Padrino new Predicate() { public boolean match(pelicula pelicula) { return pelicula.getnombre().contains( Padrino ); // Obtener las películas que contienen la cadena Padrino delegate (Pelicula pelicula) { return pelicula.nombre.contains( Padrino ); Lamentablemente la sintaxis para definir métodos anónimos en y aún es algo excesiva (esto tal vez cambie en el futuro con versiones posteriores de los lenguajes), en comparación con sus definiciones equivalentes en otros lenguajes, por ejemplo las expresiones lambda en Haskell o los CompiledMethods o bloques de Smalltalk. Aún así

16 pese a esta desventaja, en nuestra opinión, su uso es recomendable considerando sus contrapartes en lenguajes como SQL o lenguajes de consultas basadas en cadenas, propensos a errores de tipeo, dificultades para depuración, y a utilizar cientos de palabras claves. Existen también algunas ventajas adicionales como la posibilidad de realizar consultas dinámicas y parametrizadas, temas que podrían tratarse en futuros artículos. Volviendo a nuestra expresión, finalmente agregamos el contenedor para los resultados, quedando: 5.0 List <Pelicula> peliculas = database.query <Pelicula> ( new Predicate <Pelicula> () { public boolean match(pelicula pelicula) { return pelicula.getnombre().contains( El Padrino ); ); List peliculas = database.query ( new Predicate () { public boolean match(pelicula pelicula) { return pelicula.getnombre().contains( El Padrino ); );.NET 2.0 IList <Pelicula> peliculas = db.query <Pelicula> ( delegate (Pelicula pelicula) { return pelicula.nombre.contains( El Padrino ); );.NET 1.1 IList <Pelicula> peliculas = db.query (new PeliculaQuery()); Public class PeliculaQuery : Predicate { Public boolean match(pelicula pelicula) { return pelicula.nombre.contains( El Padrino ); ; Vamos ahora a reescribir nuestras consultas S.O.D.A, a la Consultas Nativas: // Consulta por dato particular : Recuperar la(s) Pelicula(s) // llamada(s) El Padrino si existe(n). List <Pelicula> peliculas = this.db.query(new Predicate<Pelicula>() { public boolean match (Pelicula pelicula) { return pelicula.get_nombre().equals( El Padrino ); ); // Por negación : Recuperar las películas que no se llamen // El Padrino si existen.

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

desarrollo. Dentro del desarrollo de la tesis el proceso de modelado del sistema fue hecho con el

desarrollo. Dentro del desarrollo de la tesis el proceso de modelado del sistema fue hecho con el Capitulo II. Análisis de herramientas y tecnologías de desarrollo. Dentro del desarrollo de la tesis el proceso de modelado del sistema fue hecho con el lenguaje de Modelo de Objetos llamado UML (Unified

Más detalles

MARCO DE REFERENCIA PARA LA PLATAFORMA DE INTEROPERABILIDAD. Tratamiento de incidencias sobre Firma Digital en Platino

MARCO DE REFERENCIA PARA LA PLATAFORMA DE INTEROPERABILIDAD. Tratamiento de incidencias sobre Firma Digital en Platino Interoperabilidad de los servicios telemáticos de la Administración Pública de la CAC Página 1 de 21 MARCO DE REFERENCIA PARA LA PLATAFORMA DE INTEROPERABILIDAD Tratamiento de incidencias sobre Firma Digital

Más detalles

Descarga, instalación y uso de herramientas:

Descarga, instalación y uso de herramientas: Descarga, instalación y uso de herramientas: Eclipse: Instalación de Eclipse (Más información en http://www.eclipse.org/) 1. Copiar, descomprimir e instalar si es necesario la última versión de Eclipse

Más detalles

Programación Orientada a Objetos Analista Programador Universitario Plan 2008 Año 2010

Programación Orientada a Objetos Analista Programador Universitario Plan 2008 Año 2010 INTRODUCCION Los objetos usados en aplicaciones JAVA mantienen su estado y comportamiento mientras la aplicación se halle en ejecución. Generalmente se necesita mantener el estado y comportamiento de los

Más detalles

Mono: la nueva plataforma de desarrollo Open Source

Mono: la nueva plataforma de desarrollo Open Source Mono: la nueva plataforma de desarrollo Open Source DB4o Alberto Villanueva estoyapuntado@hotmail.com Abril 2005 dotnetgroup ESIDE Universidad de Deusto This work is licensed under the Creative Commons

Más detalles

GUÍA PARA LA CONFIGURACIÓN Y UTILIZACIÓN DE LA IDE DRJAVA

GUÍA PARA LA CONFIGURACIÓN Y UTILIZACIÓN DE LA IDE DRJAVA Universidad Católica del Norte Facultad de Ingeniería y Ciencias Geológicas Departamento de Ingeniería de Sistemas y Computación GUÍA PARA LA CONFIGURACIÓN Y UTILIZACIÓN DE LA IDE DRJAVA 1. INTRODUCCIÓN

Más detalles

Tucan Manager. Guía de usuario

Tucan Manager. Guía de usuario Tucan Manager Guía de usuario Índice 1. Qué es Tucan? 2 2. Recursos 3 3. Instalación 5 3.1. MS Windows................................. 5 3.2. Código fuente................................. 8 4. Ejecutando

Más detalles

www.pildorasinformaticas.com Página 1

www.pildorasinformaticas.com Página 1 Capítulo 1. CREACIÓN DE BBDD Y VALIDACIÓN DE DATOS... 4 1.1. Crear una BBDD... 4 1.2. Formulario de entrada de datos... 5 1.3. Importación de datos... 7 1.4. Ordenación de registros... 10 1.5. Autofiltros...

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

Web ITSM -GUIA RÁPIDA DE USUARIO-

Web ITSM -GUIA RÁPIDA DE USUARIO- Web ITSM -GUIA RÁPIDA DE USUARIO- Manual básico de la aplicación WebITSM donde se visualiza la funcionalidad completa de la misma y la forma adecuada y eficaz de utilizarla. Ingeniería Técnica en Informática

Más detalles

Instalación de OPUS PLANET en red

Instalación de OPUS PLANET en red TITULO: en red INFORMACIÓN GENERAL: Versiones: Resumen: Referencias a otras notas técnicas: Palabras clave: OPUS PLANET Implementar OPUS PLANET en red, realizado cambios a la configuración de SQL server

Más detalles

Para obtener más información, vea Introducción al control DataRepeater (Visual Studio).

Para obtener más información, vea Introducción al control DataRepeater (Visual Studio). Lo nuevo en Visual Basic DataRepeater, control El nuevo control DataRepeater permite utilizar controles estándar de formularios Windows Forms para mostrar filas de datos en un contenedor desplazable. Este

Más detalles

Hands-On Lab. Windows Azure: Java, Eclipse y Azure. Última Actualización: 16/12/2011

Hands-On Lab. Windows Azure: Java, Eclipse y Azure. Última Actualización: 16/12/2011 Hands-On Lab Windows Azure: Java, Eclipse y Azure Última Actualización: 16/12/2011 1 Contenido INTRODUCCIÓN... 3 Objetivos 3 Prerequisitos 4 PREPARANDO EL ENTORNO... 5 Instalar Windows Azure Toolkit para

Más detalles

Marcos de Desarrollo. Diseño e implementación de aplicaciones Web con.net

Marcos de Desarrollo. Diseño e implementación de aplicaciones Web con.net Marcos de Desarrollo Diseño e implementación de aplicaciones Web con.net Prácticas de laboratorio (.NET) Planificación de clases prácticas 1. Introducción al entorno de trabajo 2. Ejemplos C# 3. Ejemplos

Más detalles

INDICE. Página 2 de 23

INDICE. Página 2 de 23 INDICE 1. INTRODUCCIÓN... 3 1.1 OBJETIVO DE ESTE MANUAL... 3 1.2 DOCUMENTOS RELACIONADOS... 3 2. REQUERIMIENTOS MÍNIMOS DEL SISTEMA... 3 3. REQUERIMIENTOS RECOMENDADOS DEL SISTEMA... 3 4. INSTALACIÓN...

Más detalles

VISIÓN GENERAL HERRAMIENTAS COMERCIALES

VISIÓN GENERAL HERRAMIENTAS COMERCIALES VISIÓN GENERAL El servidor de MS SQL se ha convertido en un estándar en muchas partes de la América corporativa. Puede manejar volúmenes de datos grandes y se integra bien con otros productos de Microsoft.

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

En este capítulo aprendemos qué es un gestor de contenidos. (CMS), cómo funciona y qué necesitamos para instalarlo.

En este capítulo aprendemos qué es un gestor de contenidos. (CMS), cómo funciona y qué necesitamos para instalarlo. BOOTSTRAP 1 C MS y Bootstrap En este capítulo aprendemos qué es un gestor de contenidos (CMS), cómo funciona y qué necesitamos para instalarlo. También conocemos los gestores de contenido más populares,

Más detalles

Cristian Blanco www.cristianblanco.es

Cristian Blanco www.cristianblanco.es INSTALACIÓN Y USO DE ENTORNOS DE DESARROLLO 2.1 ENTORNO DE DESARROLLO INTEGRADO Un entorno de desarrollo integrado (en inglés integrated development environment) es un programa informático compuesto por

Más detalles

Bases de datos: Sistemas de bases de datos:

Bases de datos: Sistemas de bases de datos: Bases de datos: Sistemas de bases de datos: Un sistema de bases de datos es básicamente un sistema para archivar en computador, es decir, es un sistema computarizado cuyo propósito general es mantener

Más detalles

CURSO DE PROGRAMACIÓN PHP MySQL

CURSO DE PROGRAMACIÓN PHP MySQL CURSO DE PROGRAMACIÓN PHP MySQL MASTER EN PHP MÓDULO NIVEL BASICO PRIMER MES Aprende a crear Sitios Web Dinámicos con PHP y MySQL 1. Introducción Qué es PHP? Historia Por qué PHP? Temas de instalación

Más detalles

Microsoft Visual Basic.NET

Microsoft Visual Basic.NET Microsoft Visual Basic.NET Curso de desarrollo de aplicaciones utilizando la tecnología de programación Microsoft.NET. El lenguaje utilizado es Visual Basic.NET, cuyas particularidades se estudian en la

Más detalles

Guía de implementación

Guía de implementación Guía de implementación Instalación de software Contenido Descripción general de la implementación de software Servidor CommNet Windows Clúster de Windows - Servidor virtual Agente CommNet Windows Clúster

Más detalles

Visual Studio Team System 2010

Visual Studio Team System 2010 Visual Studio Team System 2010 5. Pruebas Automatizadas con Visual Studio 6. Pruebas codificadas de interfaz de usuario 7. Pruebas Web de desempeño Identificación de candidatos para la automatización Visual

Más detalles

Manual de requisitos técnicos para la SEDE Electrónica del Ministerio de Economía y Competitividad en I+D+I

Manual de requisitos técnicos para la SEDE Electrónica del Ministerio de Economía y Competitividad en I+D+I Manual de requisitos técnicos para la SEDE Electrónica del Ministerio de Economía y Competitividad en I+D+I Configuraciones técnicas previas de Java y en los navegadores de Internet. Madrid, 24 Abril de

Más detalles

Novedades en Crystal Reports XI

Novedades en Crystal Reports XI Novedades en Crystal Reports XI Introducción Introducción Esta sección proporciona información de alto nivel sobre los componentes, las funciones y las ventajas que ofrece la última versión de Crystal

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

PRÁCTICA 1 MANUAL BÁSICO DE ECLIPSE

PRÁCTICA 1 MANUAL BÁSICO DE ECLIPSE PRÁCTICA 1 MANUAL BÁSICO DE ECLIPSE Facilidades de eclipse para el uso de ant y JUnit Tabla de contenidos 1. Qué es Eclipse?... 2 2. Crear un proyecto en Eclipse... 2 3. Utilizar Ant en nuestro proyecto

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

Internet Information Server

Internet Information Server Internet Information Server Internet Information Server 5.0 es un servidor web, que incluye los servicios de HTTP, HTTPS, FTP, SMTP (correo saliente) y NNTP (grupos de noticias). Además es capaz de ejecutar

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

(volver a Tabla de Contenidos)

(volver a Tabla de Contenidos) Para escribir, compilar y ejecutar un programa en Java lo único que realmente se necesita y no viene incluido con el sistema operativo es el kit de desarrollo de Java, denominado SDK (Software Development

Más detalles

MANUAL DE USUARIO Guía de Gestión de la Configuración con Subversion

MANUAL DE USUARIO Guía de Gestión de la Configuración con Subversion MANUAL DE USUARIO Guía de Gestión de la Configuración con Subversion Versión 1.8 Área de Integración y Arquitectura de Aplicaciones Hoja de Control Título Documento de Referencia Responsable Guía de Gestión

Más detalles

Introducción a Visual Studio.Net

Introducción a Visual Studio.Net Introducción a Visual Studio.Net Visual Studio es un conjunto completo de herramientas de desarrollo para la generación de aplicaciones Web ASP.NET, Servicios Web XML, aplicaciones de escritorio y aplicaciones

Más detalles

Toda base de datos relacional se basa en dos objetos

Toda base de datos relacional se basa en dos objetos 1. INTRODUCCIÓN Toda base de datos relacional se basa en dos objetos fundamentales: las tablas y las relaciones. Sin embargo, en SQL Server, una base de datos puede contener otros objetos también importantes.

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

Enlaces relacionados: http://otn.oracle.com/tech/pl_sql/index.html

Enlaces relacionados: http://otn.oracle.com/tech/pl_sql/index.html 1.INTRODUCCION PL/SQL (Procedural Language ó Programming Language, según distintas fuentes, aunque la oficial es la primera) es el lenguaje utilizado por Oracle como extensión al SQL, y que nos va a permitir

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

30 de Mayo de 2008. www.sigrid.es

30 de Mayo de 2008. www.sigrid.es Guia de Instalación del servidor SgdWMS 30 de Mayo de 2008 www.sigrid.es 2 Índice 1.- INTRODUCCIÓN... 3 2.- INSTALACIÓN DE INTERNET INFORMATION SERVER (IIS)... 3 3.- INSTALACIÓN DEL SERVIDOR SGDWMS EN

Más detalles

Redatam+SP REcuperación de DATos para Areas pequeñas por Microcomputador

Redatam+SP REcuperación de DATos para Areas pequeñas por Microcomputador Redatam+SP REcuperación de DATos para Areas pequeñas por Microcomputador Redatam+ SP WebServer (R+SP WebServer) Instalación y Configuración para el Sistema Operativo Windows REDATAM+SP es un programa computacional

Más detalles

RUEDA TORRES DULCE CAROLINA 3CM2 HIBERNATE EN UNA APLICACIÓN WEB

RUEDA TORRES DULCE CAROLINA 3CM2 HIBERNATE EN UNA APLICACIÓN WEB 3CM2 HIBERNATE EN UNA APLICACIÓN WEB 8 DE MAYO DE 2012 1. CREACION DE LA BASE DE DATOS Para llevar a cabo esta práctica se utiliza una base de datos MySQL llamada Sakila, una muestra gratis de base de

Más detalles

Manual del Modelizador. 28 de enero de 2009

Manual del Modelizador. 28 de enero de 2009 Índice de contenidos Introducción... 1 Proceso de ejecución de modelos... 1 Origen de datos... 3 Detalles técnicos... 3 Lenguaje de programación... 3 Estructura de los modelos... 3 Biblioteca de clases...

Más detalles

Guía de Implementación

Guía de Implementación Guía de Implementación Instalación de Software Tabla de Contenido Información General sobre Implementación de Software Servidor CommNet Windows Clúster de Windows - Servidor Virtual Agente de la Red de

Más detalles

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS ESCUELA DE COMPUTACIÓN

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS ESCUELA DE COMPUTACIÓN UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS ESCUELA DE COMPUTACIÓN CICLO 02-2013 GUIA DE LABORATORIO #09 Nombre de la Práctica: ADO.NET: Conexión a base de datos. Lugar de ejecución: Centro

Más detalles

Instalación de Campeón Plus Smart PROCEDIMIENTO PARA LA INSTALACIÓN DE CAMPEÓN PLUS SMART 14/11/2012 MALDONADO SOFTWARE MSW

Instalación de Campeón Plus Smart PROCEDIMIENTO PARA LA INSTALACIÓN DE CAMPEÓN PLUS SMART 14/11/2012 MALDONADO SOFTWARE MSW Instalación de Campeón Plus Smart PROCEDIMIENTO PARA LA INSTALACIÓN DE CAMPEÓN PLUS SMART 14/11/2012 MALDONADO SOFTWARE MSW CONTENIDO CONTENIDO... 2 CARACTERÍSTICAS DEL PROGRAMA CAMPEÓN PLUS SMART... 3

Más detalles

Anexo IV Configuración del Entorno de Desarrollo. Guía de puntos de interés de la Ciudad de Madrid

Anexo IV Configuración del Entorno de Desarrollo. Guía de puntos de interés de la Ciudad de Madrid Anexo IV Configuración del Entorno de Desarrollo Guía de puntos de interés de la Ciudad de Madrid 1. Índice Anexo IV Configuración del Entorno de Desarrollo... 1 1. Índice... 2 2. Entorno de Desarrollo...

Más detalles

Guía de instalación de los complementos de integración de Python y R en SPSS Statistics

Guía de instalación de los complementos de integración de Python y R en SPSS Statistics www.metodo.uab.cat Estudios de postgrado en Metodología de la investigación en Ciencias de la Salud Guía de instalación de los complementos de integración de Python y R en SPSS Statistics Tabla de contenidos

Más detalles

Instalación Componente Cliente

Instalación Componente Cliente Instalación Componente Cliente Manual de usuario Referencia: Autor: Fecha de creación: 05/11/2014 Última actualización: 05/11/2014 Versión: 1.6 AST-EFIRMA- InstalacionComponenteCliente.doc Aragonesa de

Más detalles

Manual de instalación de Java Runtime Environment.

Manual de instalación de Java Runtime Environment. Manual de instalación de Java Runtime Environment. Se recomienda, antes de proceder con la instalación en línea, desactivar el cortafuego de Internet. En algunos casos, la configuración del cortafuegos

Más detalles

Manual de gestión de contenidos web en entorno Drupal. Versión sitio maestro para servicios 1.0

Manual de gestión de contenidos web en entorno Drupal. Versión sitio maestro para servicios 1.0 Manual de gestión de contenidos web en entorno Drupal Versión sitio maestro para servicios 1.0 Contenido Gestión de contenidos... 5 Crear contenidos... 5 Tipos de contenido... 5 Página básica o basic

Más detalles

Instalación 1. INTRODUCCIÓN. icrosoft SQL Server 2005 es la última versión del servidor de bases de datos empresarial de Microsoft.

Instalación 1. INTRODUCCIÓN. icrosoft SQL Server 2005 es la última versión del servidor de bases de datos empresarial de Microsoft. Instalación 1. INTRODUCCIÓN M icrosoft SQL Server 2005 es la última versión del servidor de bases de datos empresarial de Microsoft. Esta simple descripción encierra muchos más detalles de los que puede

Más detalles

Clase Práctica Nº 1 ED 2015

Clase Práctica Nº 1 ED 2015 Clase Práctica Nº 1 ED 2015 Introducción La creación de una solución de software tiene varias etapas, por ejemplo: Diseño Implementación Testeo Y para cada etapa existen herramientas que nos ayudan. Introducción

Más detalles

Capítulo III. El lenguaje de programación Avenue.

Capítulo III. El lenguaje de programación Avenue. Capítulo III El lenguaje de programación Avenue. En este capítulo se describe el lenguaje de programación Avenue y el entorno de programación de aplicaciones de Arcview. Además se darán a conocer los pasos

Más detalles

Modulo 1 El lenguaje Java

Modulo 1 El lenguaje Java Modulo 1 El lenguaje Java 13 - Codificación en Java Una de las grandes diferencias entre Java y Pascal en cuando a la codificación es que Java se trata de un lenguaje de los llamados case sensitive Esto

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

PRIMEROS PASOS EN DELTA

PRIMEROS PASOS EN DELTA PRIMEROS PASOS EN DELTA INTRODUCCIÓN Para comenzar a utilizar la aplicación Delta, es necesario llevar a cabo una serie de pasos de configuración y verificación previos. Algunos de ellos son comunes a

Más detalles

Introducción a la extensión de scripting en gvsig 2.0

Introducción a la extensión de scripting en gvsig 2.0 Introducción a la extensión de scripting en gvsig 2.0 2012 gvsig Association Este documento se distribuye con la licencia Creative Commons 1 2 Índice de contenido 1 Introducción... 3 Instalación de la

Más detalles

Microsoft Access proporciona dos métodos para crear una Base de datos.

Microsoft Access proporciona dos métodos para crear una Base de datos. Operaciones básicas con Base de datos Crear una Base de datos Microsoft Access proporciona dos métodos para crear una Base de datos. Se puede crear una base de datos en blanco y agregarle más tarde las

Más detalles

Entorno de desarrollo Instalación y configuración

Entorno de desarrollo Instalación y configuración Entorno de desarrollo Instalación y configuración GExCALL Formación http://gexcall.unex.es/formacion El plugin ADT (Android Development Tools) extiende al IDE Eclipse. Te permite crear y depurar aplicaciones

Más detalles

Guía de Instalación de Java y jedit. Alumno Colaborador de la Asignatura

Guía de Instalación de Java y jedit. Alumno Colaborador de la Asignatura Guía de Instalación de Java y jedit Iván Félix Álvarez García Alumno Colaborador de la Asignatura 1 Índice 1. Instalación de Java 3 1.1. Instalación en Windows (Oracle).................. 3 1.1.1. Instalación

Más detalles

Tutorial: Primeros Pasos con Subversion

Tutorial: Primeros Pasos con Subversion Tutorial: Primeros Pasos con Subversion Introducción Subversion es un sistema de control de versiones open source. Corre en distintos sistemas operativos y su principal interfaz con el usuario es a través

Más detalles

Descarga e Instalación

Descarga e Instalación Descarga e Instalación Para la descarga de CCleaner seguiremos el enlace: http://www.piriform.com/ccleaner/builds Una vez descargado haremos doble clic con el ratón sobre el icono de CCleaner: Ahora aparecerá

Más detalles

Guía de Moodle para Estudiantes

Guía de Moodle para Estudiantes Guía de Moodle para Estudiantes 1. Introducción En este tutorial se asume que: 1. Usted tiene al menos el conocimiento básico del uso de una computadora, incluyendo el ratón y el teclado, y está familiarizado

Más detalles

Una base de datos es una colección de información ordenada e interrelacionada que es de importancia para una empresa.

Una base de datos es una colección de información ordenada e interrelacionada que es de importancia para una empresa. BASES DE DATOS Una base de datos es una colección de información ordenada e interrelacionada que es de importancia para una empresa. La creación de una base de datos debe ser realizada cuidadosamente procurando

Más detalles

REQUISITOS PARA LA FIRMA DIGITAL

REQUISITOS PARA LA FIRMA DIGITAL REQUISITOS PARA LA FIRMA DIGITAL 1 Contenido Capítulo/sección Página 1 Introducción. 3 2 Restricciones. 4 3 Máquina Virtual de Java 5 3.1 Abrir Panel de Control de Java 5 3.2 Verificación de versión desde

Más detalles

MANUAL DE CONFIGURACIÓN JAVA Y NAVEGADORES PARA USO DE APLICACIONES CON FIRMA. Versión 1.0

MANUAL DE CONFIGURACIÓN JAVA Y NAVEGADORES PARA USO DE APLICACIONES CON FIRMA. Versión 1.0 MANUAL DE CONFIGURACIÓN JAVA Y NAVEGADORES PARA USO DE APLICACIONES CON FIRMA Versión 1.0 20/10/2014 ÍNDICE Nº Pág. 1 Introducción... 3 2 Requisitos mínimos...4 3 Certificados ACCV y software adicional...4

Más detalles

Sección 1: Introducción al Modo Windows XP para Windows 7

Sección 1: Introducción al Modo Windows XP para Windows 7 Sección 1: Introducción al Modo Windows XP para Windows 7 El Modo Windows XP, un nuevo beneficio de las ediciones Professional, Enterprise y Ultimate de Windows 7, ayuda a las pequeñas empresas a migrar

Más detalles

Agencia Tributaria. ADO y RENTA

Agencia Tributaria. ADO y RENTA Agencia Tributaria ADO y RENTA ÍNDICE INTRODUCCIÓN...3 Ventajas...3 Inconvenientes...3 QUIÉN NO NECESITA INSTALAR LOS COMPONENTES ADICIONALES DE MICROSOFT...3 CUÁL ES LA RELACIÓN ENTRE MS. ACCESS Y EL

Más detalles

ENCUENTA - CONTABILIDAD Net. Definiciones generales

ENCUENTA - CONTABILIDAD Net. Definiciones generales ENCUENTA - CONTABILIDAD Net Definiciones generales 2013 ENCUENTA - CONTABILIDAD Net Definiciones generales Contenido 1 GENERALIDADES... 3 2 DISTRIBUCIÓN GENERAL DE LOS ELEMENTOS DEL SISTEMA... 3 3 REQUERIMIENTOS...

Más detalles

INTRODUCCIÓN A LA PROGRAMACIÓN WEB UNIDAD. Estructura de contenidos: http://www.ucv.edu.pe/cis/ cisvirtual@ucv.edu.pe. 1.

INTRODUCCIÓN A LA PROGRAMACIÓN WEB UNIDAD. Estructura de contenidos: http://www.ucv.edu.pe/cis/ cisvirtual@ucv.edu.pe. 1. INTRODUCCIÓN A LA PROGRAMACIÓN WEB UNIDAD 1 Estructura de contenidos: 1. Programación Web 2. Sistema De Información 3. Sistema Web 4. Requisitos Para Sistemas Web Con Asp 5. Internet Information Server

Más detalles

INF 473 Desarrollo de Aplicaciones en

INF 473 Desarrollo de Aplicaciones en INF 473 Desarrollo de Aplicaciones en Java Unidad II El Lenguaje de Programación Java Prof. José Miguel Rubio jose.rubio.l@ucv.cl jrubio@inf.ucv.cl PUCV Marzo 2008 1 Orígenes del Lenguaje Java 1991. James

Más detalles

Introducción Active Directory

Introducción Active Directory Active Directory Qué es? Active Directory es uno de los tantos componentes que vienen dentro de Windows Server 2008 R2 y que nos hará de base para armar nuestra red lógica empresarial. Desde el AD (Active

Más detalles

CAPITULO 7. MS SQL Server Express Edition

CAPITULO 7. MS SQL Server Express Edition CAPITULO 7 MS SQL Server Express Edition 7.1 Requerimientos Previos El proceso de instalación de Microsoft SQL Server 2008 no es complejo y es de gran importancia tener en cuenta que se está realizando

Más detalles

Unidad 1: Conceptos generales de Sistemas Operativos.

Unidad 1: Conceptos generales de Sistemas Operativos. Unidad 1: Conceptos generales de Sistemas Operativos. Tema 3: Estructura del sistema operativo. 3.1 Componentes del sistema. 3.2 Servicios del sistema operativo. 3.3 Llamadas al sistema. 3.4 Programas

Más detalles

Capítulo 4. Requisitos del modelo para la mejora de la calidad de código fuente

Capítulo 4. Requisitos del modelo para la mejora de la calidad de código fuente Capítulo 4. Requisitos del modelo para la mejora de la calidad de código fuente En este capítulo definimos los requisitos del modelo para un sistema centrado en la mejora de la calidad del código fuente.

Más detalles

Introducción a las bases de datos

Introducción a las bases de datos Introducción a las bases de datos Juan Ignacio Rodríguez de León Abstract Aplicaciones de los sistemas de bases de datos. Sistemas de bases de datos frente a sistemas de archivos. Visión de los datos.

Más detalles

MANUAL DE SHAREPOINT 2013. Por: Área de Administración de Aplicaciones.

MANUAL DE SHAREPOINT 2013. Por: Área de Administración de Aplicaciones. MANUAL DE SHAREPOINT 2013 Por: Área de Administración de Aplicaciones. Indice 1. Tipos de Cuentas de Usuario... 2 2. Compatibilidad con exploradores de Internet... 2 3. Como acceder a un sitio de SharePoint

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

Tema: CREACIÓN DE CONSULTAS E INFORMES EN UNA BASE DE DATOS CON MICROSOFT ACCESS 2013.

Tema: CREACIÓN DE CONSULTAS E INFORMES EN UNA BASE DE DATOS CON MICROSOFT ACCESS 2013. Empremática, Guía12 1 Facultad: Ingeniería Escuela: Computación Asignatura: Empremática Tema: CREACIÓN DE CONSULTAS E INFORMES EN UNA BASE DE DATOS CON MICROSOFT ACCESS 2013. Objetivos: Identificar las

Más detalles

Instrucciones de Operación del nuevo Webmail Indices

Instrucciones de Operación del nuevo Webmail Indices Instrucciones de Operación del nuevo Webmail Indices Instrucciones de Operación del nuevo Webmail... 1 Accediendo al nuevo Webmail... 2 Iniciando Sesión... 3 Áreas de Trabajo del Webmail... 4 Carpetas

Más detalles

Utilidades de la base de datos

Utilidades de la base de datos Utilidades de la base de datos Desde esta opcion del menú de Access, podemos realizar las siguientes operaciones: Convertir Base de datos Compactar y reparar base de datos Administrador de tablas vinculadas

Más detalles

Manual de instalación. BIABLE Great Plains-Dynamics

Manual de instalación. BIABLE Great Plains-Dynamics Manual de instalación BIABLE Great Plains-Dynamics Manual de instalación 2 Introducción general BIABLE es una herramienta que facilita la disponibilidad de información estratégica en tiempo real a partir

Más detalles

BROWSERSQL VERSIÓN 3.1 TUTORIAL

BROWSERSQL VERSIÓN 3.1 TUTORIAL TUTORIAL LAURA NOUSSAN LETTRY (MENDOZA, ARGENTINA 2011) ÍNDICE CONTENIDOS PÁGINA Introducción 2 Características Funcionales 2 Área de Conexión 3 Área de Ejecución de Sentencias 4 En qué se basa su funcionamiento

Más detalles

Tema: INSTALACIÓN DE SQL SERVER 2008.

Tema: INSTALACIÓN DE SQL SERVER 2008. Base de datos I. Guía 2 1 Facultad: Ingeniería Escuela: Computación Asignatura: Base de datos I Tema: INSTALACIÓN DE SQL SERVER 2008. Objetivo Conocer los pasos para realizar la instalación de SQL Server.

Más detalles

Instalación de Winisis en Windows 8 (64 bits) usando Virtual Box Oracle Ernesto Spinak 10/07/2013 borrador 1

Instalación de Winisis en Windows 8 (64 bits) usando Virtual Box Oracle Ernesto Spinak 10/07/2013 borrador 1 Instalación de Winisis en Windows 8 (64 bits) usando Virtual Box Oracle Ernesto Spinak 10/07/2013 borrador 1 Introducción Winisis es una aplicación Windows que usa librerías de programación para sistemas

Más detalles

DIRECCIÓN DE SISTEMAS DE INFORMACIÓN DEPARTAMENTO CERES

DIRECCIÓN DE SISTEMAS DE INFORMACIÓN DEPARTAMENTO CERES DIRECCIÓN DE SISTEMAS DE INFORMACIÓN DEPARTAMENTO CERES SERVICIO DE NOTIFICACIONES ELECTRÓNICAS Y DIRECCIÓN ELECTRÓNICA HABILITADA MANUAL DE CONFIGURACIÓN PARA SISTEMAS WINDOWS NOMBRE FECHA Elaborado por:

Más detalles

Microsoft Access. Microsoft Access es una herramienta de Microsoft para la definición y manipulación de bases de datos.

Microsoft Access. Microsoft Access es una herramienta de Microsoft para la definición y manipulación de bases de datos. Prácticas de Introducción al uso de Computadores Curso 2001-2002 1 Microsoft Access Introducción Microsoft Access es una herramienta de Microsoft para la definición y manipulación de bases de datos. Una

Más detalles

PRÁCTICA SOFTWARE OPERATIVO Y DE DESARROLLO Parte I. Objetivos

PRÁCTICA SOFTWARE OPERATIVO Y DE DESARROLLO Parte I. Objetivos Objetivos El alumno conocerá algunos tipos de software operativo existentes que le serán útiles en su desempeño académico y profesional. Al final de esta práctica el alumno podrá: 1. Distinguir varias

Más detalles

PROGRAMA FORMATIVO MICROSOFT VISUAL BASIC. NET

PROGRAMA FORMATIVO MICROSOFT VISUAL BASIC. NET PROGRAMA FORMATIVO MICROSOFT VISUAL BASIC. NET www.bmformacion.es info@bmformacion.es Objetivos Curso de desarrollo de aplicaciones utilizando la tecnología de programación Microsoft.NET. El lenguaje utilizado

Más detalles

INTELIGENCIA DE NEGOCIOS CON SQL SERVER 2008 R2

INTELIGENCIA DE NEGOCIOS CON SQL SERVER 2008 R2 Programa de Capacitación y Certificación. INTELIGENCIA DE NEGOCIOS CON SQL SERVER 2008 R2 Contenido PERFIL DE UN ESPECIALISTA EN BASES DE DATOS.... 3 6231. MANTENIENDO UNA BASE DE DATOS DE SQL SERVER 2008

Más detalles

BlackBerry Messenger SDK

BlackBerry Messenger SDK BlackBerry Messenger SDK Versión: 1.2 Guía de introducción Publicado: 2011-10-11 SWD-1391821-1011103456-005 Contenido 1 Requisitos del sistema... 2 2 Dependencias de versión de BlackBerry Messenger...

Más detalles

CURSO DE SQL SERVER 2005

CURSO DE SQL SERVER 2005 CURSO DE SQL SERVER 2005 Una vez finalizado el curso, el alumno estará preparado para: Instalar y configurar SQL Server 2005. Comprender los conceptos más importantes del diseño de bases de datos. Crear

Más detalles

BASE DE DATOS: ENFOQUE ORIENTADO A OBJETOS. Dámaso López Aragón

BASE DE DATOS: ENFOQUE ORIENTADO A OBJETOS. Dámaso López Aragón BASE DE DATOS: ENFOQUE ORIENTADO A OBJETOS Dámaso López Aragón Introducción En la actualidad, la orientación a objetos es una nueva forma de comprender los problemas y modelar el negocio de una empresa,

Más detalles

Portales que ofrecen servicios de wiki

Portales que ofrecen servicios de wiki Qué es una wiki Una wiki es un sitio web que permite a todos acceder y participar; se pueden crear o editar fácilmente contenidos sin precisar ninguna herramienta técnica. Lo único necesario es un ordenador

Más detalles

APLICACIÓN DE ACCESO REMOTO PARA POCKET PC. MANUAL DE USUARIO (Release 1.42)

APLICACIÓN DE ACCESO REMOTO PARA POCKET PC. MANUAL DE USUARIO (Release 1.42) APLICACIÓN DE ACCESO REMOTO PARA POCKET PC MANUAL DE USUARIO () Índice INTRODUCCIÓN... 3 MANUAL INSTALACIÓN DEL SOFTWARE... 4 GUIA USUARIO... 5 Iniciar la Aplicación Control Remoto... 5 Bienvenido... 5

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 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

Módulo 1 El lenguaje Java

Módulo 1 El lenguaje Java Módulo 1 El lenguaje 1.1 Presentación de es un lenguaje de programación desarrollado por la empresa Sun Microsystems en 1991 como parte de un proyecto secreto de investigación llamado Green Proyect, con

Más detalles