_universidad alas peruanas 2007-ii 0.2
Post on 29-Jan-2016
5 Views
Preview:
DESCRIPTION
TRANSCRIPT
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
top related