net framework general overview

26
Tabla de Contenido Borrador del Proyecto Final Introducción Objetivos o Objetivos Generales o Objetivos Específicos Marco Teórico o Tecnologías .Net o Paradigmas de Programación en Tecnologías .Net o Plataforma .Net en Linux (Mono) o Productividad en el ambiente .Net o IDEs utilizadas en el ambiente .Net Visual Studio Express/Standard/Professional SharpDevelop Mono Develop (Linux) Cuadro Comparativo (Ventajas/Desventajas) o Silverlight o Windows Communication Foundation Proyecto o Componentes internos del software Servicios Manejador de Multimedios (Upload, Stream etc) Autenticación (login, sesión) Registro de Sucesos (logging) Administración (usuarios, registro, modificación, eliminación) Administración de Denuncias Administración de Estadísticas o Componentes externos del software Log4Net Upload Tool para Silverlight

Upload: ajhorus

Post on 15-Jun-2015

787 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Net framework General Overview

Tabla de Contenido Borrador del Proyecto Final

Introducción Objetivos

o Objetivos Generaleso Objetivos Específicos

Marco Teóricoo Tecnologías .Neto Paradigmas de Programación en Tecnologías .Neto Plataforma .Net en Linux (Mono)o Productividad en el ambiente .Neto IDEs utilizadas en el ambiente .Net

Visual Studio Express/Standard/Professional SharpDevelop Mono Develop (Linux) Cuadro Comparativo (Ventajas/Desventajas)

o Silverlighto Windows Communication Foundation

Proyectoo Componentes internos del software

Servicios Manejador de Multimedios (Upload, Stream etc) Autenticación (login, sesión) Registro de Sucesos (logging) Administración (usuarios, registro, modificación,

eliminación) Administración de Denuncias Administración de Estadísticas

o Componentes externos del software Log4Net Upload Tool para Silverlight Npgsql (Proveedor de datos .net para PostgreSQL, si se usa)

o Arquitectura de una aplicación en .Net Herramientas CASE para .Net (estereotipos)

Visio Architect Power Designer Genexus

Page 2: Net framework General Overview

o Extensibilidad en .Neto Manejador de base de datos para .Net

Manejador de base de datos sugerido Microsoft SQLServer PostgreSQL (Utilizando librería Npgsql) MySQL

Manejador de base de datos no sugerido Archivo

Herramientas ORM (Object Relational Mapping) NHibernate LINQ

o Licenciamiento y Costos Mano de Obra

Personal Herramientas

Conclusiones. Bibliografía

Page 3: Net framework General Overview

Tecnologías .NET

.NET representa todo un rango de tecnologías y conceptos que conforman una plataforma en la cual usted puede desarrollar aplicaciones. Es más que una simple cosa; es una colección de software y conceptos que trabajan en conjunto para permitir la generación de soluciones de negocios.

.NET es una capa bajo sus programas que ofrece un conjunto de servicios y funciones básicas. Esta capa contiene aplicaciones y sistemas operativos llamados servidores .NET; un conjunto de objetos fundamentales como .NET Framework, y un conjunto de servicios que reconoce todos los lenguajes .NET, conocido como Common Language Runtime (CLR).

El CLR es el responsable de ejecutar su código y ofrece varias innovaciones para los desarrolladores de aplicaciones .NET. La modificación más importante es que permite que todos estos lenguajes puedan compilarse en el Lenguaje intermedio de Microsoft (MSIL). El CLR después convertirá este código en código nativo cuando se ejecute por primera vez y el resultado será que obtendrá el rendimiento del código totalmente compilado, no código que se interprete en tiempo de ejecución.

Clases importantes en el .NET Framework

Al generar sus aplicaciones en .NET, utilizará muchas clases del .NET Framework. Algunas más útiles son:

Console: Permite la lectura y escritura en la línea de comandos o consola. Environment: Permite la lectura y escritura a variables del entorno del sistema. Random: Permite la generación de números aleatorios. Math: Incluye diversos cálculos matemáticos. Collections: Ofrece diversas clases para distintas estrategias para almacenar colecciones de elementos.

.NET Framework

El .NET Framework ofrece dos cosas primordiales: el entorno del motor de ejecución básico y un conjunto de clases fundamentales. El entorno del motor de ejecución es similar al sistema operativo en el sentido de que ofrece una capa entre su programa y las complejidades del resto del sistema, con lo que provee de servicios a su aplicación y simplifica el acceso a la funcionalidad de las capas inferiores.

Tiene una diversidad de componentes y servicios que se combinan para generar un potente entorno de desarrollo. Incluye una gran cantidad de clases que le permite escribir aplicaciones basadas en Windows y para Web, acceder a la red, generar imágenes, y otras cosas más.

Las clases fundamentales ofrecen una gran cantidad de funcionalidad, que envuelven y abstraen en tecnologías como los protocolos de Internet, acceso al sistema de archivos, manejo de XML, ect.

El .NET Framework es muy similar al sistema operativo, y ofrece su propio conjunto de APIs para que los programadores aprovechen sus capacidades con facilidad.

Aplicación del usuario

.NET Framework

Servidores .NETWindows, BizTalk, Exchange, SQL, Application Center

Dispositivos .NET

Componentes de hardware

Page 4: Net framework General Overview

Para que un lenguaje de programación aproveche el entorno del motor de ejecución y otra funcionalidad del .NET Framework, el compilador debe producir código que se apegue a cierta norma. Microsoft ofrece esta norma, la Especificación de Lenguajes Comunes o Common Language Specification (CLS), como una forma para crear cualquier compilador propio de .NET.

Microsoft ha generado compiladores de Visual Basic, Visual C++ y C# que se apegan al .NET Framework, pero ha puesto a disponibilidad del público la CLS para que otras empresas o personas puedan generar compiladores para otros lenguajes. Como resultado, además de los lenguajes provistos por Microsoft, hay otros como COBOL, APL, Smalltalk, ect., que están generados con la misma base.

Servidores .NET

Una meta primordial del concepto de .NET es reducir la generación de sistemas distribuidos, donde el trabajo se realiza en diversos lugares. Principalmente, estos tipos de sistemas hacen su trabajo en el servidor (o backend). Microsoft ofrece un conjunto de productos de software que juntos se conocen como Servidores Empresariales .NET (.NET Enterprise Servers). Están diseñados para dar el soporte y las características necesarias para un sistema distribuido.

Entre los productos se encuentran:

El sistema operativo servidor Microsoft Windows .NET (Server, Advanced Server y Datacenter Server). Software de clustering y balanceo de carga, como Microsoft Application Center y Microsoft Cluster

Server. Un servidor de bases de datos, Microsoft SQL Server. Un sistema de correo electrónico, colaboración y almacenamiento libre de información, Microsoft

Exchange Server. Un motor para la transformación de datos basado en XML llamado Microsoft BizTalk Server. Un servidor para acceder a sistemas heredados, como las AS/400, llamado Host Integration Server. Y otras cosas más…

En conjunto, estos servidores proporcionan los servicios básicos para sus aplicaciones .NET, y además son la base de sus sistemas.

Servicios .NET

Los Servicios Web XML son una funcionalidad basada en una tendencia constante en Internet. Tales servicios permiten que una empresa u organización provea funcionalidad que esté contenida en el entorno del programa que dicha empresa realice. Como ejemplo podríamos mencionar un servicio para el pago de facturas, donde una empresa tenga servidores y aplicaciones en su propia organización que pueda controlar los pagos. La empresa provee tal servicio a otras personas mediante un Servicio Web XML. Esto no es lo mismo que ofrecer un sitio Web; es una interfaz que otras aplicaciones o sitios Web pueden acceder mediante código.

Windows Communication Foundation

Con la introducción del la versión 3.0 del .Net framework Microsoft añadió un nuevo API para encargarse de toda la comunicación por servicios. Este API se llama Windows Communication Foundation. Según la definción de Microsoft Windows Communication Foundation provee un modelo unificado de programación para implementar rápidamente aplicaciones orientadas a servicios que se comunican a través de la Web y entre empresas. El WCF, como se le conoce por sus siglas, en sí no es una tecnología nueva sino que es la unificación de tecnologías existentes dentro de un modelo común. Las características principales de WCF son:

Unificación de tecnologías existents para comunicación del framework de .Net

Interoperabilidad con aplicaciones desarrolladas en otros ambientes

Soporte explícito para arquitectura orientada a servicios.

Page 5: Net framework General Overview

Como un ejemplo práctico podemos citar una aplicación para reservar habitaciones de un hotel. Esta aplicación expone métodos para que tanto un call center como páginas tales como Xpedia puedan hacer reseravaciones de manera remota, al igual que soportar que interaccion con un sin número de agencias de viajes que desean utilizar sus propias aplicaciones para realizar reservaciones como cancelaciones.

- Call center: la opción propicia para comunicarse con el call center sería .Net Remoting ya que el sistema utilizado por el call center también esta desarrollado en .Net Framework.

- Páginas como Xpedia utilizan comunicación por REST, por lo que también se tendría que desarrollar la comunicación que soportara este protocolo.

- Algunas agencias de viajes no tienen conexión todo el tiempo por lo que necesitarían un protocolo que soporte Queue de los mensajes como el Queue Messaging.

- Otras agencias de viajes utilizan paginas jsp y para comunicarse necesitan servicios web tipo ASMX.

Como se puede apreciar antes de la introducción de WCF cumplir con requisitos como este requeriría programar y exponer cada una de las tecnologías antes señaladas; sin embargo, con WCF no es necesario. Basta con definir una sóla especificación del servicio que se quiere exponer y configurarle los endpoints que puede soportar. Podriamos definir los endpoints como el tipo de comunicación que puede soportar el servicio en WCF junto con las operaciones que soporta el servicio.

Page 6: Net framework General Overview

Silverlight

Silverlight es un framework para desarrollar aplicaciones gráficas. Originalmente fue concebido como un plugin para stream video; posteriormente se le añade mas funcionalidad para interactuar. Uno de las principales ventajas de Silverlight es la portabilidad. Microsoft tomo una idea similar al plugin de flash y Silverlight se distribuye como un plugin para los exploradores más populares. Esto quiere decir que no es necesario tener instalado el framework de .Net para poder correr una aplicación Silverlight sólo el framework correspondiente al browser utilizado. Otras ventajas son:

- Se desarrolla con un framework conocido lo que provee una fácil etapa de aprendizaje para programadores de C# o VB.Net.

- Soporta gráfica por vectores y “retained mode” para optimización del proceso de rendering.- Soporta animaciones en 2D y 3D - El modelo de programación con Silverlight se presta para una clara distinción entre el diseño gráfico y la

funcionaliad de la aplicación que se quiera desarrollar. - Soporta la comunicación por medio de WCF.- Es fácil desarrollar aplicaciones visualmente llamativas.

Silverlight utiliza un subset de las clases presentes en el framework de .Net; por lo cual tiene algunas limitaciones. Por ejemplo, no es posible accede directamente System.Data;

La primera versión de silverlight solamente soportaba el uso de javascript. Afortunadamente las siguientes versiones de Silverlight incluyeron soporte para utilizar los lenguajes del framework de .Net.

Dispositivos .NET

En el mundo actual hay una gran gama de sistemas que puede usar para acceder a Internet, a la rede de su empresa o a su información personal. Pueden ser las PCs mismas, terminales de Internet basadas en TV, clientes ligeros, o asistentes digitales personales (PDAs). Todos ellos son medios por los que un usuario accede a una aplicación .NET. Esta tendencia hacia diversos dispositivos lo fuerza a usted, como programador, a dejar de asumir un solo tipo de cliente, generalmente una PC, y tomar en cuenta que un cliente podría conectarse por varios dispositivos distintos. Éstos pueden clasificarse como Dispositivos .NET, que son una combinación de características de hardware y software diseñadas para funcionar con servicios y aplicaciones basados en .NET. En la actualidad, entre los dispositivos .NET disponibles se encuentran equipos que ejecutan Windows y otros que ejecutan Windows CE. (Hay un .NET compact Framework para esta plataforma, lo que le

Page 7: Net framework General Overview

permite utilizar las características de .NET.) El crecimiento de esta área, será aún mayor.

Arquitectura de una aplicación en .NET

Los tres elementos de cualquier aplicación

La diferencia entre todas las posibles arquitecturas gira en torno a la forma en que se distribuyen las tres capas distintas de un sistema de cómputo:

Presentación: Esta capa representa a la interfaz de usuario y la interacción con otros sistemas; es el rostro del sistema que permite comunicarse al exterior. Las ventanas o páginas web, por decirlo de alguna manera, encapsulan lógica de navegación y control de eventos de la interfase.

Lógica funcional o de negocios: Todo el código que no está involucrado de manera específica en la generación de la interfaz de usuario de otros aspectos de la capa de presentación. Esta capa representa el núcleo de la aplicación, el código que realiza el trabajo del sistema. Éstos podrían ser un modelo de objetos, xml, datasets, estructuras de datos, ect.

Datos: La base de datos (u otro origen de datos como XML) y el código que la accede conforman la capa de datos.

Page 8: Net framework General Overview

Estas tres capas son la representación lógica de un sistema completo, pero tal sistema podría tener una diversidad de formas: un solo exe, componentes distribuidos en distintos servidores o un sitio Web. Sin importar la aplicación específica, es útil describir a todos los sistemas en los términos de estas tres capas.

¿Cuántas capas?

Una de las formas comunes de arquitecturas de aplicación que se han descrito, está relacionada con la cantidad de equipos distintos que ejecutan porciones del sistema. La arquitectura más simple se ha descrito como un sistema de una sola capa, donde todo el programa (presentación, lógica funcional y datos) está en un solo equipo. Ésta es la arquitectura utilizada por la mayoría de las aplicaciones de los consumidores, como Microsoft Office, y por muchas aplicaciones de negocios diseñadas para que solo cierta cantidad de usuarios las utilicen a la vez. Sólo la cantidad de equipos que realicen cierto tipo de procesamiento es importante. Un programa cuyo archivos de datos se colocan en un servidor de archivos, de todas formas se considera como una aplicación de una sola capa, puesto que todo el trabajo se realiza en un equipo, y el servidor de archivos simplemente ofrece un lugar en la red para almacenar datos.

Por otro lado, cuando el programa utiliza un servidor de base de datos (como SQL Server u Oracle), se considera como de dos capas, pues el servidor realiza cierto procesamiento a aplicaciones de negocios. Permite que muchos usuarios trabajen con el mismo conjunto de datos y al mismo tiempo ofrece mejor rendimiento que un sistema basado en archivos, como Microsoft Access.

Por último, la forma reciente de arquitecturas de aplicaciones se conoce como de tres capas o de n-capas, y describe a los sistemas en los que el código se ejecuta en tres o más secciones distintas. La división lógica de tal sistema consta de tres capas, pero la disposición física puede ser mayor a tres grupos distintos. Por lo general, esto significa que se utiliza cierto tipo de código del cliente – como un sitio Web interactivo o una aplicación de Windows, que ejecuta código que se encuentra en otro servidor o grupo de servidores para llevar a cabo la lógica funcional – y una base de datos de apoyo. Esta arquitectura cada vez cobra mayor popularidad dado que permite una gran flexibilidad para manejar a muchos usuarios y por ello satisface plenamente los requerimientos de las aplicaciones basadas en Internet. Hay distintas formas técnicas de generar aplicaciones de tres capas, pero el método recomendado por Microsoft antes de que .NET apareciera se llamaba Windows DNA.

Page 9: Net framework General Overview

Plataforma .NET en Linux (Mono)

La plataforma .NET fue creado inicialmente para el sistema operativo Windows de Microsoft por Microsoft. En el mundo de software libre al ver el potencial que tenía esta plataforma, surgió el Proyecto Mono (Mono Project).

El Proyecto Mono tiene como objetivo hacer que os desarrolladores sean más productivo y felices. Patrocinado por Novel, el proyecto de código abierto Mono, tiene una comunidad activa y entusiasta que contribuye al proyecto y esto logra que se posicione en un lugar como líder en opción para desarrollar aplicaciones en Linux. Con el patrocinio de Novell, se pudo desarrollar la versión UNIX de la plataforma de desarrollo de .NET de Microsoft. Esto permite a los desarrolladores crear aplicaciones que sobre Linux y que sea multiplataforma. Y éste proyecto implementa varias tecnologías desarrolladas por Microsoft y que ya han sido presentadas al ECMA para su estandarización.

El Proyecto Mono también ha generado muchísimo interés en el desarrollo de componentes basados en C#, librerías y otras plataformas (frameworks). Los más importantes, algunas de las cuales fueron desarrolladas por el equipo Mono son:

Gtk#: Enlaces para la herramienta popular para GUI Gtk+ para sistemas Linux y Windows. #ZipLib: Una librería para manipular varios tipos de archivos compresos. Tao Framework: Enalces para OpenGL. Mono.Directory.LDAP / Novel.Directory.LDAP: Accesso LDAP para aplicaciones .NET. Mono.Data: Soporte para PostgreSQL, MySQL, Firebird, Sybase ASE, IBM DB2, SQLite, Microsoft SQL

Server, Oracle, and ODBC. Mono.Cairo: Enlaces para el motor de “rendering” Cairo. Mono.Posix / Mono.UNIX: Enlaces para construir aplicaciones POSIX utilizando C#. Mono.Remoting.Channels.Unix: Remoting basado en sockets the Unix. Mono.Security: Plataforma mejorada de seguridad y encriptación. Mono.Math: Generación de números tipo Prime y BigInteger. Mono.Http: Soporte para crear servidores HTTP y manejadores comunes de HTTP integrados y

personalizados para las aplicaciones. Mono.XML: Soporte extendido para XML. Managed.Windows.Forms (aka Systems.Windows.Forms): Una implementación completa y

multiplataforma del System.Drawing basado en la implementación de Winforms. Remoting.CORBA: Una implementación de CORBA para Mono. Ginzu: Una implementación encima de Remoting para “ICE stack”.

Estas son algunas de las librerías que fueron desarrolladas por el mismo equipo del Proyecto Mono.

Page 10: Net framework General Overview

IDEs utilizadas en el ambiente .Net

Visual Studio Express/Standard/ProfessionalMicrosoft Visual Studio es un entorno de desarrollo integrado (IDE, por sus siglas en inglés) para sistemas operativos Windows. Soporta varios lenguajes de programación tales como Visual C++, Visual C#, Visual J#, ASP.NET y Visual Basic .NET, aunque actualmente se han desarrollado las extensiones necesarias para muchos otros.

Visual Studio permite a los desarrolladores crear aplicaciones, sitios y aplicaciones web, así como servicios web en cualquier entorno que soporte la plataforma .NET (a partir de la versión net 2002). Así se pueden crear aplicaciones que se intercomuniquen entre estaciones de trabajo, páginas web y dispositivos móviles.

Page 11: Net framework General Overview

SharpDevelop (http://www.sharpdevelop.com/OpenSource/SD/Default.aspx)SharpDevelop es un entorno de desarrollo integrado gratis para proyectos C# y VB.NET sobre la plataforma Microsoft .NET. Es una aplicación de código libre (open-source), lo cual significa que se puede descargar el código fuente y modificarlo para ajustarlo al uso de uno.

Page 12: Net framework General Overview

Eclipse con Emonic plugin (http://emonic.sourceforge.net/)Emonic significa “Eclipse Mono Integration”. Es un plug-in para el IDE Eclipse que permite el desarrollo de aplicaciones en C# con Mono o Microsoft .Net.

Este plug-in permite la utilización del famoso ambiente de desarrollo Eclipse, que normalmente se utiliza para Java y entre otros lenguajes, desarrollar aplicaciones en la plataforma .Net. Las implementaciones .Net soportadas son Mono 1.0, Mono 2.0, Microsoft .Net 1.0 y Microsoft .Net 2.0.

Page 13: Net framework General Overview

MonoDevelop (Windows/Linux) (http://monodevelop.com/)MonoDevelop es un entorno de desarrollo integrado de GNOME, gratis. Fue diseñado principalmente para C# y otros lenguajes .NET. MonoDevelop permite a los desarrolladores crear aplicaciones de escritorio y aplicaciones web ASP.NET de forma rápida en Linux (principalmente). Esta también permite a los desarrolladores portar el código de aplicaciones .NET creados en Visual Studio a Linux y mantener un sólo código base para todas las plataformas de forma sencilla.

Page 14: Net framework General Overview

Cuadro Comparativo (Ventajas/Desventajas)

Visual Studio SharpDevelop Emonic MonoDevelopDebugger Integrado Finalización de código (IntelliSense)

Diseñador Visual Refactor ASP.NET Compilador Interno Versión de Plataforma

1.0, 2.0, 3.0, 3.5 2.0, 3.0, 3.5 1.0, 2.0, 3.0 2.0, 3.0

Facilidad de uso Silverlight WCF WPF

Page 15: Net framework General Overview

Herramientas CASE para .Net (Estereotipos)

Estereotipos

Estereotipo Nombre del Estereotipo

Descripción Ejemplo

<<server page>>

Página del servidor

Estereotipo de páginas para representar la clase de una página del servidor

<<client page>>

Página del cliente

Estereotipo de páginas para representar la clase de una página del cliente

<<builds>> Construir Estereotipo para representar que una página del servidor construye una página de cliente.

<<redirects>> Redireccionar Estereotipo para representar una redirección de una página a otra.

<<links>> Enlaces Estereotipo para representar enlaces que tiene una página.

Page 16: Net framework General Overview

<<form>> Formulario Estereotipo para representar los formularios en una página cliente.

<<submit>> Enviar Estereotipo para representar la acción de envío de datos de un formulario para su procesamiento.

<<frameset>> Marco Estereotipo para representar el marco de una página cliente.

<<target>> Objetivo Estereotipo para representar la referencia a una página u otro frame.

Page 17: Net framework General Overview

Manejador de base de datos para .Net

Historia de SQL como lenguaje de mandatos para el manejo de sistemas de administración de base datos.

La 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 adoptaban 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 productos basados en SQL, que se convierte en el estándar industrial de hecho por lo que respecta a las bases de datos relacionales.

En 1986, el ANSI adoptó SQL (sustancialmente adoptó el dialecto SQL de IBM) como estándar para los lenguajes relacionales y en 1987 se transfomó 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éndolo de manera individual según la propia visión que cada cual tenga del mundo de las bases de datos.Actualmente, está en marcha un proceso de revisión del lenguaje por parte de los comités ANSI e ISO, que debería terminar en la definición de lo que en este momento se conoce como SQL3. Las características principales de esta nueva encarnación de SQL deberían ser su transformación en un lenguaje stand-alone (mientras ahora se usa como lenguaje hospedado en otros lenguajes) y la introducción de nuevos tipos de datos más complejos que permitan, por ejemplo, el tratamiento de datos multimediales.

Manejador de base de datos sugerido

Microsoft SQLServer

La primera versión de Microsoft SQL Server, luego de un trabajo en conjunto entre Microsoft, Sybase y Ashton-Tate (creadores de dBASE), fue puesta en el mercado en 1989 bajo el

Page 18: Net framework General Overview

nombre de SQL Server 1.0, y la herramienta fue refinada al paso de los años mediante las versiones que listamos a continuación:

Versión Año Nombre Oficial Nombre Código

1.0(OS/2)

1989 SQL Server 1.0 -

4.21(WinNT)

1993 SQL Server 4.21 -

6.0 1995 SQL Server 6.0 SQL95

6.5 1996 SQL Server 6.5 Hydra

7.0 1998 SQL Server 7.0 Sphinx

- 1999 SQL Server 7.0OLAP Tools

Plato

8.0 2000 SQL Server 2000 Shiloh

8.0 2003 SQL Server 200064-bit Edition

Liberty

9.0 2005 SQL Server 2005 Yukon

10.0 2008 SQL Server 2008 Katmai

A partir de SQL 2005 se incluye el soporte nativo para data en XML, adicional a los tipos de data relacional, para esto se define un tipo de datos XML el cual puede ser usado en columnas de base de datos o en mandatos de SQL. También SQL 2005 permite al manejador de base de datos ser accesado a través de Servicios Web (Web Services) utilizando paquetes encapsulados con el protocolo SOA. Cuando la data es accesada a través de Servicios Web, los resultados se retornan en XML.

Microsoft ofrece SQL Server en múltiples ediciones, con funciones diferentes y destinadas a usuarios diferentes. Estas ediciones son:

Page 19: Net framework General Overview

SQL Server Compact Edition (SQL CE) La edición compacta es un motor de base de datos embebido. A diferencia de las otras ediciones de SQL Server, el motor de SQL Server CE se basa en SQL Mobile (inicialmente diseñado para el uso con los dispositivos de mano) y no comparte los mismos archivos binarios. Debido a su pequeño tamaño, tiene una marcada reducción en comparación con el conjunto de características de las otras ediciones. Por ejemplo, se admite un subconjunto de los tipos de datos estándar, no es compatible con los procedimientos almacenados o vistas o de múltiples lotes de instrucción (entre otras limitaciones). Se limita a 4 GB de tamaño máximo de base de datos y no se puede ejecutar como un servicio de Windows, Compact Edition debe ser admitido por la aplicación de usarlo. La versión 3.5 incluye un trabajo considerable que soporta los Servicios de Sincronización de ADO.NET.

SQL Server Developer Edition SQL Server Developer Edition incluye las mismas características de SQL Server Enterprise Edition, pero está limitado por la licencia para ser utilizado como un sistema de desarrollo y prueba, y no como servidor de producción. Esta edición está disponible para descargar por los alumnos de forma gratuita como parte del programa de Microsoft DreamSpark.

SQL Server 2005 Embedded Edition (SSEE) El SQL Server 2005 Embedded Edition es una instancia con nombre configurado de manera especial de forma que solo pueda ser accesado por determinados servicios de Windows, tales como Sharepoint.

SQL Server Enterprise Edition SQL Server Enterprise Edition es la edición con todas las características de SQL Server, incluyendo el motor, tanto la base de datos básicos y servicios complementarios, mientras que incluye una serie de herramientas para crear y gestionar un clúster de SQL Server.

Edición de evaluación de SQL Server Edición de evaluación de SQL Server, también conocido como la edición de prueba, tiene todas las características de la versión Enterprise Edition, pero está limitado a 180 días, tras lo cual las herramientas seguirán funcionando, pero los servicios de servidor se detienen. SQL Server Express Edition SQL Server Express Edition es una edición gratuita y reducida de SQL Server, que incluye el motor de base de datos central. Si bien no hay limitaciones en el número de usuarios de bases de datos o el apoyo, se limita a la utilización de un procesador, memoria de 1 GB y 4 GB de archivos de base de datos. La base de datos se almacena en un único archivo. Mdf archivo y, por lo que es adecuado para la implementación de XCOPY. Está concebido como un sustituto de MSDE. SQL Server Express con Advanced Services añade una completa capacidad de búsqueda de texto y servicios de información.

SQL Server Fast Track SQL Server Fast Track es específicamente para la empresa el almacenamiento de datos de negocio y procesamiento de inteligencia de negocios, y se ejecuta en hardware de referencia que está optimizado para la Fast Track.

SQL Server Standard Edition El SQL Server Standard Edition incluye el motor de base de datos central, junto con los

Page 20: Net framework General Overview

servicios independientes. Se diferencia de la edición Enterprise en que soporta menos instancias activas (número de nodos en un cluster) y no incluye algunas funciones de alta disponibilidad tales como adición en caliente de memoria (memoria para permitir que se añade mientras el servidor está aún en marcha) e índices paralelos.

SQL Server Web Edition El SQL Server Web Edition es una opción de bajo costo total de propiedad para web-hosting.

SQL Server Workgroup Edition De SQL Server Workgroup Edition incluye la funcionalidad de base de datos central, pero no incluye los servicios adicionales

Herramientas de ORM (Object Relational Mapping)El ORM consiste en una técnica para crear una base de datos de objectos virtuales, mediante el mapeo de tablas o queries a objects. Por ejemplo si en la base de datos existe una tabla de usuarios, mediante ORM se crearia una clase llamada usuarios que tendría los mismos propiedades como columnas tiene la tabla original de usuarios. Para la aplicación que utiliza la clase de usuarios se encapsula casi en su totalidad la conexión y extracción de datos de la base de datos; interactuando con una lista de la clase de usuarios.

NHibernateNHibernate es una implementación de ORM para el framework de .Net. Es una migración de la popular Hibernate de Java. Entre sus principales caracterísicas y ventajas esta mapear entre clase de :Net a tablas en la base de datos. Tambien proporciona herramientas para extraer y guardar datos. Una de las ventajas pricipales que tiene NHibernate es la portabilidad de base de datos.

Page 21: Net framework General Overview

Bibliografía

Libros:

Mackensie, Duncan y Sharkey, Kent. Aprendiendo Visual Basic.NET. Prentice Hall. Primera Edición. Mexico, 2003. ISBN: 970-26-0379-X[Fecha de consulta: 4 de Septiembre de 2009]

Enlaces:

Npgsql - .Net Data Provider for Postgresql. The Npgsql Development Team. 2009. [Fecha de consulta: 4 de Septiembre de 2009].Disponible en:http://npgsql.projects.postgresql.org/

Mono 2.4. mono. 2009. [Fecha de consulta: 16 de Septiembre de 2009].Disponible en:http://www.mono-project.com/

Modeling Web Application Design with UML. Jim Conallen [en línea]. 1998. [Fecha de consulta: 16 de Septiembre de 2009].Disponible en:http://www.itmweb.com/essay546.htm

WAE UML Stereotypes, Stencils, Templates, and ASP.NET Patterns for Visio. Real World Software Architecture. Sábado 17 de Marzo de 2007 [en línea]. [Fecha de consulta: 16 de Septiembre de 2009].Disponible en:http://realworldsa.blogspot.com/2007/03/wae-uml-stereotypes-stencils-templates.html