UNIVERSIDAD POLITÉCNICA DE SINALOA Tesina

56
1 UNIVERSIDAD POLITÉCNICA DE SINALOA Tesina Programación en ASP.NET y SQL ServerPara 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

Transcript of UNIVERSIDAD POLITÉCNICA DE SINALOA Tesina

Page 1: UNIVERSIDAD POLITÉCNICA DE SINALOA Tesina

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

Page 2: UNIVERSIDAD POLITÉCNICA DE SINALOA Tesina

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

Page 3: UNIVERSIDAD POLITÉCNICA DE SINALOA Tesina

3

¿Qué es Windows Server? ..................................................................................................................... 48 2.4.1.4 Historia de Windows Server 2008 ........................................................................................... 49

BIBLIOGRAFÍA ................................................................................................................................. 51

GLOSARIO ........................................................................................................................................ 54

Page 4: UNIVERSIDAD POLITÉCNICA DE SINALOA Tesina

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

Page 5: UNIVERSIDAD POLITÉCNICA DE SINALOA Tesina

5

Page 6: UNIVERSIDAD POLITÉCNICA DE SINALOA Tesina

6

Page 7: UNIVERSIDAD POLITÉCNICA DE SINALOA Tesina

7

Page 8: UNIVERSIDAD POLITÉCNICA DE SINALOA Tesina

8

Page 9: UNIVERSIDAD POLITÉCNICA DE SINALOA Tesina

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.

Page 10: UNIVERSIDAD POLITÉCNICA DE SINALOA Tesina

10

Capítulo I

Reseña Empresarial

Page 11: UNIVERSIDAD POLITÉCNICA DE SINALOA Tesina

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

Page 12: UNIVERSIDAD POLITÉCNICA DE SINALOA Tesina

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

Page 13: UNIVERSIDAD POLITÉCNICA DE SINALOA Tesina

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].

Page 14: UNIVERSIDAD POLITÉCNICA DE SINALOA Tesina

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)

Page 15: UNIVERSIDAD POLITÉCNICA DE SINALOA Tesina

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

Page 16: UNIVERSIDAD POLITÉCNICA DE SINALOA Tesina

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

Page 17: UNIVERSIDAD POLITÉCNICA DE SINALOA Tesina

17

Capítulo II

Marco teórico

Page 18: UNIVERSIDAD POLITÉCNICA DE SINALOA Tesina

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

Page 19: UNIVERSIDAD POLITÉCNICA DE SINALOA Tesina

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].

Page 20: UNIVERSIDAD POLITÉCNICA DE SINALOA Tesina

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].

Page 21: UNIVERSIDAD POLITÉCNICA DE SINALOA Tesina

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

Page 22: UNIVERSIDAD POLITÉCNICA DE SINALOA Tesina

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.

Page 23: UNIVERSIDAD POLITÉCNICA DE SINALOA Tesina

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:

Page 24: UNIVERSIDAD POLITÉCNICA DE SINALOA Tesina

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

Page 25: UNIVERSIDAD POLITÉCNICA DE SINALOA Tesina

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].

Page 26: UNIVERSIDAD POLITÉCNICA DE SINALOA Tesina

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].

Page 27: UNIVERSIDAD POLITÉCNICA DE SINALOA Tesina

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.

Page 28: UNIVERSIDAD POLITÉCNICA DE SINALOA Tesina

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?

Page 29: UNIVERSIDAD POLITÉCNICA DE SINALOA Tesina

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].

Page 30: UNIVERSIDAD POLITÉCNICA DE SINALOA Tesina

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].

Page 31: UNIVERSIDAD POLITÉCNICA DE SINALOA Tesina

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).

Page 32: UNIVERSIDAD POLITÉCNICA DE SINALOA Tesina

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].

Page 33: UNIVERSIDAD POLITÉCNICA DE SINALOA Tesina

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

Page 34: UNIVERSIDAD POLITÉCNICA DE SINALOA Tesina

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].

Page 35: UNIVERSIDAD POLITÉCNICA DE SINALOA Tesina

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)

Page 36: UNIVERSIDAD POLITÉCNICA DE SINALOA Tesina

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

Page 37: UNIVERSIDAD POLITÉCNICA DE SINALOA Tesina

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].

Page 38: UNIVERSIDAD POLITÉCNICA DE SINALOA Tesina

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].

Page 39: UNIVERSIDAD POLITÉCNICA DE SINALOA Tesina

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.

Page 40: UNIVERSIDAD POLITÉCNICA DE SINALOA Tesina

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

Page 41: UNIVERSIDAD POLITÉCNICA DE SINALOA Tesina

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)

Page 42: UNIVERSIDAD POLITÉCNICA DE SINALOA Tesina

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].

Page 43: UNIVERSIDAD POLITÉCNICA DE SINALOA Tesina

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].

Page 44: UNIVERSIDAD POLITÉCNICA DE SINALOA Tesina

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

Page 45: UNIVERSIDAD POLITÉCNICA DE SINALOA Tesina

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)

Page 46: UNIVERSIDAD POLITÉCNICA DE SINALOA Tesina

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

Page 47: UNIVERSIDAD POLITÉCNICA DE SINALOA Tesina

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].

Page 48: UNIVERSIDAD POLITÉCNICA DE SINALOA Tesina

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.

Page 49: UNIVERSIDAD POLITÉCNICA DE SINALOA Tesina

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].

Page 50: UNIVERSIDAD POLITÉCNICA DE SINALOA Tesina

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.

Page 51: UNIVERSIDAD POLITÉCNICA DE SINALOA Tesina

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

Page 52: UNIVERSIDAD POLITÉCNICA DE SINALOA Tesina

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:

Page 53: UNIVERSIDAD POLITÉCNICA DE SINALOA Tesina

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

Page 54: UNIVERSIDAD POLITÉCNICA DE SINALOA Tesina

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.

Page 55: UNIVERSIDAD POLITÉCNICA DE SINALOA Tesina

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.

Page 56: UNIVERSIDAD POLITÉCNICA DE SINALOA Tesina

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.