Mostrando entradas con la etiqueta Programacion. Mostrar todas las entradas
Mostrando entradas con la etiqueta Programacion. Mostrar todas las entradas

lunes, 2 de marzo de 2009

Propiedades automáticas en C#

Los cambios que aporta .NET en los lenguajes vienen promovidos para mejorar la experiencia de desarrollo de manera sutil y dramática y con esto mejora la productividad y reduce la cantidad de código que tenemos que escribir.

Nueva característica de C#: Propiedades automáticas.

Si somos desarrolladores en C#, normalmente escrbimos las clases con propiedades básicas como en el código siguiente:

public class Persona

    {

        private string nombre;

        private string apellido;

        private int edad;


        public string nombre

        {

            get { return _nombre; }

            set { _nombre = value; }

        }


        public string apellido

        {

            get { return _apellido; }

            set { _apellido = value; }

        }


        public int edad

        {

            get { return _edad; }

            set { _edad = value; }

        }

    }


No estamos añadiendo ninguna lógica en las propiedades Get/Set, todo lo contrario, lo que estamos haciendo es asignar los valores a una variable. 

El compilador de C# nos proporciona una forma elegante para hacer que el código que escribamos sea más conciso mientras mantiene la flexibilidad de las propiedades usando una nueva característica conocida como “propiedades automáticas”. Las propiedades automáticas nos permiten evitar la declaración manual de variables privadas y escribir el código de los métodos get/set – En lugar de eso, el compilador puede crear automáticamente las variables privadas necesarias y el código por defecto de los métodos get/set por nosotros.

Por ejemplo, usando las propiedades automáticas podemos reescribir el código anterior de la siguiente manera:

    public class Persona

    {

        public string nombre {get; set;}

        public string apellido {get; set;}

        public int edad { get; set; }

    }

Cuando el compilador de C# se encuentre con los Get/Set’s vacíos, como en el código anterior, generará automáticamente una variable privada en la clase, e implementará las propiedades públicas get y set para ella. El beneficio de esto es que desde un punto de vista de tipo-contrato, la clase será exactamente igual que la primera implementación de la que hablábamos más arriba. Esto significa que –al contrario que las variables públicas – más adelante podemos añadir validación lógica en el método set sin tener que cambiar ningún componente externo que referencie a mi clase.

Saludos.

viernes, 30 de enero de 2009

Instalando Ruby On Rails en linux


Ruby on Rails, también conocido como RoR o Rails es un framework de aplicaciones web de código abierto escrito en el lenguaje de programación Ruby, siguiendo el paradigma de la arquitectura (MVC). Trata de combinar la simplicidad con la posibilidad de desarrollar aplicaciones del mundo real escribiendo menos código que con otros frameworks y con un mínimo de configuración. El lenguaje de programación Ruby permite la metaprogramación, de la cual Rails hace uso, lo que resulta en una sintaxis que muchos de sus usuarios encuentran muy legible. Rails se distribuye a través de RubyGems, que es el formato oficial de paquete y canal de distribución de librerías y aplicaciones Ruby.

Podemos instalarlo desde apt en debian ó desde el mismo Rubygems

sudo aptitude install rails

ó con este comando tambien

sudo gem install rails

Ahora crearemos nuestro primer proyecto:

rails mi_proyecto
cd mi_proyecto

Esto creará una seria de archivos y directorios para nuestro proyecto. La estructura sería la siguiente:

  • app:Acá se almacenará los componentes de nuestra aplicación: vistas y 'helpers', controladores y modelos.
  • config:Contiene la configuración de nuestra aplicación: configuración de la base de datos (database.yml) , estructura del entorno de Rails (environment.rb) y el enrutador de peticiones web (routes.rb).
  • public:Esto es parecido al directorio public de un servidor web. Contiene los archivos JavaScript, images, hojas de estilo y HTML.
  • script:Este directorio contiene scripts que inician y administran las diversas herramientas que puedes usar en Rails. Ejemplo: estan los scripts que generan código (generate) e inician en servidor web (server).

Servidor Web:
RoR cuenta con su propio servidor para desarrollo, el cuál nos permite visualizar nuestro proyecto, para correrlo debemos de escribir en la consola lo siguiente, siempre y cuando estemos dentro de la carpeta de nuestro proyecto:

ruby script/server

Ahora abrimos un navegador y tecleamos http://localhost:3000 Y nos aparecerá la pantalla principal de Ruby On rails:

Saludos y espero les sea muy util esta informacion.

Instalando Ruby y Apache en Linux


Para desarrollar aplicaciones para web utilizo (por motivos laborales) .Net de microsoft (si... de microsoft, recuerden que hay la implementacion de .Net para linux y sistemas Unix :)).

Pero me gusta la idea que que existen otras alternativas, quisas mejores en varios aspectos a asp.net.

Llevo un tiempo desarrollando cosillas en ruby on rails, y es un framework de desarrollo muy bueno.

Asi que hoy vamos a ver los pasos para instalar ruby y el servidor Apache en linux (utilizaremos Ubuntu 8.10, aunque funcionara para cualquier sistema basado en Debian).

Asi que comencemos:


Primeramente instalamos los paquetes necesarios:

sudo aptitude install ruby libapache2-mod-ruby eruby rubygems

Una vez instalado los paquetes, hay que configurar apache, para ello editamos el archivo apache.conf:

sudo gedit /etc/apache2/apache2.conf

Y agregamos en cualquier parte al final del archivo lo siguiente:

##Configurando paquetes de Apache
AddType application/x-httpd-eruby .rhtml
Action application/x-httpd-eruby /cgi-bin/eruby

Para que apache interprete el comando Action es necesario hacer un enlace:

sudo cd /etc/apache2/mods-enabled
sudo ln -s /etc/apache2/mods-available/actions.load actions.load

Ahora linkeamos el interprete eruby:

sudo cd /usr/lib/cgi-bin
sudo ln -s /usr/bin/eruby eruby

Y reseteamos apache:

sudo /etc/init.d/apache2 force-reload
sudo /etc/init.d/apache2 restart

Ahora si, ya podemos crear archivos .rb ó .rhtml, nuestra primera prueba sería con el editor de textos crear un archivo llamado hialien.rhtml y le agregamos lo siguiente:

*html*
<% print "hola mundo!" %>
*html*


remplazas los asteriscos por estos simbolos < > ya que blogger no me lo imprime ejej

Podemos crear también un script en ruby, este lo llamaremos hialien.rb :

#!/usr/bin/env ruby
print "Hi Alienware...! \n"

Este lo corremos desde la consola con:

ruby hialien.rb

Pues bien, ya tenemos Ruby y apache instaladon en linux, ademas de crear un archivo sencillo para ver como se ejecuta...

Mas adelante veremos como instalar Rails, el cual nos ayudara a realizar websites de una manera facil, y cuando digo facil, es porque es facil :).

Saludos

Mono 2.2... listo.

El pasado 13 de enero fue liberado la version estable de mono 2.2.
Algunas de las novedades y mejoras son las siguientes:

  • Una nueva clase llamada Mono.CSharp.Evaluator que permite a los desarrolladores embeber el compilador C# dentro de sus aplicaciones.
  • Nueva shell interactiva para C#, el comando para llamarla es csharp
  • 200 bugs reportados en las windowforms han sido resueltos
  • ASP.NET 3.5 SP1 ha sido implementado.
Para ver las notas de lanzamiento, vayan a este link.
Tambien pueden descargar desde aqui Mono 2.2 para la plataforma que utilices (linux, mac, windows)

Saludos...

domingo, 30 de noviembre de 2008

Acerca de la arquitectura MVC


El Modelo Vista Controlador (MVC) es un patrón de arquitectura de software que separa los datos de una aplicación, la interfaz de usuario, y la lógica de control en tres componentes distintos.
El patrón MVC se ve frecuentemente en aplicaciones web, donde la vista es la página HTML y el código que provee de datos dinámicos a la página; el modelo es el Sistema de Gestión de Base de Datos y la Lógica de negocio; y el controlador es el responsable de recibir los eventos de entrada desde la vista.

pero veamoslo mas a detalle:

  • Modelo: Esta es la representación específica de la información con la cual el sistema opera. La lógica de datos asegura la integridad de estos y permite derivar nuevos datos; por ejemplo, no permitiendo comprar un número de unidades negativo, calculando si hoy es el cumpleaños del usuario o los totales, impuestos o importes en un carrito de la compra.
  • Vista: Este presenta el modelo en un formato adecuado para interactuar, usualmente la interfaz de usuario.
  • Controlador: Este responde a eventos, usualmente acciones del usuario e invoca cambios en el modelo y probablemente en la vista.

Muchos sistemas informáticos utilizan un Sistema de Gestión de Base de Datos para gestionar los datos. En MVC corresponde al modelo.

Aunque se pueden encontrar diferentes implementaciones de MVC, el flujo que sigue el control generalmente es el siguiente:

1. El usuario interactúa con la interfaz de usuario de alguna forma (por ejemplo, el usuario pulsa un botón, enlace)

2. El controlador recibe (por parte de los objetos de la interfaz-vista) la notificación de la acción solicitada por el usuario. El controlador gestiona el evento que llega, frecuentemente a través de un gestor de eventos (handler) o callback.

3. El controlador accede al modelo, actualizándolo, posiblemente modificándolo de forma adecuada a la acción solicitada por el usuario (por ejemplo, el controlador actualiza el carro de la compra del usuario). Los controladores complejos están a menudo estructurados usando un patrón de comando que encapsula las acciones y simplifica su extensión.

4. El controlador delega a los objetos de la vista la tarea de desplegar la interfaz de usuario. La vista obtiene sus datos del modelo para generar la interfaz apropiada para el usuario donde se refleja los cambios en el modelo (por ejemplo, produce un listado del contenido del carro de la compra). El modelo no debe tener conocimiento directo sobre la vista. Sin embargo, el patrón de observador puede ser utilizado para proveer cierta indirección entre el modelo y la vista, permitiendo al modelo notificar a los interesados de cualquier cambio. Un objeto vista puede registrarse con el modelo y esperar a los cambios, pero aun así el modelo en sí mismo sigue sin saber nada de la vista. El controlador no pasa objetos de dominio (el modelo) a la vista aunque puede dar la orden a la vista para que se actualice. Nota: En algunas implementaciones la vista no tiene acceso directo al modelo, dejando que el controlador envíe los datos del modelo a la vista.

5. La interfaz de usuario espera nuevas interacciones del usuario, comenzando el ciclo nuevamente.

Saludos...

Instalando Oracle 10g Enterprise en Ubuntu 8.10



La versión Express de Oracle 10g si que viene con soporte directo para Ubuntu, pero si por alguna mágica razón necesitas instalar la Enterprise, que solo viene con soporte oficial para Red Hat, SUSE y Oracle Linux.

Vamos a instalar la versión 10.2.0.1.0, así que la puedes ir bajando y desempacando que pesa casi 700MB.

El instalador espera que los binarios de basename y awk esten en /bin y no en /usr/bin, asi que crearemos unos soft links.

sudo ln -s /usr/bin/basename /bin/basename
sudo ln -s /usr/bin/awk /bin/awk

SUSE y Red Hat utilizan el grupo nobody para el usuario nobody, pero los sistemas basados en Debian utilizan el grupo nogroup. Así que creamos el nuevo grupo.

sudo addgroup nobody

Ahora podemos correr el instalador gráfico, pero con un parámetro indicándole que ignore los pre-requisitos, sino detectara que estas utilizando una distribución no soportada oficialmente y cancelara la instalación. Si evitas instalar la base de datos desde este punto y solo instalar las herramientas la instalación durara mucho menos, pero si el tiempo no es problema para ti, créala de una vez y así te ahorras crear el listener y la base de datos manualmente.

./runInstaller -ignoresysprereqs

Al finalizar la instalación, el instalador te pedirá instalar un archivo de bash como root, ejecútalo con sudo tal cual te lo muestra y no tendrás problemas.

Probablemente tengas problemas con librerías faltantes, entonces es muy recomendable incluir las librerías que trae oracle y así te evitas estar compilandolas. Ademas de ejecutarla una vez puedes meterla a tu archivo .bashrc y que se cargue automáticamente cuando inicies sesión.

export LD_LIBRARY_PATH=/path/de/tu/instalacion/lib/

En mi caso también me dio problemas por una librería faltante llamada libaio, pero sin problemas se instala porque se encuentra también en los repositorios de ubuntu.

sudo aptitude install libaio-dev

Listo! Ya tienes una instalación funcional de Oracle 10g Enterprise.

Ojo, que Oracle no te instalara los menús de accesos directos a la diferentes aplicaciones, pero aún asi tienes todo dentro del directorio /bin. Por mencionar algunos comandos útiles:

Para administrar (crear, borrar, editar) listeners y otras herramientas de red, como conectarte a una base de datos externa:

netca

Para administrar tus bases de datos (crear, borrar, etc):

dbca

Para iniciar o parar el database control:

emctl start dbconsole
emctl stop dbconsole

Para iniciar o parar el servicio web de iSQL*Plus:

isqlplusctl start
isqlplusctl stop

Para iniciar o parar listeners:

lsnrctl start
lsnrctl stop

Para entrar a la consola de SQL*Plus

sqlplus

Espero les sea de utilidad, Saludos.

Informaci
ón basada en La guia de Taw's

viernes, 14 de noviembre de 2008

Cheat Sheets

Estuve navegando un poco y encontre una informacion que les sera de mucha utilidad.
Existe algo llamado "Cheat Sheets", lo cual traducido seria algo como... mmm, dejenme pensar .. ehhhh, una referencia rapida, por ejemplo, una lista de todos los comando ( con su descripcion de uso ) de un determinado lenguaje de programacion.
Pero para no dar mas vueltas, les dejare un enlace en el cual se encuentran muchos de estos documentos ( en PDF ) y en diferentes categorias, ya sea para comandos de Linux, Solaris, IBM, Debian, Unix, etc.

http://www.scottklarr.com/topic/115/linux-unix-cheat-sheets-the-ultimate-collection/

Espero les sea de utilidad.

sábado, 3 de mayo de 2008

NetBeans en Ubuntu Hardy Heron


Java no es un lenguaje que utilize mucho, de hecho casi no lo e utilizado mas que en unos proyectos escolares, asi que me es dificil hablarles acerca de java.

Lo que si quiero platicarles es que en Ubuntu Hardy Heron ya viene disponible la version 6.0.1 del IDE NETBeans (es un Entorno de desarrollo para el lenguaje java).

La instalacion es mas que sencilla.
  • Ir al menu aplicaciones > añadir o quitar programas.
    Escribe en el cuadro de busqueda, la palabra NetBeans.

  • Te instalara el NetBeans junto con otras dependencias que necesita para funcionar de forma estable.
    Tarda un poco, aunque depende de la velocidad de tu internet.
    Al terminar la instalacion,accesa al programa en el menu aplicaciones > programacion > NetBeans


  • Esta es una vista del entorno principal de NetBeans.

Como les dije al principio, java no es mi fuerte en programacion y apenas estoy adentrandome al desarrollo, asi que me es dificil platicarles mas acerca del tema, pero espero puedan instalar NetBeans y programar en java.

Saludos y espero les sea de utilidad.

lunes, 28 de abril de 2008

MonoDevelop 1.0 en Ubuntu 8.04

Mono es el nombre de un proyecto de código abierto iniciado por Ximian y actualmente impulsado por Novell (tras su adquisición de Ximian) para crear un grupo de herramientas libres, basadas en GNU/Linux y compatibles con NETECMA.
Llevo apenas 2 dias con ubuntu Hardy Heron en mi notebook, y me a parecido excelente las mejoras y programas que han agregado...

Pero como desarrollador (tanto en windows como en linux), me encanta la idea que por fin en los repositorios de ubuntu se encuentre la ultima version de MonoDevelop.

En ubuntu 7.10 estaba la version.14 de MonoDevelop y no tenia grandes mejoras para el desarrollo, asi que yo descargaba del sitio oficial los tarballs y archivos para compilar e instalar la ultima version, cosa que a duras penas lograba ejecutar con exito ejejje.

Asi que de ser posible descarguen MonoDevelop y prueben desarrollar con el...
Para instalarlo es muy facil:
  1. Ir a Aplicaciones > Agregar o quitar programas.
  2. Seleccionamos y en el cuadro de busqueda de la derecha, escribimos la palabra mono.nos aparecera el programa en la lista de resultados y a descargar se ha dicho.

Si, si, si, si.... ya lo descargue, pero ahora como lo utilizo o que lenguaje puedo programar en el????

Para eso les dejo links tanto de informacion de MonoDevelop, como de video tutoriales y tutoriales.
Acerca de los lenguajes, MonoDevelop esta desarrollado para poder generar software basado en .NET (si, .net suena a microsoft, pero por cuestiones legales, se puede decir que .net no esta restringido para desarrollar en el para otras plataformas, pero ya de ese tema muy interesante les hablare mas adelante), es decir, pueden utilizar lenguajes como C, C++,C#, VisualBasic, entre otros agregados, y por consiguiente poder generar aplicaciones para Web o para formularios.

Ligas de informacion sobre MonoDevelop
Documentacion sobre MonoDevelop
Espero la informacion les sea de utilidad, pronto agregare tutoriales y ejemplos para empezar a conocer y utilizar MonoDevelop.

Saludos.



miércoles, 19 de marzo de 2008

The Java Rehabilitation Clinic

La codificación en Java no necesita ser un trauma en tu vida. Con el tratamiento adecuado, y una copia de programación Ruby, puede regresar a una vida feliz y productiva de desarrollo de software.

Entra a esta liga y sabras de lo que hablo:

http://www.cafepress.com/javarehab
Saludos