Upload
others
View
4
Download
0
Embed Size (px)
Citation preview
1
UNIVERSIDAD POLITÉCNICA
DE SINALOA
Tesina
“Programación en ASP.NET y SQL Server”
Para cumplir la acreditación de las estadías
profesionales y contar con los créditos necesarios para obtener el grado de Ingeniero en Informática
Autor:
Irving Raymundo Millán Contreras
Asesor:
M.C. Ismaylia Saucedo Ugalde
Asesor OR:
LIC. Elisa Becerra Ulloa
Mazatlán, Sinaloa 15 de Diciembre de 2015
Generación 2012-2015
2
Índice
CAPÍTULO I ....................................................................................................................................... 10
RESEÑA EMPRESARIAL ................................................................................................................ 10
1.1 ACERCA DE TATA CONSULTANCY SERVICES, LTD. ..................................................................... 11 1.1.1 Visión .................................................................................................................................... 12 1.1.2 Misión ................................................................................................................................. 12 1.1.3 Valores ................................................................................................................................ 12 1.1.4 Objetivo ................................................................................................................................. 12
1.2. TCS EN MÉXICO ............................................................................................................................. 13 1.3 SERVICIOS QUE OFRECE ................................................................................................................. 14
1.3.1 Servicios de TI ....................................................................................................................... 14 1.3.2 Consultoría ............................................................................................................................. 15 1.3.3 Servicios industriales y de ingeniería ................................................................................. 15
CAPÍTULO II ...................................................................................................................................... 17
MARCO TEÓRICO ............................................................................................................................ 17
2.1 INTRODUCCIÓN ................................................................................................................................ 18 2.2 TECNOLOGÍAS IMPLEMENTADAS...................................................................................................... 18
2.2.1 Ambiente de desarrollo implementado .............................................................................. 18 2.2.1.1 POO.............................................................................................................................................. 18 2.2.1.2 Historia De POO .......................................................................................................................... 19 2.2.1.3 Etapas De la Evolución De POO ........................................................................................... 21 2.2.1.4 La Plataforma .NET .................................................................................................................... 22 2.2.1.5 CLR (Common Language Runtime) ........................................................................................ 23 2.2.1.6 Desarrollo de aplicaciones En .NET ....................................................................................... 26 2.2.1.7 Soporte para múltiples lenguajes ........................................................................................... 26 2.2.1.8 Ejecución de código ................................................................................................................... 27 2.2.1.9 Características De .NET ............................................................................................................. 27 2.2.1.10 .NET vs. J2EE [Java 2 Enterprise Edition] .......................................................................... 28 2.2.1.11 ASP Clásico ............................................................................................................................... 28 2.2.1.12 Historia de ASP Clásico ........................................................................................................... 29 2.2.1.13 ASP.NET ................................................................................................................................... 30 2.2.1.14 Características De ASP.NET ................................................................................................... 30 2.2.1.15 HTML ............................................................................................................................................ 33 2.2.1.16 Historia HTML ............................................................................................................................. 34 2.2.1.17 Historia HTML ............................................................................................................................. 35 2.2.1.18 Historia de MVC (Modelo–vista–controlador) .................................................................... 36 2.2.1.19 Historia De C# ........................................................................................................................... 37 2.2.1.20 C# .................................................................................................................................................. 37 2.2.1.21 Visual Studio .............................................................................................................................. 38 2.2.1.22 Historia De Visual Studio ........................................................................................................ 38
2.3.1 SQL Server ............................................................................................................................ 39 2.3.1.1 Manejador SQL Server ............................................................................................................... 39 2.3.1.2 Historia De SQL............................................................................................................................ 40 2.3.1.3 Arquitectura de Bases de Datos SQL Server ....................................................................... 41 2.3.1.4 T-SQL .............................................................................................................................................. 45 2.3.1.5 Mysql vs Sql Server ................................................................................................................... 45
2.4.1 Publicación de la aplicación ................................................................................................ 47 2.4.1.1 IIS ..................................................................................................................................................... 47 2.4.1.2 Historia De IIS ............................................................................................................................... 47 2.4.1.3 Windows Server 2008 ................................................................................................................. 48
3
¿Qué es Windows Server? ..................................................................................................................... 48 2.4.1.4 Historia de Windows Server 2008 ........................................................................................... 49
BIBLIOGRAFÍA ................................................................................................................................. 51
GLOSARIO ........................................................................................................................................ 54
4
Índice De Ilustraciones 1.-Figura 1.1 Logotipo de TCS ............................................................................................... 11
2.-Figura 2.1 Diagrama de la evolución de los lenguajes de programación. ................. 21
3.-Figura 2.2 Esquema del .NET Framework ...................................................................... 23
4.-Figura 2.3 Comparación entre lenguaje de programación web ................................... 28
5.-Figura 2.4 Código en ASP Clásico .................................................................................... 29
6.-Figura 2.5 Ejemplo de code-behind .................................................................................. 32
7.-Figura 2.6 Listado De Etiquetas HTML ........................................................................... 33
8.-Figura 2.2.1.17.A. Diagrama que muestra la relación entre el modelo, la vista y el
controlador ................................................................................................................................. 36
9.-Figura 2.8. Arquitectura de SQL Server ........................................................................... 42
5
6
7
8
9
RESUMEN
Programación en ASP.NET y SQL Server
Irving Raymundo Millan Contreras
Ingeniería en Informática
Universidad Politécnica de Sinaloa
Mazatlán, Sinaloa, Diciembre 2015
Asesor: M.C. Ismaylia Saucedo Ugalde
Esta tesina titulada "Programación en ASP.NET Y SQL Server" se realizó
con la finalidad de tener una introducción al lenguaje de programación C#
enfocado a web en ASP.NET, con los conocimientos adquiridos en la estadía
práctica dentro de la empresa Tata Consultancy Services
Se comienza con conceptos básicos, una breve introducción de la historia
de la programación orientada a objetos e información que se considera
indispensable para el entendimiento del mismo.
Se explica muchos de los conceptos de ASP.NET, se detalla características del
IDE Visual Studio y se explica cómo es el proceso de desarrollo de una
aplicación web en ASP.NET.
Se toca también el tema de SQL Server y como este es una parte
fundamental al momento de desarrollar una aplicación y finalmente se da una
breve explicación de las tecnologías requerías si es que se desea publicar la
aplicación.
10
Capítulo I
Reseña Empresarial
11
1.1 Acerca de Tata Consultancy Services, Ltd.
Tata Consultancy Services (TCS) fue fundada en 1968. Es una empresa
multinacional proveniente de la India dedicada a la tecnología de información
(TI), soluciones de negocios y outsourcing de servicios, con sede en Mumbai,
Maharashtra[1].
TCS es una empresa líder en el mercado mundial y entre los 10 mejores
lugares de empresas de tecnología del mundo. Sobre la base de más de 40
años de experiencia, un verdadero valor añadido a las organizaciones globales
a través de experiencia en el campo además de soluciones con éxito probado
en el campo y servicio de clase mundial[1].
TCS México comenzó sus operaciones en la ciudad de México en el año
2003, para abrir en 2007 su GDC en Guadalajara y en 2009 en Querétaro.
Desde su comienzo se brindaron servicios avanzados y especializados de TI,
consultoría, testing, desarrollo de software, tercerización de procesos de
negocios, centro de contacto, soluciones de infraestructura de TI, servicios
industriales y de ingeniería, y soluciones basadas en productos exclusivos de
TCS tanto para clientes existentes como potenciales(Ver Figura 1.1).
1.-Figura 1.1 Logotipo de TCS
Figura 1.1 Logotipo de TCS
12
1.1.1 Visión
Innovar en el mercado de tecnología de información, ofreciendo la más amplia
gama de soluciones integradas y asesoría informática con calidad mundial[1].
1.1.2 Misión
Ofrecer soluciones integradas y tecnologías de avanzada para el manejo de la
información, que satisfagan las necesidades de nuestros clientes a través de los
mejores recursos tecnológicos y de calidad internacional [1].
1.1.3 Valores
Responsabilidad
Honestidad
Compromiso
Respeto
Integridad
Excelencia
1.1.4 Objetivo
Alcanzar resultados de negocios reales que permitan a la vez mantener y
transformar operaciones empresariales de una forma eficaz. Proporcionar un
nivel de certeza que ningún otro competidor puede igualar, gracias a que
cumplimos con los requerimientos dentro de los plazos y presupuestos
13
previstos aplicando los más altos estándares de calidad, además de obtener la
mayor eficiencia y capacidad de respuesta para el cliente, pudiendo desplazar
las inversiones hacia iniciativas estratégicas en lugar de funciones tácticas[1].
1.2. TCS en México
TCS México comienza sus operaciones en la ciudad de México en el
año 2003, para abrir en 2007 su GDC en Guadalajara y en 2009 en
Querétaro. Desde su comienzo se brindaron servicios avanzados y
especializados de TI, consultoría, testig, desarrollo de software,
tercerización de procesos de negocios, centro de contacto, soluciones de
infraestructura de TI, servicios industriales y de ingeniería, y soluciones
basadas en productos exclusivos de TCS tanto para clientes existentes
como potenciales[1].
México es parte fundamental de TCS Latinoamérica, brazo de negocios
de Tata Consultancy Services que opera a lo largo de toda la región
latinoamericana, operando en Centros de Entrega Global (GDC), en
Argentina, Brasil, Chile, Colombia, Ecuador, Perú y Uruguay. Cuenta con
centros de servicios de tercerización de procesos de negocios en Chile y
Uruguay. La operación hoy en día tiene 3 modernos centros: El de
Guadalajara es el más antiguo, y fue inaugurado por el presidente de
México C. Felipe Calderón en 2007; otro se encuentra también en
Guadalajara; y el tercero en la ciudad de Querétaro. 2007 y 2009 fueron
respectivamente sus fechas de apertura [1].
Todos estos Centros de Entrega Globales cuentan con certificación en
altos niveles de calidad y servicio. Asimismo, la empresa cuenta con un
sistema interno IQMS, alineado a estándares internacionales; ISO 9001,
ISO 20000, ISO 27000, TL 9000, así como modelos CMMI Nivel 5, el
estándar de calidad más alto de la industria. Además operan cumpliendo
los estándares más altos de infraestructura y seguridad: física, de redes,
personal, y de sistemas [1].
14
Muchos factores hacen de México un eslabón muy importante en la
estrategia de expansión de TCS en la región. Entre ellos, la cercanía en
distancia y husos horarios con los Estados Unidos, la estabilidad política y
económica, y un alto nivel de sus profesionales universitarios [1].
Hoy son cientos los profesionales que vuelcan su talento, pasión y
compromiso, con el objetivo de hacer crecer día a día la operación. Todos
ellos cumplen funciones diferentes pero complementarias a la estrategia de
la organización [1].
Algunos de los principales clientes de TCS son: Aeroméxico, IMSS,
Bank of America, GE, JCI, Ceridian, Verizon, Banco Santander, BAC
Credomatic, Banco Interamericano de Desarrollo, Banamex y América
Móvil [1].
1.3 Servicios que ofrece
1.3.1 Servicios de TI
Para lograr una máxima flexibilidad, rapidez y eficiencia es importante
contar con una estrategia de TI sólida. Las ofertas de servicios de TI de
TCS ayudan a las empresas a aprovechar al máximo sus inversiones de TI,
desde la prestación de soluciones de integración de sistemas, servicios de
desarrollo y gestión de aplicaciones hasta prueba de soluciones [1].
Se ofrecen servicios de:
Desarrollo personalizado de aplicaciones
Gestión de aplicaciones
Migración y reingeniería
Integración de sistemas
Pruebas (testing)
15
Ingeniería de rendimiento
Los servicios de TI de TCS permiten acelerar los tiempos de
comercialización, mejoran los costos y facilitan tanto eficiencia energética
como una mayor productividad [1].
1.3.2 Consultoría
Consultoría de negocios, que incluye gestión de procesos comerciales,
gestión de cambios y gestión de programas.
Consultoría en TI, que incluye arquitectura y tecnología, gestión de
riesgo de información, servicios de infraestructura, gestión de procesos y
servicios de TI, estrategia y dirección de TI, gestión de datos maestros,
soluciones de ingeniería del rendimiento y garantía y pruebas de calidad
[1].
1.3.3 Servicios industriales y de ingeniería
Durante más de dos décadas, TCS ha brindado soluciones de ingeniería
a través de varios sectores, permitiendo a los clientes fomentar la
innovación de productos, mejorar las eficiencias operativas y disminuir el
tiempo de comercialización para sus productos [1].
Soluciones de desarrollo de productos nuevos (NPD)
Soluciones y servicios de planta
Soluciones de gestión del ciclo de vida de los productos (PLM)
Soluciones tecnológicas geoespaciales
Los servicios de ingeniería de TCS abarcan los sectores siguientes:
Aeroespacial y defensa
Automotriz
Ciencias de la vida y dispositivos médicos
16
Alta tecnología
Telecomunicaciones
Energía
Recursos: metales y minería
Servicios públicos
Movimiento de tierra y equipos agrícolas
Maquinaria de potencia
Venta minorista
Bienes de consumo empaquetados
Transporte
17
Capítulo II
Marco teórico
18
2.1 Introducción
Por motivos de confidencialidad respecto al proyecto tanto de la empresa como
de los clientes de ésta, la información que se manejara dentro de mi reporte es
limitada y supervisada por mi asesor externo, ya que así se establece en los
contratos de confidencialidad que son manejados por la empresa.
La implementación de tecnologías de la información para la gestión y
mejoramientos de diversas actividades, procesos y funciones que las empresas
requieran realizar para la automatización de dichas actividades, Por ello ha
llevado a las empresas a realizarse actualmente una gran variedad de
aplicaciones y sistemas que beneficien de forma directa tanto en el
rendimiento, como en la calidad de los servicios y productos que se ofrecen,
utilizando medios tecnológicos para lograr que todos estos objetivos sean
alcanzados.
2.2 Tecnologías implementadas
Para la realización de mis actividades, se usaron tecnologías que combinan
bases de datos, lenguajes de programación orientados a objetos y
herramientas web, que en conjunto realizan en su totalidad los procesos.
2.2.1 Ambiente de desarrollo implementado
2.2.1.1 POO
¿Qué es POO?
La Programación Orientada a Objetos (POO u OOP según sus siglas en inglés)
es un paradigma de programación que usa objetos y sus interacciones para
19
diseñar aplicaciones y programas de computadora. Está basado en varias
técnicas, incluyendo herencia, modularidad, polimorfismo, y encapsulamiento.
Su uso se popularizó a principios de la década de 1990. Actualmente son
muchos los lenguajes de programación que soportan la orientación a objetos [2].
2.2.1.2 Historia De POO
La Programación Orientación a Objetos (P.O.O.) surge en Noruega en 1967 con
un lenguaje llamado Simula 67, desarrollado por Krinsten Nygaard y Ole-Johan
Dahl, en el centro de cálculo noruego.
Simula 67 introdujo por primera vez los conceptos de clases, corrutinas y
subclases (conceptos muy similares a los lenguajes Orientados a Objetos de
hoy en día) [3].
El nacimiento de la Programación Orientación a Objetos en Europa pasó
inadvertido para gran parte de los programadores. Hoy tenemos la Orientación
a Objetos como un niño de 33 años al que todos quieren bautizar [3].
Uno de los problemas de inicio de los años setentas era que pocos sistemas
lograban terminar, pocos se terminaban con los requisitos iniciales y no todos
los que se terminaron cumpliendo con los requerimientos se usaban según lo
planificado. El problema consistía en cómo adaptar el software a nuevos
requerimientos imposibles de haber sido planificados inicialmente [3].
Este alto grado de planificación y previsión es contrario a la propia realidad. El
hombre aprende y crea a través de la experimentación, no de la planeación. La
Orientación a Objetos brinda estos métodos de experimentación, no exige la
planificación de un proyecto por completo antes de escribir la primera línea de
código [3].
En los 70’s científicos del centro de investigación en Palo Alto Xerox (Xerox
park) inventaron el lenguaje Small talk que dio respuesta al problema anterior
(investigar no planificar) [3].
20
Small talk fue el primer lenguaje Orientado a Objetos puro de los lenguajes
Orientados a Objetos, es decir, únicamente utiliza clases y objetos (Java usa
tipos de datos primitivos, o bien los Wrappers que son clases que encapsulan
tipos de datos primitivos).Quien tuvo la idea fue D. Parnas cuando propuso la
disciplina de ocultar la información. Su idea era encapsular cada una de las
variables globales de la aplicación en un solo módulo junto con sus operaciones
asociadas, sólo mediante las cuales se podía tener acceso a esas variables [3].
El resto de los módulos (objetos) podían acceder a las variables sólo de forma
indirecta mediante las operaciones diseñadas para tal efecto.
En los años 80’s Bjarne Stroustrup de AT&T Labs., amplió el lenguaje C para
crear C++ que soporta la programación Orientada a Objetos.
En esta misma década se desarrollaron otros lenguajes Orientados a Objetos
como Objective C, Common Lisp Object System (CIOS), object Pascal, Ada y
otros [3].
Posteriores mejoras en herramientas y lanzamientos comerciales de C++ por
distintos fabricantes, justificaron la mayor atención hacia la programación
Orientada a Objetos en la comunidad de desarrollo de software. El desarrollo
técnico del hardware y su disminución del costo fue el detonante final. Con más
computadoras al alcance de más personas más programadores, más problemas
y más algoritmos surgieron [3].
En el inicio de los 90’s se consolida la Orientación a Objetos como una de las
mejores maneras para resolver problemas. Aumenta la necesidad de generar
prototipos más rápidamente (concepto RAD Rapid Aplication Developments).
Sin esperar a que los requerimientos iniciales estén totalmente precisos.
En 1996 surge un desarrollo llamado JAVA (extensión de C++). Su filosofía es
aprovechar el software existente. Facilitar la adaptación del mismo a otros usos
diferentes a los originales sin necesidad de modificar el código ya existente.
En 1997-98 se desarrollan herramientas ‘CASE’ orientadas a objetos (como el
diseño asistido por computadora) [3].
21
Del 98 a la fecha se desarrolla la arquitectura de objetos distribuidos RMI,
Corba, COM, DCOM.
Actualmente la orientación a objetos parece ser el mejor paradigma, no
obstante, no es una solución a todos los problemas. Trata de eliminar la crisis
del software. Entre los creadores de metodologías orientadas a objetos se
encuentran: G. Booch, Rambaught, Ivar Jacobson y Peter Cheng[3]. (Ver figura
2.1)
2.-Figura 2.1 Diagrama de la evolución de los lenguajes de programación.
Figura 2.1 Diagrama de la evolución de los lenguajes de programación.
Figura 2.1 Diagrama de la evolución de los lenguajes de programación.
2.2.1.3 Etapas De la Evolución De POO
1. a Etapa. Lenguajes Ensambladores. La unidad de programación es la
instrucción, compuesta de un operador y los operandos. El nivel de abstracción
que se aplica es muy bajo [4]..
2. a Etapa. Lenguajes de Programación: Fortran, Algol, Cobol. Los objetos y
operaciones del mundo real se podían modelar mediante datos y estructuras de
22
control separadamente. En esta etapa el diseño del software se enfoca sobre la
representación del detalle procedimental y en función del lenguaje elegido.
Conceptos como: refinamiento progresivo, modularidad procedimientos y
programación estructurada son conceptos básicos que se utilizan en esta
etapa. Existe mayor abstracción de datos [4]..
3. a Etapa. Se introducen en esta etapa los conceptos de abstracción y
ocultación de la información. Programación Orientada a objetos [4].
4. a Etapa. A partir de los años setenta se trabaja sobre una nueva clase de
lenguajes de simulación y sobre la construcción de prototipos tales como
Simula-70 y basados en parte de éste, el Smalltalk. En estos lenguajes, la
abstracción de datos tiene una gran importancia y los problemas del mundo
real se representan mediante objetos de datos a los cuales se les añade el
correspondiente conjunto de operaciones asociados a ellos. Términos como
Abstracción de datos, objeto, encapsulación entre otros, son conceptos básicos
sobre la que se fundamenta de la POO [4].
2.2.1.4 La Plataforma .NET
La plataforma .NET es la propuesta de Microsoft para competir con la
plataforma Java. Mientras que Java se caracteriza por la máxima "write once,
run anywhere", la plataforma .NET de Microsoft está diseñada para que se
puedan desarrollar componentes software utilizando casi cualquier lenguaje de
programación, de forma que lo que escribamos en un lenguaje pueda utilizarse
desde cualquier otro de la manera más transparente posible (utilizando
servicios web como middleware). Esto es, en vez de estar limitados a un único
lenguaje de programación, permitimos cualquier lenguaje de programación,
siempre y cuando se adhiera a unas normas comunes establecidas para la
plataforma .NET en su conjunto. De hecho, existen compiladores de múltiples
lenguajes para la plataforma .NET: Visual Basic .NET, C#, Managed C++,
Oberon, Component Pascal, Eiffel, Smalltalk, Cobol, Fortran, Scheme, Mercury,
Mondrian/Haskell, Perl, Python, SML.NET.
23
La plataforma .NET apuesta por un futuro en el que las aplicaciones se
ejecutan de manera distribuida en Internet. Así, una aplicación se ejecuta en un
solo servidor y no existen múltiples copias de la misma. Además, una misma
aplicación puede "adornarse" con distintas interfaces para que, desde
diferentes 33dispositivos (teléfonos móviles, PDAs, portátiles, etc.) pueda
accederse a la misma. La plataforma .NET no es más que un conjunto de
tecnologías para desarrollar y utilizar componentes que nos permitan crear
formularios web, servicios web y aplicaciones Windows [5]. (Ver Figura 2.2)
3.-Figura 2.2 Esquema del .NET Framework
Figura 2.2 Esquema del .NET Framework
2.2.1.5 CLR (Common Language Runtime)
El Common Language Runtime (CLR) es el núcleo de la plataforma .NET ya
que es el encargado de gestionar la ejecución de código compilado para la
plataforma .NET. Puede asimilarse a la máquina virtual de Java.
Las dos principales características del CLR son:
24
Ejecución multiplataforma: El CLR actúa como una máquina virtual,
encargándose de ejecutar las aplicaciones diseñadas para la plataforma
.NET. Su especificación está abierta, por lo que cualquier plataforma
para la que exista una versión del CLR podrá ejecutar cualquier
aplicación .NET. Microsoft ha desarrollado versiones del CLR para la
mayoría de las versiones de Windows. Por otro lado Microsoft ha
firmado un acuerdo con Corel para portar el CLR a Linux y también hay
terceros que están desarrollando de manera independiente versiones de
libre distribución del CLR para Linux. Asimismo, dado que la arquitectura
del CLR está totalmente abierta, es posible que en el futuro se diseñen
versiones del mismo para otros sistemas operativos.
Integración de lenguajes: Desde cualquier lenguaje para el que exista
un compilador que genere código para la plataforma .NET es posible
utilizar código generado para la misma usando cualquier otro lenguaje
tal y como si de código escrito usando el primero se tratase.
Otras características destacables son:
Modelo de programación consistente: A todos los servicios y
facilidades ofrecidos por el CLR se accede de la misma forma: a través
de un modelo de programación orientado a objetos.
Eliminación del "infierno de las DLLs": En la plataforma .NET
desaparece el problema conocido como "infierno de las DLLs" que se da
en los sistemas operativos actuales de la familia Windows ya que en la
plataforma .NET las versiones nuevas de las DLLs pueden coexistir con
las viejas.
Gestión de memoria: El CLR incluye un recolector de basura que
evita que el programador tenga que tener en cuenta cuándo ha de
destruir los objetos que dejen de serle útiles.
Este recolector es una aplicación que se activa cuando se quiere crear
algún objeto nuevo y se detecta que no queda memoria libre para
hacerlo. Entonces el recolector recorre la memoria dinámica asociada a
la aplicación, detecta qué objetos hay en ella que no pueda ser accedido
25
por el código de la aplicación, y los elimina para limpiar la memoria de
"objetos basura" y permitir la creación de otros nuevos. Gracias a este
recolector se evitan errores de programación muy comunes como
intentos de borrado de objetos ya borrados, agotamiento de memoria por
olvido de eliminación de objetos inútiles o solicitud de acceso a
miembros de objetos ya destruidos.
Seguridad de tipos: El CLR facilita la detección de errores de
programación difíciles de localizar comprobando que toda conversión de
tipos que se realice durante la ejecución de una aplicación .NET se haga
de modo que los tipos origen y destino sean compatibles.
Aislamiento de procesos: El CLR asegura que desde código
perteneciente a un determinado proceso no se pueda acceder a código
o datos pertenecientes a otro, ni se permite acceder a posiciones
arbitrarias de memoria.
Tratamiento de excepciones: En el CLR todo los errores que se
puedan producir durante la ejecución de una aplicación se propagan de
igual manera: mediante excepciones.
Soporte multihilo: El CLR es capaz de trabajar con aplicaciones
divididas en múltiples hilos de ejecución que pueden ir evolucionando
por separado en paralelo o intercalando, según el número de
procesadores de la máquina sobre la que se ejecuten. Las aplicaciones
pueden lanzar nuevos hilos, destruirlos, suspenderlos por un tiempo o
hasta que les llegue una notificación, enviarles notificaciones,
sincronizarlos, etc.
Distribución transparente: El CLR ofrece la infraestructura necesaria
para crear objetos remotos y acceder a ellos de manera completamente
transparente a su localización real, tal y como si se encontrasen en la
máquina que los utiliza.
Seguridad avanzada: El CLR proporciona mecanismos para restringir la
ejecución de ciertos códigos o los permisos asignados a los mismos
según su procedencia o el usuario que los ejecute [6].
26
2.2.1.6 Desarrollo de aplicaciones En .NET
Formularios Windows
Los formularios Windows están construidos sobre la base de la plataforma
.NET y permiten construir complejas aplicaciones Windows en un entorno de
desarrollo visual de aplicaciones (RAD: Rapid Application Development), tal
como hasta ahora se venía haciendo con lenguajes del estilo de Visual Basic o
Delphi [7].
Formularios web
Los formularios web, que se construyen con ASP.NET, constituyen la evolución
natural y lógica de ASP. Siguiendo el mismo estilo que su antecesor (editar una
página y listo), ASP.NET permite utilizar controles complejos, facilita la gestión
de sesiones, permite separar la interfaz de la lógica interna, elimina la distinción
entre ASP e ISAPI y nos permite emplear cualquier lenguaje de programación
que esté soportado por la plataforma .NET [8].
2.2.1.7 Soporte para múltiples lenguajes
Para permitir el desarrollo de componentes utilizando múltiples lenguajes de
programación, la plataforma .NET establece un sistema de tipos común (CTS:
Common Type System) y una especificación que permite que puedan
interactuar fragmentos de código escritos en distintos lenguajes (CLS: Common
Language Specification) [9].
La plataforma .NET permite utilizar una amplia gama de lenguajes de
programación, como es el caso de
C#: Un nuevo lenguaje creado para la plataforma .NET. Se puede
considerar una versión "segura" de C++ y viene a ser un híbrido entre
Java (de Sun) y Delphi (de Borland). Es un lenguaje de programación
orientado a objetos que pretende facilitar el desarrollo de componentes
software robusto y duradero que preserven la inversión realizada en su
desarrollo (en palabras de Microsoft) [9].
27
Visual Basic .NET: Moderniza y simplifica el lenguaje de programación
Visual Basic, con algunas novedades sintácticas, herencia simple,
tratamiento de hebras y manejo de excepciones [9].
2.2.1.8 Ejecución de código
Para que un lenguaje de programación sea soportado por la plataforma .NET,
ha de existir un compilador que traduzca de este lenguaje a MSIL ("managed
code"). A la hora de ejecutar el código intermedio, éste es siempre compilado a
código nativo [10].
2.2.1.9 Características De .NET
Es el encargado de proveer lo que se llama código administrado, es decir, un
entorno que provee servicios automáticos al código que se ejecuta. Los
servicios son variados:
Cargador de clases: permite cargar en memoria las clases.
Compilador MSIL a nativo: transforma código intermedio de alto nivel
independiente del hardware que lo ejecuta a código de máquina
propio del dispositivo que lo ejecuta.
Administrador de código: coordina toda la operación de los distintos
subsistemas del Common Language Runtime.
Recolector de basura: elimina de memoria objetos no utilizados
automáticamente.
Motor de seguridad: administra la seguridad del código que se
ejecuta.
Motor de depuración: permite hacer un seguimiento de la ejecución
del código aun cuando se utilicen lenguajes distintos.
Verificador de tipos: controla que las variables de la aplicación usen
el área de memoria que tienen asignado.
Administrador de excepciones: maneja los errores que se producen
durante la ejecución del código.
Soporte de multiproceso (hilos): permite desarrollar aplicaciones que
ejecuten código en forma paralela.
28
Empaquetador de COM: coordina la comunicación con los
componentes COM para que puedan ser usados por el .NET
Framework.
Biblioteca de Clases Base que incluye soporte para muchas
funcionalidades comunes en las aplicaciones [11].
2.2.1.10 .NET vs. J2EE [Java 2 Enterprise Edition]
Tabla Comparativa entre ambas tecnologías (Ver Figura 2.3)
4.-Figura 2.3 Comparación entre lenguaje de programación web
Figura 2.3 Comparación entre lenguaje de programación web
2.2.1.11 ASP Clásico
¿Qué es ASP Clásico?
29
Active Server Pages (ASP), también conocido como ASP clásico es una
tecnología de Microsoft del tipo "lado del servidor" para páginas web generadas
dinámicamente.
Está limitada (la tecnología ASP) a funcionar solo en Microsoft Windows, pues
requiere el servidor IIS [12].
Las páginas pueden ser generadas mezclando código de scripts del lado del
servidor (incluyendo acceso a base de datos) con HTML. (Ver Figura 2.4)
5.-Figura 2.4 Código en ASP Clásico
Figura 2.4 Código en ASP Clásico
2.2.1.12 Historia de ASP Clásico
Microsoft introdujo la tecnología llamada Active Server Pages en diciembre de
1996. Es parte del Internet Information Server (IIS) desde la versión 3.0 y es
una tecnología de páginas activas que permite el uso de diferentes scripts y
componentes en conjunto con el tradicional HTML para mostrar páginas
generadas dinámicamente. La definición contextual de Microsoft es que "Las
Active Server Pages son un ambiente de aplicación abierto y gratuito en el que
se puede combinar código HTML, scripts y componentes ActiveX del servidor
para crear soluciones dinámicas y poderosas para el web" [13].
30
Después del lanzamiento del Internet Information Services 4.0 en 1997,
Microsoft comenzó a investigar las posibilidades para un nuevo modelo de
aplicaciones web que pudiera resolver las quejas comunes sobre ASP,
especialmente aquellas con respecto a la separación de la presentación y el
contenido y ser capaz de escribir código "limpio".1 A Mark Anders, un
administrador del equipo de IIS y Scott Guthrie, quien se había unido a
Microsoft en 1997 después de graduarse de la Universidad Duke, se les dio la
tarea de determinar cómo debería ser ese modelo. El diseño inicial fue
desarrollado en el curso de dos meses por Anders y Guthrie, y Guthrie codificó
los prototipos iniciales durante las celebraciones navideñas de 1997[13].
2.2.1.13 ASP.NET
Es un framework para aplicaciones web desarrollado y comercializado por
Microsoft. Es usado por programadores y diseñadores para construir sitios web
dinámicos, aplicaciones web y servicios web XML [13].
2.2.1.14 Características De ASP.NET
Páginas
Las páginas de ASP.NET, conocidas oficialmente como "web forms"
(formularios web), son el principal medio de construcción para el desarrollo de
aplicaciones web.8 Los formularios web están contenidos en archivos con una
extensión ASPX; en jerga de programación, estos archivos típicamente
contienen etiquetas HTML o XHTML estático, y también etiquetas definiendo
Controles Web que se procesan del lado del servidor y Controles de Usuario
donde los desarrolladores colocan todo el código estático y dinámico requerido
por la página web. Adicionalmente, el código dinámico que se ejecuta en el
servidor puede ser colocado en una página dentro de un bloque <% -- código
dinámico -- %> que es muy similar a otras tecnologías de desarrollo como PHP,
JSP y ASP, pero esta práctica es, generalmente, desaconsejada excepto para
propósitos de enlace de datos pues requiere más llamadas cuando se genera
la página [13].
31
El modelo Code-behind
Microsoft recomienda que para realizar programación dinámica se use el
modelo code-behind, o de respaldo, que coloca el código en un archivo
separado o en una etiqueta de script especialmente diseñada. Los nombres de
los archivos code-behind están basados en el nombre del archivo ASPX tales
como MiPagina.aspx.cs o MiPagina.aspx.vb (esta práctica se realiza
automáticamente en Microsoft Visual Studio y otros entornos de desarrollo).
Cuando se usa este estilo de programación, el desarrollador escribe el código
correspondiente a diferentes eventos, como la carga de la página, o el clic en
un control, en vez de un recorrido lineal a través del documento [13].
El modelo code-behind de ASP.NET marca la separación del ASP clásico y
alienta a los desarrolladores a construir aplicaciones con la idea de
presentación y contenido separados en mente. En teoría, esto permite a un
diseñador web, por ejemplo, enfocarse en la creación del diseño con menos
posibilidades de alterar el código de programación mientras lo hace [13]. Esto es
similar a la separación en el Modelo Vista Controlador (Ver Figura 2.6).
32
6.-Figura 2.5 Ejemplo de code-behind
Figura 2.5 Ejemplo de code-behind
Controles de usuario
ASP.NET permite la creación de componentes reutilizables a través de la
creación de Controles de Usuario (User Controls). Un control de usuario sigue
la misma estructura que un formulario web, excepto que los controles derivan
de la clase System.Web.UI.UserControl, y son almacenados en archivos
ASCX. Como los archivos ASPX, un ASCX contiene etiquetas HTML o XHTML,
además de etiquetas para definir controles web y otros controles de usuario.
También pueden usar el modelo code-behind [13].
Los programadores pueden agregar sus propias propiedades y métodos,9 y
manejadores de eventos.10 Un mecanismo de eventos en burbuja proporciona
la capacidad de pasar un evento disparado por un control de usuario a la
página que lo contiene [13].
33
2.2.1.15 HTML
¿Qué es HTML?
HTML es el lenguaje que se emplea para el desarrollo de páginas de internet.
Está compuesto por una serie de etiquetas que el navegador interpreta y da
forma en la pantalla. HTML dispone de etiquetas para imágenes, hipervínculos
que nos permiten dirigirnos a otras páginas, saltos de línea, listas, tablas, etc.
[14]. Etiquetas disponibles en HTML (Ver Figura 2.6).
7.-Figura 2.6 Listado De Etiquetas HTML
Figura 2.6 Listado De Etiquetas HTML
34
2.2.1.16 Historia HTML
El origen de HTML se remonta a 1980, cuando el físico Tim Berners-Lee,
trabajador del CERN (Organización Europea para la Investigación Nuclear)
propuso un nuevo sistema de "hipertexto" para compartir documentos.
Los sistemas de "hipertexto" habían sido desarrollados años antes. En el
ámbito de la informática, el "hipertexto"permitía que los usuarios accedieran a
la información relacionada con los documentos electrónicos que estaban
visualizando. De cierta manera, los primitivos sistemas de "hipertexto" podrían
asimilarse a los enlaces de las páginas web actuales [15].
Tras finalizar el desarrollo de su sistema de "hipertexto", Tim Berners-Lee lo
presentó a una convocatoria organizada para desarrollar un sistema de
"hipertexto" para Internet. Después de unir sus fuerzas con el ingeniero de
sistemas Robert Cailliau, presentaron la propuesta ganadora llamada
WorldWideWeb (W3) [15].
El primer documento formal con la descripción de HTML se publicó en 1991
bajo el nombre HTML Tags (Etiquetas HTML) y todavía hoy puede ser
consultado online a modo de reliquia informática [15].
La primera propuesta oficial para convertir HTML en un estándar se realizó en
1993 por parte del organismo IETF (Internet Engineering Task Force). Aunque
se consiguieron avances significativos (en esta época se definieron las
etiquetas para imágenes, tablas y formularios) ninguna de las dos propuestas
de estándar, llamadas HTML y HTML+ consiguieron convertirse en estándar
oficial [15].
35
En 1995, el organismo IETF organiza un grupo de trabajo de HTML y consigue
publicar, el 22 de septiembre de ese mismo año, el estándar HTML 2.0. A
pesar de su nombre, HTML 2.0 es el primer estándar oficial de HTML[15].
A partir de 1996, los estándares de HTML los publica otro organismo de
estandarización llamado W3C (World Wide Web Consortium). La versión HTML
3.2 se publicó el 14 de Enero de 1997 y es la primera recomendación de HTML
publicada por el W3C. Esta revisión incorpora los últimos avances de las
páginas web desarrolladas hasta 1996, como applets de Java y texto que fluye
alrededor de las imágenes [15].
2.2.1.17 Historia HTML
¿Qué es MVC?
Es un patrón de arquitectura de software que separa los datos y la lógica de
negocio de una aplicación de la interfaz de usuario y el módulo encargado de
gestionar los eventos y las comunicaciones. Para ello MVC propone la
construcción de tres componentes distintos que son el modelo, la vista y el
controlador, es decir, por un lado define componentes para la representación
de la información, y por otro lado para la interacción del usuario. Este patrón de
arquitectura de software se basa en las ideas de reutilización de código y la
separación de conceptos, características que buscan facilitar la tarea de
desarrollo de aplicaciones y su posterior mantenimiento [16]. (Ver Figura 2.7)
36
8.-Figura 2.2.1.17.A. Diagrama que muestra la relación entre el modelo, la vista y el controlador
Figura 2.7 Diagrama que muestra la relación entre el modelo, la vista y el controlador.
2.2.1.18 Historia de MVC (Modelo–vista–controlador)
El patrón MVC fue una de las primeras ideas en el campo de las interfaces
gráficas de usuario y uno de los primeros trabajos en describir e implementar
aplicaciones software en términos de sus diferentes funciones [17].
MVC fue introducido por Trygve Reenskaug (web personal) en Smalltalk-76
durante su visita a Xerox Parc en los años 70 y, seguidamente, en los años 80,
Jim Althoff y otros implementaron una versión de MVC para la biblioteca de
clases de Smalltalk-80. Sólo más tarde, en 1988, MVC se expresó como un
concepto general en un artículo sobre Smalltalk-80 [17].
En esta primera definición de MVC el controlador se definía como "el módulo
que se ocupa de la entrada" (de forma similar a como la vista "se ocupa de la
salida"). Esta definición no tiene cabida en las aplicaciones modernas en las
que esta funcionalidad es asumida por una combinación de la 'vista' y algún
framework moderno para desarrollo. El 'controlador', en las aplicaciones
modernas de la década de 2000, es un módulo o una sección intermedia de
código, que hace de intermediario de la comunicación entre el 'modelo' y la
37
'vista', y unifica la validación (utilizando llamadas directas o el "observer" para
desacoplar el 'modelo' de la 'vista' en el 'modelo' activo )[17].
2.2.1.19 Historia De C#
Durante el desarrollo de la plataforma .NET, las bibliotecas de clases fueron
escritas originalmente usando un sistema de código gestionado llamado Simple
Managed C (SMC). En enero de 1999, Anders Hejlsberg formó un equipo con
la misión de desarrollar un nuevo lenguaje de programación llamado Cool
(Lenguaje C orientado a objetos). Este nombre tuvo que ser cambiado debido a
problemas de marca, pasando a llamarse C#. La biblioteca de clases de la
plataforma .NET fue migrada entonces al nuevo lenguaje [18].
Hejlsberg lideró el proyecto de desarrollo de C#. Anteriormente, ya había
participado en el desarrollo de otros lenguajes como Turbo Pascal, Delphi y
J++ [18].
2.2.1.20 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 (ECMA-334) e ISO (ISO/IEC
23270). C# es uno de los lenguajes de programación diseñados para la
infraestructura de lenguaje común [19].
Su sintaxis básica deriva de C/C++ y utiliza el modelo de objetos de la
plataforma .NET, similar al de Java, aunque incluye mejoras derivadas de otros
lenguajes [19].
38
El nombre C Sharp fue inspirado por la notación musical, donde '#' (sostenido,
en inglés sharp) indica que la nota (C es la nota do en inglés) es un semitono
más alta, sugiriendo que C# es superior a C/C++. Además, el signo '#' se
compone de cuatro signos '+' pegados [19].
2.2.1.21 Visual Studio
¿Qué es Visual Studio?
Microsoft Visual Studio es un entorno de desarrollo integrado (IDE, por sus
siglas en inglés) para sistemas operativos Windows. Soporta múltiples
lenguajes de programación tales como C++, C#, Visual Basic .NET, F#, Java,
Python, Ruby, PHP; al igual que entornos de desarrollo web como ASP.NET
MVC, Django, etc., a lo cual sumarle las nuevas capacidades online bajo
Windows Azure en forma del editor Monaco [20].
2.2.1.22 Historia De Visual Studio
Se lanzó en 1998 y fue la última versión en ejecutarse en la plataforma Win9x.
Los números de versión de todas las partes constituyentes pasaron a 6.0,
incluyendo Visual J++ y Visual InterDev, que se encontraban en las versiones
1.1 y 1.0 respectivamente. Esta versión fue la base para el sistema de
desarrollo de Microsoft para los siguientes 4 años, en los que Microsoft migró
su estrategia de desarrollo al .NET Framework [21].
Visual Studio 6.0 fue la última versión en que Visual Basic se incluía de la
forma en que se conocía hasta entonces; versiones posteriores incorporaron
una versión muy diferente del lenguaje con muchas mejoras, fruto de la
plataforma .NET. También supuso la última versión en incluir Visual J++, que
proporcionaba extensiones de la plataforma Java, lo que lo hacía incompatible
con la versión de Sun Microsystems. Esto acarreó problemas legales a
Microsoft, y se llegó a un acuerdo en el que Microsoft dejaba de comercializar
herramientas de programación que utilizan la máquina virtual de Java [21].
39
Aunque el objetivo a largo plazo de Microsoft era unificar todas las
herramientas en un único entorno, esta versión en realidad añadía un entorno
más a Visual Studio 5.0: Visual J++ y Visual Interdev se separaban del entorno
de Visual C++, al tiempo que Visual FoxPro y Visual Basic seguían
manteniendo su entorno específico [21].
2.3.1 SQL Server
2.3.1.1 Manejador SQL Server
SQL Server es un sistema de gestión de bases de datos relacionales (RDBMS)
de Microsoft que está diseñado para el entorno empresarial. SQL Server se
ejecuta en T-SQL (Transact -SQL), un conjunto de extensiones de
programación de Sybase y Microsoft que añade varias características a SQL
estándar, incluyendo control de transacciones, excepción y manejo de errores,
procesamiento fila, así como variables declaradas[22].
Ventajas de SQL
1. Independencia del fabricante.
2. Transportabilidad entre sistemas informáticos.
3. Estándares SQL
4. Acuerdos y obligaciones de IBM (DB2).
5. Obligaciones de Microsoft (SQL Server, ODBC y ADO)
6. Fundamentos relacionales
7. Estructura de alto nivel en inglés.
40
8. Consultas ad hoc interactivas.
9. Acceso mediante programación a bases de datos.
10. Vistas múltiples de los datos.
11. Lenguaje completo de base de datos.
12. Definición dinámica de datos.
13. Arquitectura cliente/servidor.
14. Soporte de aplicaciones empresariales.
15. Extensibilidad y tecnología de objetos.
16. Acceso a bases de datos en Internet.
2.3.1.2 Historia De SQL
Empieza en 1974 con la definición, por parte de Donald Chamberlin y de otras
personas que trabajaban en los laboratorios de investigación de IBM, de un
lenguaje para la especificación de las características de las bases de datos que
adoptan el modelo relacional. Este lenguaje se llamaba SEQUEL (Structured
English Query Language) y se implementó en un prototipo llamado SEQUEL-
XRM entre 1974 y 1975. Las experimentaciones con ese prototipo condujeron,
entre 1976 y 1977, a una revisión del lenguaje (SEQUEL/2), que a partir de ese
momento cambió de nombre por motivos legales, convirtiéndose en SQL. El
prototipo (System R), basado en este lenguaje, se adoptó y utilizó internamente
en IBM y lo adoptaron algunos de sus clientes elegidos. Gracias al éxito de
este sistema, que no estaba todavía comercializado, también otras compañías
empezaron a desarrollar sus productos relacionales basados en SQL. A partir
de 1981, IBM comenzó a entregar sus productos relacionales y en 1983
empezó a vender DB2. En el curso de los años ochenta, numerosas compañías
(por ejemplo Oracle y Sybase, sólo por citar algunos) comercializaron
41
productos basados en SQL, que se convierte en el estándar industrial de hecho
por lo que respecta a las bases de datos relacionales [23].
En 1986, el ANSI adoptó SQL (sustancialmente adoptó el dialecto SQL de IBM)
como estándar para los lenguajes relacionales y en 1987 se transformó en
estándar ISO. Esta versión del estándar va con el nombre de SQL/86. En los
años siguientes, éste ha sufrido diversas revisiones que han conducido primero
a la versión SQL/89 y, posteriormente, a la actual SQL/92.
El hecho de tener un estándar definido por un lenguaje para bases de datos
relacionales abre potencialmente el camino a la intercomunicabilidad entre
todos los productos que se basan en él. Desde el punto de vista práctico, por
desgracia las cosas fueron de otro modo. Efectivamente, en general cada
productor adopta e implementa en la propia base de datos sólo el corazón del
lenguaje SQL (el así llamado Entry level o al máximo el Intermediate level),
extendiéndose de manera individual según la propia visión que cada cual tenga
del mundo de las bases de datos [23].
2.3.1.3 Arquitectura de Bases de Datos SQL Server
La arquitectura interna de las bases de datos en SQL Server está compuestas
por 2 tipos de estructura, la estructura lógica y la estructura física. Es muy
importante conocer cómo es que estas estructuras están compuestas y cuál es
la relación que tienen los objetos de base de datos con cada una de estas
estructuras [24]. (Ver Figura 2.8)
42
9.-Figura 2.8. Arquitectura de SQL Server
Figura 2.8. Arquitectura de SQL Server
Estructura Lógica:
Desde el punto de vista lógico, la base de datos debe tener al menos 1
“FileGroup” el cual contiene a toda la metadata de la misma base de datos, es
decir tablas y vistas de sistema, a este “FileGroup” inicial se le conoce como
“Primario” y está presente en todas las bases de datos. Todos los objetos de
usuario que contengan data, ya sean tablas o índices, deben estar ligados a un
“FileGroup”, esto se puede definir al momento de ejecutar la sentencia DDL de
creación del objeto, si no se indica a que “FileGroup” estará ligado ese objeto,
este pertenece al “FileGroup” por defecto definido en la base de datos. La base
de datos sólo puede tener definido 1 solo default “FileGroup” [24].
43
Las bases de datos pueden tener hasta 32767 “FileGroups” definidos, según
los límites establecidos para la última versión de SQL Server, la cual es SQL
Server 2008 R2. Uno de los propósitos de los “FileGroups” es poder distribuir la
data a través de varios discos duros físicos, de esta manera se puede obtener
mayor rendimiento en las operaciones de I/O debido a que más de un disco
trabajara al mismo tiempo. Otro de los propósitos es poder esconder la
ubicación física real de la información a los programadores, ya que para ellos la
tabla “X” pertenece al “FileGroup” “A”, pero no saben en que data files
físicamente se encuentra la información de la tabla “X” [24].
Los “FileGroups” pueden contener 1 o más “Datafiles”, y cada uno de estos
datafiles se puede encontrar en un discos diferentes, lo cual también agilizara
las consultas y los ingresos de información a las tablas que se encuentren
asignadas a este “FileGroup”, debido a que SQL Server distribuirá la
información uniformemente a través de todos los “DataFiles” del “FileGroup” [24].
Estructura Física:
Desde el punto de vista físico, como ya hemos visto, tenemos los “DataFiles”
que los en realidad los archivos de datos, es decir donde se guarda toda la
información de la base de datos. Un “DataFile” solo puede pertenecer a 1
“FileGroup” [24].
Internamente los “DataFiles” están divididos en “Extends” y estos a su vez en
“Pages”. Las “Pages” son la unidad mínima de almacenamiento dentro de la
base de datos. Un “Page” tiene 8 Kb de tamaño en espacio de disco. Un
“Extend” tiene 8 “Pages” contiguas que lo conforman, es decir, un “Extend”
tiene como tamaño 64 Kb de espacio en disco [24].
44
En un “Page” solo puede haber información de 1 sola tabla, es decir el espacio
de un “Page” no es compartido entre tablas o índices. En el caso de los
“Extends”, estos pueden ser de dos tipos:
“Mixed”: Los cuales son compartidos hasta por 8 objetos, uno por
cada “Page”.
“Uniform”: Los cuales solo pertenecen a un solo objeto, es decir que
todos los “Pages” pertenecen a un solo objeto.
Normalmente cuando se crea una nueva tabla esta es asignada a un “Extend”
de tipo “Mixed”, hasta alcanzar la utilización de hasta 8 “Pages”, a partir de ese
momento se asignan “Extends” de tipo “Uniform” para optimizar el uso del
espacio en la tabla [24].
Los “DataFiles” normalmente tienen 2 extensiones de archivo, las cuales son
estándar mas no obligatorias, la extensión “mdf” que se utiliza para el primer
“Datafile” perteneciente al “FileGroup” primario, y la extensión “ndf” que se
utiliza para los demás datafiles que se agregan posteriormente a los demás
“FileGroups” de la base de datos [24].
En el caso del “LogFile”, este no pertenece a un “FileGroup” en específico, en
cambio archivo está ligado directamente a la base de datos. Las bases de
datos de SQL Server solo pueden tener un solo “LogFile” activo al mismo
tiempo, si bien se pueden crear múltiples “LogFiles” en la base de datos, solo
uno podrá ser escrito, ya que solo uno puede estar activo, cuando este archivo
se llene, la base de datos pasará a escribir al siguiente archivo de
transacciones, y así sucesivamente. Por esta razón no es muy conveniente ni
útil tener más de un “LogFile” [24].
En conclusión espero que sea de ayuda estas explicaciones sobre la
arquitectura de una base de datos de SQL Server, si desean temas por favor
45
no duden en solicitarlo, haré lo posible para poder cubrir los temas solicitados
en el más corto tiempo [24].
2.3.1.4 T-SQL
Es una extensión al SQL de Microsoft y Sybase. SQL, que frecuentemente se
dice ser un Lenguaje de Búsquedas Estructurado (por sus siglas en inglés), es
un lenguaje de cómputo estandarizado, desarrollado originalmente por IBM
para realizar búsquedas, alterar y definir bases de datos relacionales utilizando
sentencias declarativas. T-SQL expande el estándar de SQL para incluir
programación procedural, variables locales, varias funciones de soporte para
procesamiento de strings, procesamiento de fechas, matemáticas, etc, y
cambios a las sentencias DELETE y UPDATE. Estas características
adicionales hacen de T-SQL un lenguaje que cumple con las características de
un autómata de Turing [25].
2.3.1.5 Mysql vs Sql Server
Sin lugar a dudas MySQL es el gestor de base de datos más popular usado en
la red. Sin embargo desde sus inicios su objetivo ha sido ser el gestor de base
de datos libre más rápido y libre pero sacrificando muchas características como
el ser compatible con ACID, procedimientos almacenados y otras
características que los desarrolladores agradecemos mucho (porque ahorran
cientos de líneas de código fuente) [26].
Una de las razones por la que MySQL es permanentemente comparado frente
a SQL Server es porque ambos son populares en la misma plataforma [26]. (Ver
Figura 2.8)
46
Característica MySQL SQL Server
Express
SQL Server
Costo Libre y de pago Libre De pago
Open Source Si No No
Plataformas Linux,Windows y
muchas otras
Sólo
Windows
Sólo Windows
Límite de tamaño de la
base de datos
Limitado por el
sistema operativo
10Gb Limitado por el
sistema
operativo
Compatibilidad ACID Depende del motor
de almacenamiento
Si Si
Transacciones Si Si Si
Servicio de reportes No Si Si
Posibilidad de elegir
diferentes formas de
almacenamiento
Si No No
Claves Foráneas Depende del motor Si Si
Vistas Si Si Si
Procedimientos
almacenados
Si Si Si
Triggers Si Si Si
Cursores Si Si Si
Subconsultas Si Si Si
Replicación Si Limitado Si
Funciones definidas por el
usuario (UDF)
Si Si Si
Figura 2.8 Comparación entre base de datos
47
2.4.1 Publicación de la aplicación
2.4.1.1 IIS
¿Qué es IIS?
Es un servidor web y un conjunto de servicios para el sistema operativo
Microsoft Windows. Originalmente era parte del Option Pack para Windows NT.
Luego fue integrado en otros sistemas operativos de Microsoft destinados a
ofrecer servicios, como Windows 2000 o Windows Server 2003. Windows XP
Profesional incluye una versión limitada de IIS. Los servicios que ofrece son:
FTP, SMTP, NNTP y HTTP/HTTPS [27].
Este servicio convierte a un PC en un servidor web para Internet o una intranet,
es decir que en los ordenadores que tienen este servicio instalado se pueden
publicar páginas web tanto local como remotamente [27].
2.4.1.2 Historia De IIS
IIS fue inicialmente lanzado como un conjunto de servicios basados en Internet
para Windows NT 3.51. IIS 2.0 siguió agregando soporte para el sistema
operativo Windows NT 4.0 e IIS 3.0 introdujo las Active Server Pages, una
tecnología de scripting dinámico [28].
IIS 4.0 eliminó el soporte para el protocolo Gopher y fue puesto con Windows
NT como un CD-ROM de "Paquete Opcional" separado [28].
La versión de IIS 7.5 corresponde a Windows Server 2008, e IIS 5.1 a Windows
XP Professional. La versión IIS 5.1, para Windows XP, es una versión
compacta del IIS que soporta sólo 10 conexiones simultáneas y sólo un sitio
web. IIS 6.0 ha agregado soporte para IPv6 [28].
48
2.4.1.3 Windows Server 2008
¿Qué es Windows Server?
Windows Server 2008 (algunas veces abreviado como "Win2K8" o "W2K8") es
el nombre de un sistema operativo de Microsoft diseñado para servidores.
Es el sucesor de Windows Server 2003, distribuido al público casi cinco años
después. Al igual que Windows Vista, Windows Server 2008 se basa en el
núcleo Windows NT 6.0 Service Pack 1[29].
Windows Server 2008 ofrece la mejor base para cualquier servidor e
infraestructura de red de la organización. el cuel nos ofrece muchas ventajas
entre las cuales tenemos:
Copia de seguridad de Windows: Es un componente importante en
Windows server 2008, ofrece una solución de copia de seguridad y
recuperación para el servidor en que está instalada, diseñada con una
mejor tecnología reemplazando a la copia de seguridad que tenía las
versiones anteriores de Windows Server.
Configuración segura y confiable: DHCP evita los errores de
configuración que se producen por la necesidad de escribir los valores
manualmente en cada equipo. Así mismo, DHCP ayuda a evitar los
conflictos de direcciones que se producen al configurar un equipo nuevo
en la red con una dirección IP ya asignada.
Reduce la administración de la configuración: La utilización de
servidores DHCP puede reducir significativamente el tiempo necesario
para configurar y modificar la configuración de los equipos de la red. Los
servidores se pueden configurar para que suministren un conjunto
completo de valores de configuración adicionales al asignar concesiones
de direcciones. Estos valores se asignan mediante opciones DHCP.
Control en la Administración: Las direcciones son controladas por el
mismo servidor y el administrador solo es responsable de supervisar y
controlar las IP de mayor importancia con el fin de dar un buen
funcionamiento a la red.
49
Existe un punto de control central: de tal manera que si la topología
de red cambia y es necesario cambiar la configuración de los no de de
red el administrador solo tendrá que reconfigurar el servidor DHCP y
este realizara una actualización en los nodos.
Plataforma más productiva para virtualización de cargas de
trabajo
Creación de aplicaciones eficaces y protección de redes
Mejoras en el Sistema operativo Base
Reducción de riesgos de seguridad.
2.4.1.4 Historia de Windows Server 2008
Fue conocido como Windows Server "Longhorn" hasta el 16 de mayo de 2007,
cuando Bill Gates, presidente de Microsoft, anunció su título oficial (Windows
Server 2008) durante su discurso de apertura en WinHEC. El Windows Aero
está deshabilitado y usa la interfaz clásica de versiones anteriores de Windows.
La beta uno fue lanzada el 27 de julio de 2005. La beta dos fue anunciada y
lanzada el 23 de mayo de 2006 en WinHEC 2006, y la beta tres fue lanzada al
público el 25 de abril de 2007. Su lanzamiento fue el 27 de febrero de 2008[30].
50
Resultados y discusiones
Como resultado obtenido de estas estadías fue al experiencia que obtuve de
estas pude ver cómo es que las empresas majes sus proyectos y como estas
guardan celosamente la información de sus clientes.
Conclusiones
Actualmente son necesarias las implementaciones de sistemas que faciliten y
automaticen los procesos que se requiere llevar a cabo por parte de las
personas que integran una corporación, sobre todo cuando se trata de
multinacionales en las que no pueden permitirse detener procesos de
producción, y en los que es necesario llevar a cabo ajustes y cambios de
manera rápida y efectiva.
51
BIBLIOGRAFÍA
[1] Historia de Tata Consultancy Services Limited. (2015, Diciembre). [En línea].
Disponible en: http://www.tcs.com/worldwide/es/es/acerca-de-
TCS/Pages/default.aspx
[2] Beltrán, Pedro, “Técnicas de Programación,” Facultad de Informática,
Universidad Los Ángeles de Chimbote, 1999, pp. 1.
[3] Historia de los lenguajes de programación orientada a objetos (2015,
Diciembre). [En línea].
Disponible en: http://sis324loo.blogspot.mx/2008/09/historia-de-los-lenguajes-
de_29.html
[4] Varios, “Programación Orientada a Objetos
A,”, OPENLIBRA, 2003, pp. 1-2.
[5][6][7][8][9][10] La plataforma .NET (2012, Diciembre) [En línea].
Disponible en:
http://elvex.ugr.es/decsai/csharp/dotnet/index.xml
[11] Microsoft .NET (2012, Diciembre) [En línea].
Disponible en:
https://es.wikipedia.org/wiki/Microsoft_.NET
[12] Active Server Pages (2015, Diciembre). [En línea].
Disponible en:
https://es.wikipedia.org/wiki/Active_Server_Pages
[13] ASP.NET (2015,Diciembre). [En línea].
Disponible en:
https://es.wikipedia.org/wiki/ASP.NET
52
[14] ¿Qué es y para qué sirve HTML? (2015, Diciembre). [En línea].
Disponible en:
http://aprenderaprogramar.com/index.php?option=com_content&view=article&id
=435:ique-es-y-para-que-sirve-html-el-lenguaje-mas-importante-para-crear-
paginas-webs-html-tags-cu00704b&catid=69:tutorial-basico-programador-web-
html-desde-cero&Itemid=192
[15] Eguíluz, Javier, “Introducción a XHTML,” 2008, pp. 5-6.
[16][17] Modelo–vista–controlador (2015, Diciembre). [En línea].
Disponible en:
https://es.wikipedia.org/wiki/Modelo%E2%80%93vista%E2%80%93controlador
[18][19]C Sharp (2015, Diciembre). [En línea].
Disponible en:
https://es.wikipedia.org/wiki/C_Sharp
[20][21] Microsoft Visual Studio (2015, Diciembre). [En línea].
Disponible en:
https://es.wikipedia.org/wiki/Microsoft_Visual_Studio
[22] SQL Server (2015, Diciembre). [En línea].
Disponible en:
http://searchdatacenter.techtarget.com/es/definicion/SQL-Server
[23]Breve historia de SQL (2015,Diciembre). [En línea].
Disponible en:
http://www.htmlpoint.com/sql/sql_04.htm
[24] Arquitectura de Bases de Datos SQL Server (2015, Diciembre). [En línea].
Disponible en:
53
https://dbamemories.wordpress.com/2011/07/11/arquitectura-de-bases-de-
datos-sql-server/
[25] Transact-SQL (2015,Diciembre). [En línea].
Disponible en:
https://es.wikipedia.org/wiki/Transact-SQL
[26] Comparación entre MySQL y SQL Server (2015, Diciembre). [En línea].
Disponible en:
http://www.latindevelopers.com/articulos/sql-server/diferencias-entre-mysql-y-
sql-server.php
[27][28]Internet Information Services (2015, Diciembre). [En línea].
Disponible en:
https://es.wikipedia.org/wiki/Internet_Information_Services
[29][30] Windows Server 2008 (2015, Diciembre). [En línea].
Disponible en:
https://es.wikipedia.org/wiki/Windows_Server_2008
54
GLOSARIO
Lenguaje Smalltalk: Smalltalk fue un lenguaje reflexivo de programación,
orientado a objetos y con tipado dinámico, actualmente se encuentra extinto.
Wrappers: término de computación que se refiere a una clase Java en
programación orientada a objetos
.
Lenguaje de programación: un lenguaje de programación es un lenguaje
formal diseñado para expresar procesos que pueden ser llevados a cabo por
máquinas como las computadoras.
RAD Rapid Application Developments: es un proceso de desarrollo de
software.
RMI: es un mecanismo ofrecido por Java para invocar un método de manera
remota.
Corba: es un estándar definido por Object Management Group (OMG) que
permite que diversos componentes de software escritos en múltiples lenguajes
de programación y que corren en diferentes computadoras, puedan trabajar
juntos; es decir, facilita el desarrollo de aplicaciones distribuidas en entornos
heterogéneos.
DCOM: es una tecnología propietaria de Microsoft para desarrollar
componentes de software distribuidos sobre varias computadoras y que se
comunican entre sí.
PDA: personal digital assistant, asistente digital personal, computadora de
bolsillo, organizador personal o agenda electrónica de bolsillo, es una
computadora de mano originalmente diseñada como agenda personal
electrónica con un sistema de reconocimiento de escritura.
55
Linux: es uno de los términos empleados para referirse a la combinación del
núcleo o kernel libre similar a Unix denominado Linux con el sistema operativo
GNU.
DLL: una biblioteca de enlace dinámico o más comúnmente DLL (sigla en
inglés de dynamic-link library) es el término con el que se refiere a los archivos
con código ejecutable que se cargan bajo demanda de un programa por parte
del sistema operativo.
Compilador MSIL: Todos ellos son parte del motor de .net, el conjunto de
librerías de funciones conocido como .net framework
Cuando compilamos un programa y lo ejecutamos en el ordenador del cliente
Motor de depuración: es un programa usado para probar y depurar (eliminar)
los errores de otros programas.
Scripts: es un programa usualmente simple, que por lo regular se almacena en
un archivo de texto plano.
Componentes ActiveX: son pequeños programas, denominados en ocasiones
complementos, que se usan en Internet. Pueden mejorar la experiencia de
navegación al permitir animaciones o pueden ayudar con tareas, tales como la
instalación de actualizaciones de seguridad en Microsoft Update.
Servicios web XML: es una entidad programable que proporciona un elemento
determinado de funcionalidad, como lógica de la aplicación y es accesible por
diversos sistemas potencialmente dispares usando los estándares de Internet
ubicuos, como XML y HTTP.
XHTML: XHTML es básicamente HTML expresado como XML válido.
PHP: un lenguaje de programación de uso general de código del lado del
servidor originalmente diseñado para el desarrollo web de contenido dinámico.
56
JSP: es una tecnología que ayuda a los desarrolladores de software a crear
páginas web dinámicas basadas en HTML, XML, entre otros tipos de
documentos. JSP es similar a PHP, pero usa el lenguaje de programación Java.
WWW: es un sistema de distribución de documentos de hipertexto o
hipermedios interconectados y accesibles vía Internet. Con un navegador web,
un usuario visualiza sitios web compuestos de páginas web que pueden
contener texto, imágenes, vídeos u otros contenidos multimedia, y navega a
través de esas páginas usando hiperenlaces.
w3c: es un consorcio internacional que produce recomendaciones y estándares
que aseguran el crecimiento de la Web (World Wide Web) a largo plazo.
ISO: La Organización Internacional de Normalización o ISO nacida tras la
Segunda Guerra Mundial, es el organismo encargado de promover el desarrollo
de normas internacionales de fabricación, comercio y comunicación para todas
las ramas industriales. Su función principal es la de buscar la estandarización
de normas de productos y seguridad para las empresas u organizaciones a
nivel internacional.
ECMA: es una organización internacional basada en membresías de
estándares para la comunicación y la información.