miércoles, 22 de enero de 2014

PROGRAMACION ORIENTADA A OBJETOS

1. QUE ES LENGUAJE DE PROGRAMACIÓN?
Un lenguaje de programación es un lenguaje que puede ser utilizado para controlar el comportamiento de una máquina, particularmente una computadora. Consiste en un conjunto de reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos, respectivamente. Aunque muchas veces se usa lenguaje de programación y lenguaje informático como si fuesen sinónimos, no tiene por qué ser así, ya que los lenguajes informáticos engloban a los lenguajes de programación y a otros más, como, por ejemplo, el HTML.

2. - MULTIPLATAFORMA: En informática, multiplataforma, o multi-plataforma, es un atributo conferido a los programas informáticos o los métodos de cálculo y conceptos que se implementan e inter-operar en múltiples plataformas. Software multiplataforma se puede dividir en dos tipos: uno requiere edificio individual o compilación para cada plataforma que da soporte, y la otra se puede ejecutar directamente en cualquier plataforma sin preparación especial.

- GARBAJE COLLECTOR: La recolección de basura o garbage collection es la técnica por la cual el entorno de objetos se encarga de destruir automáticamente, y por tanto desvincular la memoria asociada, los objetos que hayan quedado sin ninguna referencia a ellos. Esto significa que el programador no debe preocuparse por la asignación o liberación de memoria, ya que el entorno la asignará al crear un nuevo objeto y la liberará cuando nadie lo esté usando. En la mayoría de los lenguajes híbridos que se extendieron para soportar el Paradigma de Programación Orientada a Objetos como C++ u Object Pascal, esta característica no existe y la memoria debe desasignarse expresamente.

- JUST IN TIME: (que también se usa con sus siglas JIT), literalmente quiere decir “Justo a tiempo”. Es una filosofía que define la forma en que debería optimizarse un sistema de producción.
El JIT tiene 4 objetivos esenciales:
- Poner en evidencia los problemas fundamentales.
- Eliminar despilfarros.
- Buscar la simplicidad.
- Diseñar sistemas para identificar problemas.

-API: Interfaz de programación de aplicaciones (IPA) o API (del inglés Application Programming Interface) es el conjunto de funciones y procedimientos (o métodos, en la programación orientada a objetos) que ofrece cierta biblioteca para ser utilizado por otro software como una capa de abstracción. Son usadas generalmente en las bibliotecas.

- JVM: La Máquina Virtual Java (JVM) es el entorno en el que se ejecutan los programas Java, su misión principal es la de garantizar la portabilidad de las aplicaciones Java. Define esencialmente un ordenador abstracto y especifica las instrucciones (bytecodes) que este ordenador puede ejecutar. El intérprete Java específico ejecuta las instrucciones que se guardan en los archivos cuya extensión es .class. Las tareas principales de la JVM son las siguientes:
- Reservar espacio en memoria para los objetos creados
- Liberar la memoria no usada (garbage collection).
- Asignar variables a registros y pilas
- Llamar al sistema huésped para ciertas funciones, como los accesos a los dispositivos
- Vigilar el cumplimiento de las normas de seguridad de las aplicaciones Java

3. IDE de Programación: Es un entorno de programación que ha sido empaquetado como un programa de aplicación, o sea, consiste en un editor de código, un compilador, un depurador y un constructor de interfaz gráfica. Los IDEs pueden ser aplicaciones por sí solas o pueden ser parte de aplicaciones existentes. El lenguaje Visual Basic, por ejemplo, puede ser usado dentro de las aplicaciones de Microsoft Office, lo que hace posible escribir sentencias Visual Basic en forma de macros para Microsoft Word.

Un IDE debe tener las siguientes características:
- Multiplataforma
- Soporte para diversos lenguajes de programación
- Integración con Sistemas de Control de Versiones
- Reconocimiento de Sintaxis
- Extensiones y Componentes para el IDE
- Integración con Framework populares
- Depurador
- Importar y Exportar proyectos
- Múltiples idiomas
- Manual de Usuarios y Ayuda

- JDK: Se trata de un conjunto de herramientas (programas y librerías) que permiten desarrollar (compilar, ejecutar, generar documentación, etc.) programas en lenguaje Java.
Existen versiones del JDK para prácticamente todos los Sistemas Operativos y existen también distintos programas comerciales Sun distribuye gratuitamente el JDK “oficial” para los siguientes sistemas operativos: Windows 95/98/NT, Solaris y Linux

4. El JDK tiene el compilador que permite convertir código fuente en bytecode, es decir, el código "maquina" de la máquina virtual de Java.

5. JRE: Es un conjunto de utilidades que permite la ejecución de programas java, En su forma más complicada, el entorno en tiempo de ejecución de Java está conformado por una Máquina Virtual de Java o JVM, un conjunto de Java y otros componentes innecesarios para que una aplicación escrita en lenguaje c++ pueda ser ejecutada. El JRE actúa como un "intermediario" entre el sistema y Java.

6. La programación orientada a objetos o POO: La programación orientada a objetos o POO (OOP según sus siglas en inglés) es un paradigma de programación que usa los objetos en sus interacciones, para diseñar aplicaciones y programas informáticos. Está basado en varias técnicas tales como: herenciacohesiónabstracciónpolimorfismoacoplamiento y encapsulamiento. Su uso se popularizó a principios de la década de los años 1990. En la actualidad, existe una gran variedad de lenguajes de programación que soportan la orientación a objetos.

7. Conceptos Fundamentales de la P.O.O.

- Abstracción: Denota las características esenciales de un objeto, donde se capturan sus comportamientos. Cada objeto en el sistema sirve como modelo de un "agente" abstracto que puede realizar trabajo, informar y cambiar su estado, y "comunicarse" con otros objetos en el sistema sin revelar cómo se implementan estas características. Los procesos, las funciones o los métodos pueden también ser abstraídos, y, cuando lo están, una variedad de técnicas son requeridas para ampliar una abstracción. El proceso de abstracción permite seleccionar las características relevantes dentro de un conjunto e identificar comportamientos comunes para definir nuevos tipos de entidades en el mundo real. La abstracción es clave en el proceso de análisis y diseño orientado a objetos, ya que mediante ella podemos llegar a armar un conjunto de clases que permitan modelar la realidad o el problema que se quiere atacar.

- Encapsulamiento: Significa reunir todos los elementos que pueden considerarse pertenecientes a una misma entidad, al mismo nivel de abstracción. Esto permite aumentar la cohesión de los componentes del sistema. Algunos autores confunden este concepto con el principio de ocultación, principalmente porque se suelen emplear conjuntamente.

- Ocultamiento: Consiste en dar a cada objeto del programa una identidad única y propia, esto se logra gracias a la Programación orientada a objetos, la cual permite la manipulación y modificación de los atributos de cada objeto por medio de métodos, y sin importar como sean estos métodos implementados para lograr el objetivo.

- Herencia: Las clases no están aisladas, sino que se relacionan entre sí, formando una jerarquía de clasificación. Los objetos heredan las propiedades y el comportamiento de todas las clases a las que pertenecen. La herencia organiza y facilita el polimorfismo y el encapsulamiento, permitiendo a los objetos ser definidos y creados como tipos especializados de objetos preexistentes. Estos pueden compartir (y extender) su comportamiento sin tener que volver a implementarlo. Esto suele hacerse habitualmente agrupando los objetos en clases y estas en árboles o enrejados que reflejan un comportamiento común. Cuando un objeto hereda de más de una clase se dice que hay herencia múltiple.

- Polimorfismo: Comportamientos diferentes, asociados a objetos distintos, pueden compartir el mismo nombre; al llamarlos por ese nombre se utilizará el comportamiento correspondiente al objeto que se esté usando. O, dicho de otro modo, las referencias y las colecciones de objetos pueden contener objetos de diferentes tipos, y la invocación de un comportamiento en una referencia producirá el comportamiento correcto para el tipo real del objeto referenciado. Cuando esto ocurre en "tiempo de ejecución", esta última característica se llama asignación tardía o asignación dinámica. Algunos lenguajes proporcionan medios más estáticos (en "tiempo de compilación") de polimorfismo, tales como las plantillas y la sobrecarga de operadores de C++.


miércoles, 11 de diciembre de 2013

CONCEPTOS DE ORACLE Y SUS HERRAMIENTAS


1. ORACLE DATABASE: Es un sistema de gestión de base de datos objeto-relacional (uORDBMS por el acrónimo en inglés de Object-Relational Data Base Management System), desarrollado por Oracle Corporation.
Se considera a Oracle Database como uno de los sistemas de bases de datos más completos, destacando:
-          soporte de transacciones,
-          estabilidad,
-          escalabilidad y
-          soporte multiplataforma.

Su dominio en el mercado de servidores empresariales ha sido casi total hasta hace poco; recientemente sufre la competencia del Microsoft SQL Server de Microsoft y de la oferta de otros RDBMS con licencia libre como PostgreSQLMySQL o Firebird. Las últimas versiones de Oracle han sido certificadas para poder trabajar bajo GNU/Linux.

2. Procesos en segundo plano (Oracle): Las relaciones entre las estructuras físicas y de memoria de la base de datos se mantienen y aplican mediante procesos en segundo plano. Estos procesos son propios de la base de datos y su número varía en función de la configuración de la base de datos. La base de datos gestiona estos procesos y necesitan muy poco trabajo administrativo.

En Oracle los procesos pueden ser de estos tipos:
- Proceso de usuario: Lanzado por el usuario para pedir interacción con la base de datos.
- Proceso de servidor: Hacen de enlace entre los procesos de usuarios y el servidor Oracle. Se utilizan como manejadores de los procesos de usuario. Los comandos de usuario se envían a estos procesos que se encargan de solicitar peticiones a la base de datos mediante el interfaz de programas de Oracle (OPI, Oracle Program Interface).
- Procesos en segundo plano (background): Cada instancia de Oracle arranca una serie de procesos background.

3. Procesos Background (en segundo plano), describalos y explíquelos

DBWR: Databasewriter
LGWR: Log Writer
CKPT: Checkpoint
SMON: Monitor de sistema
PMON: Monitor de procesos
ARCH: Proceso archivador
RECO: Proceso de recuperación

- DBWR: Este proceso es el que se encarga de escribir a disco. Es el único con permiso de escritura en disco, o sea en la base de datos. Cuando nosotros escribimos, hacemos un commit en la base de datos, realmente no está escribiendo en disco, sino que está marcando una serie de bloques de datos como que son susceptibles de ser escritos en disco, es decir, marca los datos como "confirmados", pero no escribe, si no que espera a que otra transacción los requiera para llevarlos a disco y así ahorrar un "viaje" o una operación.

Por eso mismo cuando la base de datos cae o la paramos con la opción "abort", queda inconsistente, ya que puede tener datos en bufferes "confirmados" que realmente no están escritos en disco. Por eso cuando volvemos a arrancar, necesita realizar una recuperación.

- LGWR: Este proceso es que se encarga de escribir el contenido del búfer del registro de rehacer en los ficheros de registro de rehacer en línea. Se realizan las escrituras por lotes. El buffer del registro de rehacer (redo log), contiene siempre el estado más reciente de la base de datos, ya que es posible que el proceso DBWR espere antes de escribir los bloques modificados desde los búferes de bloques de datos a los archivos de datos. Los archivos de registro de rehacer son ficheros secuenciales lo que indica que cuando acaba de escribir en uno, empieza por otro y así sucesivamente.

- CKPT: Este proceso es el encargado de realizar un "punto de comprobación". Cuando se sucede un punto de comprobación, CKPT hace que DBWR escriba todos los bloques que se hayan modificado desde el último punto de comprobación, y actualice los archivos de control y las cabeceras de los archivos de datos para registrar el punto de comprobación. Los puntos de comprobación de producen de forma automática cuando se llena un archivo de registro de rehacer en línea.

Se puede configurar el checkpoint en el fichero de inicialización de parámetros con el parámetro: LOG_CHEKPOINT_INTERVAL.

- SMON: Este proceso realiza la recuperación de la instancia, según sea preciso usando los registros de rehacer en línea... (antes hablamos de que si oracle se para necesitaría hacer una recuperación si se para anormalmente, pues lo realiza así). Limpia la base de datos de transacciones inservibles. También cumple la función de agrupar extensiones libres contiguas en la base de datos. Smon solo agrupa el espacio libre en espacios de tablas cuyo valor de almacenamiento predeterminado sea distinto de 0.

- PMON: Realiza limpiezas de procesos fallidos de usuarios. Libera recursos que estuviera usando el usuario. Sirve por ejemplo cuando hay bloqueos. Libera bloqueos y pone a disposición para otros usuarios.

- ARCH: Proceso que escribe en los registros de rehacer en línea de forma cíclica, es decir, después de llenar el primero, va al segundo, cuando lo llena, va al tercero y así sucesivamente. Una vez terminado el último fichero de rehacer en línea, LGWR empieza a sobrescribir los contenidos del primero. Cuando la base de datos se ejecuta en modo ARCHIVELOG, ARCH realiza una copia del cada uno de ficheros de rechace en línea antes de ser sobrescrito.

- RECO: Este proceso es el encargado de realizar las recuperaciones de fallos en las bases de datos distribuidas. Este proceso trata de acceder a las bases de datos implicadas en transacciones distribuidas dudas e intenta resolver las transacciones.
  
Procesos en Oracle opcionales en segundo plano

La base de datos Oracle viene con una serie de procesos adicionales que son opcionales. Por ejemplo, Oracle cuenta con un programa que le permite programar los tiempos que algunos programas de bases de datos se ejecutará. Este programa se conoce como el proceso planificador de tareas. El planificador de tareas es un programa opcional que debe ser habilitado para que funcione. Cuando el programador de tareas está activada, un proceso (programa) se pondrá en marcha para controlar el trabajo del programador. Esto se conoce como el proceso de cola de trabajos. Estos son los procesos opcionales más comunes:

* Cola de proceso (CJQ) - Se utiliza para el trabajo del programador. El planificador de trabajo incluye un programa principal (el coordinador) y los programas de esclavos que el coordinador se ejecuta. El job_queue_processes parámetro controla el número de puestos de trabajo en paralelo de trabajo del planificador se pueden ejecutar al mismo tiempo.

* Proceso de Archiver (ARCN) - Se utiliza para archivar los registros de rehacer en línea (que veremos más adelante en este capítulo) en el disco. En los casos en que sea necesario, Oracle Database 10g se iniciará el proceso ARCN automáticamente. Si los procesos adicionales ARCN se necesitan, entonces la base de datos Oracle comenzará hasta 9 procesos adicionales.

* Cola de Process Monitor (QMNn) - Se utiliza para gestionar flujos de Oracle AdvancedQueueing.

* Mmon, MMNL, MMAN - Se utiliza para realizar varias tareas de administración de base de datos.

4. Enuncie y describa las Ediciones de Oracle

Existen cinco ediciones distintas de base de datos Oracle con opciones específicas, para cada una de ellas.

Oracle Database Standard Edition One: Ofrece facilidad de uso, potencia y rendimiento para grupos de trabajo, a nivel de departamentos y aplicaciones Web. Desde los entornos de un solo servidor para pequeñas empresas a los entornos de sucursales altamente distribuidos.

Oracle Database Standard Edition: Ofrece las funcionalidades de la edición Standard Edition One, con el apoyo de máquinas más grandes y la agrupación de los servicios con Oracle Real Application Clusters (Oracle RAC). La funcionalidad no se incluía ni como opción en versiones estándar anteriores.

Oracle Database Enterprise Edition: Ofrece el rendimiento, la disponibilidad, la escalabilidad y la seguridad necesaria para las aplicaciones de misión crítica, tales como el procesamiento de grandes volúmenes de transacciones en línea (OLTP), almacenes de datos en consultas intensivas y exigentes aplicaciones de Internet.

Oracle Database Express Edition (Oracle Database XE): Es una edición básica de la base de datos de Oracle. Es rápida de descargar, fácil de instalar y administrar, y es libre de desarrollar, implementar y distribuir. Es fácil de actualizar a las otras ediciones de Oracle sin migraciones costosas y complejas. Oracle Database XE se puede instalar en cualquier máquina tamaño con cualquier número de CPUs, almacena hasta 11 GB de datos de usuario, con un máximo de 1 GB de memoria, y con una sola CPU en la máquina host. Existe un foro en línea, para dar soporte.

Oracle Database Personal: Soporta los entornos de desarrollo de un solo usuario y el despliegue que requieren la plena compatibilidad con Oracle Database Standard Edition One, Oracle Database Standard Edition y Oracle Database Enterprise Edition.

Le diferencia la excepción de la no opción de Oracle Real Application Clusters.
Personal Edition sólo está disponible en los sistemas operativos Windows y Linux. Tampoco incluye los módulos de administración no están incluidos.

5. Cuál es la edicion de uso libre o que podemos usar?

El producto es Oracle 10g Express Edition (Oracle Database XE) y, obviamente, tiene sus limitaciones.

Sólo puede utilizar 1 procesador del servidor donde esté instalada, un máximo de 1 Gb de RAM, y tiene limitado el almacenamiento a 4 Gb de datos de usuario. Cuando se superen estas limitaciones, Oracle ofrece un sencillo proceso de actualización a otras versiones más completas, y en las que sí que hay que pagar licencias.

7. Describa las herramientas de oracle para el programador analista
Oracle ofrece un grupo completo e integrado de herramientas para la inteligencia de negocios y el desarrollo de aplicaciones, el cual respalda cualquier entorno de desarrollo, cualquier plataforma de tecnología y cualquier sistema operativo.

Los arquitectos y desarrolladores que tienen pensamientos adelantados utilizan estas herramientas para abordar la complejidad de sus entornos de IT y aplicaciones con la Arquitectura Orientada a Servicios (SOA), que facilita el desarrollo de aplicaciones empresariales como servicios modulares de negocio que pueden integrarse y reutilizarse fácilmente, creando una infraestructura de IT realmente flexible y adaptable.

8. Defina los siguientes herramientas y su función:
-SQL: El lenguaje de consulta estructurada o SQL (por sus siglas en inglés structured query language) es un lenguaje declarativo de acceso a bases de datos relacionales que permite especificar diversos tipos de operaciones en ellas. Una de sus características es el manejo del álgebra y el cálculo relacional que permiten efectuar consultas con el fin de recuperar de forma sencilla información de interés de bases de datos, así como hacer cambios en ella.

-SQL*Plus: Es un programa de línea de comandos de Oracle que puede ejecutar comandos SQL y PL/SQL de forma interactiva o mediante un script.

SQL*Plus opera como una herramienta relativamente simple con una interfaz de líneas de comando básica. Los programadores y los administradores de bases de datos (DBA's) lo usan de forma muy común como interfaz fundamental en la mayoría de las instalaciones de software de Oracle.
-PL/SQL (Procedural Language/Structured Query Language): Es un lenguaje de programación incrustado en Oracle.
PL/SQL soportara todas las consultas, ya que la manipulación de datos que se usa es la misma que en SQL, incluyendo nuevas características:
-          El manejo de variables.
-          Estructuras modulares.
-          Estructuras de control de flujo y toma de decisiones.
-          Control de excepciones.
-           
El lenguaje PL/SQL está incorporado en:
-          Servidor de la base de datos.
-          Herramientas de Oracle (Forms, Reports, ...).
-          En un entorno de base de datos los programadores pueden construir bloques PL/SQL para utilizarlos como procedimientos o funciones, o bien pueden escribir estos bloques como parte de scripts SQL*Plus.
-          Los programas o paquetes de PL/SQL se pueden almacenar en la base de datos como otro objeto, y todos los usuarios que estén autorizados tienen acceso a estos paquetes. Los programas se ejecutan en el servidor para ahorrar recursos a los clientes.

- SQL FORMS: Es la herramienta de Oracle que permite, de un modo sencillo y eficiente, diseñar pantallas para el ingreso, modificaciones, bajas y consultas de registros. El usuario podrá, una vez definida la forma, trabajar con ella sin necesidad de generar códigos, dado que Oracle trae incorporado un conjunto de procedimientos y funciones asociados a las teclas de funciones, como por ejemplo la tecla [F7], que se usa para iniciar una consulta.

La herramienta fundamental de SQL es la sentencia SELECT, que permite seleccionar registros desde las tablas de la Base de Datos, devolviendo aquellos que cumplan las condiciones establecidas y pudiendo presentar el resultado en el orden deseado.

- SQL (Structured Query Languague = Lenguaje de Consulta estructurado): La orden FROM identifica la lista de tablas a consultar. Si alguna de las tablas a consultar no es propiedad del usuario, debe especificarse el nombre del propietario antes que el nombre de la tabla en la forma nombre_propietario.nombre_tabla.

La orden WHERE decide los registros a seleccionar según las condiciones establecidas, limitando el número de registros que se muestran.

La orden ORDER BY indica el orden en que aparece el resultado de la consulta.

- ORACLE REPORT: es una poderosa herramienta que tiene por objetivo el diseño y la generación de informes. Permite la creación de reportes en archivos jsp (Java Server pages), rdf, xml, rtf entre otros, pero siendo los más usados los anteriormente citados. De igual manera permite enviar el resultado de los informes a archivos de texto, pdf, html, xml, rtf, de texto delimitados, entre otros, lo cual permite su lectura y publicación en diversos formatos.


 - ORACLE GRAPHICS: el desarrollo de Graficos por medio de herramientas de Oracle.

9. - TABLESPACE: Un tablespace es una unidad lógica de almacenamiento dentro de una base de datos Oracle.

- VIEW: Una vista es una alternativa para mostrar datos de varias tablas; es como una tabla virtual que almacena una consulta. Los datos accesibles a través de la vista no están almacenados en la base de datos, en la base de datos se guarda la definición de la vista y no el resultado de ella.

- COMMIT: Guarda los cambios de la transacción en curso.
Libera los recursos bloqueados por cualquier actualización hecha con la transacción actual (LOCK TABLE).

- GRANT: Esta sentencia sirve para dar permisos (o privilegios) a un usuario o a un rol.
Un permiso, en oracle, es un derecho a ejecutar un sentencia (system privileges) o a acceder a un objeto de otro usuario (object privileges).
El conjunto de permisos es fijo, esto quiere decir que no se pueden crear nuevos tipos de permisos.
Si un permiso se asigna a rol especial PUBLIC significa que puede ser ejecutado por todos los usuarios.

- REVOKE: Esta sentencia sirve para quitar permisos (o privilegios) a un usuario o a un rol.

- TABLE: las tablas son la unidad básica de almacenamiento de datos en Oracle. Los datos son almacenados en filas y columna se define a través de: Nombre, conjunto de columnas (nombre y tipo).

- INDEX: Los índices se usan para mejorar el rendimiento de las operaciones sobre una tabla.
En general mejoran el rendimiento las SELECT y empeoran (minimamente) el rendimiento de los INSERTy los DELETE.
Una vez creados no es necesario nada más, oracle los usa cuando es posible (ver EXPLAIN PLAN).

En oracle existen tres tipos de indices:
1) Table Index
2) Bitmap Join Index
3) Cluster Index

- FUNCTION: Oracle ofrece varios tipos de funciones para realizar distintas operaciones. Hemos empleado varias de ellas.
Se pueden emplear las funciones del sistema en cualquier lugar en el que se permita una expresión en una sentencia "select".

Las funciones, como los procedimientos almacenados son bloques de código que permiten agrupar y organizar sentencias SQL que se ejecutan al invocar la función.

Las funciones tienen una estructura similar a la de los procedimientos. Como los procedimientos, las funciones tienen una cabecera, una sección de declaración de variables y el bloque "begin...end" que encierra las acciones. Una función, además contiene la cláusula "return".
Una función acepta parámetros, se invoca con su nombre y retorna un valor.

- PROCEDURE: Un procedimiento es un subprograma que realiza una acción específica.

Debe declarar y definir un procedimiento ante la invoca. Usted puede declarar y definir al mismo tiempo, o puede declararlo primero y luego definir más adelante en el mismo bloque o subprograma.

- PACKAGE: Es una colección encapsulada de procedimientos relacionados, funciones y otros objetos de programa almacenados juntos en la base de datos. La especificación del paquete declara estos objetos. El cuerpo del paquete, se especifica posteriormente, define estos objetos.

- TRIGGER: Es un bloque PL/SQL asociado a una tabla, que se ejecuta como consecuencia de una determinada instrucción  SQL (una operación DML: INSERT, UPDATE o DELETE) sobre dicha tabla.

- INSTANCE: Una instancia de Base de datos es el conjunto formado por los procesos y las estructuras de memoria que se encuentran en un servidor.

- ROLLBACK: Deshace los cambios de la transacción en curso.
Libera los recursos bloqueados por cualquier actualización hecha con la transacción actual (LOCK TABLE).







martes, 1 de octubre de 2013

ACTIVIDAD VS EXPRESS 2012


1. Cuando se inicia visual Basic, se crea un proyecto nuevo con un formulario. El IDE de Visual Basic consta de los siguientes elementos:

BARRA DE MENUS: Presenta los comandos que se usan para trabajar con Visual Basic. Además de los menús estándar Archivo, Edición, Ver, Ventana y ayuda, contiene otros menús para tener accesos a funciones específicas de programación, como proyecto, formato o depuración.

BARRA DE HERRAMIENTAS: Permite un acceso directo (solo un clic) a muchas de las operaciones más frecuentes utilizadas durante el desarrollo de aplicaciones.

CUADRO DE HERRAMIENTAS: Contiene todos los objetos u controles que se pueden añadir a los formularios para crear aplicaciones.

DISEÑADOR DE FORMULARIOS: Funciona como una ventana en la que se puede personalizar el diseño de la interfaz de usuario (ventana) de una aplicación.

EXPLORADOR DE PROYECTOS: Lista de los Archivos (formularios, módulos, etc.) del proyecto actual. Un proyecto es una colección de archivos que utiliza para construir una aplicación.

VENTANA DE PROPIEDADES: Lista los valores de las propiedades del formulario o control seleccionado que pueden ser modificados durante el diseño del formulario o control.

VENTANA DE CODIGO: Funciona como un editor para escribir el código (sentencias) de la aplicación.

OBTENCION DE AYUDA DEL SISTEMA

AYUDA EN LINEA: Visual Basic proporciona una amplia ayuda en línea. El archivo de ayuda contiene mucho código de ejemplo que se puede copiar directamente a una aplicación.

LIBROS EN PANTALLA: Para acceder a los libros en pantalla, haga clic en libros en pantalla dentro del menú ayuda de Visual Basic.

VENTANA DE CODIGO: Proporciona de manera automática información relevante a medida que se ingresa código.

2.


3. CREAR PROYECTO:
3.1. Iniciar Visual Studio 2012
3.2. En el menú ARCHIVO, elija NUEVO y haga clic en PROYECTO, aparecerá el cuadro de dialogo NUEVO PROYECTO.
3.3. En el panel PLANTILLAS INSTALADAS, expanda Visual Basic o Visual C# y, a continuación, seleccione WINDOWS.
3.4. Encima del panel central, seleccione la versión de .NET Framework de destino en la lista desplegable.
3.5. En el panel central, seleccione la plantilla APLICACIÓN DE WINDOWS FORMS.
3.6. En el cuadro de texto NOMBRE, especifique un nombre para el proyecto.
3.7. En el cuadro de texto UBICACIÓN, especifique una carpeta para guardar el proyecto.
3.8. Haga clic en ACEPTAR.
El diseñador de Windows Forms se abrirá y mostrara Form 1 Proyecto.

4. RUTA DE DONDE CREA PROYECTO EL VISUAL STUDIO:

RUTA: c:\users\administrador\documents\visual studio 2012\ projects.

5. ESTRUCTURA DE UN PROYECTO:
Al iniciar un proyecto o archivo y abrir el editor de código, vera que hay código en lugar que le corresponde y en el orden correcto. Cualquier código que escriba debe seguir la siguiente secuencia:

5.1. Instrucciones Option
5.2. Instrucciones Imports
5.3. Instrucciones Namespace y elementos del nivel de espacio de nombres.

Si escribe instrucciones en un orden distinto, puede producirse errores de compilación. Un programa también puede contener instrucciones de compilación condicional. Pueden incluirse en el archivo de código fuente entre las instrucciones de la secuencia anterior.

6. FORMULARIO: Es el principal medio de comunicación entre el usuario y la aplicación. Los usuarios interactúan con los controles sobre el formulario para ingresarle datos y obtener resultados.

7. VISTAS: Diseños y Evento.

DISEÑO: Para personalizar y estandarizar a la manera que se desea; y de esta forma también va a ser visible.

EVENTO: Son acciones reconocidas por un formulario o control. Los eventos ocurren a medida que el usuario interactúa con los objetos de la aplicación.

8. CONTROL: Es básicamente un elemento de formulario, que puede recibir una información del usuario, los controles son la base de las interfaces graficas de usuario en estos lenguajes.

CATEGORIAS:

- Controles comunes
- Contenedores
- Menús y barras de herramientas
- Datos
- Componentes
- Impresión
- Cuadros de dialogo
- Interoperabilidad WPF
- Visual Basic Power Packs

Dentro de cada una de estas categorías están los controles.

9. PARA EJECUTAR EL PROGRAMA:

9.1. Después de haber realizado todo el proyecto se va a la opción depurar.
9.2. En el menú Depurar del IDE de Visual Basic, haga clic en iniciar depuración.
9.3. Para cerrar el programa, en el menú Depuración, haga clic en detener depuración.

La primera vez que hice este procedimiento, no me arrojo ningún error de línea, ya que no tengo escrito ningún código fuente. Al final el me muestra unos resultados obtenidos de la depuración sin errores de compilación, pero me muestra unos mensajes donde dice que el subproceso termino con código 0, luego cargó el proyecto y sale otro mensaje diciendo que el subproceso termino con código 0, al finalizar dice que el programa administrado termino con código -1.

viernes, 27 de septiembre de 2013

CLASES Y ATRIBUTOS EN VISUAL BASIC


1. CONSTRUCTOR DE UNA CLASE: Un constructor es una subrutina cuya misión es inicializar un objeto de una clase. En el constructor se asignan los valores iniciales del nuevo objeto.
Se utiliza para crear tablas de clases virtuales y poder así desarrollar el polimorfismo, una de las herramientas de la programación orientada a objetos. Al utilizar un constructor, el compilador determina cuál de los objetos va a responder al mensaje (virtual) que hemos creado. Tiene un tipo de acceso, un nombre y un paréntesis.

2. DESTRUCTOR DE UNA CLASE: Un destructor en programación orientada a objetos es una función miembro especial llamadas automáticamente en la ejecución del programa, y por tanto no tienen por qué ser llamadas explícitamente por el programador. Sus principales cometidos son:
- Liberar los recursos computacionales que el objeto de dicha clase haya adquirido en su tiempo de ejecución al expirar éste.
- Quitar los vínculos que pudiesen tener otros recursos u objetos con éste.
Los destructores son invocados automáticamente al alcanzar el flujo del programa el fin del ámbito en el que está declarado el objeto.

4. Como definir una clase:
4.1. Cree un proyecto haciendo clic en Nuevo proyecto en el menú Archivo. Aparecerá el cuadro de diálogo Nuevo proyecto.

4.2. Seleccione Aplicación para Windows de la lista de plantillas del proyecto de Visual Basic para mostrar el nuevo proyecto.

4.3. Agregue una clase nueva al proyecto haciendo clic en Agregar clase en el menú Proyecto. Aparecerá el cuadro de diálogo Agregar nuevo elemento.

4.4. Seleccione la plantilla Clase.

4.5. Asigne a la nueva clase el nombre UserNameInfo.vb y, a continuación, haga clic en Agregar para mostrar el código de la nueva clase.

VB
Public Class UserNameInfo
End Class

4.6. Defina un campo privado para la clase; para ello, agregue el siguiente código entre las instrucciones Class y End Class:

VB
Private userNameValue As String

4.7. Defina una propiedad para la clase agregando el código siguiente:

Public Property UserName() As String
    Get
        ' Gets the property value.
        Return userNameValue
    End Get
    Set(ByVal Value As String)
        ' Sets the property value.
        userNameValue = Value
    End Set
End Property

4.8. Defina un método para la clase agregando el código siguiente:
 
Public Sub Capitalize()
    ' Capitalize the value of the property.
    userNameValue = UCase(userNameValue)
End Sub

4.9. Defina un constructor parametrizado para la clase nueva agregando un procedimiento denominado Sub New:

Public Sub New(ByVal UserName As String)
    ' Set the property value.
    Me.UserName = UserName
End Sub
 
Cuando se crea un objeto basado en esta clase, se llama al constructor Sub New automáticamente. Este constructor establece el valor del campo que contiene el nombre de usuario.

5. METODO CONSTRUCTOR: Toda clase debe tener lo que se denomina un método constructor, que es el primero que se ejecuta cuando es instanciado un objeto de la clase, y en él se escribe el código de inicialización para el objeto.

Dentro de VB.NET el método constructor para una clase se debe llamar New( ).

6. INSTANCIA DE UNA CLASE: Una vez que tenemos una clase definida, lo único de lo que disponemos es de una especie de plantilla o molde a partir del cual podemos crear objetos en memoria.
Lo podemos hacer de dos formas, pero como veremos siempre será mediante la instrucción new que es la encargada de crear el objeto en la memoria y asignar la dirección del mismo a la variable usada en la parte izquierda de la asignación.
Declarar primero la variable y después instanciarla.

Lo primero que tenemos que hacer es declarar una variable del tipo que queremos instanciar, esto lo hacemos de la misma forma que con cualquier otro tipo de datos:

Cliente cli1;

Con esta línea de código lo que estamos indicando es que tenemos intención de usar una variable llamada cli1 para acceder a una clase de tipo Cliente. Esa variable, cuando llegue el momento de usarla, sabrá todo lo que hay que saber sobre una clase Cliente, pero hasta que no tenga una "referencia" a un objeto de ese tipo no podremos usarla.

La asignación de una referencia a un objeto Cliente la haremos usando la instrucción new seguida del nombre de la clase:

cli1 = new Cliente();

A partir de este momento, la variable cli1 tiene acceso a un nuevo objeto del tipo Cliente, por tanto podremos usarla para asignarle valores y usar cualquiera de los miembros que ese tipo de datos contenga:

cli1.Nombre = "Antonio";
cli1.Apellidos = "Ruiz Rodríguez";

cli1.Saludar();





viernes, 20 de septiembre de 2013

Investigación de Conceptos de Programación Orientada a Objetos

1. HERENCIA: La herencia es uno de los mecanismos de los lenguajes de programación orientada a objetos basados en clases, por medio del cual una clase se deriva de otra de manera que extiende su funcionalidad. La clase de la que se hereda se suele denominar clase base, clase padre, superclase, clase ancestro (el vocabulario que se utiliza suele depender en gran medida del lenguaje de programación).

Dependiendo del lenguaje que se utilice, el diseñador también puede controlar qué miembros de las superclases son visibles en las subclases. En el caso de java y C++ los especificadores de acceso (private, protected, public) de los miembros de la superclase afectan también a la herencia:

-          Private: Ningún miembro privado de la superclase es visible en la subclase.
-          Protected: Los miembros protegidos de la superclase son visibles en la subclase, pero no visibles para el exterior.
-          Public: Los miembros públicos de la superclase siguen siendo públicos en la subclase.

- Herencia simple: Una clase sólo puede heredar de una clase base y de ninguna otra.
- Herencia múltiple: Una clase puede heredar las características de varias clases base, es decir, puede tener varios padres. En este aspecto hay discrepancias entre los diseñadores de lenguajes. Algunos de ellos han preferido no admitir la herencia múltiple debido a que los potenciales conflictos entre métodos y variables con igual nombre, y eventualmente con comportamientos diferentes crea un desajuste cognitivo que va en contra de los principio de la programación orientada a objetos.

EJEMPLO: programación en Java

import javax.*;
import javax.swing.JOptionPane;
public class Mamifero{    
    private int patas;
    private String nombre;
    public void imprimirPatas(){
      JOptionPane.showMessageDialog(null," Tiene " + patas + " patas\n", "Mamifero", JOptionPane.INFORMATION_MESSAGE);
    }
    public Mamifero(String nombre, int patas){
      this.nombre = nombre;
      this.patas = patas;
    }
}
public class Perro extends Mamifero {
    public Perro(String nombre){
      super(nombre, 4);
    }
}
public class Gato extends Mamifero {
    public Gato(String nombre){
      super(nombre, 4);
    }
}
public class CrearPerro {
    public static void main(String[] args) {
      Perro perrito = new Perro("Pantaleon");
      perrito.imprimirPatas();   /*Está en la clase mamífero*/
    }
}

2. POLIMORFISMO: En programación orientada a objetos el polimorfismo se refiere a la posibilidad de enviar un mensaje a un grupo de objetos cuya naturaleza puede ser heterogénea. El único requisito que deben cumplir los objetos que se utilizan de manera polimórfica es saber responder al mensaje que se les envía.
La apariencia del código puede ser muy diferente dependiendo del lenguaje que se utilice, más allá de las obvias diferencias sintácticas.

Se puede clasificar el polimorfismo en dos grandes clases:
Polimorfismo dinámico (o polimorfismo paramétrico) es aquél en el que el código no incluye ningún tipo de especificación sobre el tipo de datos sobre el que se trabaja. Así, puede ser utilizado a todo tipo de datos compatible.
Polimorfismo estático (o polimorfismo ad hoc) es aquél en el que los tipos a los que se aplica el polimorfismo deben ser explícitos y declarados uno por uno antes de poder ser utilizados.

EJEMPLO:




3. ENCAPSULAMIENTO: se denomina encapsulamiento al ocultamiento del estado, es decir, de los datos miembro de un objeto de manera que sólo se pueda cambiar mediante las operaciones definidas para ese objeto.

Cada objeto está aislado del exterior, es un módulo natural, y la aplicación entera se reduce a un agregado o rompecabezas de objetos. El aislamiento protege a los datos asociados de un objeto contra su modificación por quien no tenga derecho a acceder a ellos, eliminando efectos secundarios e interacciones.
De esta forma el usuario de la clase puede obviar la implementación de los métodos y propiedades para concentrarse sólo en cómo usarlos. Por otro lado se evita que el usuario pueda cambiar su estado de maneras imprevistas e incontroladas.

Como se puede observar de los diagramas, las variables del objeto se localizan en el centro o núcleo del objeto. Los métodos rodean y esconden el núcleo del objeto de otros objetos en el programa.

FORMAS DE ENCAPSULAR:

1.       Estándar (Predeterminado)
2.       Abierto: Hace que el miembro de la clase pueda ser accedido desde el exterior de la Clase y cualquier parte del programa.
3.       Protegido: Solo es accesible desde la Clase y las clases que heredan (a cualquier nivel).
4.       Semi cerrado: Solo es accesible desde la clase heredada
5.       Cerrado: Solo es accesible desde la Clase.

En el encapsulamiento hay analizadores que pueden ser semánticos y sintácticos.

EJEMPLO:

  
4. ABSTRACCION: Los lenguajes de programación son las herramientas mediante las cuales los diseñadores de lenguajes pueden implementar los modelos abstractos. La abstracción ofrecida por los lenguajes de programación se puede dividir en dos categorías: abstracción de datos (pertenecientes a los datos) y abstracción de control (perteneciente a las estructuras de control).

A grandes rasgos, la abstracción, permite que dispongamos de las características de un objeto que necesitemos. Si necesitamos el objeto Persona, podríamos poner nombre, edad, dirección, estado civil, etc. Si lo necesitamos en un sistema administrativo, pero, si lo requerimos para el área de biología, dentro de sus atributos quizá tengamos, ADN, RND, Gen x1, Gen x2, etc., y los atributos antes mencionados no sean requeridos. En general, podemos decir que Persona cuenta con todos los atributos mencionados aquí, pero por el proceso de abstracción excluimos todos aquellos que no tienen cabida en nuestro sistema. Se define como un método por el cual se rescatan los datos relevantes y se ignoran los irrelevantes.

EJEMPLO: Modelizaríamos en un esquema POO una fracción, es decir, esa estructura matemática que tiene un numerador y un denominador que divide al numerador, por ejemplo 3/2. La fracción será el objeto y tendrá dos propiedades, el numerador y el denominador. Luego podría tener varios métodos como simplificarse, sumarse con otra fracción o número, restarse con otra fracción, etc.





5. INTERFAZ: Esta noción se utiliza para nombrar a la conexión física y funcional entre dos sistemas o dispositivos de cualquier tipo dando una comunicación entre distintos niveles.

Además, la palabra interfaz se utiliza en distintos contextos:

1.       Interfaz como instrumento: desde esta perspectiva la interfaz es una "prótesis" o "extensión" (McLuhan) de nuestro cuerpo. El ratón es un instrumento que extiende las funciones de nuestra mano y las lleva a la pantalla bajo forma de cursor. Así, por ejemplo, la pantalla de una computadora es una interfaz entre el usuario y el disco duro de la misma.

2.       Interfaz como superficie: algunos consideran que la interfaz nos trasmite instrucciones ("affordances") que nos informan sobre su uso. La superficie de un objeto (real o virtual) nos habla por medio de sus formas, texturas, colores, etc.

3.       Interfaz como espacio: desde esta perspectiva la interfaz es el lugar de la interacción, el espacio donde se desarrollan los intercambios y sus manualidades.

EJEMPLO:



6. CLASE: Es una construcción que se utiliza como un modelo (o plantilla) para crear objetos de ese tipo. El modelo describe el estado y contiene el comportamiento que todos los objetos creados a partir de esa clase tendrán. Un objeto creado a partir de una determinada clase se denomina una instancia de esa clase.

Es un conjunto coherente que consiste en un tipo particular de metadatos. Una clase tiene una interfaz y una estructura. La interfaz describe cómo interactuar con la clase y sus instancias con métodos, mientras que la estructura describe cómo los datos se dividen en atributos dentro de una instancia. Una clase también puede tener una representación (metaobjeto) en tiempo de ejecución, que proporciona apoyo en tiempo de ejecución para la manipulación de los metadatos relacionados con la clase. En el diseño orientado a objetos, una clase es el tipo más específico de un objeto en relación con una capa específica.


EJEMPLO:

 
 



















7. ATRIBUTOS: Un atributo es una característica de la clase.

EJEMPLO:
Clase cliente.
Atributos nombre, apellido.

-En java creas los atributos de la siguiente forma: Tipo de dato nombre Atributo.

EJEMPLO:
String nombre,  String Apellido.

El atributo debe tener una forma de asignar valor y de obtener valor.

EJEMPLO:
AsignarNombre(), ObtieneNombre()
AsignarApellido(), ObteneApellido()
Eso es lo único que hace el atributo, asignar un valor u obtenerlo.

En síntesis, el Atributo o propiedad, son las características de las clases.

8. METODO: Un método por su parte. Es un conjunto de sentencias que hacen algo específico en la clase.

EJEMPLO:
Insertar cliente();
Para definir un método en Java: Ámbito TipoDeDato  NombreMetodo().

EJEMPLO:
Public void insertaCliente()

El cuerpo del método hace cosas con los atributos, los inserta en una base de datos, los muestra por pantalla, los pasa a otro método para ser procesados y demás.

Los métodos son como pequeños programas que pertenecen a una misma clase,

En síntesis, Los métodos, son las instrucciones que manejan los atributos o propiedades.

9. INSTANCIA: Se refiere a una realización específica de una clase o prototipo determinados.
En general, cuando se ejecuta un programa en un computador, se dice que éste se instancia. En lenguajes que crean objetos a partir de clases, un objeto es una instancia de una clase. Esto es, es un miembro de una clase que tiene atributos en lugar de variables.
En un contexto del mundo real, podríamos pensar en "Perro" como una clase y en un perro concreto en una instancia de esta clase.

EJEMPLO:



10. AGREGACION: Es una relación que se derivó de la asociación, por ser igualmente estructural, es decir que contiene un atributo, que en todos los casos, será una colección, es decir un Array, Vector, Collections, etc, y además de ello la clase que contiene la colección debe tener un método que agregue los elementos a la colección.

11. CONCURRENCIA: Es la propiedad de los sistemas que permiten que múltiples procesos sean ejecutados al mismo tiempo, y que potencialmente puedan interactuar entre sí.
Los procesos concurrentes pueden ser ejecutados realmente de forma simultánea, sólo cuando cada uno es ejecutado en diferentes procesadores. En cambio, la concurrencia es simulada si sólo existe un procesador encargado de ejecutar los procesos concurrentes, simulando la concurrencia, ocupándose de forma alternada en uno y otro proceso a pequeñísimos intervalos de tiempo. De esta manera simula que se están ejecutando a la vez.


EJEMPLO:


12. PERSISTENCIA: Es la capacidad del programador para conseguir que sus datos sobrevivan a la ejecución del proceso que los creo, de forma que puedan ser reutilizados en otro proceso. Cada objeto, independiente de su tipo, debería poder llegar a ser persistente sin traducción explicita. También, debería ser implícito que el usuario no tuviera que mover o copiar los datos expresamente para ser persistentes.

EJEMPLO: