Sunteți pe pagina 1din 19

CAPTULO I: PLANTEAMIENTO DEL PROBLEMA

1.1 Descripcin de la Realidad Problemtica


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
herramienta le falta por desarrollar

que esta

funcionalidades que permitan

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


rpido.
1.2 Delimitaciones y Definicin del Problema
1.2.1 Delimitaciones
A. Delimitacin Espacial.
Comunidad de Mono y MonoHispano y desarrolladores de
Gnome.
B. Delimitacin Temporal.
El presente proyecto ser desarrollado en dos etapas:
Proyectos I
Marzo Agosto 2007
Proyectos II
Agosto-Diciembre 2007
C. Delimitacin Social
Usuarios de Tecnologas Libre

que requieren

de una

herramienta capaz de desarrollar aplicaciones basadas en


Gtk# y .Net de forma rpida
D. Relimitacin Conceptual
1. Tecnologa de informacin.

Monodevelop

Es un IDE libre primeramente diseado para


C# y otros lenguajes .Net, actualmente
permite la construccin rpida de aplicaciones
basadas en GTk# 2.10,

permite aadir

mltiples plug-ins.

C#
C# es un lenguaje de programacin orientado
a objetos desarrollado y estandarizado por
Microsoft como parte de su plataforma .NET,
que despus fue aprobado como un estndar
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 rpido 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. Gestin del Proceso escogido.

Estandarizacin de Interfaces
Proceso de Desarrollo de Informacin.
1.2.2 Definicin del Problema
El IDE Monodevelop carece de una suit de componentes visuales
que permitan desarrollar aplicaciones rpidas 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 rpido y fcil de este tipo de aplicaciones perdiendo
bastante tiempo los desarrolladores en la construccin de
formularios repetitivos
Monodevelop

carece

de

controles

que

tengan

incluidas

funcionalidades para interactuar con las bases de Datos.


1.2.3 Interrogantes bsicas
a. Es posible desarrollar un componente DATABINDING que
permita el manejo fcil de datos?
b. Es posible desarrollar un plug-in que se integre con
MonoDevelop el cual permita la fcil construccin de
aplicaciones con DB?
c. Cmo agilizar el tiempo de desarrollo de aplicaciones con
BD?
d. Es Posible construir Widgets que permitan la fcil interaccin
con las BD y el enlace fcil y rpido a una fuente de datos?
e. Es posible hacer que los controles generen su propio cdigo
en c# o en xml?
f. Es posible hacer interactuar a los controles con ADO.net ?

g. Es posible hacer facil el desarrollo de aplicaciones en


MonoDevelop con un Plug-in que permita el diseo de
formularios con funcionalidades de acceso a datos?
h. Cmo hacer reutilizable el componente?
i. Es posible hacer robusto el componente?
j. Es posible hacer eficiente al componente DataBindig?

1.3 Formulacin del Problema.


1.3.1 Problema principal.
Monodevelop carece de controles con funcionalidades para
interactuar con DB y plantillas empresariales que permitan el
desarrollo rpido de aplicaciones de negocio en especial las de
procesos transaccionales que son las mas comunes y repetitivas,
perdiendo el desarrollador gran tiempo en la construccin de
estas.
1.4 Objetivo de la Investigacin
1.4.1 Objetivo General
o Desarrollar un plugin el cual contenga controles que permitan la
fcil interaccin con la base de datos y la generacin de su cdigo
respectivo con las funcionalidades de reutilizacin en posteriores
proyectos.
1.4.2 Objetivos especficos
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
diseo de aplicaciones en Monodevelop.
h. Construir Widgets que permitan reurilizacion y personalizacin 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

1.5 Hiptesis de la investigacin.


La aplicacin de un componente Databinding y una suit de
controles optimiza el logra el manejo optimo de informacin 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

Construccin de un componente DataBinding.

A. Indicadores
a. Reutilizacin
b. Mantenibilidad
c. Flexibilidad
d. Portabilidad
e. Eficiencia
f. Modularidad
g. Usabilidad
h. Facildia de prueba
i. Facilidad de Instalacin
B. Indices
1.6.2 Variable dependiente

Manejo de Informacin 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

1.7 Viabilidad de la investigacin.


1.7.1 Viabilidad tcnica
Los

recursos

tcnicos

requeridos

se

encuentran

disponibilidad,
Se necesita tener conocimientos de Programacion en C#,
Gtk+ y GTk#, arquitectura de MonoDevelop, Diseo de
Controles, y Componenetes.
1.7.2 Viabilidad operativa.
La viabilidad Operativa de Este Proyecto
queda

de investigacin

demostrada en la disponibilidad y accesibilidad a los

recursos requeridos para su realizacin ya que dichos elementos


tecnolgicos como hardware, software, Documentacin estn
disponibles para el investigador por ser de fuente libre.
Para los aspectos generales del trabajo ser posible utilizar lo
siguiente.

Hardware
Requerimientos mnimos

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

1.7.3 Viabilidad econmica.


El

presente

proyecto

ser

autofinanciado

por

el

investigador por estar a su alcance.


1.8 Justificacin e Importancia de la Investigacin.
1.8.1 Justificacin
Los beneficios que se obtendrn al desarrollar estas
funcionalidades para mono develop. Son:
o Facilidad de desarrollo en monodevelop ya que
todo ser con tecnologa 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
ms que formas de manipular la informacin.
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 Informacin de
una forma gil y rpida ponindola 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 Investigacin

11

El presente proyecto solo Obedece a la creacin de Widgets que


permitan la manipulacin de informacin procedente de DB y a la
creacin del componente DataBinding que permite la interaccin entre
dichos controles y ADO.net (DataSet)
1.10 Tipo de la Investigacin
1.10.1 Tipo de investigacin.
La naturaleza de esta investigacin es experimental porque
est basada en la aplicacin del conocimiento, definido y a las
consecuencias prcticas que de ella se derivan .

12

1.11 Mtodo de la investigacin


1.11.1 Mtodo de la investigacin.
Para el desarrollo de esta tesis se utilizara el mtodo cientfico
para proporcionar un planteamiento ordenado y un nivel de
rigurosidad alto en el tratamiento de los datos y anlisis de
resultados. En forma complementaria se utilizara el concepto
sistmico, porque permite tener la visin integral de toda la
situacin problemtica bajo estudio, as como el enfoque de la
solucin.
1.12 Tcnicas e Instrumentos de Recoleccin de Informacin
1.12.1 Tcnicas.
Las principales tcnicas que se utilizaran para el levantamiento de
informacin son:

Observacin Directa

Recopilacin

de

informacin

de

las

listas

de

MonoDevelop

Canales IRC Gtk Sharp, Mono Develop

Encuestas Electrnicas

1.12.2 Instrumentos.

Fichas de Observacin Directa

Formularios. electrnicos

1.13 Cobertura de Estudio


1.13.1 Universo.
El universo correspondiente al proyecto de investigacin 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

La muestra es la parte representativa de la poblacin 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

DataBinding y el componente DataBindig


Recursos
Software
Linux Slackware 11.0
Gnome 2.18 for Slackware (Gtk,Gnome Suit)
Mono and MonoDevelop
Hardware
Computador Personal
Mantenimiento
Desarrollo del Software
Anlisis y Diseo de los componentes
Desarrollo de la Herramienta
Otros
Papel
Tinta de Impresora hp 3745
Servicio de Internet
Energa Elctrica

los

Componente
Total

S/.
S/.
S/.

15.00
5.00
5.00

S/. 1200.00
S/.
50.00
S/. 2000.00
S/. 2200.00
S/. 26.00
S/. 100.00
S/. 500.00
S/. 100.00
S/. 6080.00

Total

14

CAPTULO II : MARCO TERICO


2.1 Antecedentes de la Investigacin

Glade :
Glade es una herramienta que permite generar interfaces
en xml para las libreras 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
Generacin de Cdigo ni la manipulacin 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 caractersticas de Glade pero no trae
consigo Widgets que permitan la manipulacin de DB, y al
Utilizar a Gtk+ como librera 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 libreras de
FreePascal son no son actualizadas constante mente.
Licencia: GPL

Qt and Qt Designer
Es un IDE para las libreras Qt que estn escritas en C++,
tiene muchas mas funcionalidades que Glade, tiene
Widgets que permiten la interaccin fcil con las base de
15

Datos, esta disponible en dos tipos de licencia GPL solo


para desarrollar aplicaciones para QT y sobre sistemas
GNU, y la comercial si tu intencin es vender productos
hechos con QT, cabe recalcar que la calidad de estas
libreras es indiscutible, son las mejores que existe para los
desarrolladores de Linux.

GnomeDB
Son unas Libreras que permiten la interaccin con las
Base de Datos trae con sigo Widgets que permiten la
interaccin con las base de datos, esta escrito en C y estn
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. Todava no es posible
ejecutarlo en Mono debido a que utilizan WindowsForms
para el aspecto grfico y estas aun no estn soportadas al
100%. Se tiene planeada portar dicha aplicacin a otras
libreras grficas 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

2.2 Marco Conceptual


2.2.1 Tecnologa .Net
La idea de .NET tiene bastantes similitudes con la tecnologa
Java, ambos compilan el cdigo fuente a un cdigo intermedio (no
directamente a cdigo mquina). En el caso de Java este cdigo
es llamado bytecode y en .NET recibe el nombre de CIL (Common
Intermediate Language).
Pero .NET va ms all, su objetivo no es slo la independencia
del compilado sino tambin la independencia del lenguaje de alto
nivel, es decir, CIL ha sido especialmente diseado para
proporcionar todo lo

necesario a la mayora de

lenguajes

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


C# diseado 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

cdigo intermedio

CIL.

17

2.2.2 Mono
Es la plataforma .Net Libre para los sistemas Unix y Windows,
.NET

esta

estandarizado

implementacin

de

una

por

lo

plataforma

tanto
libre

es

que

viable

la

incorporase

compiladores, runtimes y libreras de clases.


Mono implementa las siguientes partes de la tecnologa .NET:

Common Language Runtime, JIT

Compilador/Desensamblador IL

Compilador C#

Compilador Visual Basic.NET

Librera de clases (FCL)

Otras libreras de funcionalidades

Los compiladores proporcionados estn bajo la licencia GNU


GPL, el runtime tiene licencia GNU LGPL y la librera de clases la
MIT X11 License.
ECMA componentes: Libre de patentes (color cyan)

18

El Mono Runtime sera el equivalente al Common Language


Runtime o entorno virtual de ejecucin. Implementa un compilador
JIT para el CIL de la mquina virtual, un compilador Ahead-ofTime (AOT), un cargador de clases, un recolector de basura, el
sistema de thereadings y las libreras de acceso a los metadatos.
El entorno de ejecucin es:

Mono: compilador JIT y AOT. nicamente


mquinas x86 por el momento.

soporta

El entorno de ejecucin se puede utilizar tambin embebido


dentro de otra aplicacin, de forma que se pueden extender
aplicaciones C y C++ mediante C#.
En comparacin con la solucin ofrecida por Microsoft Mono
incluye un intrprete y la opcin de utilizar el runtime de forma
embebida en una aplicacin.
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 intrprete
puede ejecutarse sobre otras plataformas como HP-UX. Hay ms
informacin al respecto en la pgina de informacin 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
compilador Just In Time o el recolector de basura. Dentro del
runtime se soportan tambin mecanismos que permiten a las
aplicaciones

hechas

en

mono

comunicarse

con

otras

aplicaciones, o utilizar libreras 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


19

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


Aplicaciones es rpido.
Con DataBinding se puede mantener un conjunto de controles
enlazados a un origen solo de datos y la actualizacin es
automtica.

20

2.2.4 Gtk+
Es un conjunto de Libreras que permiten crear interfaces de
Usuario para Linux, Originalmente fue creado para GIMP pero es
usado en Gnome
Consta de un conjunto de libreras

Glib conjunto de estructura de Datos

Gtk

librera

que

contiene

los

Widgets

como

ventanas, botones, etc.

Atk capa que permite la portabilidad

Gdk Primitivas de interfaz

Cairo para grficos Vectoriales

2.2.5 Gtk sharp


GTK#: es un conjunto de clases realizadas en C# que permiten el
acceso a GTK+ y otras libreras que forman parte de GNOME.
Funciona tanto sobre Linux como sobre Windows. Hay ya
aplicaciones desarrolladas sobre esta tecnologa, aunque an
queda trabajo. La versin actual es la 2.10.6
2.2.6 Widget
Un widget es un componente software visible y personalizable.
Visible porque est pensado para ser usado en los interfaces
grficos

de

los

programas,

personalizable

porque

el

programador puede cambiar muchas de sus propiedades. De esta


forma se logra una gran reutilizacin del software, un objetivo
prioritario en ingeniera del software. Los widgtes se combinan
para construir los interfaces grficos de usuario. El programador
los adapta segn sus necesidades sin tener que escribir ms
cdigo que el necesario para definir los nuevos valores de las
propiedades de los widgets.
La librera GTK+ sigue el modelo de programacin orientado a
objetos a pesar de estar escrita en C. La jerarqua de objetos
comienza en GObject de la librera Glib del que hereda GtkObject.
Todos los widgets heredan de la clase de objetos GtkWidget, que
21

a su vez hereda directamente de GtkObject. La clase GtkWidget


contiene las propiedades comunes a todos los widgets; cada
widget particular le aade sus propias propiedades

FUENTES DE INFORMACIN
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

22

S-ar putea să vă placă și