Este documento presenta el contexto y planteamiento de un proyecto de desarrollo de una aplicación web utilizando Entity Framework y MVC. El objetivo general es desarrollar una aplicación en C# con Visual Studio 2012 que use Entity Framework para acceder a datos almacenados en SQL Server 2012. El proyecto busca adquirir conocimientos sobre el uso de frameworks para el desarrollo de aplicaciones orientadas a datos y mejorar las habilidades de trabajo en equipo.
1. UNIVERSIDAD LAICA ELOY ALFARO DE
MANABÍ
FACULTAD DE CIENCIAS INFORMATICAS
ASIGNATURA:
INGENIERIA DE SOFTWARE
INTEGRANTES:
VILLEGAS ZAMBRANO EDGAR JONATHAN
Curso:
5to NIVEL “B”
Profesor:
ING. JORGE PINCAY
MANTA-MANABÍ-ECUADOR
Junio, 2013
CAPITULO I 4
2. CONTEXTUALIZACION DE LA INVESTIGACIÒN 4
INTRODUCCIÓN 4
PRESENTACION DEL TEMA 5
SITUACION PROBLEMATICA 5
Ubicación y contextualización.............................................................................5
Planteamiento de problema. ...............................................................................5
Contextualización Macro, Meso y Micro 6
Diagrama Causa-Efecto del Problema. 9
Formulación del problema.................................................................................11
Delimitación del problema.................................................................................11
Objetivos. 12
Objetivo general...................................................................................................12
Objetivos específicos de investigación.............................................................12
Objetivos específicos de resolución del problema .........................................12
JUSTIFICACIÓN. 13
Impactos Esperados. 13
Impacto Tecnológico. ........................................................................................14
Impacto Social. ....................................................................................................14
Impacto Ecológico...............................................................................................15
FORMULACION DE HIPOTESIS 16
2. Marco teórico referencial 17
2.1. Introducción. 17
Visual Studio 2012 21
CAPITULO III 22
MARCO PROPOSITIVO (PROPUESTA) 22
INTRODUCCIÓN 22
DESCRIPCION DE LA PROPUESTA. 23
RECURSOS. 24
Humanos................................................................................................................24
Materiales..............................................................................................................24
DISEÑO Y CONSTRUCCION DE LA PROPUESTA. 26
CAPITULO IV 26
VALIDACIÓN DE LOS RESULTADOS. 26
SEGUIMIENTO Y MONITOREO DE RESULTADOS. 26
3. CONCLUSIONES Y RECOMENDACIONES. 27
CONCLUSIONES. ..............................................................................................27
RECOMENDACIONES. ....................................................................................27
ANEXOS 27
Errores presentados al desarrollar la aplicación. Error! Bookmark not
defined.
Bibliografía 28
4. CAPITULO I
CONTEXTUALIZACION DE LA INVESTIGACIÒN
INTRODUCCIÓN
En el mundo del desarrollo día a día se presentan herramientas que nos
facilitan la creación de aplicaciones como los frameworks. La palabra inglesa
"framework" (marco de trabajo) define, un conjunto estandarizado de
conceptos, prácticas y criterios para enfocar un tipo de problemática particular
que sirve como referencia, para enfrentar y resolver nuevos problemas de
índole similar.
En el desarrollo de software, un framework o infraestructura digital, es una
estructura conceptual y tecnológica de soporte definido, normalmente con
artefactos o módulos de software concretos, que puede servir de base para la
organización y desarrollo de software. Típicamente, puede incluir soporte
deprogramas, bibliotecas, y un lenguaje interpretado, entre otras
herramientas, para así ayudar a desarrollar y unir los diferentes componentes
de un proyecto.
Representa una arquitectura de software que modela las relaciones
generales de las entidades del dominio, y provee una estructura y una
especial metodología de trabajo, la cual extiende o utiliza las aplicaciones del
dominio.
Entity Framework es una herramienta que utiliza tecnologías de ADO.NET
que permiten el desarrollo de aplicaciones de software orientadas a datos.Los
arquitectos y programadores de aplicaciones orientadas a datos se han
enfrentado a la necesidad de lograr dos objetivos muy diferentes. Deben
modelar las entidades, las relaciones y la lógica de los problemas
empresariales que resuelven, y también deben trabajar con los motores de
datos que se usan para almacenar y recuperar los datos. Los datos pueden
abarcar varios sistemas de almacenamiento, cada uno con sus propios
protocolos; incluso las aplicaciones que funcionan con un único sistema de
5. almacenamiento deben equilibrar los requisitos del sistema de
almacenamiento con respecto a los requisitos de escribir un código de
aplicación eficaz y fácil de mantener.
Entity Framework permite a los desarrolladores trabajar con datos en forma
de objetos y propiedades específicos del dominio, como clientes y direcciones
de cliente, sin tener que preocuparse por las tablas y columnas de la base de
datos subyacente donde se almacenan estos datos. Con Entity Framework,
los desarrolladores pueden trabajar en un nivel mayor de abstracción cuando
tratan con datos, y pueden crear y mantener aplicaciones orientadas a datos
con menos código que en las aplicaciones tradicionales. Dado que Entity
Framework es un componente de .NET Framework, las aplicaciones de Entity
Framework se pueden ejecutar en cualquier equipo en el que esté instalado
.NET Framework a partir de la versión 3.5 SP1.
PRESENTACION DEL TEMA
“Estudio de tecnologías que permiten el desarrollo de aplicaciones de
software orientadas a datos. Caso de estudio: Entity Framework”
SITUACION PROBLEMATICA
Ubicación y contextualización
Facultad de Ciencias Informáticas de la Universidad Laica Eloy Alfaro
de Manabí (FACCI).
Planteamiento de problema.
6. Contextualización Macro, Meso y Micro
Contextualización Macro
Es muy interesante ver que en la actualidad la mayoría de las
empresas serias de desarrollo web se están volcando al uso de
framework en sus desarrollos. Esto tiene una ventaja para el
empleador, el empleado, y el cliente.
El empleado está aprendiendo a desarrollar con un framework y no
solo un framework sino una estructura de trabajo la cual le sirve para
agregar en su currículum, el empleador consigue ahorrarse tiempo en
desarrollos y en controles, y el cliente obtiene en menor tiempo y con
una mejor calidad sus productos.
La explicación es muy simple, los frameworks web actuales no son
desarrollados por un equipo reducido de personas, sino que están
continuamente creciendo gracias al apoyo de las comunidades
virtuales.
Estos Frameworks, generalmente son open source, y están
desarrollados y apoyados por grandes corporaciones.
Lo más importante, es que una empresa no tiene que preocuparse
como hacer una librería para la conexión a la base de datos, o para
crear a un web servicie, o cómo manejar templetes dentro de su
sistema, como validar formularios, etc. Y no tiene que preocuparse no
7. porque no lo tenga que hacer, sino porque estos frameworks le brindan
una solución, les dice como crear formularios, validarlos tanto del lado
del cliente como del servidor, manejar distintos templates, manejar
base de datos, etc. Y no solo soluciones del tipo “necesito conectarme
a una base de la mejor manera posible”, es lo que no simplifica un
framework, sino que nos brinda toda una forma de trabajo como es
la división por capas MVC(Model View Controller), sino una estructura
de directorios prolija y clara. Sobre todo que hace fácil y organizable
cualquier modulo o aplicación.
Otro de los puntos a favor de un framework, es que es gratis. La
empresa no tiene que poner un centavo y obtiene cientos o miles de
líneas de código para que use sin ningún límite sin nada a cambio.
Contextualización Meso
En el Ecuador debido al hecho de que las aplicaciones distribuidas
están tomando fuerza sobre el mundo de la informática y es el modelo
más utilizado actualmente, es de gran importancia el combinar este
modelo de aplicaciones con las nuevas tecnologías y técnicas de
desarrollo.
Contextualización Micro
En la ciudad de manta la universidad Laica Eloy Alfaro de Manabí, en
su facultad de ciencias informáticas, se desempeña la labor de impartir
8. conocimientos sobre ingeniería de software para sus estudiantes de
un quinto nivel. El aprender técnicas y el uso de frameworks depende
mucho de cada uno porque representa nuestra calificación para
aprobar nuestro semestre con éxito y adquirir puntos de experiencia en
materias bases en la formación profesional.
Este proyecto de tesis, pretende obtener una muestra del trabajo en
equipos de desarrollo la utilización de framework, en nuestro caso
utilizaremos Entity Framework y el Modelo Vista Controlador.
9. La falta de conocimientos
sobre el uso de frameworks
y la aplicación de técnicas
de desarrollo.
Diagrama Causa-Efecto del Problema.
CAUSAS
PROBLEMA
Poco entendimiento del
uso de frameworks para el
desarrollo de aplicaciones
de software orientada a
datos.
Trabajar en Visual Studio
2012 con vacíos en la
programación en C#.
Analizar las herramientas
con las cuales
trabajaremos en el
desarrollo.
Prolongaría la culminación de
la aplicación ya que no se
presentarían retrasos en su
desarrollo.
Decidir los objetivos concretos de
la aplicación y seleccionar los que
mejor se ajusten a nuestros
requerimientos.
El resultado podría ser
propensa a errores y
fallos.
10.
11. Formulación del problema.
¿Qué porcentaje afectara la falta de conocimientos sobre el uso de
frameworks y la aplicación de técnicas de desarrollo en base a
aplicaciones de acceso a datos?
Delimitación del problema
CAMPO: Programación.
ÁREA: Desarrollo.
ASPECTO:Ingeniería de Software II.
TEMA:Estudio de tecnologías que permiten el desarrollo de
aplicaciones de software orientadas a datos. Caso de estudio: Entity
Framework usando MVC
PROBLEMA: poco conocimiento sobre el uso de frameworks y la
aplicación de técnicas de desarrollo.
DELIMITACIÓN ESPACIAL: FACCI.
DELIMITACIÓN TEMPORAL:Junio2013.
12. 5to Nivel “B”
Objetivos.
Objetivo general.
Desarrollar una aplicación web en C# utilizando Visual
Studio 2012, Entity Framework, MVC y su base de datos en SQL
Server 2012.
Objetivos específicos de investigación.
Obtener conocimientos sobre el desarrollo de aplicaciones usando
Entity Framework.
Estudiar la estructura de C#.
Manipular con precisión el entorno de desarrollo Visual Studio
2012.
Objetivos específicos de resolución del problema
Realizar un primer producto simple pero funcional en el que se
integren los conocimientos adquiridos. Teniendo en cuenta parte de
los resultados del análisis de antecedentes.
Desarrollar una base de datos, que será destinada al albergue de la
información referente a la aplicación.
13. 5to Nivel “B”
JUSTIFICACIÓN.
El presente trabajo nos ayudara para la integración de conocimientos
en el área de desarrollo, específicamente en el uso de Framework y
metodologías agiles en el desarrollo de aplicaciones web orientadas a
datos.
Esta es una manera de ampliar nuestros conocimientos, puesto que
investigando incrementaremos nuestro conocimiento, en esta tarea
aprenderemos mucho más de lo impartido en clases y nos servirá para
trabajar en equipos de desarrollo siendo esta experiencia similar a la
del campo laboral profesional.
Impactos Esperados.
Las aplicaciones web ofrecen servicios a los usuarios de Internet que
acceden utilizando un navegador web como I.Explorer, Firefox o Safari entre
otros, dirigiéndose a una dirección de Internet donde obtendrán los servicios
que buscan.
Las aplicaciones web pueden ser de acceso público como tiendas virtuales,
diarios digitales, portales de Internet,... o de acceso restringido como son las
intranets para mejorar las gestiones internas de su empresa como el reporte
de horas de su personal, gestión de proyectos y tareas, control de presencia,
gestores documentales,… o el uso de extranet para aumentar y mejorar el
14. 5to Nivel “B”
servicio con sus distribuidores, clientes, proveedores, comerciales y
colaboradores externos.
En este proyecto el impacto esperado es que podamos hacer un buen trabajo
en equipo de desarrollo, puesto que esto nos involucra experiencia para
cuando nos toque realizar trabajos similares en el ámbito profesional laboral.
Impacto Tecnológico.
El desarrollo tecnológico de un país debe darse desde la iniciativa
propia, esto es, en las escuelas por medio de proyectos e
investigaciones y en las empresas por medio de capacitaciones y
actualizaciones de infraestructura.
Cada vez es más necesario adaptar el software y los sistemas online a
la lógica de negocio de cada cliente. Por este motivo, no sólo es
necesario que su empresa disponga de una web corporativa, un
comercio virtual o una extranet para gestionar los pedidos de sus
clientes o distribuidores, sino que es muy aconsejable una integración
total con sus sistemas propietarios de facturación, nóminas,
proveedores, previsiones, etc. para obtener un sistema integral y
eficiente en todas las áreas de su corporación.
Con esta aplicación haremos una muestra de cómo mejorar los
servicios de su empresa y que esta pueda estar con los mejores
avances tecnológicos y con costos no tan elevados.
Impacto Social.
15. 5to Nivel “B”
La tecnología en la sociedad, tienen un carácter cambiante y dinámico
que es funcional a sus propósitos y objetivos. No obstante, estos
cambios abruptos, a veces, repercuten de manera negativa en la salud
física y mental de sus miembros, generando alteraciones en el estilo
de vida de los mismos. Nuestra aplicación tiene un impacto social muy
favorable, puesto que el desarrollo realizado es una aplicación web
utilitaria para una tienda de música on-line.
Impacto Ecológico.
Se entiende por impacto ecológico el efecto que produce una
determinada acción humana sobre el medio ambiente en sus distintos
aspectos. El concepto puede extenderse, con poca utilidad, a los
efectos de un fenómeno natural catastrófico. Técnicamente, es la
alteración de la línea de base, debido a la acción entrópica o a eventos
naturales.
Las acciones humanas, motivadas por la consecución de diversos
fines, provocan efectos colaterales sobre el medio natural o social.
Mientras los efectos perseguidos suelen ser positivos, al menos para
quienes promueven la actuación, los efectos secundarios pueden ser
positivos y, más a menudo, negativos. La evaluación de impacto
ambiental (EIA) es el análisis de las consecuencias predecibles de la
acción; y la Declaración de Impacto ambiental (DIA) es la
16. 5to Nivel “B”
comunicación previa, que las leyes ambientales exigen bajo ciertos
supuestos, de las consecuencias ambientales predichas por la
evaluación.
FORMULACION DE HIPOTESIS
Al realizar esta aplicación web, se adquirirá experiencia en el campo de
Frameworks con aplicaciones orientadas a datos.
17. 5to Nivel “B”
2. Marco teórico referencial
2.1. Introducción.
En la ingeniería de software se denomina aplicación web a
aquellas herramientas que los usuarios pueden utilizar accediendo a
un servidor weba través de Internet o de una intranet mediante un navegador.
En otras palabras, es una aplicación software que se codifica en un lenguaje
soportado por los navegadores web en la que se confía la ejecución al
navegador.
Las aplicaciones web son populares debido a lo práctico del navegador
web como cliente ligero, a la independencia del sistema operativo, así como a
la facilidad para actualizar y mantener aplicaciones web sin distribuir e
instalar software a miles de usuarios potenciales. Existen aplicaciones como
los webmails, wikis, weblogs, tiendas en línea y la propia Wikipedia que son
ejemplos bien conocidos de aplicaciones web.
Es importante mencionar que una página Web puede contener elementos
que permiten una comunicación activa entre el usuario y la información. Esto
permite que el usuario acceda a los datos de modo interactivo, gracias a que
la página responderá a cada una de sus acciones, como por ejemplo rellenar
y enviar formularios, participar en juegos diversos y acceder a gestores de
base de datos de todo tipo.
18. 5to Nivel “B”
Framework
¿Qué es un Framework?
FrameWork es un concepto sumamente genérico, se refiere a “ambiente de
trabajo, y ejecución”, por ejemplo “.Net” es considerado un “framework” para
desarrollar aplicaciones (Aplicaciones sobre Windows). En general los
framework son soluciones completas que contemplan herramientas de apoyo
a la construcción (ambiente de trabajo o desarrollo) y motores de ejecución
(ambiente de ejecución).
Siguiendo con el ejemplo: “.Net” ofrece el “Visual Studio .net” (ambiente
construcción o desarrollo) que le permite a los desarrolladores construir
aplicaciones, y su motor es el “.Net framework” que permite ejecutar dichas
aplicaciones. El motor de “.net” es un anexo al sistema operativo (un
componente que se instala sobre el sistema operativo), y que ahora viene
incluido en la mayoría de los sistema operativos de Microsoft.
FrameWork puede ser algo tan grande como “.NET” o Java (también es un
framework), pero también el concepto se aplica a ámbitos más específicos,
por ejemplo; dentro de ADO.NET Entity Framework
ADO.NET Entity Framework.
Es un conjunto de APIs de acceso a datos para el Microsoft .NET Framework,
apuntando a la versión de ADO.NET que se incluye con el .NET
Framework 3.5. Fue lanzado como actualización separada junto con el
Service Pack 1 para el .NET Framework, después del lanzamiento de tanto el
.NET Framework 3.5 y el Visual Studio 2008. Una nueva versión del Entity
Framework (v 4.0) será liberada junto al Visual Studio 2012 y el .NET
Framework 4.5.
19. 5to Nivel “B”
Una entidad del Entity Framework es un objeto que tiene una clave
representando la clave primaria de una entidad lógica de datastore. Un
modelo conceptual Entity Data Model (modelo Entidad-Relación) es mapeado
a un modelo de esquema de datastore. Usando el Entity Data Model, el
Framework permite que los datos sean tratados como entidades
independientemente de sus representaciones del datastore subyacente.
El Entity SQL es un lenguaje similar al SQL para consultar el Entity Data
Model (en vez del datastore subyacente). Similarmente, las extensiones del
Linq, Linq-to-Entities, proporcionan consultas tipeadas en el Entity Data
Model. Las consultas Entity SQL y Linq-to-Entities son convertidas
internamente en un Canonical Query Tree que entonces es convertido en una
consulta comprensible al datastore subyacente (ej. en SQL en el caso de una
base de datos relacional). Las entidades pueden utilizar sus relaciones, y sus
cambios enviados de regreso al datastore.
20. 5to Nivel “B”
Visual Studio
Microsoft Visual Studio es un entorno de desarrollo integrado (IDE, por sus
siglas en inglés) para sistemas operativos Windows. Soporta varios lenguajes
de programación tales como Visual C++, Visual C#, Visual J#, y Visual Basic
.NET, al igual que entornos de desarrollo web comoASP.NET, aunque
actualmente se han desarrollado las extensiones necesarias para muchos
otros.
Visual Studio permite a los desarrolladores crear aplicaciones, sitios y
aplicaciones web, así como servicios web en cualquier entorno que soporte la
21. 5to Nivel “B”
plataforma .NET (a partir de la versión .NET 2002). Así se pueden crear
aplicaciones que se intercomuniquen entre estaciones de trabajo, páginas
web y dispositivos móviles.
Imagen 1
Visual Studio 2012
Esta información hace referencia al 24 de mayo 2012, en esta fecha fue dado
a conocer laRelease Candidate del nuevo entorno de programación de
"Windows", cual integra completo soporte para el actual y en fase de
desarrollo Windows 8, Microsoft Visual Studio 2012 RC tiene como
características el desarrollo completo e íntegro en el estilo Modern UI de
Windows 8, además soporte para antiguas versiones de Windows al estilo
clásico. Visual Studio 2012 ya se encuentra disponible en su última versión
que sería la Ultimate puede ser descargado y probado desde la página de
Microsoft.
22. 5to Nivel “B”
CAPITULO III
MARCO PROPOSITIVO (PROPUESTA)
INTRODUCCIÓN
El proyecto consiste en el estudio, análisis y puesta en práctica del desarrollo
de una aplicación en C# utilizando Entity Framework y el Modelo Vista
Controlador.
23. 5to Nivel “B”
En concreto se ha estudiado el entorno de programación disponible y las
herramientas y conceptos que se deben utilizar para desarrollar aplicaciones
web orientadas a datos.
Se desarrollara en Visual Studio 2012 en el lenguaje de programación C#
utilizando Entity Framework y MVC4.
DESCRIPCION DE LA PROPUESTA.
La denominada investigación de campo, radica en el lugar de los hechos
donde se desarrollaron los acontecimientos. Es el contacto directo que se
obtuvo del sujeto con el objeto de la investigación, para obtener resultados
viables que conllevó a conclusiones efectivas.
Por otro lado para el uso de esta actividad se tomó como referencia las
facultades de auditoría, ciencias médicas y arquitectura de la universidad
laica Eloy Alfaro de Manabí, Con el uso y desarrollo de encuestas para poder
así analizar y lograr medir el grado de aceptación de nuestro proyecto ante la
sociedad.
24. 5to Nivel “B”
RECURSOS.
Mantenemos bien en claro que estos recursos son un conjunto de personas,
bienes materiales, financiero y técnico con que cuenta y utiliza una
dependencia, entidad, u organización para alcanzar sus objetivos y producir
los bienes o servicios que son de su competencia.
Humanos.
Para nuestro proyecto contamos con el recurso humano de los interesados
en llevar a cabo esta investigación, es decir, los Integrantes y los Naturales:
Estudiante:
Flores Posligua José Bolívar.
Naturales:
Ing. Jorge Pincay Tutor del proyecto
Personal Docente de la Facultad de ciencias informáticas
Alumnos de la facultad antes mencionada (FACCI)
Materiales
Los materiales a considerarlos útiles para esta investigación son los
siguientes:
Hojas, Esferos, lápices, calculadora, borrador, etc
Teléfono que cuente con el sistema operativo Android.
Computadora de escritorio
Impresora
EQUIPAMIENTO
25. 5to Nivel “B”
Los equipamientos son los que nos van a permitir realizar reuniones
grupales con el fin de recopilar información.
Transporte
Internet
Teléfono
Luz, entre otros.
Presupuesto Referencial
Para hallar el presupuesto referencial es necesario realizar la siguiente
tabla.
Total Recursos
Materiales
Total Equipamiento Presupuesto
Referencial
$25,0 $30,00 $65,00
Descripción de financiamiento
Para la sustentación económica de nuestro proyecto hemos decidido
que recibir donaciones internas por parte de nuestros familiares, es
decir que cada integrante del grupo ha tenido que pedir algo de apoyo
económico a sus padres o familiares, para sustentar el gasto que este
proyecto implica; además de las operaciones patrimoniales que cada
integrante ha hecho con el fin de realizar un trabajo de calidad.
26. 5to Nivel “B”
DISEÑO Y CONSTRUCCION DE LA PROPUESTA.
Métodos y Técnicas a utilizar
Para el desarrollo de esta aplicación empleamos el Modelo Vista Controlador
y Entity Framework.El desarrollo se realizara en Visual Studio 2012 en
lenguaje C# y la base de datos en SQL Server.
CAPITULO IV
VALIDACIÓN DE LOS RESULTADOS.
SEGUIMIENTO Y MONITOREO DE RESULTADOS.
27. 5to Nivel “B”
CONCLUSIONES Y RECOMENDACIONES.
CONCLUSIONES.
El entorno de desarrollo de Visual Studio 2012 trabajando
con Entity Framework utiliza una interfaz agradable,
siendo de mucha utilidad en el desarrollo de aplicaciones
web orientada a datos, puesto que se desarrolla de una
manera más óptima.
Con este proyecto se adquirió una nueva experiencia en el
trabajo en equipos de desarrollo.
RECOMENDACIONES.
Especificar bien los nombres de los controladores al usar
un index.
Al conectar la base de datos se recomienda usar
autenticación de SQL Server y no la autenticación de
Windows, puesto que si se cambia de usuario o de clave al
equipo esto genera conflictos al conectar la BD.
Se recomienda detener la depuración al modificar el
código o crear controladores, aunque los genera sale el
mensaje de error.
ANEXOS
28. 5to Nivel “B”
Por conocimientos previos hacia este framework no se me
presentaron ningún tipo de errores
Bibliografía
http://es.wikipedia.org/wiki/Aplicaci%C3%B3n_web. (s.f.).
http://es.wikipedia.org/wiki/Framework. (s.f.).
http://es.wikipedia.org/wiki/Microsoft_Visual_Studio. (s.f.).
http://gibraine.com/2005/08/la-importancia-y-el-impacto-del-desarrollo-
tecnologico.html. (s.f.).
http://jordisan.net/blog/2006/que-es-un-framework. (s.f.).
http://www.alegsa.com.ar/Dic/framework.php. (s.f.).
http://www.bab-soft.com/es/diseno_desarrollo_aplicaciones_web.php. (s.f.).
http://www.soaagenda.com/journal/articulos/que-son-los-frameworks/. (s.f.).