Está en la página 1de 60

?

27/8/56 08:58 Página 3

dnm.editorial

<<

dnm.editorial

¡Hola mundo!
<<

Como cuando empezamos con un nuevo entorno y hacemos nuestro primer programa, hoy
publicamos el primer número de esta revista,
y nos sentimos igual de impacientes que cuando esperamos que la compilación finalice satisfactoriamente y aparezca esta frase tan usada
en los comienzos: ¡Hola Mundo!
Pero no somos novatos. Muchos de nosotros
ya hicimos clippeRmanía, y después FOXmanía,
y después Algoritmo. Ahora, siguiendo erre que
erre con nuestras manías, nos ha dado por editar una revista especializada en la plataforma
.NET a la que hemos dado el nombre de
dotNetManía. La primera revista en el mundo
dedicada exclusivamente a los profesionales de
la plataforma .NET, escrita en castellano.
Ha llovido mucho desde nuestra primera
revista, y sin embargo, nuestro espíritu sigue
siendo el mismo. Tenemos ganas de contar lo
que sabemos, de compartir lo que aprendemos,
nuestros pequeños descubrimientos y nuestras
experiencias.
Aquí seguimos, los viejos “clipperos” (algunos quedaron en el camino) y las nuevas gene-

Editor
Paco Marín
(paco.marin@dotnetmania.com)
Administración
Pilar Pérez
(pilar.perez@dotnetmania.com)
Asesor Técnico/Coordinación
Marino Posadas
(marino.posadas@dotnetmania.com)
Redactores y Colaboradores
Alejandro Mezcua, Angel Esteban,
Antonio Quirós, Antonio Rojo, David
Carmona, Eladio Rincón, Francisco
Charte, Fernando Guerrero, Fernando
Nogueras, Guillermo ‘guille’ Som, Iván

raciones, unidos por la mismas manías. Con
una plataforma como .NET no podíamos resistirnos a seguir con la labor que iniciamos los
más viejos hace ya trece años. También están
los más jóvenes que sienten cuando van descubriendo las interioridades de la plataforma
.NET, lo que nosotros sentíamos cuando descubríamos las indocumentadas de Clipper o de
DOS o de Novell.
Cualquier tiempo pasado no fue mejor.
Nuestras revistas anteriores fueron, modestia
aparte, muy buenas. Pero con dotNetMania
creo que daremos lo mejor de nosotros mismos, porque contamos con una plataforma con
una arquitectura tan amplia como impecable,
porque tenemos más medios, más experiencia,
porque somos más. Sólo faltabas tú, y por lo
visto ya estás aquí.
Esperamos sinceramente que nuestro trabajo te sea útil, que disfrutes leyéndola y
aprendiendo con ella, tanto como nosotros
haciéndola, y sobre todo, esperamos ser capaces de contagiarte el maravilloso virus de la
curiosidad.

González, Jesús López, Jordi Rambla,
Jorge Serrano, José Manuel Alarcón,
Juan Torres, Liborio López, Luis
Miguel Blanco, Marino Posadas,
Miguel Egea, Miguel Katrib, Pablo
Abbate, Pedro Gómez, Pedro Pozo,
Pepe Hevia, Salvador Ramos
Diseño y Maquetación
Éride Diseño Gráfico
Tel.: (34) 91 477 48 85
eride@eride.net • www.eride.net
Edita
netalia
Tf. (34) 91 6667477
Fax (34) 91 4991364

Imprime
Campillo Nevado
www.campillonevado.com
Depósito Legal
M-3.075-2004
Suscripciones/Administración
suscriptores@dotnetmania.com
Redaccion
redaccion@dotnetmania.com
Publicidad
marketing@dotnetmania.com
Nuevos colaboradores
colaboradores@dotnetmania.com

<<dotNetManía

Pág.03© ©

3

NET Framework La evolución hacia la revolución .NET Framework Biblioteca 54 Microsoft Visual Basic.NET. que abandona también a Win32 y se pasa al código gestionado de . Modelos en UML 42-48 Un recorrido a través de las diferentes metodologías basadas en objetos (OMT. La evolución de la plataforma . Conozca las nuevas mejoras del nuevo Visual Studio y el nuevo .sumario Intercambiando contenidos en RSS con ASP. Laboratorio 50-53 Delphi 8 para Microsoft . ¿Programación en .NET Manual Imprescindible De Guillermo Som Programación con ASP. Conozca brevemente la historia de esta especificación y aprenda a utilizarla con el ejemplo propuesto. Equivalencia de instrucciones de C# y VB.NET. ESPECIAL MICROSOFT PREPARA EL FUTURO Microsoft y el desarrollo de software Un vistazo al futuro 16-17 Mauricio Ulargui. director de la División . Y finalmente nos pararemos a hacer una primera aproximación al Lenguaje Unificado de Modelado (UML).Net en Yukon? 28-33 ¿Porqué? ¿Para qué? ¿Me he estado perdiendo algo hasta ahora? ¿Cansado de programar con Transact SQL? ¿Está preparado para utilizar su lenguaje preferido para programar procedimientos almacenados? ¿Realmente será mejor? De Everett a Orcas.NET 18-20 Perspectiva desde el punto de vista técnico de las nuevas tecnologías que están por venir.04-05© 21-27 Será el principio de una nueva época. Esta serie de artículos pretende explicarte cómo hacer las mismas cosas tanto en C# como en Visual Basic .NET Un primer vistazo al nuevo Delphi.NET Framework. UML.NET a través de la especificación RSS. Eiffel…). C#. Métrica v3…) y los lenguajes de programación que implementan éstos conceptos (C++.NET De Jorge Serrano Comunidades Proyecto Golem 55 . pasando por Whidbey 34-40 Viaje desde Everett a Orcas pasando por Whidbey. Longhorn y el Desarrollo dnm.NET de Microsoft Ibérica hace una introducción al especial “Microsoft prepara el futuro” dando un vistazo general de las nuevas tecnologías que se están preparando.NET (I) 11-15 Cómo hacer las mismas cosas (o casi) en C# y Visual Basic . VB.sumario pág.NET 6-9 Intercambie contenidos en Internet en sus páginas ASP. Orientación a objetos.Net.27/8/56 09:02 Página 4 dnm. marcando el final de las aplicaciones Win32 y el comienzo del código gestionado.

04-05© 27/8/56 09:02 Página 5 .pág.

desarrollo y despliegue de aplicaciones . una nueva edición diseñada para permitir a los desarrolladores crear aplicaciones basadas en la plataforma . en sus ediciones Architect. Esta versión también agiliza el desarrollo de aplicaciones ASP. Inscripciones en el 902 344 556. ofreciendo cientos de clases y controles para aplicaciones de bases de datos de alto rendimiento.NET.com/spain/technet/comunidad/eventos/seguridad/cisco_sectour5. soporte nativo de <<dotNetManía 6 << V Cisco Secure Tour anual Fecha: 27 de Enero de 2004 Hotel Meliá Castilla C/ Capitán Haya.eventos . celebrado en noviembre del año pasado en San José. Vicepresidente y General Manager de .de.Madrid Para más información: http://www. el evento anual más importante de Borland.NET está diseñado para permitir el desarrollo rápido de aplicaciones fiables con desarrollos web robustos. << Seminario técnico de generación Tfnos: 91 567 50 00/ 91 567 50 51 http://www. Nosotros ayudaremos a los programadores de Delphi a hacer esta transición”.NET Solutions en Borland.NET ofrece. Professional. asimismo. Los asistentes tendrán acceso a una oferta especial de lanzamiento. se presentó al nuevo Delphi 8 para Microsoft . en un evento de lanzamiento del producto donde podrá ver de primera mano las características de esta nueva versión.NET aparece en tres ediciones diferentes: Architect. Delphi 8 para Microsoft . ellos llevarán todo a código administrado.pág.danysoft.NET y a Borland C# Builder para Microsoft . para diseño guiado por modelos.NET.asp de Presentaciones Efectivas << Curso Imprescindible para la tramitación de la certificación MCT 26 de febrero de 2004 Auditorio Microsoft C/ Pechuán. Aquí en España se presentará el día 5 de febrero de 2004 en Madrid.microsoft. Si quieres programar como un desarrollador de primera has de migrar a . El proveedor Borland Data Provider para ADO. 3ª planta Organiza Grupo Danysoft (902 123 146) calendario.NET. Madrid.NET. También se anunció la aparición del Borland Enterprise Core Objects (ECO) que ayudará al desarrollador a crear aplicaciones rápidamente desde los diseñadores y que se incorpora a Delphi 8 para Microsoft .borland.es y http://www.NET. El fin de Win32 está a la vista. Enterprise.com/spain/formacion/noticias/presentaciones.NET y migrar aplicaciones Delphi para Win32 con una compatibilidad total con todas las clases de . ideal para desarrollos web individuales y aplicaciones de interfaz gráfica de usuario para . para los equipos que desarrollan aplicaciones empresariales de bases de datos con ADO.NET 18 Febrero de 2004 Auditorio de Microsoft C/ Pechuán. Según dijo Simon Thornhill.NET ahora.NET.asp rendimiento optimizado para las principales bases de datos corporativas. 28002. 1.NET En la 14ª edición del BorCon (Borland Conference 2003). << Solución ALM de Borland para la plataforma .noticias Ya está aquí el nuevo Delphi 8 para Microsoft .com. “En Microsoft han sido muy claros. y para Europa en Ámsterdam. http://www.microsoft. 1 Organiza Microsoft (902 197 198 ). Borland (902 344 556 ) y el Grupo Danysoft (902 123 146) de informes con Crystal Reports y Crystal Enterprise 25 Febrero de 2004 Sala presentaciones Danysoft Estébanez calderón nº 5. 43 28020 . ECO soporta MDA (Model Driven Architecture) y UML (Unified Modeling Language).NET capacitándole para construir robustos servicios web XML y aplicaciones HTML.06-07© 27/8/56 09:11 Página 6 dnm. California. Delphi 8 para Microsoft .noticias << dnm.

por ejemplo. aunque dejen de distribuirse.danyshop.NET a punto de llegar. y una Xbox con 3 juegos a cada uno de los integrantes del equipo. la premiada familia de herramientas y plug-ins gráficos para desarrolladores. con mejoras adicionales para Raster Imaging. la presentación del proyecto se hará a través del site (www. Outlook 2000. Product Manager de MSDN Suscriber Downloads. Imagine Cup está esponsorizada por Microsoft Corporation.pág.desarrollaelfuturo.com La operación “desguace” de Microsoft Microsoft está acabando con el pasado más rápidamente de lo que nos tenía acostumbrados. Inc. El motivo no es otro que el fin del acuerdo con Sun sobre la distribución de la máquina virtual de Java escrita por Microsoft. <<dotNetManía LEAD Technologies. Document. incluyendo nuevos ejemplos de .06-07© 27/8/56 09:11 Página 7 << dnm.000 y $10. el soporte se mantendrá durante algún tiempo.NET • Próxima llegada: . LEADTOOLS 14 está repleto de tecnologías de última generación. Se comenzará con la retirada del canal de distribución. Pero Windows 2000 no es el único.NET y Raster Imaging v14 7 . Este año se repartirán más de $85.000. Windows 2000 empezará a retirarse en Abril de este año en un proceso progresivo que terminará en el 2007. Para SQL Server 7 habrá soporte hasta el 2007.000 para el primero.com) hasta el día 27 de Febrero jurado estará formado por personal de Microsoft. Para más información consulte en el centro de soporte de Microsoft en: http://support. entre otros. Sin embargo. Visual Studio 6. Los tres últimos finalistas recibirán un viaje a Brasil con todos los gastos pagados para participar en la final internacional de la Imagine Cup en Brasil. La final consistirá en un evento de varios días en Sao Paulo. productos como Office XP Professional con Frontpage o Windows NT 4. y Microsoft ya no podrá distribuir ninguno de sus productos que incluyan este software. nuevas características y mejoras significativas para las líneas de productos Raster Pro.com Últimos días para la inscripción en la “Imagine Cup” Imagine Cup es la competición internacional de tecnología para estudiantes universitarios. servicios web y componentes inteligentes que aprendan a lo largo del tiempo. Según Andy Boyd. Todos los finalistas internacionales de cada país o región competirán por las tres primeras plazas. para el tercero. segundo y tercero respectivamente.0 SP3 y SP5 y algún producto más. dependiendo de cada herramienta.microsoft. que deberán presentar un proyecto en el que se utilicen dispositivos móviles. Office XP para desarrolladores. Brasil. Mejoras de la nueva versión: • Anotaciones: nuevos objetos y características • Actualizaciones del Módulo OCR • Nuevo Módulo ICR • Nuevo Módulo OMR (Proceso de Formularios) • Nuevos diálogos comunes de imágenes • 100 funciones de proceso de imágenes • DjVu® y KDC y varios nuevos formatos • Actualizaciones Medical Imaging • Actualizaciones Multimedia • Actualizaciones de librerías de clases C++ • Actualizaciones de objetos COM. Para participar lo primero que tienen que hacer los estudiantes es registrarse junto con los miembros de su equipo antes del día 6 de Febrero. LEAD es uno de los líderes mundiales en el desarrollo de kits de herramientas gráficas. Visio 2000. Ha terminado el plazo. De hecho. aunque otros como Windows 98 ya terminan. $15. hace menos de un año que apareció Windows 2003 y su antecesor. para el primero. Los premios son de $25. Vector y . La operación “desguace” de Microsoft también incluye a SQL Server 7. y su distribuidor para la península ibérica el Grupo Danysoft han anunciado el lanzamiento de la versión 14 de LEADTOOLS.000 en premios en metálico para los ganadores. para el segundo. En esta primera fase.noticias Para más información o solicitar una copia de evaluación visite la web del distribuidor en www. un Pocket Pc a cada uno de los integrantes del equipo. para terminar con la retirada del soporte del producto. Medical y Multimedia. sí serán actualizados con versiones sin la máquina virtual de Java para poder seguir descargándose como hasta ahora. Windows 98.

NET << Cuando comenzó Internet. Esto es justamente lo que veremos en este artículo. Lo más valioso de la red de redes es la información. pero permanece inaccesible en muchos de los casos. ya que es realmente en lo que se ha convertido. Y es que RSS no es otra cosa que un documento XML que sigue una serie de reglas que permiten traducir los contenidos de estos documentos para que sean interpretables por cualquier aplicación o programa que lo trate. podemos indicar que el embrión de lo que hoy se conoce como RSS. ¿qué y cómo es?. que separando las diferencias. el de Content Syndication —distribución de contenidos—. Para tratar de evitar en parte esta desinformación.PortalVB.08-11© © 27/8/56 09:13 Página 8 Por Jorge Serrano Visual Basic y . ¿cómo acceder a este tipo de recursos? y sobre todo. Ahora bien. <<dotNetManía ¿Qué es RSS? 8 La definición oficial de RSS es Really Simple Syndication —distribución realmente simple— también conocido como Rich Site Summary —resumen enriquecido del sitio—.Pág. la información fluye a una velocidad imparable e incontrolable. y podemos hacerlo con cualquier editor como por ejemplo el bloc de notas de Windows.NET?. Desgraciadamente. que es quizás un significado más acertado para RSS Historia y versiones de RSS La historia de RSS no está del todo clara y cuando uno se acerca a ella. Construir un documento RSS es por lo tanto.com Intercambiando contenidos en RSS con ASP . RSS no es otra cosa que un documento XML que sigue una serie de reglas que permiten traducir los contenidos de estos documentos para que sean interpretables por cualquier aplicación que lo trate. requiere que realicemos diferentes saltos entre un lugar y otro en Internet para conocer las noticias e informaciones que publica un sitio y otro o sobre un tema de interés. nadie conocía el alcance real que hoy día tiene. realmente sencillo. apareció el concepto de RSS. ¿cómo tratarlos en nuestras aplicaciones ASP . lo encontramos en Abril de 1997 y . parece más adentrarse a una batalla de disputas que a una historia de armonía y entendimiento. y en otros.NET MVP www. Pero lo que está claro es. Es decir. pero ¿tenemos control sobre la información que se publica en Internet y tenemos acceso a ella fácilmente?. la información se encuentra dispersa y sin criterio alguno que nos permita compartir y acceder a ella sin trastornos para los usuarios. pero quizás encuentre RSS con un significado más preciso aunque no coincida con sus siglas.

la 0.91 de Julio de 1999 fue presentada por Netscape y no se basaba en RDF.0 Grupo de trabajo de RSS Basada en RDF. aconsejo la visita del siguiente enlace: http://blogs. requiere módulos de carácter avanzado. con sus etiquetas y valores de acuerdo a una serie de reglas.9 de Marzo de 1999.0. 0. Una ima- Responsable Descripción 0. aparecerían entre Julio y Noviembre de 2000 otras versiones como la 0.0 si se usa ésta.law. Analizando detenidamente la figura 1. La versión 2. cuando Dave Winer ofrecía unos scripts para distribuir noticias en XML. basada en RDF Resource Description Framework —marco de descripción de recursos— y cuyo objetivo era el de presentar la información en el WWW.94 UserLand Es una versión en desuso.9 Netscape Es una versión en desuso. Figura 1.plataforma. 9 . Netscape utilizó entonces. la 0.0 de ejemplo (fuente 1) y explicaremos su contenido y las partes de éste. A partir de ese momento. Compatible con la versión 0. la 0.0 de RSS es compatible con la 0. Más tarde. y de estas tres.net ¿Cómo es un documento RSS? Un documento RSS es un documento XML. Versión RSS Cada una de estas partes posee un conjunto de etiquetas y cada una de éstas posee un determinado significado. han aparecido diferentes versiones mejoradas. Tabla 1. y entre la etiqueta del canal.0 UserLand Es la versión comúnmente aceptada y extendida. que son las que se utilizan en la mayoría de los sitios Web.91.harvard-edu/ tech/rss/ Para aclarar toda esta maraña de información.0.0. sólo tres versiones han sido tenidas en cuenta. pero para conocer más a fondo la especificación de RSS 2.0 está compuesto por una cabecera —etiqueta rss— dónde se indica la versión del documento RSS.Versiones de RSS <<dotNetManía concretamente en UserLand. 0.92 que era compatible con la 0. Posteriormente en Septiembre de 2002 aparecería la versión 2. 2.0 y la 2.asp. sólo dos de ellas son las más extendidas y comúnmente aceptadas en Internet. observaremos que un documento RSS 2. si bien. la v0. por lo que es rechazada en Internet. seguida de una etiqueta que indica información sobre el canal —etiqueta channel— del documento. tuvo sus inicios más serios en las oficinas de Netscape en el año 1999 cuando lo aplicaron a su propia red. RSS.0. requieren menos esfuerzos para ponerlas en funcionamiento. La versión 0.93 UserLand Es una versión en desuso. se recomienda el uso de la versión 2. La versión 1. Aquí veremos las más generales.0.94 y la 1. los elementos de contenido —etiqueta item— que pueden ser repetidos tantas veces como contenidos diferentes queremos representar. 0. 0.0.91.92 UserLand Es una versión en desuso.91 UserLand Es de las más usadas. lo que era la primera versión de RSS.91 y la 2. la 1.0 ha sido generalmente rechazada por requerir acciones avanzadas debido a que está basada en RDF.08-11© © 27/8/56 09:13 Página 9 << dnm.93. Diagrama general de un documento RSS 2.0 En la figura 1 podemos observar cuál es el formato general de un documento RSS versión 2.Pág. sin embargo. Las otras dos.91 y es en la que me voy a basar en este artículo por ser la más actual y la que se está extendiendo de forma más clara.91. escribiremos un breve documento RSS 2. la 0. 1. En la tabla 1 puede ver un resumen de las diferentes versiones de RSS. De todas estas versiones.

NET con RSS 10 Pese a todas estas explicaciones. en este artículo nos detendremos muy poco en la presentación de la información del documento RSS. La capa de presentación es algo sobre lo que debemos trabajar en una etapa posterior. las informaciones sobre el sitio Web (título o nombre. Después de la etiqueta <channel> y antes de la primera etiqueta <item>.NET. el artículo comienza por las etiquetas <rss> y </rss>.Pág. De esta manera.0 tras aplicaciones ASP. pues indica el tipo de idioma o lenguaje que se utiliza en el sitio siguiendo las normas indicadas en la documentación RFC 1766 y que encontrará en la dirección web: http://www.NET que lea el contenido del documento RSS y lo muestre en pantalla. Este contenido se define en las etiquetas <title>. parece más adentrarse a una batalla de disputas que a una historia de armonía y entendimiento servidor Web local. encontramos diferentes etiquetas que forman parte de la información de cabecera y que identifica el sitio Web en el que se encuentra la información RSS. <link> y <pubDate> (título de la información. la etiqueta <language> es quizás la más destacable.08-11© © 27/8/56 09:13 Página 10 << dnm. enlace Web y fecha de publicación).asp. De todas estas etiquetas. y otro que permita leer el contenido del archivo para trabajar directamente con él. <description> y <language>.xml y tendrá el siguiente contenido. Para llevar a cabo nuestro cometido.NET. <link>. encontramos en las etiquetas <title>.net gen vale más que mil palabras y entenderemos a la perfección lo que he explicado hasta ahora. Esto puede ser realizado mediante dos procesos: Uno que permita leer el contenido RSS de una dirección Web directamente.html Entre la etiqueta <item> e </item>. descripción e idioma). encontraremos las etiquetas <channel> y </channel> entre las que están los elementos más importantes del documento RSS.org/Protocols/rfc822/ <<dotNetManía ASP. este procedimiento no es el mejor de todos ni tampoco será . encontramos los elementos del contenido que queremos compartir. A este fichero lo llamaré MiRSS.0”> <channel> <title>Título_del_Sitio_Web</title> <link>Dirección_de_la_Página_Web</link> <description>Descripción_del_Sitio_Web</description> <language>Nombre_de_Cultura_o_Idioma_con_RFC_1766</language> <item> <title>Título_del_Artículo</title> <description>Descripción_del_Artículo</description> <link>Dirección_Web_del_artículo</link> <pubDate>Fecha_Hora_GMT_con_RFC_822</pubDate> </item> <item> <title>Título_del_Artículo</title> <description>Descripción_del_Artículo</description> <link>Dirección_Web_del_artículo</link> <pubDate>Fecha_Hora_GMT</pubDate> </item> </channel> </rss> Fuente 1. aún nos queda aprender a leer esta documentación en ASP. enlace Web. Dentro de estas etiquetas. Evidentemente.0”?> <rss version=”2. añadiremos un documento RSS al directorio raíz de nuestro servidor Web que en mi caso es http://localhost/ ya que estoy trabajando con el La historia de RSS no está del todo clara y cuando uno se acerca a ella. Crearemos una página sencilla en ASP.plataforma. Ver fuente 2. Como vemos en el fuente 1. la etiqueta <pubDate> es la más destacable e indica la fecha de publicación de esta información según las normas de la documentación RFC 822 que encontraremos en la dirección web: http://www. Lo importante en este momento es saber cómo trabajar con este tipo de documentos desde nues- <?xml version=”1. Pasemos ahora a la parte del desarrollo.w3. Ejemplo de documento RSS 2. Generalmente. utilizaremos la primera acción y es ésa la que utilizaré en este artículo. De hecho.ee/support/Official/intro. Como en el caso anterior. descripción. <description>.

Finalmente.08-11© © 27/8/56 09:13 Página 11 << dnm.NET</title> <description>Pagina web de Microsoft . MiRSS. o no debería estarlo.com/netframework/</link> <pubDate>Mon.com/</link> <pubDate>Mon. Conclusiones En este artículo hemos realizado un breve repaso por la historia de RSS y nos hemos centrado en aquellas partes del documento que son las más utilizadas. 01 Jan 2004 01:12:23 GMT</pubDate> </item> <item> <title>Microsoft MSDN .NET la he denominado RSS.xml una vista ideal del contenido de un documento RSS 2. hemos realizado una aplicación en ASP. Ejecución del lector de documentos RSS 2. Evidentemente.0 en ASP. De la misma manera. Figura 2.Pág.NET <<dotNetManía <?xml version=”1.net Fuente 2.com. hemos visto un ejemplo de documento RSS 2.NET</description> <link>http://msdn. la información mostrada en la figura 2 dista mucho de la información que se pueda mostrar en un sitio Web.ASPX y su código puede encontrarlo en nuestra página Web http://www.dotnetmania. en los recursos de este artículo. Nótese. pero le será de utilidad y ayuda para generar su propio código. colores y formatos de texto. lo ideal es trabajar con hojas de estilo para presentar la información de forma personalizada dentro de un sitio Web.NET que nos ha permitido leer la información de un documento RSS 2. Aunque se pueden hacer muchas más cosas con este tipo de documentos. que la información que contiene un documento RSS no está formateada. La página ASP. Nuestra aplicación en ejecución es la que se muestra en la figura 2. dejo a su imaginación la cantidad de posibilidades que esto le puede ofrecer.0”?> <rss version=”2.0”> <channel> <title>Mi Intranet</title> <link>http://localhost/</link> <description>Esta es mi Web de pruebas</description> <language>es-ES</language> <item> <title>DotNetMania</title> <description>Pagina Web de la revista</description> <link>http://www.0.plataforma. por lo que es ideal para que nosotros adecuemos la información al formato de estilo de nuestro sitio Web sin romper para ello la armonía.microsoft.0 y hemos conocido sus partes más importantes. RSS nos ofrece muchas posibilidades y ahora le corresponde a usted descubrirlas y aplicarlas según sus necesidades y criterio. Sirva como ejemplo la posibilidad de trabajar con esta información dentro de un DataSet y realizar búsquedas por un determinado filtro para mostrar únicamente aquella información que cumpla un determinado filtro o personalizar la salida en el caso de encontrarnos con recursos en diferentes idiomas. de hecho.0 y mostrarla en pantalla. 01 Jan 2004 07:28:15</pubDate> </item> </channel> </rss> 11 .asp.dotnetmania. Por lo tanto.

12© 27/8/56 09:15 Página 12 .Pág.

que algunas veces no sólo es suficiente conocer la sintaxis del lenguaje. No sólo veremos la equivalencia sintáctica entre C# y VB .NET Framework que hagamos las cosas. ya que si no conocemos cómo realizar ciertas cosas. Ahora.NET Framework tienen para hacerlo.NET Framework. No necesitamos saber nada más. . salvo conocer la sintaxis apro- piada del lenguaje que hayamos elegido para desarrollar nuestras aplicaciones para poder hacer esa tarea. acceder a una base de datos o interactuar con el sistema operativo subyacente cada lenguaje de programación tenía su propia forma de hacerlo. podemos recurrir a componentes creados por terceros e incluso crearlos nosotros mismos.NET Framework se refiere.NET Framework incluye casi toda la funcionalidad que necesitamos para crear nuestras aplicaciones.NET << Una cosa que es indiscutible.NET. siempre tendremos la oportunidad de hacer las cosas al estilo de .NET (I) Cómo hacer las mismas cosas (o casi) en C# y Visual Basic . o en C#. o casi todas.info Equivalencia de instrucciones de C# y VB . qué requisitos nos exige y una vez que sepamos esas exigencias. podremos crear nuestro propio juego de clases. independientemente del lenguaje que estemos usando. Ya pasó la época en la que para hacer ciertas tareas comunes. Se supone que si estamos programando en Visual Basic .NET Framework: Usar una clase para lo que necesitemos. y si algo que necesitamos hacer no se incluye entre los numerosos espacios de nombres plagados de clases de . es que todos los lenguajes se apoyan en las clases que ese marco de trabajo incluye. en lo que a la programación de aplicaciones para .. Lo mismo ocurrirá si pretendemos crear nuestras propias clases. sólo necesitamos saber cómo declararla e instanciarla en la memoria para que esté lista para usar.NET Framework. sabremos aplicar las reglas sintácticas del lenguaje para poder realizar todas las tareas. lo importante es que.13-17© © 13 . Por suerte para los programadores ahora sólo necesitamos conocer una forma de trabajar: La forma que las clases de . Para poder usar una clase..27/8/56 09:16 Página 13 Por Guillermo ‘Guille’ Som Visual Basic MVP desde 1997 www. como abrir un fichero. En ambos casos debemos conocer la sintaxis que utiliza nuestro lenguaje predilecto para hacernos entender con .elguille. por muy bien que <<dotNetManía Pág.NET. también veremos algunos conceptos que son exclusivos de cada lenguaje. tendremos que saber cómo quiere .

ya sabes cómo crear un bucle o definir una propiedad e incluso un constructor o un destructor (o finalizador). Seguramente serán los programadores de Visual Basic los que tengan más interés en conocer cómo trabajar con sintaxis de C#.NET). habrá que usar un espacio seguido de un guión bajo. En dichas tablas se mostrará tanto el código de C# como el de VB . asignaciones y conversiones de forma correcta: Option Strict On. En Visual Basic se puede declarar una variable sin necesidad de indicar el tipo de datos. ya que el final de una instrucción se indica con un punto y coma.lenguajes sepamos hacer un bucle FOR. pero lo que seguramente <<dotNetManía …veremos desde cómo declarar una variable hasta cómo llamar desde el constructor de una clase derivada al de la clase base. Por ejemplo: <tipo> Será el tipo de datos que vamos a definir. ya sabes cómo crear tus propias clases. Voy a dar por supuesto que ya sabes programar para .NET todo el código debe estar en una línea física y en caso de que queramos que se continúe con la siguiente. Debido a que esta no es la forma recomendada de trabajar. ya sabes cómo derivar una clase a partir de otra. pero en Visual Basic . siempre mal visto.NET. sí.NET Framework. podrá ser: una instrucción y acabará con pun- .13-17© © 27/8/56 09:16 Página 14 << dnm. <ámbito> Será la cobertura que tendrá la variable. A lo largo de este y los siguientes artículos te mostraré una serie de tablas en las que usaré ciertos marcadores para indicar instrucciones o tipos de datos que tendremos que especificar. ya sabes cómo hacer las cosas para trabajar con las clases de .NET). Y eso es lo que esta serie de artículos pretende. por aquello de que en algunos sitios valorarán más a quién sepa programar en C# frente al que sólo sepa programar en el. en el caso de VB habrá que usar siempre Dim o Static. Si la declaración se realiza dentro de una propiedad o método (función o procedimiento). En C# no sería un problema. Sintaxis básica La declaración de las variables es una de las cosas que siempre tendremos que hacer en cualquier aplicación.NET. Si quieres aprender a programar. 14 te gustaría es saber cómo hacerlo en el otro lenguaje. explicarte cómo hacer las mismas cosas tanto en C# como en Visual Basic . se supone que ya sabes hacer todas esas cosas en el lenguaje que has elegido para programar. en C# no se usa ningún modificador de ámbito. (en esta serie de artículos supondré que ha sido el lenguaje C# o Visual Basic . Aquí no voy a enseñarte a programar en ninguno de los dos lenguajes más utilizados por los desarrolladores de . En C# cuando se indique el <código> a escribir. será lo mismo que declarar la variable como privada. lenguaje de la familia BASIC.NET. (aunque no conozcas todas las clases incluidas en .NET. a algún sitio de Internet o comprarte algún libro. aunque seguramente algunas de las cosas aquí explicadas te ayudarán a clarificar tus ideas. veremos desde cómo declarar una variable hasta cómo llamar desde el constructor de una clase derivada al de la clase base. no nos servirá de mucho. ya sabes cómo implementar una interfaz. Si la declaración se hace a nivel del tipo (clase o estructura) y no se indica el ámbito en C# o se utiliza Dim en VB. Sin más historias empecemos viendo las distintas tareas que podemos realizar en . voy a suponer que tenemos seleccionada la opción que nos obliga a realizar las declaraciones.NET Framework comparadas entre los lenguajes C# y Visual Basic . Puede que dicho código se muestre en varias líneas. es decir.Pág. deberías plantearte acudir a algún centro de formación.NET Framework.

así como los modificadores de visibilidad que podremos usar. No se indica. así mismo muestra los modificadores permitidos según el tipo o miembro que estemos declarando. es decir. si en C# declaramos una clase sin indicar el modificador de visibilidad. En el caso de las instrucciones Dim o Static de Visual Basic.NET como en C#. terminada si no se indican expresamente..Pág. aunque la mayoría de las instrucciones definirán un bloque de código. Dim o Static Privado a la clase o tipo private Private Público.NET Framework tienen para hacerlo posible que el ámbito de dicho elemento varíe. o un bloque de instrucciones (más de una instrucción). clases derivadas y en el mismo ensamblado protected internal Protected Friend Static hará que la variable mantenga el último valor asignado Tabla 1. métodos. siempre tendrán un nivel de visibilidad o cobertura.NET Variables declaradas en métodos. La tabla 2 muestra los modificadores que se aplican de forma prede- Modificadores de ámbito o visibilidad Las variables. sólo necesitamos conocer una forma de trabajar: La forma que las clases de . Incluso ese ámbito puede ser diferente dependiendo del lenguaje usado. Ese par de llaves indicará el bloque de código. sin indicar expresamente el modificador de visibilidad. Dependiendo de dónde se declaren las variables y los tipos (clases). En Visual Basic . etc. clases. Modificadores de accesibilidad (ámbito o visibilidad) La tabla 1 resume los modificadores de accesibilidad que podemos usar tanto en Visual Basic . dentro de esa misma línea pueden existir varias instrucciones separadas por dos puntos.NET el ámbito será Friend. aunque esta forma de escribir código no es recomendable porque el código es más difícil de leer y puede causar más de un quebradero de cabeza. Aunque en VB cada instrucción (o serie de instrucciones) debe ocupar una sola línea. Dicho bloque de código estará definido por una palabra clave y normalmente acabará con la instrucción End seguida de la palabra clave que define dicho bloque. en cuyo caso dichas instrucciones deben estar dentro de un par de llaves { y }. propiedades y bloques de código. se tendrá que definir. . será lo mismo que haberla declarado private. es Por ejemplo. propiedades. la definición de una clase se indica usando la instrucción Class y finaliza con las instrucciones End Class. En las siguientes tablas veremos las instrucciones que permitirán definir o modificar el nivel de visibilidad de esos elementos. sólo se podrán aplicar a variables.13-17© © 27/8/56 09:16 Página 15 << dnm.NET no existe el concepto de bloque de código independiente. (la que se puede continuar con la siguiente usando un guión bajo). siempre accesible public Public Accesible en el propio ensamblado internal Friend Accesible en la clase y en las clases derivadas protected Protected Accesible en la clase. Modificador de ámbito (visibilidad) C# VB .lenguajes to y coma. Por ejemplo. explícita o implícitamente donde serán visibles. sin embargo en Visual Basic .

un array se define usando un par de paréntesis en el tipo de datos o en el nombre de la variable. Public Friend Private interface/Interface miembros de las clases.lenguajes Tipos y Miembros de los tipos: enum / Enum <<dotNetManía Accesibilidades permitidas C# VB . En la tabla 3 podemos ver los tipos de datos con el nombre usado por . no es necesario usar new para crear el array. aunque cuando se declara y asigna al mismo tiempo. el array ya estará listo para poder usarlo: Dim var(4) As Integer. aunque no sería correcto hacerlo de esta otra forma: Dim var As Integer(4). Aunque sea un tipo por referencia. al menos en Visual Basic. Public Friend Miembros de Module N.NET. Accesibilidades predeterminadas y permitidas Tipos de datos Los tipos de datos de los lenguajes de .Pág. el equivalente sería: int[] var = new int[5]. si al declarar el array indicamos el número de elementos. pero siempre se usará en el tipo de datos: En VB se puede usar de estas dos formas: Dim var() As Integer o Dim var As Integer() En C# se usará sólo de esta forma: int[] var. la creación de matrices no implica la utilización de la instrucción New. En C#. Friend N. En Visual Basic. En C# se indica con un par de corchetes. 16 Accesibilidad predeterminada private Siempre hay que indicar el ámbito.NET y los alias usados en Visual Basic .A. CTS) de . (que es la que se utiliza para crear una nueva instancia en memoria de una variable de un tipo por referencia). private Friend public Public protected Protected internal Friend private Private protected internal Protected Friend Module (sólo VB) N.NET son alias que hacen referencia a los tipos de datos definidos por el sistema de tipos comunes (Common Type System.13-17© © 27/8/56 09:16 Página 16 << dnm. Los arrays o matrices Los arrays (matrices) son un tipo especial de variable por referencia y están basadas en la clase System.A.NET public Public public Public protected Protected internal Friend private Private protected internal Protected Friend Miembros de enum public Public Sólo public Sólo Public class / Class y miembros de las clases. private Friend public Public protected Protected internal Friend private Private protected internal Protected Friend Miembros de interface public Public Ninguna Ninguna struct / Structure private Friend public Public protected Protected internal Friend private Private protected internal Protected Friend public internal private Public Friend Private Miembros de struct / Structure. ya que en C# sí será obligatorio el uso de la instrucción new para crear el array. .NET C# VB .A. Tabla 2.Array. En Visual Basic.A.NET y C#. Friend N.

Pág.13-17© ©

27/8/56 09:16 Página 17

<< dnm.lenguajes
.NET Framework

C#

VB .NET

Descripción, rango de valores

Tipos por valor:
System.Boolean
System.DateTime
System.SByte
System.Byte
System.Int16
System.UInt16
System.Int32
System.UInt32
System.Int64
System.UInt64
System.Char
System.Single
System.Double
System.Decimal

bool
N.A.
sbyte
byte
short
ushort
int
uint
long
ulong
char
float
double
decimal

Boolean
Date
N.A.
Byte
Short
N.A.
Integer
N.A.
Long
N.A.
Char
Single
Double
Decimal

Verdadero o falso.
Fecha y hora.
Entero con signo de 8 bits.
Entero sin signo de 8 bits.
Entero con signo de 16 bits.
Entero sin signo de 16 bits.
Entero con signo de 32 bits.
Entero sin signo de 32 bits.
Entero con signo de 64 bits.
Entero sin signo de 64 bits.
Un carácter Unicode de 16 bits.
Punto flotante de simple precisión (con precisión de 7 dígitos32 bits).
Punto flotante de doble precisión (64 bits) .
Tipo moneda con 28-29 dígitos significativos.

Object
String

Clase base de todos los tipos de .NET.
Tipo que representa a cadenas de caracteres

Tipos por referencia:
System.Object
System.String

object
string

Tabla 3.Tipos de datos predefinidos

En Visual Basic se puede cambiar el tamaño
de un array usando ReDim:
Dim var() As Integer
ReDim var(10)

También podemos usar ReDim Preserve; en
este caso, si el array ya contenía valores, dicho
contenido se conserva al cambiar el tamaño:
ReDim Preserve var(15)

En C# sólo se puede cambiar el tamaño de un
array usando new y no existe un equivalente para
Preserve; si queremos conservar el contenido anterior, debemos crear una copia y asignar los valores de forma manual:
int[] var;
var = new int[11];

Para eliminar un array, podemos asignarle un
valor nulo (null/Nothing), aunque en VB se puede eliminar el contenido de un array usando la
instrucción Erase.
Para acceder a un elemento de un array, en
VB se usará un índice numérico dentro de un par
de paréntesis, mientras que en C# ese índice se
indicará dentro de un par de corchetes:
En VB: i = var(2)
En C#: i = var[2];
Otra diferencia entre Visual Basic .NET y C#
es que al definir un número de elementos en un
array, en C# se indicará el número de elementos
que tendrá el array, mientras que en VB el número indicado será el valor del índice superior del
array:
En VB: Dim var(4) As Integer define un
array de 5 elementos, desde 0 hasta 4.
En C#: int[] var = new int[4]; define un
array de 4 elementos, desde 0 hasta 3.
En todos los lenguajes de .NET, el índice
inferior de un array siempre será cero.
En el próximo número seguiremos repa-

<<dotNetManía

Para declarar y asignar valores al mismo tiempo, tanto en VB como en C#, se indicarán los
valores de cada elemento entre un par de llaves:
En VB: Dim var() As Integer = {1, 4, 12, 2}
En C#: int[] var = {1, 4, 12, 2};

17

Pág.18-19© ©

27/8/56 09:21 Página 18

Por Mauricio Ulargui
Director de la División .Net de Microsoft Ibérica
dnm.especial.futuro

Microsoft y el desarrollo de software:
un vistazo al futuro

<<dotNetManía

<< En primer lugar, es un placer para

18

mí, como director de la división
.NET de Microsoft Ibérica, dar la
bienvenida a dotNetManía, una
revista que aparece con la vocación
de extender el conocimiento de la
plataforma .NET en el mercado
español. Precisamente, el nacimiento de esta publicación no hace sino
confirmar la importancia que nuestra plataforma está alcanzando en el
mercado de las Tecnologías de la
Información de nuestro país.
Realmente, durante la Professional Developer Conference (PDC)
que tuvo lugar en octubre y a la que
tuve la oportunidad de asistir,
Microsoft ofreció a los desarrolladores un vistazo previo a las nuevas tecnologías que se integran en la próxima ola de productos que irán apareciendo en un futuro próximo. Los
apartados más importantes, y sobre
los que esta nueva publicación,
dotNetManía, a la que damos una
cálida bienvenida y deseamos el
mayor de los éxitos, ha centrado su
primer número son la nueva versión
del sistema operativo Windows, de
nombre interno Longhorn, así como
la nueva generación del sistema de
desarrollo Visual Studio, con nombre código Whidbey, y por último y
no menos importante, la nueva versión de la base de datos SQL Server,
denominada Yukon. Estos lanzamientos están diseñados con el objetivo de cumplir el compromiso de
Microsoft de extender la productivi-

dad del desarrollador, haciendo aún
más fácil la creación de las más potentes aplicaciones y servicios Web.
Además simplificarán el acceso a
datos y la gestión, aprovechando las
últimas tecnologías de código gestionado y el uso de XML (eXtensible
Markup Language). Microsoft introduce así mismo un nuevo concepto,
WinFX, el modelo de programación
para Windows Longhorn; construido sobre una extension del .NET
Framework, WinFX proporciona
una completa gama de clases para
Windows, diseñadas para incrementar enormemente la productividad así
como la seguridad y fiabilidad de las
aplicaciones.
Con Windows Longhorn, Microsoft espera tender la base para
una nueva ola de innovación dentro
de la industria tecnológica – la cual
hará realidad una generación de aplicaciones orientadas a la información,
construidas para un mundo conectado y que ofrecerán una experiencia de usuario absolutamente impactante, aprovechando al máximo las
últimas novedades en hardware que
están apareciendo.
En los artículos incluidos en este
número podrá tener una visión más
detallada de las tecnologías que
incorporan los productos citados, en
particular de las novedades a nivel de
plataforma que ofrecerá Windows
Longhorn:
• Avalon El nuevo subsistema gráfico, el cual permitirá a los desa-

rrolladores construir aplicaciones
con una increíble experiencia de
usuario y proporcionará una
arquitectura unificada para la presentación del interfaz de usuario,
documentos y multimedia.
• WinFS El subsistema de almacenamiento de datos de
Longhorn proporcionará total
seguridad al guardar tanto datos
estructurados como no estructurados y facilitará vías inmensamente mejoradas para encontrar,
relacionar y actuar con la información almacenada.
• Indigo Una novedosa aproximación a la creación y ejecución de
sistemas conectados, Indigo es el
nombre código de las nuevas tecnologías de comunicaciones en
Longhorn, las cuales se han diseñado partiendo desde cero sobre
la arquitectura de servicios Web.
El soporte avanzado de los mismos en Indigo proporciona mayores capacidades para una mensajería e interoperabilidad más segura, fiable y transaccional.
Por otro lado, y como también
se explica más en detalle en otro artículo, las nuevas versiones Whidbey
de Visual Studio y del .NET
Framework han sido pensadas para
permitir a los desarrolladores y
arquitectos de software una mayor
facilidad en el diseño y creación de
cualquier desarrollo, desde una simple aplicación cliente o Web, pasan-

Pág.18-19© ©

27/8/56 09:21 Página 19

<< dnm.especial.futuro
do por aplicaciones para dispositivos móviles hasta aplicaciones
a escala global y orientadas a servicios.
Es más, Whidbey conduce a los desarrolladores un paso más
allá en el camino a Longhorn, con tremendas inversiones en código gestionado y un diseño de metodología muy adelantado que
permitirá el desarrollo de aplicaciones que separan la lógica de
negocio del interfaz de usuario. Las aplicaciones creadas con
Whidbey se ejecutarán sin problema en Longhorn, y las habilidades de desarrollo adquiridas al trabajar con Whidbey se aprovecharán plenamente al usar la siguiente versión de Visual Studio,
de nombre código Orcas, que verá la luz cuando se lance
Longhorn.
También se incluye en este número un interesante artículo
sobre la nueva versión de la base de datos de Microsoft, SQL
Server, denominada Yukon, la cual está diseñada para ofrecer
una experiencia más rica al usuario, mediante mejoras sustanciales en aspectos cruciales como la escalabilidad, la disponibilidad y la gestionabilidad; además se han contemplado otros
aspectos importantes como la inteligencia de negocio y una integración más completa con las herramientas de desarrollo, es decir
con “Whidbey”. Durante la primera mitad de 2004 se hará publica la Beta 2 de este producto, con la intención de lanzar la versión final durante la segunda mitad del mismo año.
Finalmente, y como complemento a la información que tienen entre sus manos en este y futuros números de dotNetManía,
les recomendamos la visita del sitio web que Microsoft pone a
disposición de los desarrolladores, MSDN Online, en el que
podrán encontrar información actualizada sobre todas estas tecnologías y en general sobre todo lo que concierne al desarrollo
en la plataforma Microsoft.

Mauricio Ulargui, director de la división .NET de Microsoft Ibérica

La próxima revolución
Pocas veces un evento dirigido a los desarrolladores de todo el mundo suscitó tanta
expectación e interés como lo hizo la
Professional Developers Conference que
Microsoft celebró el pasado mes de octubre
en Los Ángeles. Las razones tenían nombres y apellidos: Windows “Longhorn”,
SQL Server “Yukon” y Visual Studio .NET
“Whidbey”.
En un único evento los asistentes presenciaron los cimientos sobre los que se
asentarán las bases de la tecnología de los
próximos años. Sin ir más lejos, Windows
“Longhorn” está siendo escrito desde cero,
lo que va a suponer un giro radical en la
mentalidad de los usuarios en cuanto a interacción con los ordenadores se refiere.

Como antesala de lo que será el lanzamiento más importante de la compañía hasta la fecha, SQL Server “Yukon” y Visual
Studio .NET “Whidbey” harán su aparición para mostrar a los desarrolladores las
enormes posibilidades que la plataforma
.NET va a abrir ante sus ojos.
La nueva tecnología que se avecina va
a determinar un punto de inflexión en el
trabajo de la comunidad de desarrolladores de todo el mundo. Por este motivo,
Microsoft confía plenamente en su esfuerzo para diseñar nuevas aplicaciones basándose en estas tecnologías y va a colaborar
con todos ellos, tanto los que ya han apostado por la plataforma .NET como por los
que lo harán cuando conozcan las venta-

jas que les ofrecerá el nuevo Windows, para
crear soluciones que se sitúen a la altura
de las circunstancias.
Así pues, los meses que nos esperan
van a ser realmente interesantes para preparar el camino hacia estas nuevas tecnologías que se nos avecinan y, por lo tanto,
necesitarán de un gran esfuerzo, no sólo
desde el punto de vista del trabajo que
venimos desempeñando en Microsoft, sino
también desde el punto de vista de otros
actores implicados como partners, desarrolladores y usuarios para que todos juntos convirtamos en realidad la próxima
revolución.

<<dotNetManía

Isaac Hernández, director de Operaciones y Marketing de Microsoft Ibérica

19

Hasta ahora teníamos que cambiar nuestra forma de desarrollar dependiendo de si nuestro código se ejecutaba en la lógica de nego- . Las próximas versiones de Visual Studio (Whidbey). Han pasado tres años desde aquel evento y en este tiempo hemos sido testigos de cómo . . por lo que las herramientas y el modelo de desarrollo que utilizaremos serán los mismos que en el resto de nuestra aplicación. llamada provisionalmente Yukon. permite utilizar . Windows o dispositivo móvil).NET como modelo para el desarrollo de la lógica de servidor. entrando en detalle sobre el modelo de desarrollo de cada una de ellas e incluso repartiendo entre los asistentes un juego de DVDs con una vista preliminar de los bits definitivos. En esta ocasión Microsoft presentó las dos siguientes oleadas de tecnologías que viviremos los próximos años. <<dotNetManía << En julio del año 2000 Bill Gates 20 presentó en el Professional Developer Conference de Orlando (PDC) una vista preliminar de la nueva plataforma de desarrollo Microsoft . El objetivo próximo de Microsoft consiste en llevar este modelo de arquitectura a otros dos elementos presentes en las aplicaciones: el motor de almacenamiento de datos y el sistema operativo. Con estos precedentes se anunció una nueva conferencia PDC en Los Ángeles el pasado mes de octubre. Aquel PDC del año 2000 nos sirvió para conocer la plataforma sobre la que íbamos a desarrollar en el futuro.División de Desarrollo y Plataforma de Microsoft Ibérica La evolución de la plataforma . El interés superó todas nuestras expectativas. SQL Server. Por aquel entonces nos resultaba complicado imaginarnos una aplicación sin componentes COM. Primera oleada:Yukon y Whidbey La primera oleada se centrará en el motor de almacenamiento estrella de Microsoft.NET ha conseguido introducirse en la gran mayoría de las empresas de software y ha cambiado el modo en el que desarrollábamos aplicaciones. La integración entre aplicaciones se basaba en desarrollos a medida sobre APIs o protocolos propietarios.20-22© 27/8/56 09:22 Página 20 Por David Carmona Development Consultant . exponer su funcionalidad por protocolos estándares y accederla en cualquier momento y desde cualquier dispo- sitivo (ya sea web. los próximos años seremos testigos del desembarco de nuevas tecnologías que usarán el modelo de desarrollo .NET y XML para la construcción de nuevas aplicaciones impensables hasta ahora. La idea principal de todo este desembarco tecnológico gira en torno a . SQL Server (Yukon) y Windows (Longhorn) se encargarán de ello.NET.NET ha pasado de ser una visión de futuro a una realidad.NET para construir la lógica de negocio. Hoy la industria de la informática no tiene dudas de la necesidad de abrir las aplicaciones a estándares abiertos. Tres años después ya casi no nos acordamos de todo eso.NET y XML formarán parte de ambos.NET era sólo el principio. Esto significa que .NET .NET. de hecho dos semanas antes del evento se colgó el cartel de “no hay billetes” por alcanzarse la capacidad máxima del Centro de Convenciones.Pág. y que los servicios web proporcionan la tecnología para conseguirlo. La próxima versión de SQL Server. En la actualidad utilizamos la plataforma . modelo de hilos o contadores de referencias.

Los otros elementos presentes en una arquitectura .NET. Almacenar estos datos puede parecer sencillo (un documento XML no es más que una cadena de texto). pero también incluye por primera vez herramientas que asisten al desarrollador como el refactoring. Todo ello utilizando estándares como XQuery. La mayoría de las nuevas características de Whidbey están dirigidas a aumentar la productividad del desarrollador. Además de procedimientos almacenados. Yukon permite que el proceso de depuración e instalación sean también automáticos. Whidbey estará especialmente adaptado para el funciona- . corrector automático. de hecho un procedimiento almacenado en Visual Studio .NET. que permite realizar consultas sobre documentos XML del mismo modo que T/SQL permite realizarlas sobre datos relacionales. Incluso podremos relacionar los datos estructurados con los elementos XML y tratarlos de forma conjunta. tanto que en lugar de 1. Sin embargo.2 como correspondería llevará el nombre de 2. dispondremos de una nueva versión de ADO. funciones. todo cambiaba si nuestro código debía ejecutarse en el propio servidor.NET.NET. Cuando acabemos el procedimiento almacenado será instalado en el servidor remoto y podremos depurarlo como cualquier código .20-22© 27/8/56 09:22 Página 21 << << dnm. Por eso Whidbey aumenta considerablemente el núme- <<dotNetManía cio o junto a los datos. por ejemplo de acceso al disco.Pág. sino también de datos semi-estructurados en forma de XML.NET orientada a servicios son el XML y los servicios web. Además de la capacidad de escribir la lógica de servidor de Yukon. pero también nos permitirán construir aplicaciones nuevas muy difíciles de desarrollar hasta ahora (notificaciones sobre cambios.especial. La mayoría de estas características están enfocadas a conseguir mayor rendimiento y escalabilidad en nuestra capa de acceso a datos (operaciones asíncronas. Yukon está pensado para el almacenamiento no sólo de infor- 21 .NET ha conseguido introducirse en la gran mayoría de las empresas de software y ha cambiado el modo en el que desarrollábamos aplicaciones miento de los mismos es mucho más complejo. etiquetas inteligentes. plantillas de código parametrizables. paginación de resultados). DTS o el recién incorporado generador de informes. ejecutándolo paso a paso o consultando el valor de las variables.0. Al estar alineado con Yukon. Yukon permite validar los documentos XML almacenados según un esquema XSD que definamos y realizar búsquedas sobre los mismos de forma indexada. su librería de clases. con el mismo rendimiento que una búsqueda tradicional.NET y Visual Studio (nombre en clave Whidbey) estará alineado con Yukon en esta primera oleada. la facilidad de depuración y un sinfín de cosas más. El acceso por servicios web a Yukon también está contemplado. Whidbey La próxima versión del Framework .NET. Visual Studio . Podremos utilizar cualquier lenguaje para escribir el procedimiento almacenado y acceder a los tipos . tipos definidos por el usuario y agregaciones de datos. pero el procesa- versión del Framework será muy importante. Visual Studio .NET se convierte también en la herramienta de desarrollo de Analysis Server. En Yukon podemos decidir si nuestro código . la orientación a objetos.futuro mación relacional. incluyendo un conector SOAP nativo que puede exponer vistas XML de los datos relacionales y semiestructurados o ejecutar procedimientos almacenados y sentencias T/SQL dinámicas.NET incorpora mejoras espectaculares en el diseño de formularios web y Windows. . Desde luego la línea de código más productiva es la que no tienes que escribir. En el primer caso disponíamos de la ayuda del Framework . etc.NET no es más que otro tipo de proyecto.NET que nos permitirá sacar el máximo partido al motor de almacenamiento. servicios de colas de mensajes). la posibilidad de utilizar cualquier lenguaje y un entorno como Visual Studio . El cambio que veremos en esta miento conjunto con éste. En ese caso teníamos que utilizar el lenguaje T/SQL perdiendo la riqueza de las clases . podremos desarrollar triggers.NET se ejecuta en la capa de negocio o en el mismo servidor de datos. Además. cifrado de datos o tratamiento de imágenes.NET está presente en el resto de elementos de Yukon.

seguridad. etc. De hecho Indigo incluye también toda la fontanería necesaria para distribuir estos servicios entre sistemas heterogéneos. con la funcionalidad de metadatos. y un modelo desconectado.NET incorpora funcionalidad típica también lista para usar. transaccionalidad o fiabilidad a los servicios web. etc. llamada provisionalmente Longhorn.NET. y su principal objetivo se centra en eliminar las barreras existentes entre aplicaciones web y Windows. La API de acceso al sistema operativo es manejada (WinFX) con un diseño de clases pensado desde el principio para su uso desde lenguajes . Sin embargo Avalon es mucho más que eso. Whidbey y Longhorn que encontrará en este primer número de doNetMania).Pág. Con un mismo modelo de desarrollo ahora podremos elegir qué características << Segunda oleada: Longhorn >> ro de clases de la librería base para cubrir aspectos que antes teníamos que programar nosotros mismos. ASP. colas de mensajes. lo que permite acceder y modificar el contenido del disco dentro de una transacción. lo que nos permitirá diseñar aplicaciones con un aspecto alucinante. Todo ello acompañado de un motor de mapeo de objetos a bases de datos (ObjectSpaces) y diseñadores gráficos integrados en Visual Studio.) en un almacén relacional.NET y XML. . donde cada pantalla se descarga de un servidor (como las páginas web). Los servicios del sistema operativo para las aplicaciones (transacciones. Longhorn cambiará radicalmente el concepto de sistema operativo Windows hasta la fecha y el modo en el que desarrollamos las aplicaciones sobre él. Esto proporciona capacidades de clasificación y búsqueda impensables hasta ahora y que originará un nuevo concepto de aplicación. Longhorn todavía no ha llegado a este nivel y sólo está disponible una vista preliminar de la tecnología. categorías. << dnm. por lo que utilizar a día de hoy el Framework . definirlo de forma separada al código o ejecutarlo de forma segura son otras de las opciones que dispondrá este nuevo modelo de desarrollo. denominada Orcas. Longhorn redefine los actuales sistemas de almacenamiento en disco. normalmente necesarios en este tipo de aplicaciones. además de herramientas que soportan el ciclo de vida completo de un proyecto software. También se añaden características a los lenguajes de desarrollo para mejorar la productividad.especial.20-22© 27/8/56 09:22 Página 22 dnm. Si quiere adelantarse a estos cambios le recomiendo que conozca lo que supondrán (un buen inicio son los artículos de Yukon. membership. Para el desarrollo de aplicaciones empresariales se incluye un nuevo modelo de programación denominado Business Framework. persistencia de entidades. según los futuros estándares que añaden seguridad. relaciones. e incluirá también la actualización de la plataforma de desarrollo . como los webparts.futuro <<dotNetManía 22 La siguiente oleada de tecnología vendrá liderada por la nueva versión del sistema operativo.) evolucionan en un nuevo sistema llamado Indigo pensado desde el principio para que sea utilizado desde aplicaciones con arquitecturas basadas en servicios XML. donde todas las pantallas son compiladas junto a la lógica en un mismo ejecutable descargable..NET le garantizará una integración sencilla con estos nuevos servicios y una curva de aprendizaje mucho más rápida. Como ocurría en Yukon. Podremos optar también por un interfaz orientado al documento (como una página HTML) o utilizar formularios con controles Windows. queremos en nuestra aplicación de cada uno de esos mundos. ¡Quiero usarlo ya! Estas dos oleadas no serán inmediatas. NTFS se hace transaccional. como los genéricos o el editar y continuar. Avalon permite un modelo conectado. un sistema que guarda el contenido de los archivos en NTFS y la información estructurada asociada a ellos (propiedades. el primer cambio importante que notaremos en Longhorn es la integración completa con .NET a todos los elementos de una aplicación. las páginas maestras. En un primer vistazo a esta tecnología nos llamará la atención su nuevo motor basado en 3D.. transacciones y análisis OLAP. Pero sobre todo tenga presente que el concepto básico de estos cambios es llevar el modelo de desarrollo . o las capacidades multimedia que posee. El subsistema de interfaz gráfico de Longhorn se denomina Avalon. Por ejemplo.NET. Mostrar el interfaz mientras se descarga. Yukon y Whidbey están todavía en una fase de beta temprana. Sobre esta tecnología se monta WinFS. seguridad. skins.

la maquinaria de 23 . Vamos a analizar algunas de las características de sus 3 APIs principales. ya haya conseguido que el nombre que da título a este artículo no le resulte al lector algo desconocido. Y lo cierto es que Longhorn va a ser —en muchos aspectos— una revolución. será el primer sistema operativo construido sobre código administrado (esto es. Una revolución Cuando Microsoft abordó la construcción de la plataforma . No obstante. Así. ha sido construido desde cero. pero eso tenemos que verlo. Para comenzar.microsoft.net Longhorn y el desarrollo Es costumbre cada 2 años que Microsoft aporte una nueva versión de sus sistemas operativos.23-29 27/8/56 09:23 Página 23 Por Marino Posadas .elavefenix. y muchos otros aspectos programáticos). debía conllevar.. como http://msdn. presentaciones PowerPoint.NET. inevitablemente. WinFX sustituye a Win32 Con ser importantes. Es la herencia de algo que comenzó con la revolución . y. Además. y según parece los cambios internos en el sistema. algo de código fuente y artículos sobre el nuevo sistema operativo. En el apartado dnm. Microsoft ha tirado la casa por la ventana. Se trata. y estará constituido por tres pilares funda- <<dotNetManía << Probablemente. El abandono del modelo COM/DCOM/COM+ en favor del nuevo modelo. también. con todo lo que eso supone de cara a la gestión y tratamiento de errores. no se trataba exclusivamente de una nueva forma de construir aplicaciones Windows. especialmente de cara a la seguridad. esta vez el período de tiempo será mayor. un conjunto de cambios tan profundo no puede abordarse si no es mediante una reconstrucción de todas las API’s básicas del sistema.NET. éstas no son las únicas novedades: En realidad. publicidad del gigante de Redmond.NET. se ha denominado Win32 pasa a ser WinFX. gestionado por el CLR de . lo que hasta ahora (y desde Windows 95).Pág. desde luego.. ya disponemos de sitios Web especializados. cambios profundos en todos los sistemas operativos que se construyesen a partir de ese momento. y del que se dice que va a constituir una revolución del tamaño de la que supuso Windows 95 (o Win32) desde el punto de vista del programador. aún tratándose de una versión muy preliminar del producto. para soportar la iniciativa Trustworthy Computing (Informática fiable) que Microsoft propugna desde hace tiempo en todos sus sistemas. de la cual esta edición de Windows es su exponente más completo. si no mayor (hasta hay quien afirma que el nombre de Windows ya no se usará a partir de ahora. puede ver el lector algunos enlaces complementarios.desvan. del nuevo sistema operativo que verá la luz —según todos los indicios— para primeros del 2006.NET MVP www.). basada en las API’s de Win32.com/Longhorn/ donde pueden verse vídeos.

23-29 27/8/56 09:23 Página 24 << dnm.futuro mentales: WinFS. Eso significa doble búfer en el dibujo de las ventanas. en la misma forma que ahora instalamos ciertos SDK’s para soporte añadido de funcionalidades (como la propia SDK de SOAP. Avalon e Indigo (tal y como se les denomina en la actualidad con sus nombres clave de desarrollo). que se verá complementada con la tecnología Natural Search Technology. Figura 2: Diagrama esquemático de Avalon Indigo y las comunicaciones Otras API’s complementarán este novedoso panorama: Indigo será el conjunto de API’s que dará soporte a cualquier cosa relacionada con las comunicaciones en el sistema. que se apoya directamente en DirectX. llamada Avalon. dentro de las aplicaciones estándar de Windows. que suministra todos los servicios clave que se necesitan para . También ha sido construida desde cero. que promete una búsqueda casi instantánea de ficheros (al estilo de las consultas en bases de datos). y que dará origen a cambios profundos en la manejabilidad y la propia interfaz de usuario (UI).especial.Pág. por ejemplo). la gestión de archivos WinFS (Windows File System) será la API encargada de la gestión del nuevo sistema de archivos. serán totalmente orientadas a objetos. y estará hecha de tal forma que. y basadas en un objeto central llamado Application. Figura 1: Diagrama esquemático de WinFS <<dotNetManía Avalon y la Interfaz de Usuario 24 ¿Y qué hay de ésta última? También aquí los cambios serán profundos. WinFS. coautor del estándar SOAP para Servicios Web) podrá instalarse en algunos sistemas operativos anteriores. transiciones de objetos en pantalla más suaves. según algunos gurús (como Don Box. eliminación de los incómodos efectos de flickering. Para empezar el sistema de ventanas no estará gestionado por User32 como hasta ahora sino por una nueva API. toda suerte de transparencias y efectos de degradado y 3D. Figura 3: Diagrama esquemático de Indigo Otro de los cambios importantes es que todas las aplicaciones basadas en LongHorn. y —en general— poder aprovechar todas las características que hasta ahora estaban reservadas para la multimedia. tendente a resolver gran parte de los problemas asociados a las búsquedas de texto.

A partir de este supuesto. Mac. lo que debe ser una interfaz de usuario dada. por tanto.com/2003/xaml" Background="LightCyan" Width="100%" Height="100%"> <Text Canvas. como son la navegabilidad y el mantenimiento de estado (en este caso. Unix. Cuando el receptor interpreta esas etiquetas lo hace en función de su propio sistema operativo (se trate de Windows.NET. el objeto NavigationApplication que hereda directamente de Application. como hemos comentado antes. Por otro lado.Pág. que una aplicación muy básica.microsoft. posibilita el manejo de una serie de páginas de marcado (una versión de XML. El ciclo de vida del objeto Application se convierte. ya existe un estándar W3C (oficial).NET 25 . podríamos escribir una simple aplicación de saludo utilizando para ello un sencillo editor de texto. con el código siguiente (en XAML): <Canvas xmlns="http://schemas. Application. —como es lógico— podemos escribir aplicaciones utilizando exclusivamente código fuente en un lenguaje admitido (para el que exista el compilador . Pero. cuya única funcionalidad consistiese en presentar la clásica ven- tana de saludo inicial podría escribirse exclusivamente en XAML. a comentar algunas de las características principales del modelo de aplicaciones de Longhorn. Al igual que sucede en ASP. hasta tal punto.NET—. llamada XAML. una aplicación Longhorn.Top="20" FontSize="18"> Saludos desde Longhorn!!! </Text> <Image Source="4. coherente con las ideas básicas de los estándares.futuro ejecutar la aplicación.Object lo es de . da soporte a esas características). El objeto Application es el objeto raíz de todos los existentes en el modelo de aplicaciones de Longhorn —al igual que System.0 ofrecían los Documentos ActiveX). La idea principal de XML es permitir separar presentación de contenido y eso es exactamente lo que sucede aquí. pues. en el propio ciclo de vida de la aplicación.NET) que soportará la capacidad de programación. Vamos. o Extensible Application Markup Language). que definen el aspecto (la interfaz de usuario) de una aplicación. otros objetos del modelo darán soporte a otras características de las aplicaciones. la funcionalidad es delegada a un fichero de código fuente asociado (escrito en cualquiera de los lenguajes de . Será el primer sistema operativo construido sobre código gestionado por el CLR de .23-29 27/8/56 09:23 Página 25 << dnm.Left="50" Canvas. llamado XForms. además. Eso significa que podemos escribir una aplicación para Longhorn y distribuirla en múltiples escenarios.Top="70" /> <<dotNetManía El modelo de aplicaciones de Longhorn Lo cierto es que Longhorn va a ser una revolución.NET correspondiente). que define en términos de etiquetas XML.bmp" Canvas.Left="20" Canvas. separa la presentación de la funcionalidad. y el único cambio necesario es una directiva de compilación. Es más. Mediante el objeto Application. Microsoft ha dado un paso muy importante. un PDA o un móvil). De la misma forma.especial. En ese sentido. como veremos a continuación. El código fuente es el mismo. o bien dentro del propio navegador de Internet (similar a la funcionalidad que en Visual Basic 6. será posible incluso compartir código fuente entre distintas páginas. Incluyendo la posibilidad de que cualquier aplicación se ejecute dentro de otra ventana. El objetivo de este código es manejar los eventos producidos por los elementos definidos en el fichero XAML. y.

20" FontSize="16">Click on Me</Text> </FlowPanel> </DockPanel> </Window> <<dotNetManía Figura 4:Ventana de salida del código anterior. Ejemplo de mezcla del código declarativo y el funcional. private void OnLeftMouseDown(object sender.Controls. MSAvalon. caption.Text = "Pulsa".microsoft. } } Fuente 1.10.TextRange.xaml.Width = new Length(2 * sourceFlowPanel. MSAvalon. tal y como podemos ver en la aplicación del fuente 1. o bien utilizando código fuente equivalente.futuro <!-.10.Value/2).Height.Height.20.Windows.Windows. el sistema lo interpretará. MSAvalon. Aunque los elementos utilizados en este sencillo ejemplo.cs" Text="Application1" Visible="True" > <DockPanel xmlns="http://schemas.Windows. etc.com/2003/xaml" xmlns:def="Definition" def:Language="C#" Background="White"> <FlowPanel ID="sourceFlowPanel" MouseLeftButtonDown="OnLeftMouseDown" Margin="10. tamaño.especial. MouseButtonEventArgs e) { if (expanded) { sourceFlowPanel.Value). ofreciendo la ventana de salida de la figura 4.Pág. MSAvalon.Windows.Shapes. que es // C# Codebehind class using using using using using using using using System.Value/2). sourceFlowPanel.Navigation. codificando.0" Background="cyan" Width="150px" Height="150px"> <Text ID="caption" Margin="10. } else { sourceFlowPanel. crea una ventana a partir del elemento <Canvas> e incluye el resto de elementos renderizando su interpretación visual de acuerdo con los atributos establecidos para éstos (posición. Longhorn.Data.Width. MSAvalon.Height = new Length(2 * sourceFlowPanel.).com/2003/xaml" xmlns:def="Definition" def:Class="Application1. Veamos esta equivalencia de la tabla 1.Value). <Window xmlns="http://schemas. como mencionábamos más arriba. MSAvalon. expanded = false. .23-29 27/8/56 09:23 Página 26 << dnm.XAML file --> Si grabamos este código en un fichero con extensión . tal y como la señala Dino Esposito en su artículo “A First Look at Writing and Deploying Apps in the Next Generation of Windows”: De la misma forma.Text = "Gracias por pulsar". la presentación (pongamos que creando un botón mediante el elemento <Button>). podríamos mezclar los dos códigos para que —en un único archivo— tuviésemos tanto el código declarativo como el funcional.Width.0. por un lado. caption.Windows.Documents.XAML y lo llamamos directamente desde Longhorn. sourceFlowPanel. podríamos asociarles acciones o incluso dividir su codificación en dos partes.microsoft.Window1" def:CodeBehind="Window1. namespace Application1 { public partial class Window1 : Window { private bool expanded = false. 26 Básicamente.Input.Windows.Height = new Length(sourceFlowPanel.TextRange. MSAvalon.Width = new Length(sourceFlowPanel.Windows. expanded = true. no poseen más funcionalidad que la meramente visual.

Text. que permitirán la búsqueda de ficheros //Acceso a ficheros de texto plano utilizando las API's de WinFs. btn. se utiliza una ventana simple (elemento Window) en la que se define un botón y unas acciones asociadas con él. using System. if (file != null) { str = System. btn.Encoding. class PruebaFicheros { static void Main() { //Crea el fichero "Test. using System. Canvas.txt" ItemContext ctx = ItemContext.Stream = System.txt".File. } Codificación en WinFS } Uno de los mecanismos más novedosos asociados con WinFS será la capacidad de búsquedas de ficheros y —en general— la nueva forma de gestionar el almacena- Fuente 2.Text. new Length(10)). new Length(10)).txt") as File. file. WinFS se maneja utilizando las nuevas librerías System. deberemos compilar el código. } // Borrado del fichero File file = folder. que consisten en cambiar el tamaño del botón y el texto del mismo. file.23-29 27/8/56 09:23 Página 27 << dnm.Files.ASCII.ASCII.GetOneMemberWithName ("text.Left="10" Canvas.Encoding.Save (). que aparecerá este mismo año.especial.GetString(file. file. "Test.Storage y System. si bien existen otras. para que el compilador de C# produzca el ensamblado correspondiente. Canvas. En lugar de utilizar una ventana formateada al estilo Longhorn.SetTop(btn. Ejemplo de acceso al sistema de ficheros a través de código. La gran ventaja de esta aproximación.Width = new Length(90). //Acceso al fichero file = folder. hacia el verano). using System.txt") as File.Open().Storage.Pág. string str = “”.Search. en el que se apoyará la parte funcional) (Ver Fuente 1). <<dotNetManía } 27 . a los que se le puede aplicar más tarde la lógica necesaria. Tabla 1 un complemento extendido de la anterior (bien entendido que en este caso. Folder folder = Folder. (objeto Canvas). WinFS se apoyará internamente en el motor de Yukon (la nueva versión de SQL-Server.Height = new Length(32).futuro Creación de un botón de forma declarativa (código de marcas XAML) <Canvas xmlns="http://schemas. file = new File (folder.Storage. En su vertiente programática. con información de sistema.Storage.Stream).Top="10" Width="90px" Height="32px">Pulsa</Button> </Canvas> Forma equivalente mediante código fuente en C# Button btn = new Button().Delete ().GetBytes (str).com/2003/xaml"> <Button Canvas.DisplayName = "Test.SetLeft(btn. if (file != null) { file. miento. sino que pueden crearse marcos de interfaz de usuario corporativos preestablecidos.GetRootFolder(ctx). como System. no sólo es la posibilidad de interpretar esta interfaz de usuario en distintos entornos (directo o host=navegador). capacitando al usuario la búsqueda con una rapidez similar a la que obtenemos al buscar un dato en una base de datos.Content = " Pulsa ".txt").GetOneMemberWithName ("Test. btn.microsoft. y eso va a significar que todo fichero formará parte de este sistema.

los únicos mensajes recibidos por un puerto anónimo serán las respuestas a aquellos enviados a través de ese mismo puerto. los puertos son puntos finales (end-points) de comunicación entre servicios. finalmente. vemos el bloque del fuente 2. obser- Todas las aplicaciones basadas en LongHorn. mientras que los contratos establecen qué intercambios de mensajes son aceptables para ese servicio (en términos de programación. Además. Los últimos sólo pueden accederse de forma implícita.especial. pueden tener a su vez dos características: políticas (policies) y contratos. Indigo se refiere a ese código ejecutable asociado al puerto como un servicio. Los puertos con nombre pueden ser accedidos independientemente de cualquier conexión o sesión de comunicaciones. un mensaje se ve como un conjunto de datos que puede transmitirse gracias a su conformidad con un modelo SOAP (como es sabido. Y podemos distinguir dos tipos de puertos: con nombre y anónimos. Para darnos una idea de lo simple que es el acceso por código al sistema de ficheros. ahora presente en SQL-Server 2000. El siguiente diagrama explica algo más esta situación: Fig 5. De hecho. todavía en fase beta) podemos observar mediante el examinador de objetos la convivencia de las librerías que utilizan las API’s de Win32 y las propias de Longhorn. su sistema de comunicaciones. y de hecho. lee y. Un servicio puede crear y usar un rango de canales para construir una aplicación. como ya se ha comentado. No olvidemos que la compatibilidad será algo crítico respecto al nuevo sistema y. dicho modelo da soporte a las transmisiones y recepciones de información cuando utilizamos Servicios Web). como parte del proceso de la comunicación. o bien en sus datos internos). se define un servicio como una pieza opaca de código que da soporte a un puerto.futuro por el contenido (ya sea parcial en su nombre. desde un programa. vamos a comentar algo sobre Indigo. de forma similar a la característica Text Search. varían en función de las características de comunicación que ese canal suministra. serán totalmente orientadas a objetos. Las políticas indican las capacidades y requisitos del servicio. En Indigo. • Finalmente.NET (Whidbey. los mensajes viajan a través de puertos (ports). • En tercer término.Pág. Y los servicios. si utilizamos la nueva versión de Visual Studio . los servicios se comunican con los puertos a través de canales. políticas y comportamientos de un canal. eso es lo que ocurre).23-29 27/8/56 09:23 Página 28 << dnm. y sus nuevas API’s de programación. la desaparición total del soporte Win32 haría que ninguna aplicación actual fuese capaz de funcionar en el nuevo sistema. Esquema de objetos implicados en el transporte de mensajes . que crea. <<dotNetManía Indigo y las comunicaciones 28 Para concluir esta breve introducción a las características de Longhorn. y basadas en un objeto central llamado Application. Las propiedades. • En segundo lugar. Un puerto puede enviar y recibir mensajes independiente- mente del transporte. borra un fichero de texto plano. Indigo se basa en 4 conceptos clave: • Primero. los contratos serían similares a las interfaces.

las capacidades de ejecución en navegador o directamente del mismo programa. y que existe la posibilidad de que haya cambios tanto en fechas como en estrategia. a partir de ahora. En cualquier caso. las nuevas versiones de Office.Open(). mediante código. Sólo a modo de introducción incluimos en el fuente 3 el fragmento más pequeño posible de código que crea un puerto y lo abre. pues. vicepresidente senior de la actual división de desarrollo de Windows.MessageBus. Program Management y OS Development. pues. fundamental para el futuro de la compañía. Desde la redacción de dotNetManía pensamos que son muy difíciles este tipo de predicciones tan a largo plazo. // espera indefinidamente… Console. así como de dirigir el camino que seguirán éstos de acuerdo a las condiciones del mercado. la versión de Longhorn sería única y exclusivamente para equipos de escritorio y no para servidores. sería la primera versión que integraría estas tecnologías tanto para equipos de escritorio como para servidores.NET (Whidbey) que aprovecha e integra muchas de estas novedades. encabeza ya la nueva unidad llamada Windows Core Operating System Division (COSD) que se centrará en el desarrollo de las nuevas tecnologías para los sistemas operativos. y otras aplicaciones de servidor. parecen apuntar a que será Longhorn el primero que cuente con este primer núcleo sobre el que construirá Blackcomb. cuando salga al mercado. especialmente si le comparamos con las anteriores versiones de Windows (Windows Server 2003 anticipa algunas cosas. Es notable la similitud del modelo ASP. prácticamente.noticias. así como en la nueva versión de Visual Studio . y esto será con la aparición de Longhorn (¿2006?).noticias 29 . ¡y esto no estará disponible hasta 2007 ó 2008! La creación de esta división y el retraso sufrido por Longhorn.futuro using System.Pág. Brian Valentine. class app { static void Main() { // Crea un Puerto con nombre y lo abre Port port = new Port(new Uri("soap://localhost/ejemploPuerto")). podemos ver cómo los modelos de programación tienden cada vez más a independizarse de plataformas y mecanismos de distribución. todo lo que está por venir. ¡Suerte Brian! <<dotNetManía Microsoft creará una nueva división para el desarrollo del núcleo de Longhorn noticias. La nueva división tendrá tres áreas operativas: Testing. la filosofía asociada a los Servicios Web está claramente presente en Indigo. } } Fuente 3. si bien en un principio esto no es así. La versión que sucederá a Windows 2003.especial. puesto que será la base de. port. se aunarán esfuerzos para la creación de una nueva tecnología que será compartida por todos los sistemas operativos de escritorio y servidores.23-29 27/8/56 09:23 Página 29 << dnm. cuyo nombre en clave es Blackcomb.ReadLine(). y su capacidad de programación. no obstante). Y como lección inicial. En posteriores artículos profundizaremos más sobre las características de Longhorn.noticias. Nótese la presencia de la librería System. y la posibilidad de acceder —literalmente— a cualquier recurso del sistema.MessageBus. Crear y abrir un puerto. que Longhorn es revolucionario tanto en su concepción como en su modelo de programación. Como puede apreciarse. al igual que se dejan entrever aspec- tos de la arquitectura SOA (Services Oriented Architecture).NET con el nuevo Avalon. using System. La labor de Brian Valentine es. Conclusión Podemos afirmar. Lo realmente importante es que. dentro de la filosofía “programar una vez y utilizar en cualquier parte”. Según el propio Brian comentaba en marzo del año pasado a ComputerWorld. el futuro que Microsoft está preparando para sus productos pasa inevitablemente por lo que esta nueva división sea capaz de desarrollar.

¿verdad? Pues no es una broma y en un futuro no muy lejano veremos como nuestro horizonte como programadores de bases de datos se expande enormemente… o cambiaremos de trabajo.Pág. Ahora podemos decir altivamente: Pues nuestro sistema es incluso mejor… bueno… lo será pronto. . esto cambiará con la aparición de Yukon. más que un administrador de bases de datos. como los queridos SELECT. aunque avatares de la vida me han lle- vado a lidiar los sistemas de bases de datos desde ambos roles. Sin embargo. así que… ¿En Cobol. mire usted. INSERT.30-35 27/8/56 09:24 Página 30 Por Fernando Guerrero SQL Server MVP www.Net en Yukon? ¿Por qué? ¿Para qué? ¿Me he estado perdiendo algo hasta ahora? Algunos de los sistemas gestores de bases de datos existentes en el mercado ofrecen la posibilidad de crear objetos programables en sus bases de datos utilizando lenguajes de programación no diseñados específicamente para el tratamiento de conjuntos de registros. y la perspectiva de unir ambos mundos de ese modo tan íntimo me pareció de lo más interesante. Yo siempre me consideré un programador. Mientras que en SQL Server seguimos con Transact-SQL. “Pues yo no lo he necesitado hasta ahora. vino el pánico: ¿Que cualquier perforista venido a más.NET para crear procedimientos almacenados. sino nuestro viejo y vetusto Transact-SQL. y me ha ido muy bien” Si lo que has necesitado hasta ahora ha sido lisa y llanamente ejecutar instrucciones de manipulación de datos dentro de tu bases de datos. <<dotNetManía Euforia y Pánico 30 Mi primera reacción ante esta noticia fue de alegría y excitación (en el más tecnológico aspecto de esta palabra).solidqualitylearning. y lo hemos convertido a Cobol. no ya ANSI SQL 99. en nuestras bases de datos.NET. y otros objetos programables.com ¿Programación en . Una de las fundamentales mejoras de la anunciada nueva versión de SQL Server es la posibilidad de utilizar cualquier lenguaje de programación basado en . este programa se ha estado ejecutando sin problemas en un mainframe durante muchos años. UPDATE. va a querer ejecutar sus chapuceros programas dentro de mi servidor de bases de datos? ¡Eso sí que no! ¡Hasta ahí podíamos llegar! No.NET? ¿En mi servidor? Esto será una broma. Tras la primera reacción. en vez de “modernos” y “versátiles” lenguajes como Java. como por ejemplo Java. << Esto es algo que desde hace algún tiempo nos ha sonrojado en esas reuniones en las que el “profesional” de turno nos intenta menospreciar haciéndonos ver cuán inferiores somos porque nuestro sistema de gestión de bases de datos sigue siendo Transact-SQL.

especial. La verdad es que me gustó tanto esa experiencia que cada día. los procedimientos de automatización empiezan a complicarse también y dan lugar a no pocos problemas de activación. ya que esto ha sido la fuente de no menos problemas de seguridad en SQL Server. pero esto se ha corregido definitivamente en Yukon. como poco. soy ingeniero civil.asp 2 Podéis encontrar este ejemplo en http://www. poco a poco. Una de las quejas más frecuentes que se le hacen a Transact-SQL es su pésima gestión de errores. me he ido despegando de la ingeniería civil para acercarme cada día más a la ingeniería informática. La ejecución de programas externos mediante xp_cmdshell es.Pág. y hayas limitado la funcionalidad de tu base de datos a aquello que se puede hacer con Transact-SQL.microsoft.*' SELECT Linea FROM #miDir WHERE Linea LIKE '[0-9]%' ORDER BY LineaID • La mayoría se ha rendido ante las muchas limitaciones de estos sistemas y decidieron implementar estas soluciones en aplicaciones de cliente o en la capa de negocios. En cuanto a la creación de procedimientos extendidos.solidqualitylearning. futuro << dnm Una de las fundamentales mejoras es la posibilidad de utilizar cualquier lenguaje de programación basado en . peligrosa. Por otro lado. Por azares del destino. y por lazos familiares. Sin embargo es posible que no te hayas querido meter en problemas. En este caso pretendía ilustrar que estos procedimientos podrían proporcionar una puerta falsa para saltarse limitaciones de las funciones definidas por el usuario2.NET1. es probable que no hayas necesitado nada más. Linea nvarchar(256)) INSERT #miDir EXEC Xp_cmdshell 'dir c:\*. Este es el ambiente en el que me tocó vivir durante muchos años. o externos. sobre todo de rendimiento. 31 . según se quiera llamarlos. y a ello debo mis conocimientos de programación. • Utilizar los procedimientos de automatización de SQL Server. la verdad es que esto ha permanecido como parcela exclusiva de expertos progra- 1 Puedes leer más sobre las mejoras en Transact-SQL para Yukon en http://msdn. El caso es que si alguien quiere enfrentarse a complicados y motivadores problemas de programación. La realidad es que en cuanto el interfaz con dicho objeto se complica un poco.1) PRIMARY KEY.30-35 27/8/56 09:24 Página 31 dnm.com/library/en-us/dnsql90/html/sql_YukonTSQLEnhance. • Los más aventurados hasta han creado procedimientos extendidos. como SP_OACreate y demás procedimientos relacionados. Por ejemplo. Hace tiempo escribí un ejemplo de cómo utilizar procedimientos de automatización para acceder a ADO desde Transact-SQL. La utilización de procedimientos de automatización está sujeta a muchas limitaciones. por lo que no muchos programadores se aventuraron por este camino. Este es un ejemplo de cómo utilizar esta técnica para obtener el contenido de un directorio: CREATE TABLE #miDir ( LineaID int IDENTITY(1. y mi bautismo en la informática vino creando modelos matemáticos para resolver problemas de ingeniería. que trabaje en un gabinete de ingeniería civil de los que se enfrentan a proyectos completamente nuevos cada pocos meses. proporcionando la misma gestión estructurada de errores que en sus primos de .com/conferences/ <<dotNetManía y DELETE.NET para crear procedimientos almacenados ¿Has intentado alguna vez acceder a objetos externos a SQL Server? Yo he visto todo tipo de trucos (hasta me ha tocado utilizar algunos yo mismo): • Utilizar xp_cmdshell para ejecutar programas externos y enviar los resultados a una tabla. sigue existiendo el problema de cómo recuperar los resultados de esta ejecución. una clara limitación de estos procedimientos es la incapacidad de manejar colecciones de objetos.

Databa se=Tempdb' IF @ret = 0 EXEC @ret = sp_OAMethod @adoConn. 'Execute'. como así han hecho. 2. les recomiendo que se tomen un par de tilas. El Kit de Recursos de SQL Server Yukon Beta 1. 3. esperaba que Microsoft hubiera convertido la mayoría de los procedimientos extendidos que vienen con SQL Server en procedimientos de . con el único propósito de servir de acceso desde Transact-SQL. lo consulten detenidamente con la almohada. como mi buen amigo Gert Drapers (Program Manager en Microsoft) que utilizó esta técnica para permitir que SQL Server pueda utilizar correo electrónico mediante SMTP directamente (www. Crear una instancia del objeto utilizando sp_OACreate.TestInserts') ELSE NULL END) <<dotNetManía END GO 32 Este ejemplo lo muestro simplemente para ilustrar el funcionamiento de estos procedimientos. con especial enfoque en las relacionadas con . 4. Leer muy pocas propiedades con sp_OAGetProperty.NET”. es muy propensa a producir errores de instanciación. contiene un libro blanco sobre la programación en . Sin embargo esto no ha sido así.sqldev. @adoConn OUT IF @ret = 0 EXEC @ret = sp_OAMethod @adoConn. desde cualquier punto de vista pueden ser inmensas. @rst OUTPUT.TestInserts (Value) SELECT ' + CAST(@Value AS varchar(10)) EXEC @ret = sp_OACreate 'ADODB. No puedo culparles por esta decisión. con la obtención de punteros nulos. sin el “. 'Provider=SQLOLEDB.NET. En especial. ya que las ventajas.30-35 27/8/56 09:24 Página 32 dnm.net) Sinceramente. no lo cambies”. la creación de nuevos objetos COM a partir de propiedades leídas desde otros objetos COM. Este interfaz debería permitir su utilización desde SQL Server siguiendo el siguiente esquema: 1. ya que prefiero que dediquen sus esfuerzos a otras áreas. Y con esta versión beta que prueben a implementar su solución de . NULL.NET en Yukon). ya que Microsoft ha aplicado un arraigado criterio en el mundo informático: “Si funciona. Este sería un ejemplo simplificado de cómo utilizar procedimientos de automatización para hacer uso de ADO desde dentro de una función definida por el usuario: CREATE FUNCTION InsertNewValue (@Value int) RETURNS int AS BEGIN DECLARE @adoConn as integer DECLARE @ret int DECLARE @sql varchar(2000) DECLARE @rst int SET @sql = 'INSERT tempdb.trusted_connection=yes. << dnm.Connection'. no para sugerir su utilización de este modo. A aquellos mortales que se estén planteando la posibilidad de crear procedimientos extendidos.futuro Es esta la razón por la cual recomiendo encapsular estos objetos COM tras otro objeto COM con un interfaz muy claramente definido.NET dentro de SQL Server: Overview of . 'Open'. cabría pensar que este libro blanco contemplaría todas las mejoras de programación que esta nueva versión incorpora.dbo. ya que este ejemplo en particular no podría considerarlo como una práctica aconsejable.NET Programming Features in SQL Server Yukon (Un vistazo a las técnicas de programación .NET. Destruir la referencia al objeto COM mediante sp_OADestroy. 5. Ejecutar muy pocos métodos con sp_OAMethod. Es curioso observar que el encabezado de cada página simplemente menciona como título Overview of Programming Features in SQL Server Yukon (Un vistazo a las técnicas de programación en Yukon). @sql EXEC @ret = sp_OADestroy @adoConn EXEC @ret = sp_OADestroy @rst RETURN (SELECT CASE @ret WHEN 0 THEN IDENT_CURRENT('tempdb. Por este encabezado. y luego se busquen una copia de la última beta de Yukon. Establecer muy pocas propiedades con sp_OASetProperty.especial.Server=CLOCKWORK.Pág.dbo. madores en C++.

probablemente combinado CASE con el operador LIKE. Para empezar la discusión. Sin embargo hay que entender algo muy importante: la incorporación de funciones de . "^\s*(\d{5}|(\d{5}-\d{4}))\s*$") Puede sencillamente convertirse a T-SQL como: SELECT CASE WHEN @zipCode LIKE '[0-9][0-9][0-9][0-9][0-9]' THEN 1 WHEN @zipCode LIKE '[0-9][0-9][0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]' THEN 1 ELSE 0 END Parece más pesado de escribir.NET no perjudica el rendimiento de nuestras consultas. quizá hubiera añadido otras secciones como: • Advantages of set oriented programming with T-SQL (Ventajas de la programación orientada a conjuntos de registros con Transact-SQL) • Potential problems with CLR programming (Problemas potenciales de la programación con CLR) Y es que este libro blanco. este libro comienza con dos apartados que anuncian muy claramente el talante del documento: • Limitations of T-SQL (Limitaciones de Transact-SQL) • Advantages of CLR Integration (Ventajas de la integración con el CLR) 33 << .NET podría resultar interesante: • Regular expressions • Gestión avanzada de cadenas de caracteres • Criptografía • Gestión del registro de eventos • Acceso directo a ficheros • Acceso a biblioteca de funciones financieras • Ejecución de complejas operaciones matemáticas • Cálculo geométrico • Complejas funciones de agregación En cuanto a regular expressions. y tiene unas implicaciones claras en el rendimiento de las consultas. estamos ante un caso similar a la utilización de Interop para utilizar objetos COM desde . Sin embargo. a los que he tenido el placer de conocer en persona.especial. pero la ejecución de dicho código desde T-SQL será más eficiente que una llamada a una función CLR definida dentro de SQL Server.NET no es gratuita. aunque esto podría simplificarse mediante funciones que . Por lo tanto es imprescindible asegurarse de que la utilización de funciones de .IsMatch(zipCode. donde ya empezamos a entrar en el campo de la programación CLR. la expresión regular: Return Regex.NET. por lo que en aras de la comodidad (¿pereza?) podríamos preferir la utilización de .Pág.30-35 27/8/56 09:24 Página 33 dnm << dnm. es en cuanto debemos acceder a librerías externas para eje- <<dotNetManía . De algún modo. Solo hay que echar un vistazo a los ejemplos de código propuestos para ver que sólo un par de páginas contienen instrucciones T-SQL que no sean simplemente CREATE. Lo mismo podría decirse sobre la gestión avanzada de cadenas de caracteres o de funciones financieras y simples funciones matemáticas. Por ejemplo. ya que el sistema debe hacer llamadas a otro subsistema para ejecutar estas funciones CLR. aunque aprecio los conocimientos de los autores. Lo mismo podría decirse en cuanto a la gestión avanzada de cadenas de caracteres.NET. refleja lo que a mi juicio puede ser la equivocación más grande que puede producirse con esta nueva versión de SQL Server: la separación total entre dos mundos que deberían entenderse: programadores de bases de datos con T-SQL y programadores de .NET. tengo que decir que los ejemplos propuestos pueden codificarse en la mayoría de los casos muy eficientemente en Transact-SQL.NET.NET ya ofrece. pero no es así.futuro Si lo hubiera escrito yo. Los autores proponen una serie de escenarios en los que utilizar técnicas de programación .

con una estructura propietaria de la empresa. Las posibilidades podrían ser inimaginables para el programador de bases de datos de hoy en día.21 y la acabé con 6. Utilizar datos geográficos implica utilizar operadores como distancia. no es tarea fácil. proximidad. o integración con procesos externos. ya que la sintaxis y la experiencia de programación se asemejan mucho.NET y los llamaría automáticamente desde la misma base de datos para garantizar la consistencia de la información en todo momento. pero la realidad aún no ha corroborado estas predicciones. ValorCatastral. Diseñar una base de datos que sea capaz de almacenar eficientemente la topología de un espacio geográfico.NET tendría con respecto a los tradicionales procedimientos escritos en Transact-SQL. Implementar estos operadores en TSQL es poco menos que imposible. Rendimiento Se ha hablado mucho acerca de la potencial ventaja de rendimiento que la utilización de procedimientos de . si queremos restringirnos al terreno del diseño relacional. lo que me obligó a crear una aplicación externa que <<dotNetManía CREATE TYPE Parcela EXTERNAL NAME YukonCLR:Parcela 34 Y que este tipo de dato Parcela no solamente tuviera propiedades como Superficie. y no es un problema tan simple como pueda parecer. es poco menos que imposible en la mayoría de los casos. como criptografía. complejos cálculos matemáticos y geométricos. pero soy un firme defensor de Visual Basic .esri. Ahora imaginemos que podemos crear tipos definidos por el usuario.com). podríamos comentar que Microsoft había decidido la implementación de . el corazón del sistema era una aplicación escrita en Visual Basic. A mí me ha tocado lidiar con este problema durante algunos años. Una importante aplicación de las bases de datos es su utilización con Sistemas de Información Geográfica (GIS en sus siglas en inglés).5). Intentar la implementación de operadores espaciales mediante la utilización de T-SQL en procedimientos almacenados y funciones definidas por el usuario. Empresas del mundo GIS. en Yukon posiblemen- hacía todo ese cálculo y almacenaba los resultados en SQL Server. en un futuro no muy lejano veremos como nuestro horizonte como programadores de bases de datos se expande enormemente… o cambiaremos de trabajo Podríamos llegar a implementar esta regla directamente en el mismo tipo de datos.especial. En un sistema que me tocó diseñar para un proyecto en Marruecos hace ya algunos años. En aquél proyecto.NET (¿por qué no?) Sé que esto me valdrá el calificativo de hereje. me tocó integrar diversas aplicaciones de oficina con una base de datos de SQL Server (la empecé con 4. El producto se encuentra aún en Beta 1 y es muy pronto para realizar pruebas de rendimiento. Supongamos que una regla de negocio podría ser que las parcelas que estén a menos de 100 metros de la costa no se pueden vender.30-35 27/8/56 09:24 Página 34 dnm. El proceso de cálculo de programación de tareas era tan complejo que MS Project no podía ejecutarlo (aún la última versión de este producto es incapaz de hacer este tipo de cálculos). Sin embargo. hubiera creado todo el proceso como una te sería un conjunto de assemblies escritas en Visual Basic .NET como lenguaje de programación . han solucionado el problema mediante la utilización de librerías externas y la utilización masiva de información codificada dentro de campos BLOB. << dnm. como dato curioso. Propietario(s).futuro cutar procesos complejos.Pág. sino que también pudiéramos implementar funciones como DistanciaA(@OtraParcela as Parcela) o DiatanciaA(@MiCarretera librería de procedimientos en . y el sistema se encargaría de su cumplimiento independientemente del método utilizado para modificar estos datos.NET por excelencia para programadores de bases de datos acostumbrados a utilizar hasta ahora Transact-SQL. utilizando MS Project simplemente para imprimir bonitos diagramas GANTT. como ESRI (www. como por ejemplo: as Carretera). etc. superficie. Si hubiera tenido en mis manos SQL Server Yukon.

NET para ejecutar complejos procesos matemáticos proporcionará ventajas innegables a los programadores de Yukon. Sin embargo.NET desde código Transact-SQL. y la posibilidad de programar en diferentes lenguajes de programación es algo que llevábamos esperando bastante tiempo. que facilite la ejecución simultánea de procedimientos. con lo que la capacidad de SQL Server para gestionar la memoria asignada a procedimientos almacenados se verá seriamente mermada. y basándome en la información de que dispongo en estos momentos. Como criterio general. pagesused. Cada vez que se ejecuta un objeto programable. obtendrán innegables beneficios de estas nuevas posibilidades de programación. Otro factor muy importante a tener en cuenta es el impacto que la utilización de estos procedimientos pueda tener en la utilización de la memoria disponible para SQL Server. y estructuras temporales de registros en memoria. la llamada puntual a procedimientos de . se ha decidido su implementación como tipos de datos nativos. tras las pruebas preliminares de rendimiento que se han efectuado. Aquellas empresas que inviertan en formación y detallado análisis de sus sistemas. << dnm. Ahora más que nunca. esto podría desembocar en graves problemas para muchos sistemas de bases de datos. SQL Server crea un contexto de ejecución privado para esta llamada en particular. aquellas empresas que sigan potenciando la chapuza y la precariedad en la formación de sus técnicos. se verán encaminadas al fracaso más rotundo. En este caso. Y es que en este contexto de ejecución. y me muero de ganas de aplicarla a sistemas reales. refcounts. las empresas deberán aplicar criterios muy estrictos en cuanto a políticas de nomenclatura y codificación.Pág. y que hace fácilmente volar nuestra imaginación. Si quieres obtener información sobre estos contextos de ejecución.especial. para asegurarse que serán capaces de mantener sus aplicaciones de bases de datos. pero. Microsoft había decidido la implementación de algunos nuevos tipos de datos en . uid.NET y. sqlbytes. y el rendimiento del sistema se degradará enormemente. es necesario estudiar seriamente en cada caso las ventajas o desventajas que la utilización de esta tecnología ofrece para aplicar la solución de programación más adecuada a cada problema.30-35 27/8/56 09:24 Página 35 dnm. objid. dbidexec. Sin embargo la llamada repetida. Conclusión Las mejoras en SQL Server siempre son bienvenidas. sin la adecuada formación y entrenamiento. Estoy firmemente convencido de las ventajas de esta tecnología. puedes ejecutar la siguiente consulta en SQL Server 2000: 35 . de cortas funciones de . como objetos DataSet con muchos registros. Sin embargo. Ahora supón que dentro de tus procedimientos almacenados creas estructuras complejas de datos. <<dotNetManía algunos nuevos tipos de datos en .futuro SELECT cacheobjtype. SQL Server almacena valores de variables privadas. como los resultados intermedios de algunas consultas complejas. sin que los datos de estas llamadas independientes se mezclen.dbo. tras las pruebas preliminares de rendimiento que se han efectuado. el contexto de ejecución de cada usuario será anormalmente grande. sql FROM master.NET y. dbid. por ejemplo registro a registro. se ha decidido su implementación como tipos de datos nativos. objtype. será en general más lento que la invocación de esta funcionalidad en Transact-SQL directamente.syscacheobjects Yo he visto sistemas en los que cada contexto de ejecución ha llegado a tener algunos megabytes de información.

sin reiniciar. incorpora un importante número de novedades que afectan a prácticamente todos los elemen- tos: los servicios que ofrece la plataforma.NET 2003.NET. puedan parecer un sin sentido. es el nombre de una isla. seguir con la ejecución.NET.com De Everett a Orcas. dará paso a nueva versión en la que se ha mejorado el rendimiento. nuevos componentes para formularios Windows y ASP. o la posibilidad de crear documentos inteligentes para Word 2003 y Excel 2003. La posibilidad de efectuar modificaciones al código de un ensamblado durante la depuración y. forma par- . Finalmente. Whidbey. contemplado el funcionamiento sobre microprocesadores de 64 bits e introduciendo elementos como los tipos genéricos. pasando por Whidbey Microsoft trabaja en la que será la próxima versión de Visual Studio . según se prevé.NET. la próxima versión de SQL Server. denominación en clave de la versión de Visual Studio .NET 2003. Dejando de lado las anécdotas sobre nomenclatura de las mentes de Microsoft.fcharte. a diferencia de lo que ocurrió con VS. donde Microsoft tiene su cuartel general. aún más distanciada que la anterior. Hay que tener en cuenta que no todos los lenguajes . lo cierto es que tienen su lógica. los lenguajes de programación y el propio entorno de desarrollo. NET Framework Whidbey La versión 1. que apareció conjuntamente con VS.36-42© © 27/8/56 09:28 Página 36 Por Francisco Charte Torre de Babel www. actualmente conocidas con el nombre en clave Whidbey.NET están obligados a implementar la funcionalidad disponible en la plataforma.NET y la plataforma . con importantes cambios y novedades. y se ha elegido como designación del sucesor de Visual Studio . El actual Visual Studio . VS. <<dotNetManía << Introducción 36 Aunque en ocasiones los nombres en clave escogidos para denominar un producto.NET Whidbey que. sin olvidar la integración con Yukon. en este caso Visual Studio . Orcas es el nombre de otra isla.NET.Pág.1 de la plataforma . más funcionalidad en el acceso a datos o una característica demandada especialmente por los usuarios de Visual Basic conocida como editar y continuar. será presentado algo antes de Windows Longhorn. algo más lejos de Redmond que Everett.NET Whidbey está a la vuelta de la esquina y. nombre de una ciudad del estado de Washington relativamente cercana a Redmond.NET que aparecerá dentro de unos meses.NET 2003 fue conocido antes de su presentación como Everett.

No es extraño. descrita en la especificación 2. como son las listas. o BCL (Base Class Library). en el que encontramos clases genéricas para las estructuras de datos más habituales.Collections se ha añadido un nuevo subámbito. de hecho.Ports. Ejemplos de estos componentes son FlowLayoutPanel y TableLayoutPanel. << te de la versión Whidbey de la plataforma .NET al tratarse de una capacidad muy demandada por los usuarios de dicho lenguaje. en su mayor parte. La posibilidad de definir tipos genéricos. SplitContainer. algo que sí ha hecho el equipo de Visual Basic . sino al nivel de la propia plataforma.NET. o la facultad de crear ensamblados con tipos internos que son accesibles para determinados ensamblados indicados mediante el atributo InternalsVisibleTo. aquellas que usan como motor para su funcionamiento la infraestructura propia de Internet como son el protocolo HTTP y los navegadores. que contiene la mayoría de las clases relacionadas con aplicaciones clientes que se ejecutan en Windows. Aunque en los puntos siguientes me centraré en lo que podrían considerarse las novedades más importantes que introduce la versión Whidbey de la plataforma . Formularios Windows A pesar del innegable crecimiento de las aplicaciones Web. Al ámbito System. que la biblioteca de clases .Pág.IO. lo cual supone un gran avance. mediante el que se facilita la configuración de <<dotNetManía FTP. no en el compilador de un determinado lenguaje. por ello.especial. colas. Esto significa que cualquier lenguaje .Windows.Net de clases que permiten la conexión con servidores 37 .0 del lenguaje C# hecha pública recientemente. que podemos utilizar para acceder a los puertos serie del ordenador y transmitir o recibir datos.NET.NET puede contemplar el uso y creación de tipos genéricos y. En el ámbito System. incorpore no pocas novedades en el campo de los formularios Windows.36-42© © 27/8/56 09:28 Página 37 << dnm. encontramos una serie de nuevos componentes que. que simplifican la distribución de los componentes en un formulario que se adapta automáticamente a los cambios de resolución. pilas y diccionarios.NET. a día de hoy la mayor plataforma de ejecución de software sigue siendo el habitual PC con Windows. la incorporación en el ámbito System.futuro La posibilidad de definir tipos genéricos se ha incluido. tanto C# como C++ y Visual Basic .NET aprovecharán esta nueva capacidad. evitando así tener que hacer públicos tipos que sólo deberían ser visibles en un ensamblado amigo pero no de terceros. se ha incluido no en el compilador de un determinado lenguaje sino al nivel de la propia plataforma. como son la existencia de la nueva clase SerialPort en System. existen muchas otras que. pero inicialmente el equipo de desarrollo de C# no ha decidido incorporarla al lenguaje. los nuevos atributos que facilitan la integración con el depurador para mejorar la visualización de datos. estos tipos genéricos o plantillas pueden ser utilizados desde cualquier lenguaje . Forms. contribuyen a mejorar el aspecto visual de los programas. posiblemente tendrán una aplicación más específica y reducida.NET. como es la conocida STL (Standard Template Library) específica de C++. llamado Generic. A diferencia de otras soluciones. sin considerarlas menores.

tales como los Pocket PC o teléfonos de última generación. incluyendo la adición del correspondiente acceso directo al menú Inicio de Windows y una opción de desinstalación.Visual Studio .Pág.futuro 38 líneas de división de paneles en una ventana. son capaces de generar HTML. por lo que menciono exclusivamente los puntos que el prefijo <asp:>. etc. Uno de los mayores problemas que plantean las aplicaciones Windows. como se aprecia en la figura 2.NET. El asistente para publicación de aplicaciones la preparación del proyecto para que sea accesible para los clientes. sobre el tema. De ellos destacamos los nuevos GridView y DataContainer. ni siquiera será preciso disponer de IIS ya que ASP. WML. un cliente Web en un control. aquellos que tienen Figura 2. WebBrowser.NET incorpora ahora su propio servidor Web exclusivo . especialmente en empresas grandes con muchos puestos y diferentes localizaciones geográficas. es la dificultad que plantea su distribución. posibilitando el acceso a las aplicaciones desde prácticamente cualquier dispositivo móvil actual. hay otros que también influyen en la funcionalidad de las aplicaciones Windows.36-42© © 27/8/56 09:28 Página 38 <<dotNetManía << dnm.especial. para conseguir una instalación automática en su ordenador. En el entorno de Visual Studio . Las nuevas posibilidades se ven reflejadas en el entorno de VS. Todos los componentes de formularios Web. No me extenderé mucho en este apartado y remito al lector al artículo monográfico que. impidiendo así que los usuarios empleen una versión desfasada de la solución.NET Whidbey dispone de nuevos asistentes para la creación de sitios Web Figura 1.NET solucionará este problema a través de una técnica que Microsoft ha denominado ClickOnce. por ejemplo http://servidor. Mediante ClickOnce es posible alojar la distribución de una aplicación en un servidor HTTP. de tal manera que los potenciales clientes no tienen más que usar una dirección UNC o URL. instalación en los clientes y posterior mantenimiento. en contraposición a las aplicaciones Web. dispone de asistentes específicos para la creación de sitios Web públicos. aplicaciones para intranets. Formularios Web Si importantes son las mejoras para el desarrollo de aplicaciones cliente basadas en formularios Windows. sin necesidad de crear un objeto Thread y gestionarlo manualmente. XHTML. escribirá Iván González en un próximo número. para desarrollar aplicaciones Web ya no necesitaremos las extensiones de FrontPage. un servidor FTP o una unidad compartida de red. controles de vinculación a orígenes de datos. Las aplicaciones. ActiveDocumentHost. Por cierto. la adición de cuarenta y cinco nuevos componentes con una apariencia fácilmente adaptable por temas y la incorporación de elementos funcionales comunes como son la gestión de los miembros de un sitio y sus preferencias.. es más.com/MiAplicacion. Además de los componentes propiamente de interfaz.NET que. no lo son menos las destinadas a simplificar y optimizar la creación de soluciones ASP. cHTML. etc. La versión Whidbey de la plataforma . y el componente BackgroundWorker que hace posible la ejecución de tareas en un hilo independiente del principal simplemente respondiendo a un evento. además.NET existe una nueva opción de publicación que abre un asistente —en la figura 1 se ve uno de sus pasos— mediante el que se facilita me parecen de mayor importancia. pueden ser configuradas para detectar automáticamente la existencia de actualizaciones en el servidor. en especial las que emplean los elementos conocidos como formularios Web. Diseñar aplicaciones Web nunca habrá resultado tan fácil y rápido como con la llegada de la nueva versión de ASP. También se han mejorado las barras de botones y herramientas para que aprovechen los temas de Windows XP y tengan una apariencia similar a las barras de Microsoft Office. útil para alojar en una aplicación objetos ActiveX como pueden ser los documentos de Office. etc.empresa.NET gracias a elementos como las páginas maestras.

ObjectSpaces contiene una serie de clases que. aplicables en principio sólo a SQL Server 2000 y Yukon.Pág. además de cambios en la BCL. lo cual redunda en menos trabajo para conseguir el mismo objetivo. a partir de un esquema de correspondencias.36-42© © 27/8/56 09:28 Página 39 << dnm. por tanto. como pueden ser clientes. existen muchas otras mejoras.NET aporta a los programas un objeto. El nuevo ámbito System. De esta forma se consigue un nivel de abstracción muy superior al que teníamos hasta el momento.Data. a partir de diferentes sintaxis. en consecuencia. llamado My.NET. así como la existencia de un modelo de factoría que se encarga de crear los objetos específicos y facilita operaciones de enumeración de proveedores y servidores disponibles. debiendo elegirse un conjunto de objetos u otros dependiendo de ello. transacciones. También se ha eliminado la dependencia de los MDAC (Microsoft Data Access Components). cuenta con todos los elementos necesarios para conectar con un origen de datos. C# y Visual C++ . Todos ellos contemplan aspectos como la definición y uso de tipos genéricos.NET traerá consigo.NET. También hay algunas innovaciones más específicas. que saber de antemano si los datos residen en un servidor SQL Server u Oracle para.especial.NET.NET se ha hecho especial hincapié en facilitar la mayoría de las operaciones sin perder un ápice de flexibilidad. adaptadores y conjuntos de datos. respecto a otros modelos de acceso a datos. la posibilidad de efectuar actualizaciones por lotes. nuevas versiones de los compiladores de Visual Basic . muy consistente. elegir un grupo de clases u otras. No tendremos. En la versión Whidbey de ADO. gracias a la incorporación de un conjunto de clases genéricas. entendiendo por objetos aquellos que usa- mos normalmente en una aplicación para representar desde un punto de vista lógico los elementos sobre los que actuamos.NET se ha hecho especial hincapié en facilitar la mayoría de las operaciones sin perder un ápice de esa flexibilidad. independientes del proveedor de datos. Además de las mencionadas. será posible prescindir durante el desarrollo del conocimiento de la estructura física de los datos y detalles como la conexión o tratamiento de filas individuales. que no cambios. La clase DbTable en particular. Gracias a los denominados ObjectSpaces. tema que merece un tratamiento aparte para ser descrito como se merece. permite operar con objetos persistentes. la existencia de nuevos tipos de datos y la integración con Yukon o la mejora en el rendimiento de transferencia de resultados gracias a las optimizaciones introducidas en clases como DataSet. recuperar filas. 39 . etc.NET en la primera versión de la plataforma supuso. como puede ser el acceso asíncrono a los datos que evitan el bloqueo de la interfaz de usuario. descendiente de DataTable y base de clases más específicas como OracleDataTable o SqlDataTable. introducir cambios y enviarlos de vuelta sin necesidad de crear todos los objetos que eran precisos en versiones previas. que faci- <<dotNetManía para desarrollo. basado en componentes de conexión. pedidos. En la versión Whidbey de ADO. como son DbConnection o DbTable. un servidor que se inicia al abrirse VS. Lenguajes Whidbey La versión Whidbey de la plataforma .NET y deja de estar disponible al cerrar el entorno. El compilador de Visual Basic . simplificando así la distribución de las aplicaciones.futuro Acceso a datos La introducción de ADO. una cierta revolución por la flexibilidad ofrecida a la hora de operar sin conexiones persistentes y la existencia de un esquema. en ADO. El mayor inconveniente es que este esquema implicaba un necesario conocimiento de la estructura de los datos y el origen en que residían.

NET.NET simplifican la corrección de errores todos los objetos necesarios.Forms. sobrecargar operadores y la existencia de algunas nuevas instrucciones como Continue y Using o el nuevo operador IsNot. En la figura 3.futuro lita el acceso a la información y recursos de la aplicación en curso. En cuanto a C++. My. más adaptable y productivo que en cualquier otra versión previa. Los cambios al lenguaje C# están documentados en la segunda versión de la especificación de este lenguaje.NET Whidbey 40 Tanto los servicios de la BCL como las posibilidades de cada lenguaje en particular tienen su reflejo directo en el entorno de trabajo. mejorando su rendimiento. Las etiquetas inteligentes en el editor de VB.Application.NET. una nueva versión de la STL y la posibilidad de crear aplicaciones para dispositivos móviles en C++ nativo. . que ni siquiera una beta. hecha pública por Microsoft a finales de octubre pasado y que puede obtenerse de http://msdn.microsoft. Además de los tipos genéricos.NET son la adición de tipos sin signo. para operar desde C++ con clases .NET. De esta manera. Además de incluir en el contenedor Figura 4. se aprecia la interfaz producida al arrastrar a un formulario Windows la tabla Employees de la base de datos Northwind. My. Los elementos principales de este objeto son: My. por lo que es de esperar que en la Figura 3.especial.NET de 64 bits.36-42© © 27/8/56 09:28 Página 40 << dnm. indistintamente de que trabajemos con C# o VB.NET que. Otras extensiones al lenguaje Visual Basic . no obstante.Pág. métodos anónimos y simplifica la implementación de tipos con iteradores. etc. el usuario que la está ejecutando. También es destacable la inclusión de un compilador Visual C++ . arrastrar una tabla desde el explorador de servidores hasta un formulario y obtener una interfaz completamente funcional. Hemos de apuntar. por ejemplo. el entorno muestra unas etiquetas inteligentes que facilitan el acceso inmediato a las funciones más habituales. Interfaz de acceso a datos generada mediante arrastrar y soltar versión definitiva encontremos incluso más posibilidades. así como el menú adjunto a la etiqueta inteligente con opciones que permiten añadir un formulario de detalle o modificar los parámetros de éste. que trabajamos con una versión alpha de dicho entorno. por ejemplo. la posibilidad de definir tipos parciales. no obstante. Algunas de las ventanas de este nuevo IDE se aplican por igual a varios o todos los lenguajes. sintaxis actualmente en fase de estandarización por parte del ECMA y que sustituirá a la extensión __gc para designar clases . el ordenador en el que está ejecutándose. My. El objetivo es contar con una sintaxis estándar.WebServices. se reduce la cantidad de código que los programadores que eligen este lenguaje tienen que escribir.com/vcsharp/team/ language . <<dotNetManía Visual Studio . C# permite ahora definir tipos parciales. el IDE de VS.Computer.User y My.NET. Podemos. basada en modificadores como ref y operadores específicos. posiblemente lo más interesante sea la inclusión de la sintaxis C++/CLI para escribir código . seguirá estando disponible.

NET facilita el acceso a fragmentos de códigos prefabricados aparecen con un fondo distinto y a los que puede accederse de manera secuencial mediante el tabulador. El editor de VB.NET.36-42© © 27/8/56 09:28 Página 41 << dnm. En la figura 7.especial. por ejemplo. ofreciéndose posibles soluciones y acciones inmediatas que son accesibles en forma de enlaces. tomada de Microsoft Office. El editor de VB. En contraposición al de VB. elementos que 41 . como puede ser la imposibilidad de abrir un archivo. el editor de código C# no nos ofrece fragmentos de código sino funciones de refactoring que muchos echábamos en falta. cambiar el nombre de un miembro. Los esqueletos de código cuentan con elementos que debemos sustituir Figura 8.. así como establecer marcas y Figura 7. subraya como lo haría Word al encontrar un fallo ortográfico.Pág.futuro Figura 5. El editor de VB. todo ello lógicamente propagando la modificación al nivel del proyecto. Además de a los editores. por ejemplo. además. va analizando el código a medida que lo editamos y.NET tiende a ahorrar la mayor cantidad de escritura de código posible. por ejemplo. el editor nos ofrece una serie de correcciones. También se ha mejorado la información ofrecida por el depurador cuando la ejecución se detiene por alguna excepción. puede verse que hay dos parámetros de este tipo en un fragmento de código recién insertado: el nombre de la variable y el nombre del archivo a leer. incorporando elementos como una opción del menú contextual que da acceso a fragmentos de código prefabricados y agrupados por categorías (véase figura 6). Globo informativo con ayuda sobre una excepción Figura 6. El editor de C# dispone de opciones de refactoring <<dotNetManía La idea de las etiquetas inteligentes. como se ha hecho en la figura 4.NET. con elementos que deben sustituirse manualmente para ser adecuados a cada necesidad particular. corresponde al globo informativo que aparece cuando intenta abrirse un archivo y éste no existe. pudiendo ser recuperados en caso de una caída del sistema. se aplica en otros contextos. Podemos copiar y pegar la ayuda sobre parámetros que aparece normalmente en una etiqueta flotante. incorporando algunas de las ideas de XP (Extreme Programming). Los archivos se guardan automáticamente cada pocos minutos. Estos esqueletos de código genérico cuentan. La figura 5. De esta forma es más fácil ir mejorando el código a medida que se edita y trabaja en él. encapsular el acceso a una variable. en caso de detectar un error. también se han añadido otras posibilidades a los diseñadores Web y al propio entorno en sí mismo. etc. Lo más interesante es que al situar el puntero sobre ese error. Podemos seleccionar un grupo de sentencias y generar un método a partir de ellas.

Como se aprecia en la figura 10. siendo capaz de generar interfaces y clases. Resumiendo A pesar de que. Esta característica. mucho más de lo que fue Everett.NET Whidbey . nos encontramos ante una versión muy preliminar de lo que serán la plataforma . facilitando herramientas de diseño tipo Figura 10. descrita al inicio del artículo. pero.NET Whidbey también nos servirá como avanzadilla para ir conociendo lo que nos ofrecerá Orcas. que lógicamente sigue estando presente en VS. un producto que seguiría manteniéndose como opción para ingenieros del software.NET Whidbey. VS. Si trabajamos con VB.especial. Indigo y WinFS.NET la versión Whidbey elevará el desarrollo de servicios Web al nivel de RAD. según la información facilitada por el equipo de ASP.36-42© © 27/8/56 09:28 Página 42 << dnm. El anclaje de las distintas ventanas que componen el entorno resulta ahora más sencillo. La integración con Yukon.NET. <<dotNetManía Diseño de servicios Web 42 ¿Cómo es posible que en un artículo sobre Microsoft . Si contamos con la versión preliminar de Longhorn y el correspondiente SDK. durante la depuración podemos introducir modificaciones en el código y continuar con la ejecución sin necesidad de reiniciarla. la integración del SDK con Whidbey nos permite ir ya abriendo boca. como ya he comentado. está implementada en el núcleo de la plataforma. Hay que destacar que estos diseñadores que aparecerán en VS.Pág. tan sólo se ha aprovechado con Visual Basic. la estructura lógica de los datos y sus interacciones con los componentes.futuro ver rápidamente dónde hemos introducido cambios gracias a las líneas de revisión.NET no haya aparecido aún el término servicio Web? No es que me haya olvidado de esta parte. el sucesor de Whidbey y que estará capacitado para aprovechar el nuevo WinFX al completo: Avalon. al tiempo que en la línea de estado obtenemos indicaciones adicionales. podemos afirmar sin dudarlo que se tratará de una revisión realmente importante. mediante el uso de diagramas. por ahora. sino que la he dejado para el final sencillamente porque aún es difícil evaluar las novedades dado que no se encuentran disponibles en la versión alpha que Microsoft ha distribuido. las mejoras en el desarrollo para dispositivos móviles o la posibilidad de crear aplicaciones para Office harán de este producto la herramienta de desarrollo universal. Este diseñador definirá. El SDK de Longhorn añade nuevos tipos de proyecto a VS. Al arrastrar una ventana aparecen una serie de elementos semitransparentes que nos indican el punto en el que hemos soltar para anclar en ese margen.NET Whidbey.NET Whidbey son totalmente independientes de Visio. así como de efectuar ingeniería inversa sobre el código ya existente. Elementos visuales que facilitan el anclaje de las ventanas SOA (Service Oriented Applications). No obstante. Figura 9.NET y VS.

a: La Caixa. Usted tiene derecho a acceder a sus datos. o por 75€ para el resto de Europa. o por 90€ para el resto del mundo (IVA incluido). L. Suscripción académica para ESTUDIANTES Deseo suscribirme a dotNetManía por un año (11 ejemplares) y beneficiarme de la oferta del 25% de descuento por un importe total de 45€ sólo para España por ser estudiante. S. IMPORTES VALIDOS HASTA NUEVA OFERTA (28-3-2004/PDF) DATOS DE ENVIO CIF/NIF Nombre y apellidos Dirección Población Código Postal Teléfono Empresa Provincia Fax email DATOS DE FACTURACIÓN (sólo si son distintos de los datos de envío) (no válido para suscripción para estudiantes) CIF/NIF Nombre y apellidos Dirección Población Código Postal Teléfono Empresa Provincia Fax email FORMA DE PAGO Talón nominativo a nombre NETALIA. L. modificarlos y cancelarlos cuando lo desee.com. 135 28529 . L. La suscripción se entiende a partir del número actual. Sus datos no serán cedidos en ninguna de las formas posibles a terceras partes y no se utilizarán más que para el buen funcionamiento de su suscripción a la revista dotNetMania y para informarle de las actividades comerciales que realice la editorial Netalia. L.Rivas Vaciamadrid Madrid (España) . El responsable y destinatario de éstos es Netalia. número de cuenta 2100 4315 48 2200014696 (Indique su nombre en la transferencia) Domiciliación Bancaria dotNetManía Indique su número de cuenta: Tarjeta de crédito VISA MASTERCARD Número de su tarjeta: / Fecha de caducidad: AMERICAN EXPRESS (Imprescindible) Firma y sello a de de Enviar Usted autoriza a la mecanización de estos datos. L. S. También puede enviarlo por correo postal a la siguiente dirección: C/ Robledal. Transferencia bancaria a nombre de NETALIA. Giro postal a nombre NETALIA. S. S. Si no desea recibir información comercial marque la casilla siguiente Envíe este formulario pulsando el botón [Enviar] o por email a la dirección suscriptores@dotnetmania. S. Aporto fotocopia del carné de estudiante o sello del centro académico (IMPRESCINDIBLE).Suscripción a dotNetManía Suscripción normal Deseo suscribirme a dotNetManía por un año (11 ejemplares) y beneficiarme de la oferta del 10% de descuento por un importe total de 60€ para España. o al fax (34) 91 499 13 64.

los programas son. el software se organiza como una colección de objetos que contie- El punto de vista funcional ve el software como un sistema que proporciona una o varias funciones al usuario… • Desde un punto de vista funcional. El punto de vista funcional ve el software como un sistema que proporciona una o varias funciones al usuario. el desarrollo o el modelado orientado a objeto. sus profesores. todo esto está muy bien desde el punto de vista teórico. Pero ¿qué diferencia a estas dos formas de pensar? En realidad es sencillo. “mostrar”… datos. Eiffel…). Modelos en UML En este artículo vamos a intentar introducir el paradigma de la orientación a objeto. enviando y recibiendo mensajes (cada uno de esos objetos tendrá una parte de datos y una funcional que determinará su comportamiento). lo primero es decir que estas técnicas suponen una nueva forma de pensar. Y finalmente nos pararemos a hacer una primera aproximación al Lenguaje Unificado de Modelado (UML).Pág. Pues bien. sino porque suponen un cambio en los hábitos de trabajo de muchos desarrolladores. pues sus comienzos datan de los 70.44-50 27/8/56 09:46 Página 44 Por Juan Torres Antigoto www. los programas son módulos de código que interactúan usando datos para llevar a cabo un fin. pero ¿qué supone para el programador? Pues supone darle un mayor énfasis a las estructuras de datos que manejamos en nuestros programas. desde el punto de vista orientado a objeto. Poniendo un ejemplo: Si nos enfrentáramos con la tarea de desarrollar un pequeño programa para gestionar la información relativa a unos alumnos. Por el contrario. ya que éstas soportan mucho mejor las variaciones en los requisitos que la funcionalidad que las rodea. empezaremos dividiendo el trabajo creando módulos que se encargan de “grabar”. nen tanto estructuras de datos como comportamientos. una serie de objetos interaccionando entre sí. “modificar”. “borrar”. UML.com/AniGoto Orientación a Objeto. VB.indesia. distinguiendo entre lo que es la programación. Métrica v3…) y los lenguajes de programación que implementan éstos conceptos (C++. Bueno. Haremos diagramas de flujos para representar estas funciones y en definitiva agruparemos las funcionalidades para ir creando subpro- . etc. por tanto. Vamos a hacer un recorrido a través de las diferentes metodologías basadas en objetos (OMT.Net. y no digo “nuevas” porque acaben de llegar. C#.: <<dotNetManía << Comencemos preguntándonos en qué consiste la 44 Orientación a Objetos en el desarrollo de software. que durante este tiempo han seguido trabajando siguiendo el paradigma funcional.

modelar es realizar los planos de un edificio antes de enfrentarnos a su construcción). Sólo cuando utilicemos esta filosofía durante todas las fases podremos hablar de Desarrollo Orientado a Objeto. empezaremos estudiando los objetos que aparecen en nuestro problema. técnicas. Técnica de Modelado a Objeto). el ciclo de vida del software se compone de muchas más etapas. descritos por diferentes autores. un modelo es “un esquema teórico de una realidad compleja. el objeto “profesor”. debemos estudiar las diferencias entre programación. desarrollo y modelado orientados a objetos Después de haber intentado diferenciar ambas formas de pensar. El tema más conocido es la Programación Orientada a Objeto. modelar quiere decir diseñar esos esquemas teóricos para facilitarnos la comprensión del entorno de nuestro problema. pero vistos desde diferentes enfoques o puntos de vista.) supone que la documentación generada es más convencional (se atiene a las normas mayoritariamente observadas) y porque además encontraremos más personal para continuar o participar en ellos fácilmente.Pág. Ivar Jacobson entre otros. Lenguaje Unificado de Modelado). En este caso. aunque lógicamente las hay más y menos populares. si además seguimos la filosofía antes descrita estaremos llevando acabo un Modelado Orientado a Objeto (por hacer un símil. 45 . diagramas. el Modelado Orientado a Objetos. desarrollo y modelado orientados a objeto. Por tanto. “asignatura”… y viendo la forma en que éstos interactúan y se relacionan. y que nos permiten llevar a cabo ordenadamente nuestro trabajo. etc. programadores. que se elabora para facilitar su comprensión y el estudio de su comportamiento”. En este artículo vamos a referirnos siempre a orientación a objeto en general. La popularidad no siempre quiere decir mayor calidad. De la recopilación y organización de éstas han surgido diferentes metodologías a lo largo de estos años (desde los 80). Todos estos temas se refieren en realidad a lo mismo.. Usaremos diagramas de objetos para representarlo todo y las funciones aparecerán como el comportamiento o interrelación de dichos objetos. siempre desde esta forma de pensar y trabajar. técnicas. Diseño Orientado a Objeto. pero en este caso supone un valor añadido. Y digo esto porque el ser más conocida y por lo tanto usada entre la comunidad de desarrolladores (analistas. Y por último. Todas ellas son útiles a la hora de enfrentarse con un desarrollo. aunque de lo que más vamos a hablar es de metodologías de modelado orientado a objeto que podamos usar para llevar a cabo un desarrollo completamente orientado a objeto. Vemos cómo lo que más nos importará son los verbos del enunciado de los requisitos para transformarlos en trozos de código (algoritmos). método de ingeniería del software orientado a objeto) o el Unified Modeling Language (UML. Lógicamente. el objeto “alumno”. Según la Real Academia de la Lengua Española. etc. Metodologías Orientadas a Objeto Han sido muchos los autores que han profundizado en la orientación a objeto. Creando reglas. etc.arquitectura. la OMT-2. De autores como James Rumbaugh. • Desde un punto de vista orientado a objeto. Para entender su significado debemos entender qué es Modelar. Podemos nombrar muchas como la Object Modeling Technique (OMT.44-50 27/8/56 09:46 Página 45 << dnm. etc. el método Object Oriented Software Engineering (OOSE. <<dotNetManía gramas.uml Diferencias entre programación. que consiste en el uso y creación de lenguajes de programación que implementen herramientas que permitan codificar los programas manteniendo esta filosofía. y en todas ellas podríamos usar esta forma de pensar. Cuando hablamos de metodologías orientadas a objeto nos referimos a las reglas. El adjetivo “Orientado a Objeto” se coloca a cualquier actividad relacionada con el desarrollo de software que siga el punto de vista antes mencionado. diagramas. que facilitan en gran medida la tarea de modelar. Grady Booch.. metodologías. Por lo que también podemos hablar de Análisis Orientado a Objeto. Lo que más nos importarán serán los sustantivos del enunciado de los requisitos.

el lenguaje de programación usado para implementarlo no tiene porqué serlo.org) como estándar para la definición de un lenguaje y notación de modelado. consultar http://www.es). Pero a mediados de los 90 los tres autores de los métodos con mayor aceptación (James Rumbaugh. y está formado por la mayor parte de las empresas y organismos internacionales del sector. podemos usar el Lenguaje Unificado de Modelado como notación para dar un enfoque orientado a objeto a los proyectos realizados bajo Métrica. es un consorcio sin ánimo de lucro que produce y mantiene especificaciones. De esta tarea surge la primera versión del Lenguaje Unificado de Modelado (UML). y las características que debe cumplir un lenguaje para serlo. Por ello será la que trataremos en mayor medida y cuya notación usaremos para los diagramas o figuras de este artículo. Dicho método ha sido aceptado por la Object Management Group (OMG. ya que son innumerables las herramientas CASE. Y digo bien “generar” y no “crear” el código. porque tras un buen análisis y .Pág. aunque un proyecto haya sido diseñado usando metodologías orientadas a objeto. Métrica es un método desarrollado por el Consejo Superior de Informática del Ministerio de Administraciones Públicas (http://www. lenguajes. Hay mecanismos para codificar en un lenguaje tradicional toda la lógica generada.uml 46 …desde el punto de vista orientado a objeto. Cabe hacer un inciso en este punto para destacar que para el sector de la Ingeniería y el Desarrollo del Software en España. Por tanto. el software se organiza como una colección de objetos que contienen tanto estructuras de datos como comportamiento. que ofrece las pautas de trabajo y documentación a la hora de construir sistemas para las dife- rentes administraciones públicas.44-50 27/8/56 09:46 Página 46 <<dotNetManía << dnm. De entre ellas y hasta hace muy poco tiempo se consideraba que la OMT (de James Rumbaugh) era la más utilizada en el mundo profesional y universitario. No obstante. Grady Booch e Ivar Jacobson) se encuentran en la compañía Rational Software Corporation. que han ido surgiendo alrededor de este mundo. Aunque Métrica no es propiamente una metodología orientada a objeto (su versión 2 sólo contemplaba el enfoque funcional) en su versión 3 deja a la elección del equipo de trabajo el uso de técnicas orientadas a objeto o no. Por tanto. parece lógico entender que ésta es la metodología con mayor futuro de continuidad y sobre la que interesa centrar los esfuerzos formativos. para llevar a cabo sus actividades. usar un lenguaje que venga provisto de características orientadas a objeto nos facilitará notablemente la tarea de generar el código.map.csi. Concretamente vamos a pararnos a estudiar los lenguajes de programación más importantes de los considerados “Orientados a Objeto”. integrado en el Plan General de Garantía de Calidad aplicable al desarrollo de software. y empiezan a trabajar en la reunificación de dichos métodos. este repaso metodológico quedaría incompleto si no mencionáramos a Métrica. Lenguajes Orientados a Objeto Un punto muy importante a la hora de valorar esta nueva forma de adentrarnos en un proyecto de desarrollo son las herramientas software que tenemos a nuestra disposición. Y en este caso es una razón más para que la orientación a objeto resulte atractiva. entornos de desarrollo y demás utilidades.omg. Lo primero es indicar que.arquitectura.

Esta característica le ha dotado de unas capacidades de portabilidad y reutilización de código entre plataformas inusitadas.. • Deben existir mecanismos especiales para la herencia entre objetos. Mucha gente lo considera el primer lenguaje orientado a objeto. que permita agrupar sus datos y funcionalidad. en el que se unirían un compilador de Object Pascal. Object Pascal Otro lenguaje surgido de añadir características orientadas a ob- en la actualidad. Ahora vamos a dar una lista de algunos lenguajes considerados totalmente orientados a objeto. Ejemplo de código en SmallTalk C++ Este lenguaje fue inventado por Bjarne Stroustrup (AT&T Bell Laboratories).Pág.44-50 27/8/56 09:46 Página 47 << dnm. una buena librería de clases y un potente entorno de desarrollo de última generación. Java Este es uno de los lenguajes orientados a objeto más populares class name Ventana superclass Object instance variables v1 v2 v3 v4 class methods crearA: unPunto deAnchura: ancho deAltura: alto instance methods anadirCuadradoEn: unPunto deAnchura: ancho deAltura: alto Fuente 1. IBM. Smalltalk no es sólo un lenguaje. de Internet que ha sido su mayor mercado. sino todo un entorno de desarrollo. Bibliotecas de Clases. Podemos citar varias versiones comerciales como Microsoft Visual C++. La herencia consiste en crear jerarquías de clases de objetos que conservan las características de sus predecesores. Borland C++ Builder. etc. Proviene de un desarrollo de la empresa Sun Microsystems y es un claro sucesor de C++. y otros muchos lenguajes lo han tomado como modelo. Además le hacen perfecto para su uso a través de redes de ordenadores y. <<dotNetManía diseño orientado a objeto. por supuesto. Encapsulamiento. Y todo en su entorno son a su vez objetos que podemos manejar. Debido a la amplia difusión del C (del que procede). El producto que más popularidad le ha dado ha sido el Borland Delphi. gran parte de las líneas de nuestro programa serán automáticas. etc. con lo que será más o menos orientado a objeto. El lenguaje debe proveer una sintaxis para las clases (como plantillas para crear objetos). y es una máquina virtual la que se encarga de generar código para la plataforma concreta. Objetive-C. Se ha usado durante muchos años sobre máquinas Digital. prácticamente un sistema operativo que corre encima de una "máquina virtual". Java se compila a un código intermedio independiente de la máquina sobre la que corre. se ha convertido durante muchos años en el referente en lo que ha Programación Orientada a Objeto se refiere. etc. reutilizar y extender. Se intentó superar las limitaciones de complejidad y oscuridad que éste tenía. Existirán mecanismos sencillos que permitan plasmar las relaciones entre objetos que aparecen en el análisis. Pero ¿qué características debe cumplir un lenguaje para ser considerado un verdadero Lenguaje Orientado a Objeto? Las características mínimas son las siguientes: 47 . y debe ser posible expresarlo.uml • Debe permitir el uso de objetos y clases de objetos. se le dotó de una importante biblioteca de clases y todo ello se unió a una nueva forma de trabajar. Cualquier lenguaje puede cumplir uno o varios de estos requisitos. • Debe permitir la creación de relaciones entre los objetos. Xerox Parc). como una evolución del lenguaje C.arquitectura. Smalltalk Este lenguaje se diseñó en los años 70 en el Palo Alto Reasearch Institute de Xerox (conocido como jeto a uno procedimental es el Pascal. del hecho de no ser un lenguaje propietario (eso quiere decir que existen versiones que trabajan sobre plataformas diversas e incluso variantes gratuitas) y del apoyo del sector. y mecanismos de instanciación (creación) de objetos a partir de éstas. • Debe disponer de otras características como el Polimorfismo.

Por ejemplo. Ruby. } } } Fuente 2. apellidos. Asignatura de Matemáticas. aunque dependerá del tipo de proyecto el que uno u otro lo sea más. esquemas. namespace Dotnetmania. sin importar el tamaño o tipo concreto de proyecto. Por lo tanto supone portabilidad de plataforma y de lenguaje. a parte de todo esto. Cursos. Otros lenguajes orientados a objeto pueden ser Eiffel. etc.uml C# Otro sucesor de C++ recién llegado. y. Ésta está basada en el uso de una máquina virtual al igual que Java. no arbitrarios. el Modelado Estructural. pero llevando el concepto a una escala superior.propiedades { // Clase Alumno class Alumno{ // Propiedades private string nombre.Net. podemos agrupar a todos los alumnos dentro de un grupo de objetos o clase (denominada Alumnos. los objetos de la clase Profesores podrían poseer un método Calificar que les permitiera colocar una nota para un Alumno. . decimos que sirve para construir porque de sus especificaciones podremos pasar casi automáticamente (con generadores de código en muchos casos) a implementaciones en lenguajes orientados a objeto como C++ o Java. Microsoft ha mejorado su producto más popular. el de Comportamiento y el Ar- using system. las cuales definen las características comunes de un grupo de objetos. Todos los lenguajes . el de Comportamiento y el Arquitectónico. Curso Primero. etc. cada clase lleva consigo las propiedades (los datos) y los métodos (las funciones) que ese objeto puede llevar a cabo. De acuerdo con el ejemplo anterior. Sirve para visualizar porque sus actividades nos crearán un esquema mental adecuado del problema a tratar y de la solución a desarrollar. Existirían más clases como Profesores. los diagramas.NET se compilan al mismo lenguaje intermedio. } set { nombre = value.NET. Modelado Estructural En él estudiaremos los objetos que tienen relevancia para nuestro problema.. Éstos serán los conceptos importantes para nuestro sistema. Por ejemplo. Se trata del nuevo lenguaje diseñado por Microsoft dentro de su nueva tecnología . etc. que encierra a todas las características o propiedades comunes a dichos objetos). el Modelado Estructural. Debemos así mismo agrupar los objetos en clases. Para cada clase debemos identificar a todas las características de sus objetos y el comportamiento que éstos tendrán.NET Framework se encarga de generar el código para cada máquina. to de desarrollo de software. Los tres tienen su importancia. aunque tienen menor difusión.OrientacionObjeto. pueden ser los relevantes. CLos. que generaremos se incorporarán como documentación eficaz de todo el proceso de desarrollo.arquitectura. para el problema de desarrollar un programa para la gestión de un Centro de Estudios los conceptos Alumno Antonio. dotándole de verdadera orientación a objeto en su versión Visual Basic . permite especificar porque obtendrá resultados precisos y completos. etc.Pág. Además de este lenguaje. Asignaturas. // Metodos o funciones de comportamiento public Alumno() {} public string Nombre { get { return nombre. especificar. El modelado en UML tiene tres vertientes.44-50 27/8/56 09:46 Página 48 << dnm. Aula numero 5. Profesor Don Javier. Visual Basic. y el . Nota Suspenso. Es decir. El modelado en UML tiene tres vertientes. Ejemplo de código en C# <<dotNetManía Introducción a UML 48 El Lenguaje Unificado de Modelado sirve para visualizar. construir y documentar un proyec- quitectónico.

lo cual querrá decir que los alumnos están matriculados en un curso.. Y especificaremos esas relaciones. si un profesor puede ser a su vez alumno. Eso quiere decir que una clase hija posee todas las propiedades y métodos de su padre. en la cual un hijo es “todo lo que es” su padre y algo más. la naturaleza de esos mensajes. Cuando hablamos de metodologías orientadas a objeto nos referimos a las reglas. Por el contrario. restringiéndolas y dándoles mayor semántica. en ella estudiaremos la parte dinámica de nuestro sistema. etc. Profesor y Alumnos son Personas y algo más. técnicas. por ejemplo. Estas relaciones o asociaciones determinan el que. etc. los Profesores estarán en el estado activo mientras tengan asignado un curso) de los objetos y de su entorno. al que hemos denominado estructural usaremos Diagramas de Clases y Diagramas de Objetos (o de instancias). que sería padre de Alumnos y Profesores.arquitectura. Modelado del Comportamiento Esta es la segunda parte del proceso de modelado UML. y en el segundo Objetos (es decir instancias o ejemplos de clases). Por tanto. En el primero de ellos se dibujarán Clases y sus relaciones. la clase Alumnos esté relacionada con la clase Cursos.44-50 27/8/56 09:46 Página 49 << dnm. una relación de herencia (o Generalización) aparece entre dos o más clases denominadas Padre e Hijos. etc. Una agregación aparece cuando un objeto “está compuesto” o “puede descomponerse” en otros objetos (un curso puede “estar compuesto de” asignaturas). el orden en que deben ser enviados y recibidos. Tendremos que clasificar las relaciones entre objetos en simples asociaciones. En el ejemplo podría existir una clase Persona. y además las suyas.Pág. Estudiaremos esos estados. que nos permiten llevar a cabo ordenadamente nuestro trabajo. Deberemos decir si un alumno puede relacionarse con sólo un curso o con más de uno. Interactuar es intercambiar mensajes que dan lugar al disparo de acciones que alteran el estado (el valor de sus propiedades en un momento determinado. por ejemplo. dispo- <<dotNetManía Además de esto. la interacción entre los objetos. Dicha clase tendría la propiedad Nombre (común a sus hijos) pero Alumnos tendría además propiedades como Calificación Final (que no tienen todas las Personas) y Profesor tendría Salario (propiedad que no tienen los Alumnos en el 49 . agregaciones o relaciones de herencia (lo cual conllevará diferencias semánticas significativas). Estudiaremos además la interacción de nuestro sistema con el mundo exterior (personas. el paso de uno a otros. en esta parte del modelo estudiaremos las relaciones existentes entre las diferentes clases. Todo lo anterior lo plasmaremos en una serie de diagramas usando una notación especial. Concretamente para esta parte del modelado.uml ejemplo). diagramas.

los Diagramas de Actividades. Para todo el modelado existe una notación concreta. representaremos como un estado a los posibles valores de las propiedades de un objeto en un momento determinado y a través de qué evento podrá pasar a otro estado (dentro de estos diagramas existe un caso particular. bibliotecas. Para ello usaremos dos tipos de diagramas principales: • Diagramas de Componentes. • Diagramas de Interacción. Su diferencia radica en que los de secuencia hacen hincapié en la ordenación temporal de los mensajes. Sirven para mostrar el paso de mensajes a través de los objetos. que se centra en un tipo de estados denominados estados de actividad). • Diagramas de Estados. etc.arquitectura. Todo ello se hará diseñando una serie de diagramas. en cambio los de colaboración se centran en el flujo de control entre objetos. Lo usaremos para representar la organización de las partes o componentes del sistema (en nuestro ejemplo si usásemos una arquitectura Cliente/Servidor podríamos representar el ejecutable del lado cliente y la base de datos de servidor con la información del centro). en qué máquinas se ejecutará. nuestro sistema interaccionaría con el Ministerio de Educación para convalidar los programas de las asignaturas) y la forma en que el sistema será utilizado (los llamados Casos de Uso. qué archivos usará. Se dividen en Diagramas de Secuencia y de Colaboración. de en qué orden se envían. como la arquitectónica son muy utilizados.Pág. etc.. En este caso usaremos: • Diagramas de Casos de Uso. • Diagramas de Despliegue. Los usaremos para mostrar los nodos en que trabajan dichos componentes (en nuestro caso las máquinas clientes y los servidores). .uml << sitivos hardware. En el ejemplo. Éstos no son más que la representación en forma de máquinas de estados del cambio en los valores de sus propiedades durante la vida de los objetos. <<dotNetManía Modelado Arquitectónico 50 En esta última parte del modelo estudiaremos la parte física del sistema. pero UML deja abierta la posibilidad de extender la notación a través de los denominados estereotipos (elementos que no pertenecen a la notación pero que hemos añadido para extenderla) o bien colocando notas aclaratorias. En determinadas partes.44-50 27/8/56 09:46 Página 50 << dnm. un caso de uso podría ser la forma en que ve nuestro sistema un Profesor). es decir. hardware u otros sistemas) que interactúan con él. En éste representaremos a cada una de las formas en que nuestro sistema será usado (casos de uso) y los actores (entidades externas como personas. Es decir. etc. Cómo se dividirá en ejecutables.

Pág.51 27/8/56 09:47 Página 51 .

Las aplicaciones VCL Forms están basadas en la VCL. Los conocimientos de la VCL servirán a medias a la hora de desarrollar aplicaciones Windows Forms. Aún recuerdo los años en los que Delphi competía con Visual Basic para atraer a los cientos de miles de programadores que querían migrar desde el viejo DOS a un entorno de desarrollo Windows. Con la aparición de Delphi 8 para Microsoft .net Delphi 8 para Microsoft .NET. al lenguaje más estructurado. pero también veíamos a Microsoft 52 como un fabricante más fiable.NET Framework La evolución hacia la revolución .Pág.laboratotio. con lenguajes igualmente irreprochables.NET. el lenguaje de programación sigue siendo Delphi. y además.52-55© © 27/8/56 09:50 Página 52 dnm. una nueva versión de la VCL desarrollada principalmente para facilitar la migración de aplicaciones Delphi 7 ó anteriores a la plataforma . al mejor. es que ¡el lenguaje nos da igual! Aplicaciones VCL Forms Este es uno de los muchos tipos de aplicaciones que podemos desarrollar con Delphi 8 para .NET. es el tipo de aplicación en el que podremos aprovechar al máximo nuestros conocimientos y experiencia con Delphi. creo que a pocos les quedarán dudas ya de que Win32 está tocando a su fin. por bueno que fuese. En las aplicaciones Windows Forms la biblioteca de clases y componentes es nueva.net << dnm. Aplicaciones Windows Forms Las aplicaciones Windows Forms están basadas en la biblioteca de clases y componentes del . y lo mejor de todo.NET y.NET Framework. estructurado.NET Framework también con Delphi. Casi todos veíamos en Delphi. Los nombres de las clases son nuevos. y después de la aparición de C# Builder. cuyo fabricante se tambaleaba? Ahora existe un entorno de programación a la medida de las nuevas tecnologías. los << << Después de la aparición de Delphi . Rumores corrían por entonces de la posible desaparición de Borland ¿Quién se arriesgaría a pasar sus desarrollos a un lenguaje. sin basarse en lo antiguo. con una arquitectura irreprochable.laboratorio. lo que representa toda una novedad para los programadores de Delphi.NET <<dotNetManía 8 para .NET Framework.NET Framework. Borland se convierte en el principal fabricante de herramientas de desarrollo para la plataforma . ciertamente. Sin embargo. Ahora tenemos la posibilidad de hacer el cambio hacia el código gestionado de .

Casi en cualquier cosa con la que trabajamos en la actualidad ha pasado por la cabeza de Anders Hejlsberg.NET Web Forms son aplicaciones para servidores Web que generan contenido HTML en respuesta a requerimientos HTTP.laboratorio. la jerarquía de clases es nueva. Aplicaciones ASP. En las aplicaciones Windows Forms cada formulario está formado por un único archivo que contiene todo el código fuente. Ha pasado el tiempo.NET Web Forms mediante componentes DB Web que simplifican el desarrollo de aplicaciones ASP. Este nuevo Delphi viene de lo que el creó hace tiempo. e incluso hacer nuestros primeros pinitos con la programación orientada a objeto.NET y puro Delphi. de largo. El . Anders Hejlsberg es casi un desconocido para la mayoría. en el desarrollo moderno de los lenguajes de programación.Pág. ¿Habrá tenido algo que ver Anders en que Borland haya sido la primera en sacar su propio C# y haya adaptado su lenguaje más importante tan rápidamente? Delphi 8 es puro . desde que Anders.NET Web Forms Las aplicaciones ASP. todo es nuevo. Delphi 8 para . métodos y eventos son nuevos. y ahora éste se adapta a .NET extiende ASP. fue arquitecto de MS J++ y las Windows Foundation Class y arquitecto principal de .NET Web Forms enlazadas a datos. Ha pasado tiempo. y ha resultado ser que se ha convertido en la persona que más ha influido. incluyendo lo que hacemos visualmente en tiempo de diseño. <<dotNetManía La alargada sombra de Anders Hejlsberg 53 .net componentes son nuevos. los nombres de las propiedades.NET Framework. Más tarde. Puro Anders Hejlsberg. Sin embargo.NET Framework provee componentes del lado servidor que generan automáticamente contenido HTML. En resumen.52-55© © 27/8/56 09:50 Página 53 << dnm.NET Framework donde él ha sido uno de los arquitectos principales. ya lo creo. entonces. y padre del lenguaje C#. fue ni más ni menos que el creador de Turbo Pascal y Delphi en su época de 13 años en Borland. Para desarrollar aplicaciones Windows Forms tendremos que aprender a utilizar una nueva biblioteca de clases y componentes. ya en Microsoft. crease su Turbo Pascal con el que tantos aprendimos a programar.

NET. organización de la cual Borland es un miembro activo. Visualización de código La edición Enterprise incluye una herramienta de modelado que permite visualizar el . entre los que se incluyen componentes para acceso directo a MS SQL Server y Oracle.NET y lo extiende a través de los componentes Borland Data Providers (BDP). ECO adhiere a la metodología MDA (Model Driven Architecture) de la OMG (Object Management Group).NET ofrece un amplio abanico de posibilidades para acceder a bases de datos.NET permiten acceder a las siguientes bases de datos: MS SQL Server.NET Soporte completo para ADO.NET permite acceder a bases de datos a través de los componentes basados en BDE. En tiempo de diseño ECO provee: • Herramientas de diseño UML para crear gráfica y visualmente el modelo de la aplicación. DB2 y Oracle.NET. InterBase. Los componentes BDP proveen una arquitectura de alto rendimiento y un modelo de programación unificado para acceder a distintas bases de datos. <<dotNetManía VCL. Su arquitectura abierta permite añadir fácilmente soporte para otras bases de datos. crear instancias y acceder al mecanismo de persistencia. ADO.Pág. Los componentes BDP incluidos en Delphi 8 para .NET y facilitando la migración de aplicaciones Delphi 7 o anteriores. • Componentes para manejar la persistencia de los objetos en archivos XML o en bases de datos relacionales y para generar el esquema de la base de datos y permitir su evolución a la par de la evolución del modelo. Estas herramientas cumplen con el estándar UML (Unified Modeling Language).NET soporta el uso de ADO.NET. La unión de las herramientas de Together y Bold dieron como resultado ECO (Enterprise Core Objects). En tiempo de ejecución ECO provee: • La infraestructura necesaria para obtener colecciones de objetos. Borland Data Providers Delphi 8 para .laboratorio. Arquitectura de los servicios ECO Las herramientas de modelado están perfectamente integradas en el entorno de desarrollo y están basadas en las herramientas de Together. permitiendo utilizar todos los componentes de acceso a datos de ADO. extendiendo las posibilidades de acceso a datos desde una aplicación . El Diseñador UML de ECO ECO permite el intercambio de información con aplicaciones externas ya que permite importar y exportar modelos en formato XMI. proveedores OLEDB y ODBC. En las aplicaciones ECO Windows Forms el centro es el modelo de la aplicación. ECO es un marco de trabajo de tiempo de diseño y de tiempo de ejecución que está disponible en la edición Architect de Delphi 8 para .net Aplicaciones ECO Windows Forms Acceso a datos Delphi 8 para .NET 54 La VCL. MS Access. el centro de las aplicaciones ECO. • Componentes para trabajar con objetos y conjuntos de objetos mediante OCL y para enlazarlos con los componentes visuales habituales. dbExpress e InterBase Express.52-55© © 27/8/56 09:50 Página 54 << dnm.

• Utilidad Modular TOC: Automáticamente rellena todos los ficheros del sistema de Ayuda con una tabla de contenidos con enlace totalmente funcional. • Editor de Cadenas de Contexto: Define cadenas de contexto para Microsoft Help 2.Pág. así como aprovechar las ventajas de la plataforma . • Búsqueda Natural: Añade fácilmente capacidades de búsqueda en “Lenguaje Natural”.com o contacte con info@danysoft.NET. la visión previa para . nuevo componente PDF para . barras de herramientas para . el WebGrid para ASP . • Diseño: Herramientas de modelado UML integradas. Janeva. Para más información consulte en http://www.com <<dotNetManía Nuevo en ComponentOne Studio Enterprise 2004 v1 • ComponentOne VSFlexGrid Pro 8: Con más de 15 nuevas funciones incluyendo nuevos métodos para el soporte del portapapeles.NET. Productos ALM • Definición: Acceso a CaliberRM desde el IDE.NET incluye soporte para chequeo de correcciones personalizado y diccionarios personalizados. El Grupo Danysoft anuncia Componentone Studio Enterprise 2004 v1.NET ahora soportan el aspecto y forma de trabajar de Microsoft Office 2003.noticias. • Optimización: Integración con OptimizeIt Profiler para . Delphi 8 para . y más de 60 nuevas funcionalidades y mejoras. Este artículo ha sido elaborado con la colaboración de Borland Ibérica y Danysoft. Para más información visite www.0 y las conecta convenientemente a los temas de la Ayuda.danysoft.borland.laboratorio.noticias .NET.es y en http://www.com. el WebSpell IDE para ASP .NET y ALM Delphi 8 para . desarrolladores. La nueva edición Profesional añade 5 nuevas funciones y un servicio de suscripción de un año. sin importar su localización. • Desarrollo: Delphi 8 para .NET sin abandonar sus desarrollos actuales.net diagrama de clases del código fuente del proyecto. Los productos ALM permiten que los administradores. Resumen los programadores Delphi dar un paso adelante hacia la plataforma . • Despliegue: InstallShield Express. ECO y la integración con las herramientas ALM de Borland.NET es una herramienta de desarrollo para la creación de aplicaciones .noticias.NET ahora soporta hiperenlaces y anclajes.NET.1.NET.NET incluye un botón “Cambiar Todo”.NET: Los menús y 55 noticias.NET que permite a El Grupo Danysoft anuncia las ediciones Standard y Profesional de ComponentOne Doc-To-Help 7. • Administración: Acceso a StarTeam desde el IDE. responsables de las implementaciones y responsables de las pruebas estén conectados en tiempo real.NET permite controlar sobre el lado cliente los agrupamientos para columnas. mejorando la productividad y acelerando todas las etapas del proceso de desarrollo de software.52-55© © 27/8/56 09:50 Página 55 << dnm. • Nuevas funciones en los productos .NET y al mismo tiempo la extiende con la VCL. • Editor de Mapa de Imagen: Rápidamente edita las imágenes insertadas y añades enlaces a los temas específicos en el fichero de Ayuda.danyshop. propiedades para personalizar imágenes y mucho más. Delphi 8 para . Este diagrama es estático y no puede ser modificado.NET y ASP . • Diseñador de Temas: Permite un control completo para construir temas y permite la personalización sencilla para ajustar la apariencia y forma de trabajo. Esta nueva versión añade PDF para . y mucho más. InterBase 7.NET se integra perfectamente con el conjunto de herramientas que forman parte de la estrategia ALM (Application Lifecycle Management) de Borland. el Spell para . diseñadores.

NET y JScript.NET para el desarrollo de aplicaciones web.5 x 22. que como su nombre indica es “imprescindible”. nos introduce a la historia desde ASP hasta ASP. portalVB (). “preferí tratar a fondo todo lo relacionado con la programación orientada a objetos. gramación con alguna versión anterior de Visual Basic.biblioteca. me respondió que además de que el número de páginas del libro estaba restringido. ¡qué mejor que empezar nuestra biblioteca virtual con ellos! Programación con ASP. Además.50 Referencia: 2311110 ISBN: 84-415-1394-5 Precio orientativo: 20.NET Jorge Serrano Editorial: Anaya Multimedia Autor: Jorge Serrano Pérez Nº de páginas: 960 Tamaño: 17. nos informa de las novedades que tiene la nueva versión de Visual Basic y nos explica de forma clara todo lo relacionado a una de esas novedades que hacen de Visual Basic .elguille. Jorge Serrano es una de las personas con más presencia en la comunidad de desarrolladores de España y webmaster de una de las mejores páginas de Visual Basic en castellano.80 Publicación: Agosto/2002 56 Este libro. y enseñándonos a usar Visual Studio . Queremos ir agrupando los libros que recomendamos de manera que cada libro que se publica en esta sección tendrá la categoría de libro recomendado por dotNetManía. Microsoft SQL Server y MySql. nos muestra como acceder a fuentes de datos Microsoft Access.NET de . explicándonos las partes generales de los lenguajes C#. Para los que ya tienen experiencia en la pro- mienta de desarrollo repasando todos y cada uno de los controles de ASP. Se trata de un libro que en síntesis general. Esperemos que tenga oportunidad de escribir una segunda parte sobre esos temas que se quedaron en el tintero y que estén tan bien explicados como los temas que aborda en el libro. No es una sección de evaluación de libros al uso.NET.NET que más nos gustan.50x22. a partir del capítulo sexto se enfoca en todo lo relacionado con la programación orientada a objetos. Para los que son nuevos en la programación. desde cómo crear una variable hasta cómo hacer un bucle For.NET. que como dije al principio.biblioteca. Se trata de un libro con un índice bastante completo y que quizás asuste por su tamaño.pero como también nos gustan. Guillermo ‘guille’ Som es un auténtico pionero de la publicación de contenidos técnicos en Internet en España. puede convertirse en un libro de referencia y aprendizaje muy completo.NET como herra- Visual Basic.por lo que quizás no hayamos sido muy imparciales.net << dnm. Preguntando al autor el porqué de esas carencias. ya que considero que es mucho más importante para el que quiere programar con .56© 27/8/56 09:56 Página 56 dnm.net Desde este primer número vamos a formar una biblioteca con los libros .NET Framework que dedicar unos cuantos capítulos a poner ejemplos simples que al final no ayudarían al que realmente quiere aprender”. El libro está enfocado principalmente al que se quiere iniciar en la programación con Visual Basic .NET. aprenderemos a introducirnos en la programación de aplicaciones web con ASP. Manual imprescindible Guillermo ‘guille’ Som <<dotNetManía Editorial: Anaya Multimedia Autor: Guillermo ‘guille’ Som Nº de páginas: 480 Tamaño: 17. Un libro.NET. hay un capítulo específico para enseñarnos a crear y explotar nuestros propios Servicios Web XML. ni tienen porqué estar los más nuevos. El libro está acompañado de un CDROM con los ejemplos que se muestran en el libro. En este primer número hemos querido recomendar un par de libros de colaboradores de esta revista. hay que tener en nuestra librería. dedica los tres primeros capítulos para explicar los conceptos básicos de la sintaxis de VB . pero que a mi modo de ver.info .NET. no vamos a criticar los libros que no nos gustan. dedicándole a este tema nueve de los veinte capítulos del libro. Visual Basic . Acaba de abrir su nuevo local en htpp://www. pero que es una lástima que no haya abordado temas como la programación Web o el acceso a bases de datos.5 cm Referencia: 2318042 ISBN: 84-415-1342-2 Precio orientativo: 48 6 Pubicación: Febre4o 2002 << En este libro de casi 1000 páginas y de carácter teórico-práctico.NET un lenguaje de programación de los de verdad: La herencia. El libro además.Pág.NET.

es investigador en el RNASA Lab // GIB del Departamento de Tecnologías de la Información y las Comunicaciones de la Universidade da Coruña (ivan@udc. es profesor en el Departamento de Tecnologías de la Información y las Comunicaciones de la Universidade da Coruña (jj@udc. evaluar y criticar las de los demás. este proyecto pretende crear un espacio común en el que todos los participantes podrán exponer sus creaciones software y probar. pensada para que la comunidad universitaria.hybridsociety. el de INETA.es) <<dotNetManía << Golem Project nace a partir de una iniciativa conjun- 57 .net Golem Project (… weblog en marcha) Golem Project surge como una plataforma de soporte a sociedades virtuales.golemproject. Apoyándose en el paradigma de la Sociedad Híbrida (http://www. y el de muchos MVPs y destacados profesionales de las tecnologías Microsoft. puedan compartir y evaluar piezas de software en un entorno que combina el ocio y el aprendizaje mediante el uso de una revolucionaria técnica.es) Iván González Vilaboa. Juan Jesús Romero Cardalda. y en particular los estudiantes.com). duda o aportación será bienvenida y tenida en cuenta. que constituye una nueva forma de comunidad virtual. etc. ta de Microsoft y el Creative Computer Group (CCG) del laboratorio de Redes de Neuronas Artificiales y Sistemas Adaptativos (RNASA) de la Universidade da Coruña.Pág. comentario. pero ya es posible colaborar con el equipo de desarrollo a través del correo electrónico (golem@udc.comunidades. sus opiniones. En Golem Project la calidad de una pieza de software es función solamente del interés que despierte en los participantes de la Sociedad.com. que aglutina un conjunto de weblogs que crece día a día y entre los que se encuentran algunos tan interesantes como el weblog del equipo de MSDN en castellano.Net para la creación de Servicios Web.Net y los Servicios Web a toda la comunidad universitaria.net << dnm. Cualquier sugerencia. sus inquietudes.comunidades.golemproject. proporcionando un foro en el que compartir y divulgar conocimientos y dudas acerca de éstos y otros temas. Gracias a sus weblogs podrán compartir con nosotros información acerca de sus proyectos.57 27/8/56 09:57 Página 57 dnm. Golem Project es un entorno virtual en el que los estudiantes podrán participar en un juego y aprender e intercambiar conocimientos a un mismo tiempo.es) o del formulario de colaboración de la página Web (http://www. Dentro de las iniciativas que forman parte de Golem Project se ha puesto ya en marcha el sitio http://weblogs. denominada Sociedad Híbrida. Golem Project está en fase de construcción. con el objetivo de acercar la tecnología . y ya se puede comenzar a construir Servicios Web para jugar.net) y en las tecnologías Microsoft .

trabaja ahora en la Microsoft Games Division. lo que podría tener importantes consecuencias en el desarrollo de ordenadores basados en la Mecánica Cuántica. Para más información.desvan Por Marino Posadas Importantes avances hacia la computación cuántica Científicos de la Universidad de Harvard.58 27/8/56 09:57 Página 58 dnm.com/2100-1016-5128984.com/spout/ Introducción a WinFS.com/Weblog/default.microsoft.com/msdntv/episode. El autor de Tetris.iunknown.html ¿Piensa Microsoft comprar AMD? El sitio OS-News nos lo cuenta.com): http://www.net/dmarsh Brian Jepson: http://www.asp Análisis de las características de XAML (Avalon) por Chris Sells: http://www.html Bitácoras (WebLogs) <<dotNetManía sitios y recursos 58 Documentación oficial sobre Longhorn: http://microsoft. Alexey Pajitnov.noticias << dnm. por Prashant Sridharan: http://www.com Peter Drayton (CLR): http://www.Pág.aspx?xml=episodes/en/20031211WinFSQC/manifest.asp. ver el artículo de Rick Callahan.com/Longhorn Herramientas .newtelligence.jepstone.windowsfordevices.NET.html).desvan noticias.com/reviews/longhorn_4051.net/weblog . Scientists freeze pulse of light.gotdotnet.madgeek.nature.php?news_id=5386 arículos y vídeos en la red Revisión completa de Longhorn por Paul Thurrot: http://www.com/news/science/20031209-2349-frozenlight.noticias. padre del popular juego Tetris.signonsandiego.razorsoft. con mejoras en la seguridad y multimedia.noticias.xml Análisis comparativo de los 4 lenguajes principales de . probablemente Microsoft ya tenga disponible la beta del siguiente Pack de Windows XP. Posiblemente en mayo ya estará disponible la versión definitiva y se dice que ya incluirá algunas caracteríaticas de Longhorn.com/articles/AT6287100687.msdn.net/radio/2002/10/10.aspx John Lam (IUnkown.sellsbrothers.ingorammer. preparado para sacar el Service Pack 2 de Windows XP Para el momento de la publicación de éste primer número de dotNetManía. por Quentin Clark (vídeo): http://www.net/clemensv Ingo Rammer (Remoting): http://www. han conseguido dar un importante paso hacia la computación cuántica al conseguir "parar" un pulso luminoso sin pérdida apreciable de energía y hacer que reanudara su trayectoria un instante después. principalmente.html Clemens Vasters (sobre Indigo): http://staff. en su editorial de John O’Sullivan: http://www. Para más información.osnews. trabaja en el división de juegos de Microsoft.NET de todo tipo: http://sharptoolbox. Este logro viene a completar pasos anteriores como el publicado en la revista Nature (Solid stops light) (http://www. for an instant (http://www.html).net Don Box (coautor de SOAP y XML-Schemas): http://www.com.winsupersite. Microsoft. véase el sitio: http://news.com Para programadores y administradores (Shell Extensión City): http://shellcity. Según parece está trabajando en la actualidad en su segunda versión de la Caja de Pandora.com/nsu/020107/020107-2.com/story. en el que se conseguía la detención utilizando cristales especiales.com/team/dbox Drew Marsh: http://weblogs.

borland. Servicios Profesionales Danysoft. Para inscripción gratuita y más información.NET C#Builder Delphi Agenda 9:30 Registro y entrega de Documentación 10:00 Introducción Delphi 8 Jason Vokes PLSM Borland EMEA Star Team 10:45 El nuevo entorno de desarrollo para .5 de Febrero Auditorio Winterthur.es 902 344 556 Con la colaboración de: . Director Area Técnica. Director Area Formación. Caliber RM 11:45 Café 12:15 Características de Delphi 8 para el desarrollo de aplicaciones Mirosoft basadas en el framework . Together edition for .NET) Server 2003 Janeva InterBase Octavio Hernández.Seminario Lanzamiento Delphi 8 Madrid . 8 Presentación + Demostración en directo de la nueva versión de Delphi.NET Pablo Reyes. c/ Marqués de Villamagna.NET (FLC. Servicios Profesionales Danysoft. www.NET Optimizet Profiler for .

visualpr. Microsoft. Todos los derechos reservados. el logotipo de . Para empezar. Pruébelo ya mismo: conéctese a una sesión gratuita* en línea con todos los servicios en http://msdn. Visual Studio. al contar con más de 20 ¡¡Pruébelo gratis* en línea!! lenguajes.com 900 97 33 86 http://www.NET está pensado para ayudarle a superar los retos actuales de la programación.com/spain 902 11 57 98 http://www. y Windows son marcas registradas o marcas comerciales de Microsoft Corporation en Estados Unidos y/o en otros países. Porque Visual Studio . Visual Studio . le permite elegir el lenguaje más adecuado para la tarea que está desarrollando. los simplificados diseñadores de formularios de Windows. Además. eliminará miles de líneas de código utilizando la conocida técnica de “arrastrar-soltar-hacer doble clic para escribir código”. Internet y dispositivos •Mejor para mañana.Sí le ayudará a eliminar miles de líneas de código.NET puede ayudarle en (casi) todas las facetas de su trabajo. Distribuidores Recomendados: 902 12 31 46 http://ms.sosdevelopers. No le ayudará a corregir la postura. Con las nuevas herramientas RAD para el servidor.danysoft. © 2003 Microsoft Corporation.ramblainf. •Preparado para hoy.microsoft. tanto si construye aplicaciones para Windows®. Internet y móviles le permitirán utilizar el mismo modelo de programación en diferentes plataformas y dispositivos. el logotipo de Visual Studio.net .NET. móviles como para crear servicios Web XML.com/vstudio/tryvs/ *Su proveedor de Internet puede cobrarle por el tiempo de conexión.com 902 10 20 55 http://www.