_universidad Alas Peruanas 2007-II 0.2

26
CAPÍTULO I: PLANTEAMIENTO DEL PROBLEMA 1.1 Descripción de la Realidad Problemática En la actualidad los sistemas unix y especialmente Linux carecen de herramientas RAD Libres orientadas al desarrollo de aplicaciones de negocios. El proyecto mono a Desarrollado un entorno de Desarrollo Integrado, el cual trata de llenar ese vació, pero si bien es cierto que esta herramienta le falta por desarrollar funcionalidades que permitan desarrollar aplicaciones en menos tiempo, y una de ellas es el desarrollo rápido. 1.2 Delimitaciones y Definición del Problema 1.2.1 Delimitaciones A. Delimitación Espacial. Comunidad de Mono y MonoHispano y desarrolladores de Gnome. B. Delimitación Temporal. El presente proyecto será desarrollado en dos etapas: Proyectos I Marzo – Agosto 2007 Proyectos II Agosto-Diciembre 2007 C. Delimitación Social 4

description

documento

Transcript of _universidad Alas Peruanas 2007-II 0.2

Page 1: _universidad Alas Peruanas 2007-II 0.2

CAPÍTULO I: PLANTEAMIENTO DEL PROBLEMA

1.1 Descripción de la Realidad Problemática

En la actualidad los sistemas unix y especialmente Linux carecen de

herramientas RAD Libres orientadas al desarrollo de aplicaciones de

negocios.

El proyecto mono a Desarrollado un entorno de Desarrollo Integrado, el

cual trata de llenar ese vació, pero si bien es cierto que esta

herramienta le falta por desarrollar funcionalidades que permitan

desarrollar aplicaciones en menos tiempo, y una de ellas es el desarrollo

rápido.

1.2 Delimitaciones y Definición del Problema

1.2.1 Delimitaciones

A. Delimitación Espacial.

Comunidad de Mono y MonoHispano y desarrolladores de

Gnome.

B. Delimitación Temporal.

El presente proyecto será desarrollado en dos etapas:

Proyectos I

Marzo – Agosto 2007

Proyectos II

Agosto-Diciembre 2007

C. Delimitación Social

Usuarios de Tecnologías Libre que requieren de una

herramienta capaz de desarrollar aplicaciones basadas en

Gtk# y .Net de forma rápida

D. Relimitación Conceptual

1. Tecnología de información.

Monodevelop

4

Page 2: _universidad Alas Peruanas 2007-II 0.2

Es un IDE libre primeramente diseñado para

C# y otros lenguajes .Net, actualmente

permite la construcción rápida de aplicaciones

basadas en GTk# 2.10, permite añadir

múltiples plug-ins.

C#

C# es un lenguaje de programación orientado

a objetos desarrollado y estandarizado por

Microsoft como parte de su plataforma .NET,

que después fue aprobado como un estándar

por la ECMA e ISO, Standard ECMA-334 C#

Language Specification.

Net.

.NET es un proyecto de Microsoft para crear

una nueva plataforma de desarrollo de

software con énfasis en transparencia de

redes, con independencia de plataforma y que

permita un rápido desarrollo de aplicaciones.

Mono

Mono es un proyecto de software libre

proporcinando software para desarrollar y

correr aplicaciones .Net ya sea en el servidor

o en el cliente sobre Linux, Solaris, MAc OS

X, Windows, and Unix

Gtk#,

Un GUI toolkit para .Net, un binding de gtk+

toolkit y forma parte de las librerias de

Gnomo, estas librerias permiten construir

aplicaciones Gnome graficas usando Mono,

Gtk# es multiplataforma.

2. Gestión del Proceso escogido.

Estandarización de Interfaces

5

Page 3: _universidad Alas Peruanas 2007-II 0.2

Proceso de Desarrollo de Información.

1.2.2 Definición del Problema

El IDE Monodevelop carece de una suit de componentes visuales

que permitan desarrollar aplicaciones rápidas de negocio (con

Base de Datos), motivo por el cual muchos desarrolladores

de .Net prefieren Usar Visual studio y SharDevelop los cuales

corren solo sobre plataforma Windows.

Monodevelop al no tener widgets con funcionalidades de enlace

rapido a las fuentes de datos (tablas, Ds), no permite un

desarrollo rápido y fácil de este tipo de aplicaciones perdiendo

bastante tiempo los desarrolladores en la construcción de

formularios repetitivos

Monodevelop carece de controles que tengan incluidas

funcionalidades para interactuar con las bases de Datos.

1.2.3 Interrogantes básicas

a. ¿Es posible desarrollar un componente DATABINDING que

permita el manejo fácil de datos?

b. ¿Es posible desarrollar un plug-in que se integre con

MonoDevelop el cual permita la fácil construcción de

aplicaciones con DB?

c. ¿Cómo agilizar el tiempo de desarrollo de aplicaciones con

BD?

d. ¿Es Posible construir Widgets que permitan la fácil interacción

con las BD y el enlace fácil y rápido a una fuente de datos?

e. ¿Es posible hacer que los controles generen su propio código

en c# o en xml?

f. ¿Es posible hacer interactuar a los controles con ADO.net ?

6

Page 4: _universidad Alas Peruanas 2007-II 0.2

g. ¿Es posible hacer facil el desarrollo de aplicaciones en

MonoDevelop con un Plug-in que permita el diseño de

formularios con funcionalidades de acceso a datos?

h. ¿Cómo hacer reutilizable el componente?

i. ¿Es posible hacer robusto el componente?

j. ¿Es posible hacer eficiente al componente DataBindig?

7

Page 5: _universidad Alas Peruanas 2007-II 0.2

1.3 Formulación del Problema.

1.3.1 Problema principal.

Monodevelop carece de controles con funcionalidades para

interactuar con DB y plantillas empresariales que permitan el

desarrollo rápido de aplicaciones de negocio en especial las de

procesos transaccionales que son las mas comunes y repetitivas,

perdiendo el desarrollador gran tiempo en la construcción de

estas.

1.4 Objetivo de la Investigación

1.4.1 Objetivo General

o Desarrollar un plugin el cual contenga controles que permitan la

fácil interacción con la base de datos y la generación de su código

respectivo con las funcionalidades de reutilización en posteriores

proyectos.

1.4.2 Objetivos específicos

a. Agilizar el tiempo de Desarrollo de aplicaciones de negocio con

MonoDevelop y Gtk# en un 50%.

b.

c. Agilizar el desarrollo de aplicaciones enlazadas a base de datos.

d.

e. Construir el generador de codigo de cada Widget en xml y luego

en C#.

f. Construir la clase GTKBindig que permita interactuar con los

diferentes controles y con Ado.net

g. Desarrollar el Plugins con funcionalidades de facil desarrollo y

diseño de aplicaciones en Monodevelop.

h. Construir Widgets que permitan reurilizacion y personalización de

las mismas.

i. Hacer Robusto el componente.

j. .

k. Desarrollar una arquitectura del pugin y del componente que se

mantenible por los desarrolladores de GTk# y MonoDevelop

8

Page 6: _universidad Alas Peruanas 2007-II 0.2

1.5 Hipótesis de la investigación.

La aplicación de un componente Databinding y una suit de

controles optimiza el logra el manejo optimo de información de las

Bases de Datos permitiendo desarrollar aplicaciones con BD en

menos tiempo y con mayor facilidad.

1.6 Variables

1.6.1 Variable Independiente

■ Construcción de un componente DataBinding.

A. Indicadores

a. Reutilización

b. Mantenibilidad

c. Flexibilidad

d. Portabilidad

e. Eficiencia

f. Modularidad

g. Usabilidad

h. Facildia de prueba

i. Facilidad de Instalación

B. Indices

1.6.2 Variable dependiente

■ Manejo de Información procedente de Base de datos

mediante Widgets en plataformas monodevelop y GTK#.

A. Indicadores

a. Confiabilidad

b. Seguridad

c. Eficiencia

d. Rapidez

e.

B. Indices

9

Page 7: _universidad Alas Peruanas 2007-II 0.2

1.7 Viabilidad de la investigación.

1.7.1 Viabilidad técnica

Los recursos técnicos requeridos se encuentran a

disponibilidad,

Se necesita tener conocimientos de Programacion en C#,

Gtk+ y GTk#, arquitectura de MonoDevelop, Diseño de

Controles, y Componenetes.

1.7.2 Viabilidad operativa.

La viabilidad Operativa de Este Proyecto de investigación

queda demostrada en la disponibilidad y accesibilidad a los

recursos requeridos para su realización ya que dichos elementos

tecnológicos como hardware, software, Documentación están

disponibles para el investigador por ser de fuente libre.

Para los aspectos generales del trabajo será posible utilizar lo

siguiente.

Hardware

Requerimientos mínimos

Pentium III, 900 Mhz

128 MB de RAM

40 Gb de espacio

Software

Linux Kernel 2.6

FireFox 2.0.0.5

Mono Develop

Mono/.Net

Desktop Gnome and suit of application

Gtk# and Gtk+2.10

Servicios

Conexiona a Internet

Asesoria

10

Page 8: _universidad Alas Peruanas 2007-II 0.2

1.7.3 Viabilidad económica.

El presente proyecto será autofinanciado por el

investigador por estar a su alcance.

1.8 Justificación e Importancia de la Investigación.

1.8.1 Justificación

Los beneficios que se obtendrán al desarrollar estas

funcionalidades para mono develop. Son:

o Facilidad de desarrollo en monodevelop ya que

todo será con tecnología Drag And Drop.

o Menor tiempo en desarrollo de aplicaciones de

negocio

o Menos costos en Desarrollo de aplicaciones ya

que las herramientas son libres (GPL).

o Los Desarrolladores se beneficiaran en la medida

que su labor será dirigida a medidas de negocio

más que formas de manipular la información.

1.8.2 Importancia.

EL presente proyecto es importante ya introducirá a Linux

en el Campo de desarrollo y no solo en el Servidor como

es Actualmente.

Es importante debido a que involucra a Gnu/Linux en la

perspectiva de desarrollo de Sistemas de Información de

una forma ágil y rápida poniéndola a la par con

Herramientas que permitan hacer esta clase de desarrollo

como en Visual Estudio, sin que ello signifique la compra

de licencias.

1.9 Limitaciones de la Investigación

11

Page 9: _universidad Alas Peruanas 2007-II 0.2

El presente proyecto solo Obedece a la creación de Widgets que

permitan la manipulación de información procedente de DB y a la

creación del componente DataBinding que permite la interacción entre

dichos controles y ADO.net (DataSet)

1.10 Tipo de la Investigación

1.10.1 Tipo de investigación.

La naturaleza de esta investigación es “experimental” porque

está basada en la aplicación del conocimiento, definido y a las

consecuencias prácticas que de ella se derivan.

12

Page 10: _universidad Alas Peruanas 2007-II 0.2

1.11 Método de la investigación

1.11.1 Método de la investigación.

Para el desarrollo de esta tesis se utilizara el método científico

para proporcionar un planteamiento ordenado y un nivel de

rigurosidad alto en el tratamiento de los datos y análisis de

resultados. En forma complementaria se utilizara el concepto

sistémico, porque permite tener la visión integral de toda la

situación problemática bajo estudio, así como el enfoque de la

solución.

1.12 Técnicas e Instrumentos de Recolección de Información

1.12.1 Técnicas.

Las principales técnicas que se utilizaran para el levantamiento de

información son:

Observación Directa

Recopilación de información de las listas de

MonoDevelop

Canales IRC Gtk Sharp, Mono Develop

Encuestas Electrónicas

1.12.2 Instrumentos.

Fichas de Observación Directa

Formularios. electrónicos

1.13 Cobertura de Estudio

1.13.1 Universo.

El universo correspondiente al proyecto de investigación esta

conformado por todos los desarrolladores de Mono y de Unix, y los que

deseen desarrollar aplicaciones sobre la plataforma .Net sobre

sistemas Unix.

1.13.2 Muestra

13

Page 11: _universidad Alas Peruanas 2007-II 0.2

La muestra es la parte representativa de la población o universo,

dentro de las cuales se encuentran los Programadores que desarrollan

sobre Mono, MonoDevelop y Gtk# .

1.14 Presupuesto:

Herramienta para el desarrollo de los Componente

DataBinding y el componente DataBindig

Recursos Total

Software  

Linux Slackware 11.0 S/. 15.00

Gnome 2.18 for Slackware (Gtk,Gnome Suit) S/. 5.00

Mono and MonoDevelop S/. 5.00

Hardware

Computador Personal S/. 1200.00

Mantenimiento S/. 50.00

Desarrollo del Software

Análisis y Diseño de los componentes S/. 2000.00

Desarrollo de la Herramienta S/. 2200.00

Otros

Papel S/. 26.00

Tinta de Impresora hp 3745 S/. 100.00

Servicio de Internet S/. 500.00

Energía Eléctrica S/. 100.00

Total

S/. 6080.00

14

Page 12: _universidad Alas Peruanas 2007-II 0.2

CAPÍTULO II : MARCO TEÓRICO

2.1 Antecedentes de la Investigación

Glade :

Glade es una herramienta que permite generar interfaces

en xml para las librerías Gtk, fue el primer indicio de una

herramienta RAD, pero le hacen falta muchas

funcionalidades, ya que solo permite desarrollar las

interfaces con sus respectivos WidGets pero no permite la

Generación de Código ni la manipulación directa de

Eventos, para poder llamar a los respectivos eventos desde

un programa Con Gtk+ se Utiliza LibGlade.

Licencia: GPL

IDE Adjunta

Es un Entorno Integrado para programar en Gtk y Gnome,

mejora muchas de las características de Glade pero no trae

consigo Widgets que permitan la manipulación de DB, y al

Utilizar a Gtk+ como librería Base es muy complicado crear

clases ya que Gtk+ esta escrito en C .

Licencia: GPL

Lazarus un IDE para FreePascal

Lazarus es un RAD para Pascal tiene muchas

funcionalidades, como asistentes para el enlace de base de

datos, controles que soportan DB pero estas librerías de

FreePascal son no son actualizadas constante mente.

Licencia: GPL

Qt and Qt Designer

Es un IDE para las librerías Qt que están escritas en C++,

tiene muchas mas funcionalidades que Glade, tiene

Widgets que permiten la interacción fácil con las base de

15

Page 13: _universidad Alas Peruanas 2007-II 0.2

Datos, esta disponible en dos tipos de licencia GPL solo

para desarrollar aplicaciones para QT y sobre sistemas

GNU, y la comercial si tu intención es vender productos

hechos con QT, cabe recalcar que la calidad de estas

librerías es indiscutible, son las mejores que existe para los

desarrolladores de Linux.

GnomeDB

Son unas Librerías que permiten la interacción con las

Base de Datos trae con sigo Widgets que permiten la

interacción con las base de datos, esta escrito en C y están

fuertemente Ligadas a GnomeLib lo cual hace imposible la

portabilidad a otras plataformas diferentes a UNIX.

Licencia: GPL

SharpDevelop

IDE libre de gran calidad llamado SharpDevelop pero este

solo funciona en sistemas MS Windows y utiliza el

Framework .NET de Microsoft. Todavía no es posible

ejecutarlo en Mono debido a que utilizan WindowsForms

para el aspecto gráfico y estas aun no están soportadas al

100%. Se tiene planeada portar dicha aplicación a otras

librerías gráficas para poder ser ejecutado sobre Mono, así

que todo apunta a que en un futuro se podrá disponer de

un IDE de gran calidad y potencia.

Licencia: GPL

16

Page 14: _universidad Alas Peruanas 2007-II 0.2

2.2 Marco Conceptual

2.2.1 Tecnología .Net

La idea de .NET tiene bastantes similitudes con la tecnología

Java, ambos compilan el código fuente a un código intermedio (no

directamente a código máquina). En el caso de Java este código

es llamado bytecode y en .NET recibe el nombre de CIL (Common

Intermediate Language).

Pero .NET va más allá, su objetivo no es sólo la independencia

del compilado sino también la independencia del lenguaje de alto

nivel, es decir, CIL ha sido especialmente diseñado para

proporcionar todo lo necesario a la mayoría de lenguajes

actuales. El lenguaje que aprovecha toda la potencia de CIL es

C# diseñado por la propia Microsoft, pero esto no impide

que todo aquel que quiera formar parte de la plataforma .NET

construya un compilador de su lenguaje a código intermedio

CIL.

2.2.2 Mono

Es la plataforma .Net Libre para los sistemas Unix y

Windows, .NET esta estandarizado y por lo tanto es viable la

implementación de una plataforma libre que incorporase

compiladores, runtimes y librerías de clases.

17

Page 15: _universidad Alas Peruanas 2007-II 0.2

Mono implementa las siguientes partes de la tecnología .NET:

Common Language Runtime, JIT

Compilador/Desensamblador IL

Compilador C#

Compilador Visual Basic.NET

Librería de clases (FCL)

Otras librerías de funcionalidades

Los compiladores proporcionados están bajo la licencia GNU

GPL, el runtime tiene licencia GNU LGPL y la librería de clases la

MIT X11 License.

ECMA componentes: Libre de patentes (color cyan)

El Mono Runtime sería el equivalente al Common Language

Runtime o entorno virtual de ejecución. Implementa un compilador

JIT para el CIL de la máquina virtual, un compilador Ahead-of-

Time (AOT), un cargador de clases, un recolector de basura, el

sistema de thereadings y las librerías de acceso a los metadatos.

El entorno de ejecución es:

Mono: compilador JIT y AOT. Únicamente soporta máqui-nas x86 por el momento.

18

Page 16: _universidad Alas Peruanas 2007-II 0.2

El entorno de ejecución se puede utilizar también embebido den-

tro de otra aplicación, de forma que se pueden extender aplicacio-

nes C y C++ mediante C#.

En comparación con la solución ofrecida por Microsoft Mono inclu-

ye un intérprete y la opción de utilizar el runtime de forma embebi-

da en una aplicación.

Mono funciona tanto sobre plataformas de 32 bits como de 64

bits: s390, SPARC, SPARCv9 (64 bits), PowerPC, x86, x86-64 (64

bits), así como sobre diversos sistemas operativos: Linux, MacOS

X, BSD, SUN SOLARIS y Microsoft Windows. Aparte el intérprete

puede ejecutarse sobre otras plataformas como HP-UX. Hay más

información al respecto en la página de información del Mono

runtime en el web del proyecto.

El runtime es completamente operativo, aunque es posible que

siga evolucionando en sentidos como optimizaciones para el com-

pilador Just In Time o el recolector de basura. Dentro del runtime

se soportan también mecanismos que permiten a las aplicaciones

hechas en mono comunicarse con otras aplicaciones, o utilizar li-

brerías externas.

2.2.3 DataBinding

Es un componente que le da funcionalidades a los controles

basados en WindowsForm de enlace a los datos tomando como

capa de procedencia a ADO.net, con DataBinding el Desarrollo de

Aplicaciones es rápido.

Con DataBinding se puede mantener un conjunto de controles

enlazados a un origen solo de datos y la actualización es

automática.

19

Page 17: _universidad Alas Peruanas 2007-II 0.2

2.2.4 Gtk+

Es un conjunto de Librerías que permiten crear interfaces de

Usuario para Linux, Originalmente fue creado para GIMP pero es

usado en Gnome

Consta de un conjunto de librerías

■ Glib conjunto de estructura de Datos

■ Gtk librería que contiene los Widgets como

ventanas, botones, etc.

■ Atk capa que permite la portabilidad

■ Gdk Primitivas de interfaz

■ Cairo para gráficos Vectoriales

2.2.5 Gtk sharp

GTK#: es un conjunto de clases realizadas en C# que permiten el

acceso a GTK+ y otras librerías que forman parte de GNOME.

Funciona tanto sobre Linux como sobre Windows. Hay ya

aplicaciones desarrolladas sobre esta tecnología, aunque aún

queda trabajo. La versión actual es la 2.10.6

2.2.6 Widget

Un widget es un componente software visible y personalizable. Vi-

sible porque está pensado para ser usado en los interfaces gráfi-

cos de los programas, y personalizable porque el programador

puede cambiar muchas de sus propiedades. De esta forma se lo-

gra una gran reutilización del software, un objetivo prioritario en in-

geniería del software. Los widgtes se combinan para construir los

interfaces gráficos de usuario. El programador los adapta según

sus necesidades sin tener que escribir más código que el necesa-

rio para definir los nuevos valores de las propiedades de los wi-

dgets.

La librería GTK+ sigue el modelo de programación orientado a ob-

jetos a pesar de estar escrita en C. La jerarquía de objetos co-

mienza en GObject de la librería Glib del que hereda GtkObject.

Todos los widgets heredan de la clase de objetos GtkWidget, que

20

Page 18: _universidad Alas Peruanas 2007-II 0.2

a su vez hereda directamente de GtkObject. La clase GtkWidget

contiene las propiedades comunes a todos los widgets; cada wi-

dget particular le añade sus propias propiedades

FUENTES DE INFORMACIÓN

www.project-mono.com

www.go-mono.com/docs/

www.novell.com

www.ximian.com

www.microsoft.com

www.gnome.org

www.gtk.org

www.gnome.org

http://msdn2.microsoft.com/en-us/library/ms531387.aspx

http://www.ecma-international.org/publications/standards/Ecma-334.htm

21