guia para escritura de documento cientifico

Anuncio
Universidad Tecnológica
de Querétaro
Firmado digitalmente por Universidad Tecnológica de
Querétaro
Nombre de reconocimiento (DN): cn=Universidad
Tecnológica de Querétaro, o=Universidad Tecnológica de
Querétaro, ou, [email protected], c=MX
Fecha: 2012.06.18 10:48:36 -05'00'
UNIVERSIDAD TECNOLÓGICA DE QUERÉTARO
Nombre del proyecto
SISTEMA DE CONTROL ESCOLAR
Empresa
COMERCIALIZADORA ANYMA SA DE CV
Memoria
Que como parte de los requisitos para obtener
el título de
Ingeniero en Tecnologías de la información y Comunicación
Presenta
Jaime Martínez Hernández
Nombre del aspirante
Asesor de la UTEQ
Ing. Manuel Uribe Saldaña
Asesor de la Empresa
Ma. de los Ángeles Guerra Castro
Santiago de Querétaro. Junio 2012
RESUMEN
Actualmente las instituciones educativas ven la necesidad de mejorar su
sistema administrativo, su sistema de enseñanza-aprendizaje así como la
interacción con el cliente, es por ello que se propone el desarrollo de una
herramienta informática que integre estos aspectos. La herramienta es
diseñada bajo el patrón de arquitectura Modelo Vista Controlador (MVC). El cual
separa los datos de una aplicación, la interfaz de usuario y la lógica de negocios
en tres componentes distintos: el modelo es el sistema de gestión de bases de
datos y la lógica de negocio, la vista que es la que define la interfaz HTML y el
código que provee de datos dinámicos a la página, y el controlador es el que
recibe los eventos de entrada desde la interfaz HTML. La vista es el punto que
ocupa a este proyecto, el cual corresponde al desarrollo de una aplicación que
proporciona la posibilidad de diseñar archivos CSS , los cuales son estilos que
mejoran la presentación de la información en sitios web, también permite la
creación de formularios HTML para la manipulación de información en bases de
datos.
(Palabras clave: sistema, aplicación, información)
1
ABSTRACT
Currently educational institutions see the need to improve its administrative
system, its system of teaching and learning and the interaction with the client,
which is why we propose the development of a software tool that integrates
these aspects. The tool is designed with the architectural pattern Model-ViewController (MVC). It separates the application data, user interface and business
logic into three distinct components. The interface is the main focus in this
project, which is the development of an application that provides the ability to
design CSS files, which are styles that enhance the presentation of information
on websites; it also allows the creation of HTML forms for manipulating
information in databases.
(Keywords: system, application, information)
2
ÍNDICE
RESUMEN
1
ABSTRACT
2
ÍNDICE
3
I. INTRODUCCIÓN
4
II. ANTECEDENTES
5
III. JUSTIFICACIÓN
6
IV. OBJETIVOS
8
V. ALCANCE.
9
VI. JUSTIFICACIÓN TEÓRICA
10
VII. PLAN DE ACTIVIDADES
19
VIII. RECURSOS MATERIALES Y HUMANOS
20
IX. DESARROLLO DEL PROYECTO
21
X. RESULTADOS OBTENIDOS
56
XI. ANÁLISIS DE RIESGO
57
XII. CONCLUSIONES
58
XIII. REFERENCIAS BIBLIOGRÁFICAS
59
3
I. INTRODUCCIÓN
En la actualidad las instituciones educativas se ven en la necesidad de
contar con un sistema de enseñanza aprendizaje de calidad, llevar un mejor
control de sus actividades administrativas y académicas que incluyen la gestión
de profesores, nominas, horarios control de biblioteca, además de ser más
competitivas y llevar una gestión más eficiente. Con la finalidad de dar solución
a estas necesidades se establece el desarrollo de una herramienta informática
que integre y gestione de forma inteligente el proceso de enseñanzaaprendizaje, el proceso de administración escolar y la interacción del cliente.
4
II. ANTECEDENTES
Los profundos cambios que en todos los ámbitos de la sociedad se
vienen produciendo en los últimos años exigen una formación continua a lo
largo de la vida para los estudiantes y para todos los ciudadanos en el uso de
las Tecnologías de la Información y las Comunicaciones (TIC). Como en los
demás ámbitos de la actividad humana, las TIC se convierten en un instrumento
cada vez más indispensable en las instituciones educativas, donde pueden
realizar múltiples funciones.
Actualmente la instituciones académicas incorporan las tecnologías de la
información y comunicación pero no de una forma que integren los procesos de
enseñanza-aprendizaje, la gestión escolar y la percepción e iteración del
cliente.
5
III. JUSTIFICACIÓN
En la sociedad en la que vivimos, la información y el conocimiento tienen
cada vez más influencia en el entorno laboral y personal de los ciudadanos,
además la situación social en la que nos encontramos, caracterizada por
nuevos modelos familiares, nuevos entornos profesionales y una mayor
diversificación del alumnado, exige un sistema educativo actualizado
El actual sistema educativo supone ciertas limitaciones entre las que se pueden
mencionar las siguientes.
Limitación de tiempo y espacio: El alumno se limita a aprender los que se
imparte en el aula y al horario establecido por la institución educativa.
El proceso de gestión escolar no satisface las necesidades de los clientes y de
los alumnos, es por ello que se deben automatizar cada uno de los procesos
que integran la administración escolar.
Las Tecnologías de la Información y Comunicación en la educación suponen
una vía para mejorar la calidad de la enseñanza y un camino para dar
respuesta a las nuevas exigencias que plantea la sociedad.
Las TIC en el aula significa seleccionar algunas de las herramientas que
ofrecen y usarlas desde una perspectiva pedagógica, pero no como un
complemento a la enseñanza tradicional sino como una vía innovadora que
consigue mejorar los procesos de enseñanza-aprendizaje y los progresos
escolares de los alumnos.
6
Las TIC favorecen la formación continua al ofrecer herramientas que permiten
la aparición de entornos virtuales de aprendizaje, libres de las restricciones del
tiempo y del espacio que exige la enseñanza presencial.
El desarrollo de una herramienta informática que permita la automatización de
los procesos que integran la gestión escolar, que este diseñada para
proporcionar la interacción del cliente y que mejore el proceso de enseñanzaaprendizaje a través de la correcta administración de los recursos materiales y
humanos de las instituciones académicas, es una clara necesidad para la
mejora del sistema educativo actual
La incorporación de las tecnologías a la educación depende de muchos
factores, entre los que resultan esenciales la formación y la actitud de los
docentes, así como la voluntad de la comunidad educativa de perseguir una
educación más flexible e integradora, más cercana al mundo exterior y más
centrada en las individualidades del alumno.
7
IV. OBJETIVOS
Diseñar una herramienta informática que integre los siguientes puntos:
 Proceso de enseñanza aprendizaje.
 Proceso de gestión escolar.
 Percepción, gestión e interacción del cliente.
Desarrollar una aplicación que permita la generación de archivos CSS para
dar una presentación más atractiva a la información que se presente en
páginas HTML, también que proporcione la opción de generar formularios
HTML con la finalidad de manipular información de bases de datos.
8
V. ALCANCE.
El proyecto estará integrado por los siguientes módulos:
 Control escolar
 Proceso educativo
 Seguimiento académico
 Material académico
 Escuela de padres
 Capacitación
 Biblioteca
 Manejo de recursos materiales
 Manejo de proyectos educativos
El objetivo de proyecto es el desarrollo de una aplicación que permita la
generación de archivos CSS para dar una presentación más atractiva a la
información que se presente en páginas HTML, también que proporcione la
opción de generar formularios HTML con la finalidad de manipular información
de bases de datos.
9
VI. JUSTIFICACIÓN TEÓRICA
Cascading Style Sheets
CSS es un lenguaje de hojas de estilos creado para controlar el aspecto
o presentación de los documentos electrónicos definidos con HTML y XHTML.
CSS es la mejor forma de separar los contenidos y su presentación y es
imprescindible para crear páginas web complejas.
Separar la definición de los contenidos y la definición de su aspecto presenta
numerosas ventajas, ya que obliga a crear documentos HTML/XHTML bien
definidos y con
significado
completo
(también
llamados "documentos
semánticos"). Además, mejora la accesibilidad del documento, reduce la
complejidad de su mantenimiento y permite visualizar el mismo documento en
infinidad de dispositivos diferentes.
CSS nos proporciona muchas ventajas entre las cuales se describen las
siguientes.
 Separación del contenido y presentación.
Las hojas de estilo generalmente se encuentran en archivos separados del
código principal. Esto permite que en un equipo de trabajo, programador y
diseñador puedan realizar sus tareas de forma independiente aunque
paralela, sin correr el riesgo de que haya interferencias entre ambos, y ello
no alterará el resultado final.
 Flexibilidad
10
Se puede cambiar en cualquier momento una parte o la totalidad del diseño
de las páginas con solo modificar la hoja de estilo sin que ello suponga
modificar el contenido.
 unificación del diseño de las páginas del sitio
Puede mantener una sola apariencia para el sitio web ya sea dinámico o
estático.
 optimización de los tiempos de carga y de tráfico en el servidor
Al dividir contenido y apariencia reduce notablemente los tiempos de carga
del sitio en el navegador.
Por otro lado se reduce el volumen de tráfico en el servidor.
 Precisión o elasticidad
Permite establece un tamaño y posicionamiento de los elementos exacto,
emplear medidas variables o relativas que permitan expandir el contenido
hasta ocupar la totalidad de la ventana del navegador o contraerla a solo
una parte de la misma, con independencia de la pantalla del usuario.
 accesibilidad y estructuración
La combinación de CSS y marcadores descriptivos permiten que la página
se vea correctamente con o sin hoja de estilos, puesto que en cualquier
caso, la información se mantendrá estructurada y ordenada.
Esto supone que podrá ser accesible sin ningún tipo de problemas tanto por
navegadores antiguos o sin soporte para CSS, como para personas con
algún tipo discapacidad.
11
 Estandarización frente a especificaciones propietarias
La adopción de estándares por la W3C ofrece la ventaja de la compatibilidad
del código entre los diferentes navegadores web. El uso de soluciones
propietarias, como es el caso de muchas etiquetas o patrones usadas por
Microsoft.
El uso del estándar CSS de la W3C evitará visualizaciones incorrectas de
nuestras páginas en distintos navegadores.
 permite la diferenciación de estilos para imprimir / visualizar en pantalla.
El uso de CSS brinda
la posibilidad de maquetar separadamente el
contenido de nuestra web para ser mostrado en pantalla o para ser impreso.
Visual C# 2010
Es parte de la familia Visual Studio 2010, un conjunto de herramientas
que los desarrolladores de Windows en cualquier nivel pueden utilizar para
crear aplicaciones personalizadas mediante configuración básica y experta.
Visual C# está diseñado para la construcción de una gran variedad de
aplicaciones que se ejecutan en el .NET Framework. Es simple, eficaz, con
seguridad de tipos y orientado a objetos. Con sus diversas innovaciones,
Visual C# permite el desarrollo rápido de aplicaciones y mantiene la
expresividad y elegancia de los lenguajes de estilo C.
Visual Studio ofrece compatibilidad con Visual C# con un completo editor de
código, un compilador, plantillas de proyecto, diseñadores, asistentes para
12
código, un depurador eficaz y de fácil uso y otras herramientas. La biblioteca
de clases de .NET Framework ofrece acceso a numerosos servicios de
sistema operativo y a otras clases útiles y adecuadamente diseñadas que
aceleran el ciclo de desarrollo de manera significativa.
Visual C# 2010 proporciona compatibilidad con el enlace en tiempo de
ejecución a los tipos dinámicos ya que introduce un nuevo tipo, dynamic.
Este nuevo tipo permite muchos escenarios nuevos, incluido el acceso
simplificado a API de COM tales como las API de automatización de Office,
a API dinámicas como las bibliotecas de IronPython, y a DOM (Document
Object Model) HTML.
Se puede implementar una aplicación que contiene información de tipos
incrustada en lugar de información de tipos que se importa desde un
ensamblado de interoperabilidad primario (PIA). Con la información de tipos
incrustada, su aplicación puede usar tipos de un ensamblado sin necesidad
de establecer referencias al ensamblado del runtime o al ensamblado de
interoperabilidad primario (PIA). Si se publican varias versiones del
ensamblado del runtime, la aplicación que contiene la información de tipos
incrustada puede funcionar con las diferentes versiones sin que sea
necesario volver a compilarla.
Permite una mejor comprensión del código y por consiguiente un ahorro de
tiempo ya que es fácil y rápido la detección de errores.
13
La covarianza permite usar un tipo más derivado que el especificado por el
parámetro genérico, mientras que la contra varianza permite utilizar un tipo
menos derivado. Esto permite la conversión implícita de las clases que
implementan interfaces variantes y proporciona mayor flexibilidad a la hora
de hacer coincidir las firmas de método con tipos de delegado variantes. Las
nuevas palabras clave in y out del lenguaje permiten crear interfaces y
delegados variantes. .NET Framework también incluye compatibilidad con la
varianza para varios delegados e interfaces genéricos existentes, incluidos
la interfaz IEnumerable<T> y los delegados Action<T> y Func<TResult>
Las ventajas de Visual C#.
 Sencillez. C# elimina muchos elementos que otros lenguajes incluyen y
que son innecesarios en .NET. Por ejemplo:
o El código escrito en C# es autocontenido, lo que significa que no
necesita de ficheros adicionales al propio fuente tales como
ficheros de cabecera o ficheros IDL
o El tamaño de los tipos de datos básicos es fijo e independiente del
compilador, sistema operativo o máquina para quienes se compile
(no como en C++), lo que facilita la portabilidad del código.
o No se incluyen elementos poco útiles de lenguajes como C++
tales como macros, herencia múltiple o la necesidad de un
operador diferente del punto (.), acceder a miembros de espacios
de nombres
14
 Modernidad: C# incorpora en el propio lenguaje elementos que a lo largo
de los años ha ido demostrándose son muy útiles para el desarrollo de
aplicaciones y que en otros lenguajes como Java o C++ hay que simular,
como un tipo básico decimal que permita realizar operaciones de alta
precisión con reales de 128 bits (muy útil en el mundo financiero), la
inclusión de una instrucción foreach que permita recorrer colecciones con
facilidad y es ampliable a tipos definidos por el usuario, la inclusión de un
tipo básico string para representar cadenas o la distinción de un tipo bool
específico para representar valores lógicos.
 Orientación a objetos: Como todo lenguaje de programación de propósito
general actual, C# es un lenguaje orientado a objetos, aunque eso es
más bien una característica del CTS que de C#. Una diferencia de este
enfoque orientado a objetos respecto al de otros lenguajes como C++ es
que el de C# es más puro en tanto que no admiten ni funciones ni
variables globales sino que todo el código y datos han de definirse dentro
de definiciones de tipos de datos, lo que reduce problemas por conflictos
de nombres y facilita la legibilidad del código.
 Orientación a componentes: La propia sintaxis de C# incluye elementos
propios del diseño de componentes que otros lenguajes tienen que
simular mediante construcciones más o menos complejas. Es decir, la
sintaxis de C# permite definir cómodamente propiedades (similares a
campos de acceso controlado), eventos (asociación controlada de
15
funciones de respuesta a notificaciones) o atributos (información sobre
un tipo o sus miembros)
 Gestión automática de memoria: Como ya se comentó, todo lenguaje de
.NET tiene a su disposición el recolector de basura del CLR. Esto tiene el
efecto en el lenguaje de que no es necesario incluir instrucciones de
destrucción de objetos. Sin embargo, dado que la destrucción de los
objetos a través del recolector de basura es indeterminista y sólo se
realiza cuando éste se active –ya sea por falta de memoria, finalización
de la aplicación o solicitud explícita en el fuente-, C# también proporciona
un mecanismo de liberación de recursos determinista a través de la
instrucción using.
 Seguridad de tipos: C# incluye mecanismos que permiten asegurar que
los accesos a tipos de datos siempre se realicen correctamente, lo que
permite evita que se produzcan errores difíciles de detectar por acceso a
memoria no perteneciente a ningún objeto y es especialmente necesario
en un entorno gestionado por un recolector de basura.
 Instrucciones seguras: Para evitar errores muy comunes, en C# se han
impuesto una serie de restricciones en el uso de las instrucciones de
control más comunes. Por ejemplo, la guarda de toda condición ha de
ser una expresión condicional y no aritmética, con lo que se evitan
errores por confusión del operador de igualdad (==) con el de asignación
(=); y todo caso de un switch ha de terminar en un break o goto que
16
indique cuál es la siguiente acción a realizar, lo que evita la ejecución
accidental de casos y facilita su reordenación.
 Sistema de tipos unificado: A diferencia de C++, en C# todos los tipos de
datos que se definan siempre derivarán, aunque sea de manera implícita,
de una clase base común llamada System.Object, por lo que dispondrán
de todos los miembros definidos en ésta clase (es decir, serán “objetos”)
 Eficiente: En principio, en C# todo el código incluye numerosas
restricciones para asegurar su seguridad y no permite el uso de
punteros. Sin embargo, y a diferencia de Java, en C# es posible saltarse
dichas restricciones manipulando objetos a través de punteros. Para ello
basta marcar regiones de código como inseguras (modificador unsafe) y
podrán usarse en ellas punteros de forma similar a cómo se hace en
C++, lo que puede resultar vital para situaciones donde se necesite una
eficiencia y velocidad procesamiento muy grandes.
 Compatible: Para facilitar la migración de programadores, C# no sólo
mantiene una sintaxis muy similar a C, C++ o Java que permite incluir
directamente en código escrito en C# fragmentos de código escrito en
estos lenguajes, sino que el CLR también ofrece, a través de los
llamados Platform Invocation Services (PInvoke), la posibilidad de
acceder a código nativo escrito como funciones sueltas no orientadas a
objetos tales como las DLLs de la API Win32. Nótese que la capacidad
de usar punteros en código inseguro permite que se pueda acceder con
17
facilidad a este tipo de funciones, ya que éstas muchas veces esperan
recibir o devuelven punteros.
C# soporta todas las características propias del paradigma de programación
orientada a objetos: encapsulación, herencia y polimorfismo.
A diferencia de Java, en C# esto también es aplicable a los tipos de datos
básicos además, para conseguir que ello no tenga una repercusión negativa en
su nivel de rendimiento, se ha incluido un mecanismo transparente de boxing y
unboxing con el que se consigue que sólo sean tratados como objetos cuando
la situación lo requiera, y mientras tanto puede aplicárseles optimizaciones
específicas.
18
VII. PLAN DE ACTIVIDADES
19
VIII. RECURSOS MATERIALES Y HUMANOS
Materiales
1 Computadora
Software:
 Microsoft Visual C#
Personal
Manuel Uribe Saldaña: Director
Jaime Martínez Hernández: Programador.
20
IX. DESARROLLO DEL PROYECTO
Modelo vista Controlador (MVC), Es un patrón en el cual se separan los
componentes de una aplicación en tres capas, la capa de datos, la capa de
interfaz y la capa lógica, correspondiendo al proyecto la capa de interfaz.
Definición los requerimientos.
Desarrollar una aplicación que proporcione recursos para diseñar y
generar hojas de estilo que proporcionen una vista atractiva y más
comprensible a la información que se presenta en páginas HTML, así como
generar formularios HTML de forma intuitiva para poder manipular información
de una base de datos.
21
Análisis de los requerimientos.
Diagrama de casos de uso.
Figura1
Diagrama de procesos.
22
Figura2
Diagrama de componentes.
Figura 3
23
Diseño de interfaz
Figura 4
La pantalla principal como la que se muestra en la figura 4 cuenta con dos
menús un para generar archivos CSS y otra para archivos HTML
24
Figura 5
En caso de que el usuario seleccione el menú generar archivo CSS se mostrará
una interfaz como la de la figura 5 con la cual se podrá diseñar un estilo para
una mejor presentación de información. El estilo será aplicado a un archivo
HTML en el momento que el usuario seleccione las distintas opciones de los
combox, con cada selección se observar en el navegador de la interfaz los
cambios que se le van aplicando al archivo HTML.
25
Figura 6
Si el usuario selecciono la opción para generar archivos HTML, se presentará
una pantalla como la de la figura 6, con la cual se podrá especificar la ruta para
almacenar el archivo.
26
Figura 7
Después de que el usuario especifica la ruta, aparecerá en pantalla una interfaz
como la de la figura 7, con la cual se pudra diseñar un formulario HTML
seleccionando los componentes que se deseen del cuadro de herramientas.
Figura 8
Si el control seleccionado contiene una propiedad para determinar la alineación
ya sea horizontal o vertical se presentara una interfaz como la de la figura 8
27
Figura 9
En la interfaz que corresponde a la de la figura 9, se debe especificar el número
de controles que se desea crear.
Figura 10
En la interfaz característica del control, como la de la figura 10, se especificaran
las diferentes propiedades correspondientes a cada control.
28
Codificación.
Tabla 1
StreamWriter sw = new StreamWriter(this.rutacss);
sw.WriteLine(".tabla3 th,td{");
sw.WriteLine("padding:5px;");
sw.WriteLine("border-style:");
sw.WriteLine("border-top-width:");
sw.WriteLine("border-right-width:");
sw.WriteLine("border-bottom-width:");
sw.WriteLine("border-left-width:");
sw.WriteLine("}");
sw.WriteLine("th{");
sw.WriteLine("font-family:");
sw.WriteLine("color:");
sw.WriteLine("background:");
sw.WriteLine("-moz-border-radius-topleft:");
sw.WriteLine("-moz-border-radius-topright:");
sw.WriteLine("-webkit-border-top-left-radius:");
29
sw.WriteLine("-webkit-border-top-right-radius:");
sw.WriteLine("}");
sw.WriteLine("td{font-family:");
sw.WriteLine("COlor:");
sw.WriteLine("}");
sw.WriteLine("tr:nth-child(odd){background:");
sw.WriteLine("}");
sw.WriteLine("tr:nth-child(even){ background:");
sw.WriteLine("}");
sw.WriteLine("tr:hover{background-color:");
sw.WriteLine("}");
sw.Close();
webKitBrowser1.Navigate(rutahtml);
Código para crear un archivo CSS en el momento que se llama la interfaz
generador hojas de estilo.
30
Tabla 2
private class UnItem
{
public string ID;
public string descripcion;
public UnItem(string id, string desc)
{
ID = id;
descripcion = desc; }
public override string ToString()
{
return descripcion;
}
}
cmbestiloborde.Items.Add(new UnItem("none", "Ninguno"));
cmbestiloborde.Items.Add(new UnItem("hidden", "Oculto"));
cmbestiloborde.Items.Add(new UnItem("dotted", "Punteado"));
cmbestiloborde.Items.Add(new UnItem("dashed", "Discontinuo"));
31
cmbestiloborde.Items.Add(new UnItem("solid", "Continuo"));
cmbestiloborde.Items.Add(new UnItem("double", "Doble"));
cmbestiloborde.Items.Add(new UnItem("groove", "Undido"));
cmbestiloborde.Items.Add(new UnItem("ridge", "saliente"));
cmbestiloborde.Items.Add(new UnItem("inset", "Undido2"));
cmbestiloborde.Items.Add(new UnItem("outset", "Saliente2"));
Código con el cual se pueden agregar ítems a los combo box a través de una
clase.
Tabla 3
public void Loadcss(string marcador, string valor, string tag)
{
string Marcador;
string Valor;
string Tag;
Marcador = marcador;
Valor = valor;
Tag = tag;
32
StreamReader objReader = new StreamReader(rutacss);
ArrayList archivo = new ArrayList();
String Sline = "";
int i = 0;
do
{
Sline = objReader.ReadLine();
if (i == 0)
{
if (Sline == Tag)
{
Sline = Sline.Remove(0);
Sline = Sline.Insert(0,Valor+Marcador+";");
if (Valor == "border-style:")
{
cmbestiloborde.Tag = Sline;
}
if (Valor == "border-top-width:")
{
cmbanchobordesup.Tag = Sline;
}
33
if (Valor == "border-bottom-width:")
{
cmbanchobordeinf.Tag = Sline;
}
if (Valor == "border-right-width:")
{
cmbanchobordeder.Tag = Sline;
}
if (Valor == "border-left-width:")
{
cmbanchobordeizq.Tag = Sline;
}
if (Valor == "font-family:")
{
cmbestilotextoenc.Tag = Sline;
}
if (Valor == "color:")
{
cmbcolotextoenc.Tag = Sline;
}
34
if (Valor == "background:")
{
cmbcolorenc.Tag = Sline;
}
if (Valor == "tr:nth-child(odd){background:")
{
cmbcolorfilanon.Tag = Sline;
}
if (Valor == "tr:nth-child(even){ background:")
{
cmbcolorfilapar.Tag = Sline;
}
if (Valor == "td{font-family:")
{
cmbestilofilatexto.Tag = Sline;
}
if (Valor == "COlor:")
{
cmbfilacolortexto.Tag = Sline;
}
if(Valor=="-moz-border-radius-topleft:")
35
{
cmbsizquierda.Tag = Sline;
}
if (Valor == "-moz-border-radius-topright:")
{
cmbsderecha.Tag = Sline;
}
if (Valor == "tr:hover{background-color:")
{
cmbpunterocolorfilas.Tag = Sline;
}
i = 1;
}
}
archivo.Add(Sline);
}
while (Sline != null);
objReader.Close();
StreamWriter sw = new StreamWriter(rutacss);
foreach (string line in archivo)
36
{
sw.WriteLine(line);
}
sw.Close();
}
Código que recibe tres propiedades correspondientes al combo box
seleccionado, las cuales permiten actualizar el archivo CSS, la propiedad
marcador y valor son atributos de los archivos CSS, que permiten actualizar el
archivo dependiendo de lo que tenga almacena la propiedad tag del combo
seleccionado, misma que es actualizada con la línea que se modificó en el
archivo.
Tabla 4
private void cmbanchobordesup_SelectedIndexChanged(object sender,
EventArgs e)
{
//Intrsccion para optener el valor del item seleccionado.
String idSeleccionado = ((UnItem)cmbanchobordesup.SelectedItem).ID;
Loadcss(idSeleccionado, cmbanchobordesup.ValueMember,
37
cmbanchobordesup.Tag.ToString());
webKitBrowser1.Navigate(rutahtml);
}
Código para determinar el valor de ítem seleccionado, el cual será enviado al
método Lodcss para que actualice el archivo CSS.
Tabla 5
public void Esquinas(string marcador, string valor, string tag, String
valorchrome,string tagchrome)
{
string Marcador;
string Valor;
string Tag;
string Valorchrome;
string Tagchrome;
Marcador = marcador;
Valor = valor;
Tag = tag;
Valorchrome = valorchrome;
Tagchrome = tagchrome;
38
StreamReader objReader = new StreamReader(this.rutacss);
ArrayList archivo = new ArrayList();
String Sline = "";
do
{
Sline = objReader.ReadLine();
{
if (Sline == Tag )
{
Sline = Sline.Remove(0);
Sline = Sline.Insert(0,Valor+Marcador+";");
if (Valor == "-moz-border-radius-topleft:")
{
cmbsizquierda.Tag = Sline;
}
if (Valor == "-moz-border-radius-topright:")
{
cmbsderecha.Tag = Sline;
}
}
if (Sline == Tagchrome )
39
{
Sline = Sline.Remove(0);
Sline = Sline.Insert(0, Valorchrome + Marcador + ";");
if (Valorchrome == "-webkit-border-top-left-radius:")
{
cmbchromeleft.Tag = Sline;
}
if (Valorchrome == "-webkit-border-top-right-radius:")
{
cmbchromerigth.Tag = Sline;
}
}
}
archivo.Add(Sline);
}
while (Sline != null);
objReader.Close();
StreamWriter sw = new StreamWriter(this.rutacss);
foreach (string line in archivo)
{
40
sw.WriteLine(line);
}
sw.Close();
}
Código para dar una apariencia redonda a las esquinas de una tabla en HTML
Tabla 6
private void btncaja_texto_Click(object sender, EventArgs e)
{
Form3 f = new Form3();
f.Optener_Nombre_Control="button";
f.Optener_ruta=rutaarchivo;
f.Optener_alineacion = "horizontal";
f.Show();
}
Código que obtiene y pasa el nombre de un control seleccionado en el cuadro
de herramientas al formulario que se hace referencia.
41
Tabla 7
private void Form1_Load(object sender, EventArgs e)
{
StreamWriter wr = new StreamWriter(rutaarchivo);
wr.WriteLine("<center>");
wr.WriteLine("<html>");
wr.WriteLine("<form>");
wr.WriteLine("<table style='border:9px solid black; background:
red'>");
wr.Close();
}
Código que crea las primeras líneas del archivo HTML
Tabla 8
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (char.IsDigit(e.KeyChar))
{
e.Handled = false;
42
}
if (Char.IsLetter(e.KeyChar))
{
e.Handled = true;
}
if (Char.IsWhiteSpace(e.KeyChar))
{
e.Handled = true;
}
if (e.KeyChar == (char)Keys.Enter)
{
int var;
if (textBox1.Text == "")
{
MessageBox.Show("Ingrese un numero");
}
else
{
var = Convert.ToInt32(textBox1.Text);
if (var < 11)
43
{
int n_controles;
n_controles = Convert.ToInt32(textBox1.Text);
for (int i = 0; i < n_controles; i++)
{
Form2 f = new Form2(n_controles);
if (Optener_Nombre_Control == "TextBox")
{
f.txtid.Hide();
f.txtitem.Hide();
f.txtnombre_opcion.Hide();
f.lblid.Hide();
f.lblitem.Hide();
f.lblnombre_opcion.Hide();
}
if (Nombre_control == "ComboBox")
44
{
f.lblid.Text = "Value";
f.txtnombre_opcion.Hide();
f.lblnombre_opcion.Hide();
}
if (Nombre_control == "CheckBox")
{
if (i > 0)
{
f.txtdescripcion.Hide();
}
f.txtitem.Hide();
f.lblitem.Hide();
f.txtnombre_opcion.Hide();
f.lblnombre_opcion.Hide();
f.lblid.Text = "Value";
f.Optener_contador = i;
f.Optener_num_controles = n_controles;
}
45
if (Nombre_control == "RadioButton")
{
if (i > 0)
{
f.txtdescripcion.Hide();
}
f.txtitem.Hide();
f.lblitem.Hide();
f.txtitem.Hide();
f.lblitem.Hide();
f.lblid.Text = "Value";
f.txtnombre_opcion.Hide();
f.lblnombre_opcion.Hide();
}
if (Nombre_control == "Textarea")
{
f.txtid.Hide();
f.lblid.Hide();
f.txtitem.Hide();
f.lblitem.Hide();
f.txtnombre_opcion.Hide();
46
f.lblnombre_opcion.Hide();
}
if (Nombre_control == "button")
{
f.txtdescripcion.Hide();
f.lblid.Text = "Value";
f.txtitem.Hide();
f.lblitem.Hide();
f.txtnombre_opcion.Hide();
f.lblnombre_opcion.Hide();
f.Optener_contador = i;
f.Optener_num_controles = n_controles;
}
f.Optener_alineacion = alineacion;
f.Optener_Nombre_Control = Optener_Nombre_Control;
f.Optener_ruta = rutaarchivo;
f.Optener_num_controles = n_controles;
f.Optener_contador = i;
f.ShowDialog();
}
47
Form3.ActiveForm.Close();
}
else
{
MessageBox.Show("ingrese un numero menor a 11");
}
}
}
}
Código para determinar el número de controles a crear y dependido del control
se ocultaran propiedades del formulario al cual se hace referencia, para que
únicamente se especifique las características que le corresponden.
48
Tabla 9
private void button1_Click(object sender, EventArgs e)
{
StreamReader lector = new StreamReader(this.rutaarchivo);
string linea;
ArrayList Archivovirtual = new ArrayList();
do
{
linea = lector.ReadLine();
if (linea != "</Table></form></center>")
{
Archivovirtual.Add(linea);
}
}
while (linea != null);
lector.Close();
StreamWriter wr2 = new StreamWriter(this.rutaarchivo);
49
foreach (string i in Archivovirtual)
{
wr2.WriteLine(i);
}
wr2.Close();
StreamWriter wr = new StreamWriter(this.rutaarchivo, true);
//Captura variable para determinar la forma de construccion de los
controles
if(alineacion=="horizontal")
{
if (Nombre_control != "button")
{
if (contador == 0)
{
wr.WriteLine("<TR>");
wr.WriteLine("<TD>");
wr.WriteLine(txtdescripcion.Text );
wr.WriteLine("</TD>");
wr.WriteLine("<TD colspan ='2'>");
}
50
if (Nombre_control == "CheckBox")
{
wr.WriteLine("<input type='checkbox'name='" +
txtnombre.Text + "' value='" + txtid.Text + "'>" + txtnombre.Text);
}
if (Nombre_control == "RadioButton")
{
wr.WriteLine("<input type='radio'name='" + txtnombre.Text +
"' value='" + txtid.Text + "'>" + txtnombre.Text);
}
if (contador == num_controles-1)
{
wr.WriteLine("</TD>");
wr.WriteLine("</TR>");
}
}
if (Nombre_control == "button")
{
if (contador == 0)
{
51
wr.WriteLine("<TR>");
wr.WriteLine("<TD align=center colspan ='2'>");
}
wr.WriteLine("<input type='submit'name='" + txtnombre.Text + "'
value='" + txtid.Text + "'>");
if (contador == num_controles - 1)
{
wr.WriteLine("</TD>");
wr.WriteLine("</TR>");
}
}
}
else
{
wr.WriteLine("<TR>");
wr.WriteLine("<TD>");
wr.WriteLine( txtdescripcion.Text );
wr.WriteLine("</TD>");
52
wr.WriteLine("<TD>");
if (Nombre_control == "TextBox")
{
wr.WriteLine("<input type='text'name='" + txtnombre.Text + "'
size='26'><br>");
}
if (Nombre_control == "ComboBox")
{
wr.WriteLine("<select name='" + txtnombre.Text + "'>");
wr.WriteLine("<option value='" + this.txtid.Text + "'>" +
this.txtitem.Text + "</option>");
wr.WriteLine("</select><br>");
}
if (Nombre_control == "CheckBox")
{
wr.WriteLine("<input type='checkbox'name='" + txtnombre.Text
+ "' value='" + txtid.Text + "'>" + txtnombre.Text + "<br>");
}
if (Nombre_control == "RadioButton")
{
53
wr.WriteLine("<input type='radio'name='" + txtnombre.Text + "'
value='" + txtid.Text + "'>" + txtnombre.Text + "<br>");
}
if (Nombre_control == "Textarea")
{
wr.WriteLine("<textarea name='" + txtnombre.Text + "' rows='3'
cols='20'></textarea><br>");
}
wr.WriteLine("</TD></TR>");
}
wr.WriteLine("</Table></form></center>");
wr.Close();
Form2.ActiveForm.Close();
}
54
Código que permite leer el archivo HTML y agregarle los controles que el
usuario específico en un archivo virtual para posteriormente remplazar el
archivo original con el virtual.
Tabla 10
private void txtdescripcion_KeyPress(object sender, KeyPressEventArgs e)
{
if(char.IsPunctuation(e.KeyChar))
{
e.Handled = true;
}
if (char.IsSymbol(e.KeyChar))
{
e.Handled = false;
}
}
Código que valida la introducción de información en los textbox.
55
X. RESULTADOS OBTENIDOS
Se obtuvo una herramienta que permite el diseño de archivos CSS, los
cuales son estilos que permiten mejorar la presentación de información a través
de tablas en páginas HTML, además proporciona la posibilidad de generar
formularios para manipular información en una base de datos.
56
XI. ANÁLISIS DE RIESGO
Riesgos
1. Poca experiencia en el diseño de software bajo el patrón e
arquitectura de desarrollo de software MVC.
2. Que el cliente cambie constantemente los requerimientos.
3. Poco conocimiento de la herramienta tecnológica.
Estrategia para prevenir riesgos.
1. Capacitación e Investigación de patrón de arquitectura MVC.
2. Definir los alcances del proyecto y que sean firmados por el cliente, así
como toda la documentación necesaria.
3. Capacitación sobre la herramienta informática.
57
XII. CONCLUSIONES
El patrón de arquitectura de software Modelo Vista Controlador(MVC)
permite ahorrar mucho tiempo a la hora de desarrollar una aplicación, ya que
permite separar, los datos de una aplicación, la interfaz de usuario, y la lógica
de negocio en tres componentes distintos.
Una aplicación que permite la generación de hojas de estilo y que además
proporciona la posibilidad de realizar formularios HTLM sin que el usuario
tenga que lidiar con el código es una gran ventaja, ya que ahorra al
programador mucho tiempo, con lo cual la parte de la Vista correspondiente al
patrón de arquitectura de software Modelo Vista Controlador se desarrolla de
una forma más rápida.
58
XIII. REFERENCIAS BIBLIOGRÁFICAS
Las nuevas tecnologías en la educación. Extraído el 17 de enero del 2012
desde http://estudiantes.iems.edu.mx/cired/docs/ae/pp/fl/aeppflp11pdf01.pdf
Las nuevas tecnologías en la educación. Extraído el 18 de enero del 2012
desde http://www.monografias.com/trabajos13/lnuevtec/lnuevtec.shtml
Javier Eguíluz Pérez. “Introducción a CSS”. Extraído el 23 de enero del 2012
desde http://www.librosweb.es/css/
Manual de programación C# español. Extraído el 13 de febrero del 2012 desde
http://www.ivlabs.org/home/?p=799
Características de C#. Extraído el 15 de marzo del 2012 desde
http://www.clikear.com/manuales/csharp/c10.aspx
59
Descargar