Saturday, July 2, 2011

Interopeabilidad entre Java y C#

Existen distintos tipos de programas para transformar diversas extensiones en otras. En este caso nosotros queremos cambiar un archivo .jar a formato .dll. Para este cambio decidí usar el programa IKVM, cuya explicación de uso se puede encontrar en el blog de Ricardo Casanova: http://ricardocasanova.net/blog/?p=1068

Lo primero que hice fue el archivo .jar que estaba compuesto únicamente por el domain. En estas imágenes se puede observar la clase Departamento. Las demás clases son muy similares.



Luego de realizar el "Clean and Build" de NetBeans procedí a realizar el archivo .dll, para ello instale el compilador y lo ejecute dándome el archivo que luego importe al programa.

En el programa Visual Studio 2010 empecé a crear la capa lógica, importando el dominio que estaba en el archivo .dll que anteriormente era un .jar. Un ejemplo de su uso es el siguiente en donde muestro el archivo LogicListaProfesor.



Después lo que hice fue crear por consola un pequeño programa donde cargo algunos profesores y departamentos y luego imprimo uno por consola.



La salida es la siguiente:



Entonces con este ejemplo se puede concluir que el manejo de lenguajes puede ser muy similar, solo que cambian algunos métodos, pero de resto todo se maneja prácticamente igual(siempre y cuando se hable del mismo tipo de programación, orientado a objeto en este caso).

Saturday, June 4, 2011

Patrón de diseño "Factory Method"

El patrón de diseño de Factory Method, es un diseño de patrón orientado a objetos para implementar el concepto de fábrica. Al igual que otros patrones creacionales , tiene que ver con el problema de la creación de objetos sin especificar exactamente la clase de objeto que se creará. La creación de un objeto a menudo requiere complejos procesos que no conviene incluir en un objeto de componer. El objeto de la creación puede dar lugar a una importante duplicación de código, puede requerir información no accesible al objeto de componer, no ofrecen un nivel suficiente de abstracción, o de otra manera no puede ser parte del objeto de la composición se refiere. El método de fábrica modelo de diseño se encarga de estos problemas mediante la definición de un independiente método para crear los objetos, que las subclases puede reemplazar para especificar el tipo derivado de producto que se creará.

Algunos de los procesos necesarios en la creación de un objeto incluir la determinación de cuál es el objeto de crear, gestionar la vida útil del objeto, y la gestión especializada acumulación y desmontaje preocupaciones del objeto.
Fuera del ámbito de aplicación de patrones de diseño, el método de fábrica término también puede referirse a un método de una fábrica cuyo principal objetivo es la creación de objetos.

Ahora expongo un ejemplo de diseño de Factory Method.

Se crea la clase abstracta que construye el objeto.



Luego se crea en este caso el Campo Concreto.



Ahora una interface que defina el Campo.



Por último su implementacion concreta.



Y pongo un main para probar su funcionamiento.

Friday, May 27, 2011

Paradigmas de programación

La programación es una forma de decirle a las máquinas que ejecuten las operaciones que queremos. Estas operaciones se realizan mediante un determinado lenguaje que depende del programa que se use. Además estos programas tienen distintas técnicas en las que se puede programar. La técnica más usada es la programación estructurada.

La programación estructurada actualmente está muy relacionada con la programación modular, por lo que se toma la misma como parte de la estructurada. En este tipo de programación se realiza el programa de una forma muy fácil, ya que se usan pocas estructuras y las más básicas: secuencia, iteración y selección. Esto ofrece cualidades frente a otros métodos en cuanto que los programas son más fáciles de entender al no tener que estar haciendo tantos brincos a otros saltos de línea. Los programas suelen ser mucho más sencillos y rápidos en cuanto a su ejecución, y además los errores son más fáciles de encontrar y corregir ya que los bloques de código generalmente son auto explicativos.

Como ejemplos de lenguajes de programación estructurados tenemos:

· Pascal.

· ALGOL o Algorithmic Languaje.

· GaCeLa.

También está la programación orientada a objetos que se basa en el uso de objetos para realizar los programas. Se utilizan varias técnicas para programar con objetos como la herencia, abstracción, polimorfismo y encapsulamiento. Además de que también se pueden usar las mismas técnicas de la programación estructurada.

Algunos lenguajes de programación orientados a objetos son:

· C++.

· Python.

· Java.

La programación funcional como su nombre lo indica se basa exclusivamente en funciones matemáticas. Aunque existe un tipo que se le llama programación funcional hibrido que si hace uso secuencias por instrucciones o asignación de variables. Estos programas tienden a ser mucho más elegantes ya que en la mayoría de las veces las líneas de código son más cortas y concretas que dan una mayor facilidad para la ejecución y depuración del programa.

Ejemplos de lenguajes funcionales:

· Haskell.

· Miranda.

· Lisp.

Otro paradigma de programación es aquel que está orientado a eventos. Este se basa en la interfaz gráfica y dependiendo de las acciones del usuario se crean acciones en el programa. Entonces el programa siempre tiene que estar dispuesto a saber cuál es la acción que va a realizar el usuario.

Como ejemplos de programas basados en eventos están:

· Javascript.

· Lexico.

· Visual C#.

La programación orientada a aspectos intenta modularizar las aplicaciones para tener una mejor separación de tareas. De esta forma los módulos disminuyen la dependencia entre sí. Algunas terminologías propias del lenguaje son Aspect que en programación orientada a objeto sería similar a un Objeto, Join Point, Advice, Pointcut, Proxy, Weaving, entre otros.

Ejemplos de programas basados en aspectos:

· AspectJ.

· Aspect.

· Aspyct AOP.

Existe una gran variedad de paradigmas de programación. Muchos pueden poseer cosas de otras, mientras que algunos no tienen nada en común. No existe un paradigma que sea el mejor dado que cada uno tiene por lo menos una cualidad especifica. Solo hay que saber a dónde se quiere llegar para determinar cuál puede ser el mejor tipo de programación que se puede utilizar.

Sunday, May 1, 2011

Steve, the animal collector.

Hi! Welcome to my blog. This is my first post and i'm trying to help Steve.

Steve is a lover of animals. He collects spiders, cats and fishes, so he is trying to make a program to help to manage his collection.
The first information is that the spiders, cats and fishes are animals. Every animal has a number of legs (8, 4 and 0 respectly). This let me to build the main classes like that:


In the chart, I created an Abstract class called Animal and it has only one atribute(integer legs). The operations are the Constructor, the get and set of legs. The other three classes are the spider, fish and cat. They also has their own Constructors.

Another information is that generaly an animal can walk and eat, even though each one do it in a different way. This information tell me that in the program they have two more operations and they could be different for each animal. That's the reason for the animal class is abstract.

Cats and Fishes are given a name and both are pets. Spiders are not named and neither do considered pets. Each pet could be named and play with him. Pets play in a different form and we could know which is their name.

Now is needed a new class, the pet class. It's conformed by Fishes and Cats. They need an atribute name and the operations getName, setName and play. The class diagram is taking that form:The last thing is that Steve may have many animals. This allow me to know that an Animal list is going to be used. And it also need some operations: Add, Read, Update and Delete. The constructors of the list are atached to the class too.

The Complete Diagram class of the program.
Steve's Animals.