¡hola mundo! - humansharp.com · intercambie contenidos en internet en sus páginas asp.net a...

60

Upload: dinhhanh

Post on 19-Sep-2018

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ¡Hola Mundo! - humansharp.com · Intercambie contenidos en Internet en sus páginas ASP.NET a través de la especi- ... Data Providerpara ADO.NET ofrece, asimismo, ... Curso de Presentaciones
dotNetMania
Ejemplar Gratuito dotNetManía es una revista impresa dedicada a los profesionales de la plataforma .NET. Sólo este ejemplar se distribuye gratuitamente en formato PDF. Si reside en España puede pedirnos una copia impresa totalmente gratuita a la dirección [email protected] o por teléfono al (34) 91 666 74 77. SOLO HASTA AGOTAR EXISTENCIAS. Si desea información de cómo suscribirse a dotNetManía, consulte nuestra página Web http://www.dotnetmania.com o nuestro cupón de suscripción en la página 43.
Page 2: ¡Hola Mundo! - humansharp.com · Intercambie contenidos en Internet en sus páginas ASP.NET a través de la especi- ... Data Providerpara ADO.NET ofrece, asimismo, ... Curso de Presentaciones
Page 3: ¡Hola Mundo! - humansharp.com · Intercambie contenidos en Internet en sus páginas ASP.NET a través de la especi- ... Data Providerpara ADO.NET ofrece, asimismo, ... Curso de Presentaciones

Como cuando empezamos con un nuevo entor-no y hacemos nuestro primer programa, hoypublicamos el primer número de esta revista,y nos sentimos igual de impacientes que cuan-do esperamos que la compilación finalice satis-factoriamente y aparezca esta frase tan usadaen los comienzos: ¡Hola Mundo!

Pero no somos novatos. Muchos de nosotrosya hicimos clippeRmanía, y después FOXmanía,y después Algoritmo. Ahora, siguiendo erre queerre con nuestras manías, nos ha dado por edi-tar una revista especializada en la plataforma.NET a la que hemos dado el nombre dedotNetManía. La primera revista en el mundodedicada exclusivamente a los profesionales dela plataforma .NET, escrita en castellano.

Ha llovido mucho desde nuestra primerarevista, y sin embargo, nuestro espíritu siguesiendo el mismo. Tenemos ganas de contar loque sabemos, de compartir lo que aprendemos,nuestros pequeños descubrimientos y nuestrasexperiencias.

Aquí seguimos, los viejos “clipperos” (algu-nos quedaron en el camino) y las nuevas gene-

raciones, unidos por la mismas manías. Conuna plataforma como .NET no podíamos resis-tirnos a seguir con la labor que iniciamos losmás viejos hace ya trece años. También estánlos más jóvenes que sienten cuando van des-cubriendo las interioridades de la plataforma.NET, lo que nosotros sentíamos cuando des-cubríamos las indocumentadas de Clipper o deDOS o de Novell.

Cualquier tiempo pasado no fue mejor.Nuestras revistas anteriores fueron, modestiaaparte, muy buenas. Pero con dotNetManiacreo que daremos lo mejor de nosotros mis-mos, porque contamos con una plataforma conuna arquitectura tan amplia como impecable,porque tenemos más medios, más experiencia,porque somos más. Sólo faltabas tú, y por lovisto ya estás aquí.

Esperamos sinceramente que nuestro tra-bajo te sea útil, que disfrutes leyéndola yaprendiendo con ella, tanto como nosotroshaciéndola, y sobre todo, esperamos ser capa-ces de contagiarte el maravilloso virus de lacuriosidad.

dotN

etM

anía

<<

3

¡Hola mundo!

<<

dnm.editorial<<dnm.editorial

EditorPaco Marín ([email protected])

AdministraciónPilar Pérez ([email protected])

Asesor Técnico/CoordinaciónMarino Posadas ([email protected])

Redactores y ColaboradoresAlejandro Mezcua, Angel Esteban,Antonio Quirós, Antonio Rojo, DavidCarmona, Eladio Rincón, FranciscoCharte, Fernando Guerrero, FernandoNogueras, Guillermo ‘guille’ Som, Iván

González, Jesús López, Jordi Rambla,Jorge Serrano, José Manuel Alarcón,Juan Torres, Liborio López, LuisMiguel Blanco, Marino Posadas,Miguel Egea, Miguel Katrib, PabloAbbate, Pedro Gómez, Pedro Pozo,Pepe Hevia, Salvador Ramos

Diseño y MaquetaciónÉride Diseño GráficoTel.: (34) 91 477 48 [email protected] • www.eride.net

EditanetaliaTf. (34) 91 6667477Fax (34) 91 4991364

ImprimeCampillo Nevadowww.campillonevado.com

Depósito LegalM-3.075-2004

Suscripciones/Administració[email protected]

[email protected]

[email protected]

Nuevos [email protected]

Pág.03©© 27/8/56 08:58 Página 3

Page 4: ¡Hola Mundo! - humansharp.com · Intercambie contenidos en Internet en sus páginas ASP.NET a través de la especi- ... Data Providerpara ADO.NET ofrece, asimismo, ... Curso de Presentaciones

dnm.sumario

Intercambiando contenidos en RSS con ASP.NET 6-9

Intercambie contenidos en Internet en sus páginas ASP.NET a través de la especi-ficación RSS. Conozca brevemente la historia de esta especificación y aprenda autilizarla con el ejemplo propuesto.

Equivalencia de instrucciones de C# y VB.NET (I) 11-15

Cómo hacer las mismas cosas (o casi) en C# y Visual Basic .NET. Esta serie de artí-culos pretende explicarte cómo hacer las mismas cosas tanto en C# como en VisualBasic .NET.

ESPECIAL MICROSOFT PREPARA EL FUTURO

Microsoft y el desarrollo de software 16-17Un vistazo al futuroMauricio Ulargui, director de la División .NET de Microsoft Ibérica hace una intro-ducción al especial “Microsoft prepara el futuro” dando un vistazo general de lasnuevas tecnologías que se están preparando.

La evolución de la plataforma .NET 18-20Perspectiva desde el punto de vista técnico de las nuevas tecnologías que están por venir.

Longhorn y el Desarrollo 21-27Será el principio de una nueva época, marcando el final de las aplicaciones Win32 y elcomienzo del código gestionado.

¿Programación en .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 len-guaje preferido para programar procedimientos almacenados? ¿Realmente será mejor?

De Everett a Orcas,pasando por Whidbey 34-40Viaje desde Everett a Orcas pasando por Whidbey. Conozca las nuevas mejoras delnuevo Visual Studio y el nuevo .NET Framework.

Orientación a objetos.Modelos en UML 42-48Un recorrido a través de las diferentes metodologías basadas en objetos (OMT, UML,Métrica v3…) y los lenguajes de programación que implementan éstos conceptos(C++, C#, VB.Net, Eiffel…). Y finalmente nos pararemos a hacer una primeraaproximación al Lenguaje Unificado de Modelado (UML).

Laboratorio 50-53

Delphi 8 para Microsoft .NET FrameworkLa evolución hacia la revolución .NETUn primer vistazo al nuevo Delphi, que abandona también a Win32 y se pasa alcódigo gestionado de .NET Framework

Biblioteca 54

Microsoft Visual Basic.NETManual ImprescindibleDe Guillermo SomProgramación con ASP.NETDe Jorge Serrano

Comunidades 55

Proyecto Golemdnm

.sum

ario

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

Page 5: ¡Hola Mundo! - humansharp.com · Intercambie contenidos en Internet en sus páginas ASP.NET a través de la especi- ... Data Providerpara ADO.NET ofrece, asimismo, ... Curso de Presentaciones

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

Page 6: ¡Hola Mundo! - humansharp.com · Intercambie contenidos en Internet en sus páginas ASP.NET a través de la especi- ... Data Providerpara ADO.NET ofrece, asimismo, ... Curso de Presentaciones

dotN

etM

anía

<<

6

dnm.noticias<<dnm.noticias

Ya está aquí el nuevo Delphi 8para Microsoft .NET

En la 14ª edición del BorCon (BorlandConference 2003), el evento anual másimportante de Borland, celebrado ennoviembre del año pasado en SanJosé, California, y para Europa enÁmsterdam, se presentó al nuevoDelphi 8 para Microsoft .NET, una nue-va edición diseñada para permitir alos desarrolladores crear aplicacionesbasadas en la plataforma .NET y mi-grar aplicaciones Delphi para Win32con una compatibilidad total contodas las clases de .NET.

Según dijo Simon Thornhill,Vicepresidente y General Managerde .NET Solutions en Borland, “EnMicrosoft han sido muy claros, ellos lle-varán todo a código administrado. El finde Win32 está a la vista. Si quieres pro-gramar como un desarrollador de pri-mera has de migrar a .NET ahora.Nosotros ayudaremos a los programado-res de Delphi a hacer esta transición”.

Delphi 8 para Microsoft .NET estádiseñado para permitir el desarrollorápido de aplicaciones fiables con

desarrollos web robustos, ofreciendocientos de clases y controles para apli-caciones de bases de datos de alto ren-dimiento. También se anunció la apa-rición del Borland Enterprise CoreObjects (ECO) que ayudará al desa-rrollador a crear aplicaciones rápida-mente desde los diseñadores y que seincorpora a Delphi 8 para Microsoft.NET y a Borland C# Builder paraMicrosoft .NET, en sus edicionesArchitect. ECO soporta MDA (ModelDriven Architecture) y UML (UnifiedModeling Language).

Esta versión también agiliza eldesarrollo de aplicaciones ASP.NETcapacitándole para construir robus-tos servicios web XML y aplicacio-nes HTML. El proveedor BorlandData Provider para ADO.NETofrece, asimismo, soporte nativo de

rendimiento optimizado para lasprincipales bases de datos corpora-tivas.

Delphi 8 para Microsoft .NETaparece en tres ediciones diferentes:Architect, para diseño guiado pormodelos, desarrollo y despliegue deaplicaciones .NET; Enterprise, paralos equipos que desarrollan aplica-ciones empresariales de bases dedatos con ADO.NET; Professional,ideal para desarrollos web individua-les y aplicaciones de interfaz gráficade usuario para .NET.

Aquí en España se presentará el día5 de febrero de 2004 en Madrid, en unevento de lanzamiento del productodonde podrá ver de primera mano lascaracterísticas de esta nueva versión.Los asistentes tendrán acceso a unaoferta especial de lanzamiento.Inscripciones en el 902 344 556.

Para más información:http://www.borland.es y

http://www.danysoft.com.

Curso de Presentaciones EfectivasImprescindible para la tramitación dela certificación MCT

26 de febrero de 2004Auditorio MicrosoftC/ Pechuán, 1. 28002, Madrid.http://www.microsoft.com/spain/forma-cion/noticias/presentaciones.asp

V Cisco Secure Tour anualFecha: 27 de Enero de 2004Hotel Meliá CastillaC/ Capitán Haya, 4328020 - Madrid

Tfnos: 91 567 50 00/ 91 567 50 51http://www.microsoft.com/spain/tech-net/comunidad/eventos/seguridad/cis-co_sectour5.asp

Solución ALM de Borland para la plataforma .NET

18 Febrero de 2004Auditorio de MicrosoftC/ Pechuán, 1Organiza Microsoft (902 197 198 ),Borland (902 344 556 ) y el GrupoDanysoft (902 123 146)

Seminario técnico de generaciónde informes con Crystal Reports y Crystal Enterprise

25 Febrero de 2004Sala presentaciones DanysoftEstébanez calderón nº 5, 3ª plantaOrganiza Grupo Danysoft (902 123 146)

calendario.de.eventos

<<

<<

<<

<<

pág.06-07© 27/8/56 09:11 Página 6

Page 7: ¡Hola Mundo! - humansharp.com · Intercambie contenidos en Internet en sus páginas ASP.NET a través de la especi- ... Data Providerpara ADO.NET ofrece, asimismo, ... Curso de Presentaciones

dotN

etM

anía

<<

7

dnm.noticias<<

Imagine Cup es la competicióninternacional de tecnología paraestudiantes universitarios, quedeberán presentar un proyecto enel que se utilicen dispositivosmóviles, servicios web y compo-nentes inteligentes que aprendana lo largo del tiempo. ImagineCup está esponsorizada porMicrosoft Corporation.

Para participar lo primero que tie-nen que hacer los estudiantes esregistrarse junto con los miembrosde su equipo antes del día 6 deFebrero.

En esta primera fase, la presenta-ción del proyecto se hará a travésdel site (www.desarrollaelfutu-ro.com) hasta el día 27 de Febrerojurado estará formado por perso-nal de Microsoft.

Los tres últimos finalistas recibi-rán un viaje a Brasil con todos losgastos pagados para participar enla final internacional de la ImagineCup en Brasil, para el primero; unPocket Pc a cada uno de los inte-grantes del equipo, para el segun-do; y una Xbox con 3 juegos a cadauno de los integrantes del equipo,para el tercero.

La final consistirá en un evento devarios días en Sao Paulo, Brasil.Todos los finalistas internaciona-les de cada país o región compe-tirán por las tres primeras plazas.

Los premios son de $25.000,$15.000 y $10.000 para el prime-ro, segundo y tercero respectiva-mente. Este año se repartirán másde $85.000 en premios en metáli-co para los ganadores.

Últimos días para la inscripción en la“Imagine Cup”

LEAD Technologies, Inc. y su distribuidorpara la península ibérica el Grupo Danysofthan anunciado el lanzamiento de la versión14 de LEADTOOLS, la premiada familiade herramientas y plug-ins gráficos paradesarrolladores.

LEADTOOLS 14 está repleto de tec-nologías de última generación, nuevas carac-terísticas y mejoras significativas para las líne-as de productos Raster Pro, Document,Medical y Multimedia, con mejoras adicio-nales para Raster Imaging, Vector y .NETa punto de llegar.

LEAD es uno de los líderes mundiales en el desarrollo de kits de herramientasgráficas.

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, incluyendo nuevos ejemplos de .NET • Próxima llegada: .NET y Raster Imaging v14

Para más información o solicitar una copia de evaluación visite la web del dis-tribuidor en www.danyshop.com

Microsoft está acabando con el pasado más rápidamente de lo que nos tenía acos-tumbrados. De hecho, hace menos de un año que apareció Windows 2003 y suantecesor, Windows 2000 empezará a retirarse en Abril de este año en un proce-so progresivo que terminará en el 2007. Se comenzará con la retirada del canal dedistribución, para terminar con la retirada del soporte del producto.

Pero Windows 2000 no es el único. La operación “desguace” de Microsoft tam-bién incluye a SQL Server 7, Outlook 2000, Windows 98, Office XP para desa-rrolladores, Visio 2000, Visual Studio 6.0 SP3 y SP5 y algún producto más.

Sin embargo, aunque dejen de distribuirse, el soporte se mantendrá durante algúntiempo, dependiendo de cada herramienta. Para SQL Server 7 habrá soporte has-ta el 2007, por ejemplo, aunque otros como Windows 98 ya terminan.

El motivo no es otro que el fin del acuerdo con Sun sobre la distribución de lamáquina virtual de Java escrita por Microsoft. Ha terminado el plazo, y Microsoftya no podrá distribuir ninguno de sus productos que incluyan este software.

Según Andy Boyd, Product Manager de MSDN Suscriber Downloads, productoscomo Office XP Professional con Frontpage o Windows NT 4, entre otros, sí seránactualizados con versiones sin la máquina virtual de Java para poder seguir des-cargándose como hasta ahora.

Para más información consulte en el centro de soporte de Microsoft en: http://support.microsoft.com

La operación “desguace” de Microsoft

pág.06-07© 27/8/56 09:11 Página 7

Page 8: ¡Hola Mundo! - humansharp.com · Intercambie contenidos en Internet en sus páginas ASP.NET a través de la especi- ... Data Providerpara ADO.NET ofrece, asimismo, ... Curso de Presentaciones

dotN

etM

anía

<<

8

Internet, nadie conocía el alcance realque hoy día tiene. Lo más valioso de la red deredes es la información, pero ¿tenemos controlsobre la información que se publica en Internety tenemos acceso a ella fácilmente?. Desgra-ciadamente, la información fluye a una veloci-dad imparable e incontrolable, pero permaneceinaccesible en muchos de los casos, y en otros,requiere que realicemos diferentes saltos entreun lugar y otro en Internet para conocer las noti-cias e informaciones que publica un sitio y otroo sobre un tema de interés. Es decir, la infor-mación se encuentra dispersa y sin criterio algu-no que nos permita compartir y acceder a ellasin trastornos para los usuarios.

Para tratar de evitar en parte esta desinfor-mación, apareció el concepto de RSS. Ahora bien,¿qué y cómo es?, ¿cómo acceder a este tipo derecursos? y sobre todo, ¿cómo tratarlos en nues-tras aplicaciones ASP .NET?. Esto es justamentelo que veremos en este artículo.

¿Qué es RSS?

La definición oficial de RSS es Really SimpleSyndication —distribución realmente simple—también conocido como Rich Site Summary —re-sumen enriquecido del sitio—, pero quizásencuentre RSS con un significado más precisoaunque no coincida con sus siglas, el de ContentSyndication —distribución de contenidos—, quees quizás un significado más acertado para RSS

ya que es realmente en lo que se ha convertido.Y es que RSS no es otra cosa que un docu-

mento XML que sigue una serie de reglas quepermiten traducir los contenidos de estos docu-mentos para que sean interpretables por cual-quier aplicación o programa que lo trate.Construir un documento RSS es por lo tanto,realmente sencillo, y podemos hacerlo con cual-quier editor como por ejemplo el bloc de notasde Windows.

Historia y versiones de RSSLa historia de RSS no está del todo clara y

cuando uno se acerca a ella, parece más aden-trarse a una batalla de disputas que a una histo-ria de armonía y entendimiento. Pero lo que estáclaro es, que separando las diferencias, podemosindicar que el embrión de lo que hoy se conocecomo RSS, lo encontramos en Abril de 1997 y

<<

Intercambiando contenidos en RSS con ASP .NET

Por Jorge SerranoVisual Basic y .NET MVPwww.PortalVB.com

Cuando comenzó

RSS no es otra cosa que un documentoXML 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.

Pág.08-11©© 27/8/56 09:13 Página 8

Page 9: ¡Hola Mundo! - humansharp.com · Intercambie contenidos en Internet en sus páginas ASP.NET a través de la especi- ... Data Providerpara ADO.NET ofrece, asimismo, ... Curso de Presentaciones

dotN

etM

anía

<<

9

concretamente en UserLand, cuan-do Dave Winer ofrecía unos scriptspara distribuir noticias en XML.

RSS, sin embargo, tuvo sus ini-cios más serios en las oficinas deNetscape en el año 1999 cuando loaplicaron a su propia red. Netscapeutilizó entonces, lo que era la prime-ra versión de RSS, la v0.9 de Marzode 1999, basada en RDF ResourceDescription Framework —marco dedescripción de recursos— y cuyoobjetivo era el de presentar la infor-mación en el WWW.

A partir de ese momento, han apa-recido diferentes versiones mejoradas.La versión 0.91 de Julio de 1999 fuepresentada por Netscape y no se basa-ba en RDF. Más tarde, apareceríanentre Julio y Noviembre de 2000 otrasversiones como la 0.92 que era com-patible con la 0.91, la 0.93, la 0.94 y la1.0. Posteriormente en Septiembre de2002 aparecería la versión 2.0.

De todas estas versiones, sólo tresversiones han sido tenidas en cuen-ta, la 0.91, la 1.0 y la 2.0, y de estastres, sólo dos de ellas son las másextendidas y comúnmente aceptadasen Internet, la 0.91 y la 2.0. La ver-sión 1.0 ha sido generalmente recha-zada por requerir acciones avanzadasdebido a que está basada en RDF. Lasotras dos, requieren menos esfuerzospara ponerlas en funcionamiento.

En la tabla 1 puede ver un resu-men de las diferentes versiones deRSS.

La versión 2.0 de RSS es com-patible con la 0.91 y es en la que mevoy a basar en este artículo por serla más actual y la que se está exten-diendo de forma más clara.

¿Cómo es un documento RSS?

Un documento RSS es un docu-mento XML, con sus etiquetas y valo-res de acuerdo a una serie de reglas.

En la figura 1 podemos observarcuál es el formato general de undocumento RSS versión 2.0.

Analizando detenidamente lafigura 1, observaremos que un docu-mento RSS 2.0 está compuesto poruna cabecera —etiqueta rss— dón-de se indica la versión del docu-mento RSS, seguida de una etique-ta que indica información sobre elcanal —etiqueta channel— del docu-mento, y entre la etiqueta del canal,los elementos de contenido —eti-queta item— que pueden ser repe-tidos tantas veces como contenidosdiferentes queremos representar.

Cada una de estas partes poseeun conjunto de etiquetas y cada unade éstas posee un determinado sig-nificado. Aquí veremos las másgenerales, que son las que se utili-zan en la mayoría de los sitios Web,pero para conocer más a fondo laespecificación de RSS 2.0, aconse-jo la visita del siguiente enlace:http://blogs.law.harvard-edu/tech/rss/

Para aclarar toda esta maraña deinformación, escribiremos un brevedocumento RSS 2.0 de ejemplo(fuente 1) y explicaremos su conte-nido y las partes de éste. Una ima-

Versión RSS Responsable Descripción

0.9 Netscape Es una versión en desuso.0.91 UserLand Es de las más usadas, si bien,

se recomienda el uso de laversión 2.0 si se usa ésta.

0.92 UserLand Es una versión en desuso.0.93 UserLand Es una versión en desuso.0.94 UserLand Es una versión en desuso.1.0 Grupo de trabajo de RSS Basada en RDF, requiere

módulos de carácteravanzado, por lo que esrechazada en Internet.

2.0 UserLand Es la versión comúnmenteaceptada y extendida.Compatible con la versión0.91.

Tabla 1.Versiones de RSS

Figura 1. Diagrama general de un documento RSS 2.0

Pág.08-11©© 27/8/56 09:13 Página 9

dnm.plataforma.asp.net <<

Page 10: ¡Hola Mundo! - humansharp.com · Intercambie contenidos en Internet en sus páginas ASP.NET a través de la especi- ... Data Providerpara ADO.NET ofrece, asimismo, ... Curso de Presentaciones

dotN

etM

anía

<<

10

dnm.plataforma.asp.net<<

gen vale más que mil palabras y entenderemosa la perfección lo que he explicado hasta ahora.

Como vemos en el fuente 1, el artículocomienza por las etiquetas <rss> y </rss>. Dentrode estas etiquetas, encontraremos las etiquetas<channel> y </channel> entre las que están los ele-mentos más importantes del documento RSS.

Después de la etiqueta <channel> y antes dela primera etiqueta <item>, encontramos dife-rentes etiquetas que forman parte de la infor-mación de cabecera y que identifica el sitio Weben el que se encuentra la información RSS. Deesta manera, encontramos en las etiquetas<title>, <link>, <description> y <language>, lasinformaciones sobre el sitio Web (título o nom-bre, enlace Web, descripción e idioma). Detodas estas etiquetas, la etiqueta <language> esquizás la más destacable, pues indica el tipo deidioma o lenguaje que se utiliza en el sitiosiguiendo las normas indicadas en la documen-tación RFC 1766 y que encontrará en la direcciónweb: http://www.ee/support/Official/intro.html

Entre la etiqueta <item> e </item>, encon-tramos los elementos del contenido que quere-mos compartir. Este contenido se define en lasetiquetas <title>, <description>, <link> y <pubDate>(título de la información, descripción, enlaceWeb y fecha de publicación). Como en el casoanterior, la etiqueta <pubDate> es la más desta-cable e indica la fecha de publicación de estainformación según las normas de la documen-tación RFC 822 que encontraremos en la direc-ción web: http://www.w3.org/Protocols/rfc822/

ASP.NET con RSS

Pese a todas estas explicaciones, aún nos que-da aprender a leer esta documentación enASP.NET. Esto puede ser realizado mediantedos procesos: Uno que permita leer el conteni-do RSS de una dirección Web directamente, yotro que permita leer el contenido del archivopara trabajar directamente con él. Generalmente,utilizaremos la primera acción y es ésa la que uti-lizaré en este artículo.

La capa de presentación es algo sobre lo quedebemos trabajar en una etapa posterior. Loimportante en este momento es saber cómo tra-bajar con este tipo de documentos desde nues-

tras aplicaciones ASP.NET. De hecho, en esteartículo nos detendremos muy poco en la pre-sentación de la información del documento RSS.

Para llevar a cabo nuestro cometido, añadi-remos un documento RSS al directorio raíz denuestro servidor Web que en mi caso eshttp://localhost/ ya que estoy trabajando con el

servidor Web local. A este fichero lo llamaréMiRSS.xml y tendrá el siguiente contenido. Verfuente 2.

Pasemos ahora a la parte del desarrollo.Crearemos una página sencilla en ASP.NET quelea el contenido del documento RSS y lo mues-tre en pantalla. Evidentemente, este procedi-miento no es el mejor de todos ni tampoco será

<?xml version=”1.0”?><rss version=”2.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. Ejemplo de documento RSS 2.0

La historia de RSS no está del todo clara y cuando uno se acerca a ella, parece más

adentrarse a una batalla de disputas que a una historia de armonía y entendimiento

Pág.08-11©© 27/8/56 09:13 Página 10

Page 11: ¡Hola Mundo! - humansharp.com · Intercambie contenidos en Internet en sus páginas ASP.NET a través de la especi- ... Data Providerpara ADO.NET ofrece, asimismo, ... Curso de Presentaciones

una vista ideal del contenido de undocumento RSS 2.0, pero le será deutilidad y ayuda para generar su pro-pio código.

La página ASP.NET la he deno-minado RSS.ASPX y su código pue-de encontrarlo en nuestra páginaWeb http://www.dotnetmania.com,en los recursos de este artículo.

Nuestra aplicación en ejecuciónes la que se muestra en la figura 2.

Evidentemente, la informaciónmostrada en la figura 2 dista muchode la información que se pueda mos-trar en un sitio Web; de hecho, loideal es trabajar con hojas de estilopara presentar la información de for-ma personalizada dentro de un sitioWeb. Nótese, que la informaciónque contiene un documento RSS noestá formateada, o no debería estar-lo, por lo que es ideal para que noso-tros adecuemos la información alformato de estilo de nuestro sitioWeb sin romper para ello la armo-nía, colores y formatos de texto.

ConclusionesEn este artículo hemos realizado

un breve repaso por la historia deRSS y nos hemos centrado en aque-llas partes del documento que sonlas más utilizadas.

De la misma manera, hemos vis-to un ejemplo de documento RSS2.0 y hemos conocido sus partes másimportantes. Finalmente, hemos rea-lizado una aplicación en ASP.NETque nos ha permitido leer la infor-mación de un documento RSS 2.0 ymostrarla en pantalla.

Aunque se pueden hacer muchasmás cosas con este tipo de docu-mentos, dejo a su imaginación lacantidad de posibilidades que estole puede ofrecer. Sirva como ejem-plo la posibilidad de trabajar conesta información dentro de unDataSet y realizar búsquedas por undeterminado filtro para mostrar úni-camente aquella información quecumpla un determinado filtro o per-sonalizar la salida en el caso deencontrarnos con recursos en dife-rentes idiomas.

Por lo tanto, RSS nos ofrecemuchas posibilidades y ahora lecorresponde a usted descubrirlas yaplicarlas según sus necesidades ycriterio.

dotN

etM

anía

<<

11

dnm.plataforma.asp.net <<

<?xml version=”1.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.dotnetmania.com/</link><pubDate>Mon, 01 Jan 2004 01:12:23 GMT</pubDate>

</item><item><title>Microsoft MSDN .NET</title><description>Pagina web de Microsoft .NET</description><link>http://msdn.microsoft.com/netframework/</link><pubDate>Mon, 01 Jan 2004 07:28:15</pubDate>

</item></channel>

</rss>

Fuente 2. MiRSS.xml

Figura 2. Ejecución del lector de documentos RSS 2.0 en ASP.NET

Pág.08-11©© 27/8/56 09:13 Página 11

Page 12: ¡Hola Mundo! - humansharp.com · Intercambie contenidos en Internet en sus páginas ASP.NET a través de la especi- ... Data Providerpara ADO.NET ofrece, asimismo, ... Curso de Presentaciones

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

Page 13: ¡Hola Mundo! - humansharp.com · Intercambie contenidos en Internet en sus páginas ASP.NET a través de la especi- ... Data Providerpara ADO.NET ofrece, asimismo, ... Curso de Presentaciones

indiscutible, en lo que a la progra-mación de aplicaciones para .NET Frameworkse refiere, es que todos los lenguajes se apoyanen las clases que ese marco de trabajo incluye.Ya pasó la época en la que para hacer ciertas tare-as comunes, como abrir un fichero, acceder auna base de datos o interactuar con el sistemaoperativo subyacente cada lenguaje de progra-mación tenía su propia forma de hacerlo. Porsuerte para los programadores ahora sólo nece-sitamos conocer una forma de trabajar: La for-ma que las clases de .NET Framework tienenpara hacerlo.

.NET Framework incluye casi toda la fun-cionalidad que necesitamos para crear nuestrasaplicaciones, y si algo que necesitamos hacer nose incluye entre los numerosos espacios de nom-bres plagados de clases de .NET Framework,podemos recurrir a componentes creados porterceros e incluso crearlos nosotros mismos.

Ahora, lo importante es que, independiente-mente del lenguaje que estemos usando, siem-pre tendremos la oportunidad de hacer las cosasal estilo de .NET Framework: Usar una clasepara lo que necesitemos.

Para poder usar una clase, sólo necesitamossaber cómo declararla e instanciarla en la memo-ria para que esté lista para usar. No necesitamossaber nada más, salvo conocer la sintaxis apro-

piada del lenguaje que hayamos elegido paradesarrollar nuestras aplicaciones para poderhacer esa tarea. Lo mismo ocurrirá si pretende-mos crear nuestras propias clases; tendremos quesaber cómo quiere .NET Framework que haga-mos las cosas, qué requisitos nos exige y una vezque sepamos esas exigencias, podremos crearnuestro propio juego de clases. En ambos casosdebemos conocer la sintaxis que utiliza nuestrolenguaje predilecto para hacernos entender con.NET Framework.

Se supone que si estamos programando enVisual Basic .NET, o en C#, sabremos aplicarlas reglas sintácticas del lenguaje para poderrealizar todas las tareas... o casi todas, que algu-nas veces no sólo es suficiente conocer la sin-taxis del lenguaje, ya que si no conocemoscómo realizar ciertas cosas, por muy bien que

dotN

etM

anía

<<

13

Equivalencia de instrucciones de C# y VB .NET (I)

Cómo hacer las mismas cosas (o casi) en C# y Visual Basic .NET

Por Guillermo ‘Guille’ SomVisual Basic MVP desde 1997www.elguille.info

Una cosa que es<<

No sólo veremos la equivalencia sintácticaentre C# y VB .NET, también veremos algunos conceptos que son exclusivos

de cada lenguaje.

Pág.13-17©© 27/8/56 09:16 Página 13

Page 14: ¡Hola Mundo! - humansharp.com · Intercambie contenidos en Internet en sus páginas ASP.NET a través de la especi- ... Data Providerpara ADO.NET ofrece, asimismo, ... Curso de Presentaciones

sepamos hacer un bucle FOR, no nos serviráde mucho.

Voy a dar por supuesto que ya sabes progra-mar para .NET, es decir, ya sabes cómo hacerlas cosas para trabajar con las clases de .NETFramework, (aunque no conozcas todas las cla-ses incluidas en .NET), ya sabes cómo crear tuspropias clases, ya sabes cómo derivar una clasea partir de otra, ya sabes cómo implementar unainterfaz, ya sabes cómo crear un bucle o definiruna propiedad e incluso un constructor o undestructor (o finalizador); sí, se supone que yasabes hacer todas esas cosas en el lenguaje quehas elegido para programar, (en esta serie deartículos supondré que ha sido el lenguaje C# oVisual Basic .NET), pero lo que seguramente

te gustaría es saber cómo hacerlo en el otro len-guaje.

Y eso es lo que esta serie de artículos preten-de, explicarte cómo hacer las mismas cosas tan-to en C# como en Visual Basic .NET.Seguramente serán los programadores de VisualBasic los que tengan más interés en conocer cómotrabajar con sintaxis de C#, por aquello de queen algunos sitios valorarán más a quién sepa pro-gramar en C# frente al que sólo sepa programaren el, siempre mal visto, lenguaje de la familiaBASIC.

Aquí no voy a enseñarte a programar en nin-guno de los dos lenguajes más utilizados por losdesarrolladores de .NET Framework, aunqueseguramente algunas de las cosas aquí explicadaste ayudarán a clarificar tus ideas. Si quieres apren-der a programar, deberías plantearte acudir aalgún centro de formación, a algún sitio deInternet o comprarte algún libro.

Sin más historias empecemos viendo las dis-tintas tareas que podemos realizar en .NETFramework comparadas entre los lenguajes C#y Visual Basic .NET, veremos desde cómo decla-rar una variable hasta cómo llamar desde el cons-tructor de una clase derivada al de la clase base.

Sintaxis básica

La declaración de las variables es una de lascosas que siempre tendremos que hacer en cual-quier aplicación.

A lo largo de este y los siguientes artículos temostraré una serie de tablas en las que usaré cier-tos marcadores para indicar instrucciones o tiposde datos que tendremos que especificar. Porejemplo:

<tipo> Será el tipo de datos que vamos a defi-nir. En Visual Basic se puede declarar unavariable sin necesidad de indicar el tipo dedatos. Debido a que esta no es la forma reco-mendada de trabajar, voy a suponer quetenemos seleccionada la opción que nos obli-ga a realizar las declaraciones, asignacionesy conversiones de forma correcta: OptionStrict On.

<ámbito> Será la cobertura que tendrá la varia-ble. Si la declaración se realiza dentro de unapropiedad o método (función o procedi-miento), en el caso de VB habrá que usar siem-pre Dim o Static, en C# no se usa ningúnmodificador de ámbito. Si la declaración sehace a nivel del tipo (clase o estructura) y nose indica el ámbito en C# o se utiliza Dim enVB, será lo mismo que declarar la variablecomo privada.

En dichas tablas se mostrará tanto el códigode C# como el de VB .NET. Puede que dichocódigo se muestre en varias líneas. En C# no seríaun problema, ya que el final de una instrucciónse indica con un punto y coma, pero en VisualBasic .NET todo el código debe estar en unalínea física y en caso de que queramos que se con-tinúe con la siguiente, habrá que usar un espacioseguido de un guión bajo.

En C# cuando se indique el <código> a escri-bir, podrá ser: una instrucción y acabará con pun-

dotN

etM

anía

<<

14

dnm.lenguajes<<

…veremos desde cómo declarar una variable hasta cómo llamar desde el constructor de una

clase derivada al de la clase base.

Pág.13-17©© 27/8/56 09:16 Página 14

Page 15: ¡Hola Mundo! - humansharp.com · Intercambie contenidos en Internet en sus páginas ASP.NET a través de la especi- ... Data Providerpara ADO.NET ofrece, asimismo, ... Curso de Presentaciones

to y coma; o un bloque de instruc-ciones (más de una instrucción), encuyo caso dichas instrucciones debenestar dentro de un par de llaves { y }.Ese par de llaves indicará el bloquede código.

En Visual Basic .NET no existeel concepto de bloque de códigoindependiente, aunque la mayoríade las instrucciones definirán un blo-que de código. Dicho bloque decódigo estará definido por una pala-bra clave y normalmente acabará conla instrucción End seguida de la pala-bra clave que define dicho bloque.Por ejemplo, la definición de unaclase se indica usando la instrucciónClass y finaliza con las instruccionesEnd Class.

Aunque en VB cada instrucción(o serie de instrucciones) debe ocu-par una sola línea, (la que se puedecontinuar con la siguiente usandoun guión bajo), dentro de esa mis-ma línea pueden existir varias ins-trucciones separadas por dos pun-tos; aunque esta forma de escribircódigo no es recomendable porqueel código es más difícil de leer y pue-de causar más de un quebradero decabeza.

Modificadores de ámbito o visibilidad

Las variables, métodos, propie-dades, clases, etc., siempre tendránun nivel de visibilidad o cobertura,es decir, se tendrá que definir, explí-cita o implícitamente donde seránvisibles. En las siguientes tablasveremos las instrucciones que per-mitirán definir o modificar el nivelde visibilidad de esos elementos, asícomo los modificadores de visibili-dad que podremos usar.

En el caso de las instruccionesDim o Static de Visual Basic, sólo sepodrán aplicar a variables.

La tabla 1 resume los modifica-dores de accesibilidad que podemosusar tanto en Visual Basic .NETcomo en C#.

Dependiendo de dónde sedeclaren las variables y los tipos(clases), sin indicar expresamenteel modificador de visibilidad, es

posible que el ámbito de dicho ele-mento varíe. Incluso ese ámbitopuede ser diferente dependiendodel lenguaje usado.

Por ejemplo, si en C# declara-mos una clase sin indicar el modifi-cador de visibilidad, será lo mismoque haberla declarado private, sinembargo en Visual Basic .NET elámbito será Friend.

La tabla 2 muestra los modifica-dores que se aplican de forma prede-

terminada si no se indican expresa-mente, así mismo muestra los modi-ficadores permitidos según el tipo omiembro que estemos declarando.

dnm.lenguajes<<

sólo necesitamos conocer una forma de trabajar:La forma que las clases de .NET Framework

tienen para hacerlo

Modificador de ámbito C# VB .NET(visibilidad)

Variables declaradas No se indica. Dim o Staticen métodos, propiedades y bloques de código. Static hará que la

variable mantenga el último valor asignado

Privado a la clase o tipo private Private

Público, siempre accesible public Public

Accesible en el propio internal Friendensamblado

Accesible en la clase protected Protectedy en las clases derivadas

Accesible en la clase, clases protected internal Protected Friendderivadas y en el mismo ensamblado

Tabla 1. Modificadores de accesibilidad (ámbito o visibilidad)

Pág.13-17©© 27/8/56 09:16 Página 15

Page 16: ¡Hola Mundo! - humansharp.com · Intercambie contenidos en Internet en sus páginas ASP.NET a través de la especi- ... Data Providerpara ADO.NET ofrece, asimismo, ... Curso de Presentaciones

Tipos de datos

Los tipos de datos de los lengua-jes de .NET son alias que hacenreferencia a los tipos de datos defi-nidos por el sistema de tipos comu-nes (Common Type System, CTS) de.NET.

En la tabla 3 podemos ver lostipos de datos con el nombre usadopor .NET y los alias usados enVisual Basic .NET y C#.

Los arrays o matrices

Los arrays (matrices) son un tipoespecial de variable por referencia yestán basadas en la clase System.Array.Aunque sea un tipo por referencia, lacreación de matrices no implica lautilización de la instrucción New, (quees la que se utiliza para crear una nue-va instancia en memoria de una varia-ble de un tipo por referencia), almenos en Visual Basic, ya que en C#sí será obligatorio el uso de la ins-trucción new para crear el array; aun-que cuando se declara y asigna al mis-mo tiempo, no es necesario usar newpara crear el array.

En Visual Basic, un array se defi-ne usando un par de paréntesis en eltipo de datos o en el nombre de lavariable. En C# se indica con un parde corchetes, pero siempre se usaráen el tipo de datos:

En VB se puede usar de estas dosformas: Dim var() As Integer oDim var As Integer()

En C# se usará sólo de esta for-ma: int[] var;

En Visual Basic, si al declarar elarray indicamos el número de ele-mentos, el array ya estará listo parapoder usarlo: Dim var(4) As Integer,aunque no sería correcto hacerlo deesta otra forma: Dim var As

Integer(4).En C#, el equivalente sería:

int[] var = new int[5];

dotN

etM

anía

<<

16

dnm.lenguajes<<

Tipos y Miembros Accesibilidad Accesibilidades permitidasde los tipos: predeterminada

C# VB .NET C# VB .NET

enum / Enum public Public public Public

protected Protected

internal Friend

private Private

protected Protectedinternal Friend

Miembros de enum public Public Sólo public Sólo Public

class / Class y private Friend public Public

miembros de protected Protectedlas clases. internal Friend

private Private

protected Protectedinternal Friend

Module (sólo VB) N.A. Friend N.A. PublicFriend

Miembros de Module N.A. Friend N.A. PublicFriendPrivate

interface/Interface private Friend public Public

miembros de protected Protectedlas clases. internal Friend

private Private

protected Protectedinternal Friend

Miembros de interface public Public Ninguna Ninguna

struct / Structure private Friend public Public

protected Protected

internal Friend

private Private

protected Protectedinternal Friend

Miembros de struct / private Siempre hay public PublicStructure. que indicar internal Friend

el ámbito. private Private

Tabla 2. Accesibilidades predeterminadas y permitidas

Pág.13-17©© 27/8/56 09:16 Página 16

Page 17: ¡Hola Mundo! - humansharp.com · Intercambie contenidos en Internet en sus páginas ASP.NET a través de la especi- ... Data Providerpara ADO.NET ofrece, asimismo, ... Curso de Presentaciones

Para declarar y asignar valores al mismo tiem-po, tanto en VB como en C#, se indicarán losvalores 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};

En Visual Basic se puede cambiar el tamañode un array usando ReDim:

Dim var() As Integer

ReDim var(10)

También podemos usar ReDim Preserve; eneste caso, si el array ya contenía valores, dichocontenido se conserva al cambiar el tamaño:

ReDim Preserve var(15)

En C# sólo se puede cambiar el tamaño de unarray usando new y no existe un equivalente paraPreserve; si queremos conservar el contenido ante-rior, debemos crear una copia y asignar los valo-res de forma manual:

int[] var;

var = new int[11];

Para eliminar un array, podemos asignarle unvalor nulo (null/Nothing), aunque en VB se pue-de eliminar el contenido de un array usando lainstrucción Erase.

Para acceder a un elemento de un array, enVB se usará un índice numérico dentro de un parde paréntesis, mientras que en C# ese índice seindicará 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 unarray, en C# se indicará el número de elementosque tendrá el array, mientras que en VB el núme-ro indicado será el valor del índice superior delarray:

En VB: Dim var(4) As Integer define unarray de 5 elementos, desde 0 hasta 4.

En C#: int[] var = new int[4]; define unarray de 4 elementos, desde 0 hasta 3.

En todos los lenguajes de .NET, el índiceinferior de un array siempre será cero.

En el próximo número seguiremos repa-

dotN

etM

anía

<<

17

dnm.lenguajes<<

Tabla 3.Tipos de datos predefinidos

.NET Framework C# VB .NET Descripción, rango de valores

Tipos por valor:

System.Boolean bool Boolean Verdadero o falso.System.DateTime N.A. Date Fecha y hora.System.SByte sbyte N.A. Entero con signo de 8 bits.System.Byte byte Byte Entero sin signo de 8 bits.System.Int16 short Short Entero con signo de 16 bits.System.UInt16 ushort N.A. Entero sin signo de 16 bits.System.Int32 int Integer Entero con signo de 32 bits.System.UInt32 uint N.A. Entero sin signo de 32 bits.System.Int64 long Long Entero con signo de 64 bits.System.UInt64 ulong N.A. Entero sin signo de 64 bits.System.Char char Char Un carácter Unicode de 16 bits.System.Single float Single Punto flotante de simple precisión (con precisión de 7 dígitos32 bits).System.Double double Double Punto flotante de doble precisión (64 bits) .System.Decimal decimal Decimal Tipo moneda con 28-29 dígitos significativos.

Tipos por referencia:

System.Object object Object Clase base de todos los tipos de .NET.System.String string String Tipo que representa a cadenas de caracteres

Pág.13-17©© 27/8/56 09:16 Página 17

Page 18: ¡Hola Mundo! - humansharp.com · Intercambie contenidos en Internet en sus páginas ASP.NET a través de la especi- ... Data Providerpara ADO.NET ofrece, asimismo, ... Curso de Presentaciones

dotN

etM

anía

<<

18

es un placer paramí, como director de la división.NET de Microsoft Ibérica, dar labienvenida a dotNetManía, unarevista que aparece con la vocaciónde extender el conocimiento de laplataforma .NET en el mercadoespañol. Precisamente, el nacimien-to de esta publicación no hace sinoconfirmar la importancia que nues-tra plataforma está alcanzando en elmercado de las Tecnologías de laInformación de nuestro país.

Realmente, durante la Profe-ssional Developer Conference (PDC)que tuvo lugar en octubre y a la quetuve la oportunidad de asistir,Microsoft ofreció a los desarrollado-res un vistazo previo a las nuevas tec-nologías que se integran en la próxi-ma ola de productos que irán apare-ciendo en un futuro próximo. Losapartados más importantes, y sobrelos que esta nueva publicación,dotNetManía, a la que damos unacálida bienvenida y deseamos elmayor de los éxitos, ha centrado suprimer número son la nueva versióndel sistema operativo Windows, denombre interno Longhorn, así comola nueva generación del sistema dedesarrollo Visual Studio, con nom-bre código Whidbey, y por último yno menos importante, la nueva ver-sión de la base de datos SQL Server,denominada Yukon. Estos lanza-mientos están diseñados con el obje-tivo de cumplir el compromiso deMicrosoft de extender la productivi-

dad del desarrollador, haciendo aúnmás fácil la creación de las más poten-tes aplicaciones y servicios Web.Además simplificarán el acceso adatos y la gestión, aprovechando lasúltimas tecnologías de código ges-tionado y el uso de XML (eXtensibleMarkup Language). Microsoft intro-duce así mismo un nuevo concepto,WinFX, el modelo de programaciónpara Windows Longhorn; construi-do sobre una extension del .NETFramework, WinFX proporcionauna completa gama de clases paraWindows, diseñadas para incremen-tar enormemente la productividad asícomo la seguridad y fiabilidad de lasaplicaciones.

Con Windows Longhorn, Mi-crosoft espera tender la base parauna nueva ola de innovación dentrode la industria tecnológica – la cualhará realidad una generación de apli-caciones orientadas a la información,construidas para un mundo conec-tado y que ofrecerán una experien-cia de usuario absolutamente impac-tante, aprovechando al máximo lasúltimas novedades en hardware queestán apareciendo.

En los artículos incluidos en estenúmero podrá tener una visión másdetallada de las tecnologías queincorporan los productos citados, enparticular de las novedades a nivel deplataforma que ofrecerá WindowsLonghorn:• Avalon El nuevo subsistema grá-

fico, el cual permitirá a los desa-

rrolladores construir aplicacionescon una increíble experiencia deusuario y proporcionará unaarquitectura unificada para la pre-sentación del interfaz de usuario,documentos y multimedia.

• WinFS El subsistema de al-macenamiento de datos deLonghorn proporcionará totalseguridad al guardar tanto datosestructurados como no estructu-rados y facilitará vías inmensa-mente mejoradas para encontrar,relacionar y actuar con la infor-mación almacenada.

• Indigo Una novedosa aproxima-ción a la creación y ejecución desistemas conectados, Indigo es elnombre código de las nuevas tec-nologías de comunicaciones enLonghorn, las cuales se han dise-ñado partiendo desde cero sobrela arquitectura de servicios Web.El soporte avanzado de los mis-mos en Indigo proporciona mayo-res capacidades para una mensa-jería e interoperabilidad más segu-ra, fiable y transaccional.

Por otro lado, y como tambiénse explica más en detalle en otro artí-culo, las nuevas versiones Whidbeyde Visual Studio y del .NETFramework han sido pensadas parapermitir a los desarrolladores yarquitectos de software una mayorfacilidad en el diseño y creación decualquier desarrollo, desde una sim-ple aplicación cliente o Web, pasan-

Microsoft y el desarrollo de software:un vistazo al futuro

<< En primer lugar,

Por Mauricio UlarguiDirector de la División .Net de Microsoft Ibéricadnm.especial.futuro

Pág.18-19©© 27/8/56 09:21 Página 18

Page 19: ¡Hola Mundo! - humansharp.com · Intercambie contenidos en Internet en sus páginas ASP.NET a través de la especi- ... Data Providerpara ADO.NET ofrece, asimismo, ... Curso de Presentaciones

do por aplicaciones para dispositivos móviles hasta aplicacionesa escala global y orientadas a servicios.

Es más, Whidbey conduce a los desarrolladores un paso másallá en el camino a Longhorn, con tremendas inversiones en có-digo gestionado y un diseño de metodología muy adelantado quepermitirá el desarrollo de aplicaciones que separan la lógica denegocio del interfaz de usuario. Las aplicaciones creadas conWhidbey se ejecutarán sin problema en Longhorn, y las habili-dades de desarrollo adquiridas al trabajar con Whidbey se apro-vecharán plenamente al usar la siguiente versión de Visual Studio,de nombre código Orcas, que verá la luz cuando se lanceLonghorn.

También se incluye en este número un interesante artículosobre la nueva versión de la base de datos de Microsoft, SQLServer, denominada Yukon, la cual está diseñada para ofreceruna experiencia más rica al usuario, mediante mejoras sustan-ciales en aspectos cruciales como la escalabilidad, la disponibi-lidad y la gestionabilidad; además se han contemplado otrosaspectos importantes como la inteligencia de negocio y una inte-gración más completa con las herramientas de desarrollo, es decircon “Whidbey”. Durante la primera mitad de 2004 se hará publi-ca la Beta 2 de este producto, con la intención de lanzar la ver-sión final durante la segunda mitad del mismo año.

Finalmente, y como complemento a la información que tie-nen entre sus manos en este y futuros números de dotNetManía,les recomendamos la visita del sitio web que Microsoft pone adisposición de los desarrolladores, MSDN Online, en el quepodrán encontrar información actualizada sobre todas estas tec-nologías y en general sobre todo lo que concierne al desarrolloen la plataforma Microsoft.

dotN

etM

anía

<<

19

dnm.especial.futuro<<

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

Pocas veces un evento dirigido a los desa-rrolladores de todo el mundo suscitó tantaexpectación e interés como lo hizo laProfessional Developers Conference queMicrosoft celebró el pasado mes de octubreen Los Ángeles. Las razones tenían nom-bres y apellidos: Windows “Longhorn”,SQL Server “Yukon” y Visual Studio .NET“Whidbey”.

En un único evento los asistentes pre-senciaron los cimientos sobre los que seasentarán las bases de la tecnología de lospróximos años. Sin ir más lejos, Windows“Longhorn” está siendo escrito desde cero,lo que va a suponer un giro radical en lamentalidad de los usuarios en cuanto a inte-racción con los ordenadores se refiere.

Como antesala de lo que será el lanza-miento más importante de la compañía has-ta la fecha, SQL Server “Yukon” y VisualStudio .NET “Whidbey” harán su apari-ción para mostrar a los desarrolladores lasenormes posibilidades que la plataforma.NET va a abrir ante sus ojos.

La nueva tecnología que se avecina vaa determinar un punto de inflexión en eltrabajo de la comunidad de desarrollado-res de todo el mundo. Por este motivo,Microsoft confía plenamente en su esfuer-zo para diseñar nuevas aplicaciones basán-dose en estas tecnologías y va a colaborarcon todos ellos, tanto los que ya han apos-tado por la plataforma .NET como por losque lo harán cuando conozcan las venta-

jas que les ofrecerá el nuevo Windows, paracrear soluciones que se sitúen a la alturade las circunstancias.

Así pues, los meses que nos esperanvan a ser realmente interesantes para pre-parar el camino hacia estas nuevas tecno-logías que se nos avecinan y, por lo tanto,necesitarán de un gran esfuerzo, no sólodesde el punto de vista del trabajo quevenimos desempeñando en Microsoft, sinotambién desde el punto de vista de otrosactores implicados como partners, desa-rrolladores y usuarios para que todos jun-tos convirtamos en realidad la próximarevolución.

La próxima revoluciónIsaac Hernández, director de Operaciones y Marketing de Microsoft Ibérica

Pág.18-19©© 27/8/56 09:21 Página 19

Page 20: ¡Hola Mundo! - humansharp.com · Intercambie contenidos en Internet en sus páginas ASP.NET a través de la especi- ... Data Providerpara ADO.NET ofrece, asimismo, ... Curso de Presentaciones

dotN

etM

anía

<<

20

Bill Gatespresentó en el Professional DeveloperConference de Orlando (PDC) unavista preliminar de la nueva plata-forma de desarrollo Microsoft.NET. Han pasado tres años desdeaquel evento y en este tiempo hemossido testigos de cómo .NET ha pasa-do de ser una visión de futuro a unarealidad. Hoy la industria de la infor-mática no tiene dudas de la necesi-dad de abrir las aplicaciones a están-dares abiertos, y que los serviciosweb proporcionan la tecnología paraconseguirlo. Por aquel entonces nosresultaba complicado imaginarnosuna aplicación sin componentesCOM, modelo de hilos o contado-res de referencias. La integraciónentre aplicaciones se basaba en desa-rrollos a medida sobre APIs o pro-tocolos propietarios. Tres años des-pués ya casi no nos acordamos detodo eso. .NET ha conseguidointroducirse en la gran mayoría delas empresas de software y ha cam-biado el modo en el que desarrollá-bamos aplicaciones. Aquel PDC del

año 2000 nos sirvió para conocer laplataforma sobre la que íbamos adesarrollar en el futuro.

Con estos precedentes se anun-ció una nueva conferencia PDC enLos Ángeles el pasado mes de octu-bre. El interés superó todas nuestrasexpectativas, de hecho dos semanasantes del evento se colgó el cartel de“no hay billetes” por alcanzarse lacapacidad máxima del Centro deConvenciones. En esta ocasiónMicrosoft presentó las dos siguien-tes oleadas de tecnologías que vivi-remos los próximos años, entrandoen detalle sobre el modelo de desa-rrollo de cada una de ellas e inclusorepartiendo entre los asistentes unjuego de DVDs con una vista preli-minar de los bits definitivos.

La idea principal de todo estedesembarco tecnológico gira en tor-no a .NET. En la actualidad utiliza-mos la plataforma .NET para cons-truir la lógica de negocio, exponersu funcionalidad por protocolosestándares y accederla en cualquiermomento y desde cualquier dispo-

sitivo (ya sea web, Windows o dis-positivo móvil). El objetivo próximode Microsoft consiste en llevar estemodelo de arquitectura a otros doselementos presentes en las aplica-ciones: el motor de almacenamien-to de datos y el sistema operativo.Esto significa que .NET y XML for-marán parte de ambos, por lo quelas herramientas y el modelo dedesarrollo que utilizaremos serán losmismos que en el resto de nuestraaplicación.

Primera oleada:Yukon y Whidbey

La primera oleada se centrará enel motor de almacenamiento estre-lla de Microsoft, SQL Server. Lapróxima versión de SQL Server, lla-mada provisionalmente Yukon, per-mite utilizar .NET como modelopara el desarrollo de la lógica de ser-vidor. Hasta ahora teníamos quecambiar nuestra forma de desarro-llar dependiendo de si nuestro códi-go se ejecutaba en la lógica de nego-

La evolución de la plataforma .NET

.NET era sólo el principio, los próximos años seremos testigos del desembarco de nuevastecnologías que usarán el modelo de desarrollo .NET y XML para la construcción de nue-vas aplicaciones impensables hasta ahora.Las próximas versiones de Visual Studio (Whidbey),SQL Server (Yukon) y Windows (Longhorn) se encargarán de ello.

Por David CarmonaDevelopment Consultant - División deDesarrollo y Plataforma de Microsoft Ibérica

<< En julio del año 2000

Pág.20-22© 27/8/56 09:22 Página 20

Page 21: ¡Hola Mundo! - humansharp.com · Intercambie contenidos en Internet en sus páginas ASP.NET a través de la especi- ... Data Providerpara ADO.NET ofrece, asimismo, ... Curso de Presentaciones

cio o junto a los datos. En el primercaso disponíamos de la ayuda delFramework .NET, su librería de cla-ses, la posibilidad de utilizar cual-quier lenguaje y un entorno comoVisual Studio .NET. Sin embargo,todo cambiaba si nuestro códigodebía ejecutarse en el propio servi-dor. En ese caso teníamos que utili-zar el lenguaje T/SQL perdiendo lariqueza de las clases .NET, la orien-tación a objetos, la facilidad de depu-ración y un sinfín de cosas más.

En Yukon podemos decidir sinuestro código .NET se ejecuta enla capa de negocio o en el mismo ser-vidor de datos, de hecho un proce-dimiento almacenado en VisualStudio .NET no es más que otrotipo de proyecto. Podremos utilizarcualquier lenguaje para escribir elprocedimiento almacenado y acce-der a los tipos .NET, por ejemplode acceso al disco, cifrado de datoso tratamiento de imágenes. Además,Yukon permite que el proceso dedepuración e instalación sean tam-bién automáticos. Cuando acabemosel procedimiento almacenado seráinstalado en el servidor remoto ypodremos depurarlo como cualquiercódigo .NET, ejecutándolo paso apaso o consultando el valor de lasvariables.

.NET está presente en el restode elementos de Yukon. Además deprocedimientos almacenados, po-dremos desarrollar triggers, funcio-nes, tipos definidos por el usuario yagregaciones de datos. Visual Studio.NET se convierte también en laherramienta de desarrollo de AnalysisServer, DTS o el recién incorporadogenerador de informes.

Los otros elementos presentes enuna arquitectura .NET orientada aservicios son el XML y los serviciosweb. Yukon está pensado para elalmacenamiento no sólo de infor-

mación relacional, sino también dedatos semi-estructurados en formade XML. Almacenar estos datospuede parecer sencillo (un docu-mento XML no es más que unacadena de texto), pero el procesa-

miento de los mismos es mucho máscomplejo. Yukon permite validar losdocumentos XML almacenadossegún un esquema XSD que defina-mos y realizar búsquedas sobre losmismos de forma indexada, con elmismo rendimiento que una bús-queda tradicional. Incluso podremosrelacionar los datos estructuradoscon los elementos XML y tratarlosde forma conjunta. Todo ello utili-zando estándares como XQuery, quepermite realizar consultas sobredocumentos XML del mismo modoque T/SQL permite realizarlassobre datos relacionales.

El acceso por servicios web aYukon también está contemplado,incluyendo un conector SOAP nati-vo que puede exponer vistas XMLde los datos relacionales y semi-estructurados o ejecutar procedi-mientos almacenados y sentenciasT/SQL dinámicas.

Whidbey

La próxima versión delFramework .NET y Visual Studio(nombre en clave Whidbey) estará ali-neado con Yukon en esta primera ole-ada. El cambio que veremos en esta

versión del Framework será muyimportante, tanto que en lugar de 1.2como correspondería llevará el nom-bre de 2.0. Al estar alineado conYukon, Whidbey estará especial-mente adaptado para el funciona-

miento conjunto con éste. Ademásde la capacidad de escribir la lógicade servidor de Yukon, dispondremosde una nueva versión de ADO.NETque nos permitirá sacar el máximopartido al motor de almacenamien-to. La mayoría de estas característi-cas están enfocadas a conseguirmayor rendimiento y escalabilidad ennuestra capa de acceso a datos (ope-raciones asíncronas, paginación deresultados), pero también nos per-mitirán construir aplicaciones nue-vas muy difíciles de desarrollar hastaahora (notificaciones sobre cambios,servicios de colas de mensajes).

La mayoría de las nuevas carac-terísticas de Whidbey están dirigi-das a aumentar la productividad deldesarrollador. Visual Studio .NETincorpora mejoras espectaculares enel diseño de formularios web yWindows, pero también incluye porprimera vez herramientas que asis-ten al desarrollador como el refac-toring, plantillas de código parame-trizables, corrector automático, eti-quetas inteligentes, etc.

Desde luego la línea de códigomás productiva es la que no tienesque escribir. Por eso Whidbey au-menta considerablemente el núme-

dotN

etM

anía

<<

21

dnm.especial.futuro<<<<

.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

Pág.20-22© 27/8/56 09:22 Página 21

Page 22: ¡Hola Mundo! - humansharp.com · Intercambie contenidos en Internet en sus páginas ASP.NET a través de la especi- ... Data Providerpara ADO.NET ofrece, asimismo, ... Curso de Presentaciones

ro de clases de la librería base paracubrir aspectos que antes teníamosque programar nosotros mismos.ASP.NET incorpora funcionalidadtípica también lista para usar, comolos webparts, las páginas maestras,skins, membership, etc. También seañaden características a los lenguajesde desarrollo para mejorar la pro-ductividad, como los genéricos o eleditar y continuar.

Para el desarrollo de aplicacio-nes empresariales se incluye un nue-vo modelo de programación deno-minado Business Framework, con lafuncionalidad de metadatos, persis-tencia de entidades, seguridad, tran-sacciones y análisis OLAP, normal-mente necesarios en este tipo deaplicaciones. Todo ello acompaña-do de un motor de mapeo de obje-tos a bases de datos (ObjectSpaces) ydiseñadores gráficos integrados enVisual Studio, además de herramien-tas que soportan el ciclo de vida com-pleto de un proyecto software.

Segunda oleada:Longhorn

La siguiente oleada de tecnolo-gía vendrá liderada por la nueva ver-sión del sistema operativo, llamadaprovisionalmente Longhorn, e inclui-rá también la actualización de la pla-taforma de desarrollo .NET, deno-minada Orcas. Longhorn cambiaráradicalmente el concepto de sistemaoperativo Windows hasta la fecha yel modo en el que desarrollamos lasaplicaciones sobre él.

Como ocurría en Yukon, el pri-mer cambio importante que notare-mos en Longhorn es la integracióncompleta con .NET y XML. La APIde acceso al sistema operativo esmanejada (WinFX) con un diseño declases pensado desde el principio parasu uso desde lenguajes .NET. Losservicios del sistema operativo para

las aplicaciones (transacciones, segu-ridad, colas de mensajes, etc.) evolu-cionan en un nuevo sistema llamadoIndigo pensado desde el principiopara que sea utilizado desde aplica-ciones con arquitecturas basadas enservicios XML. De hecho Indigoincluye también toda la fontaneríanecesaria para distribuir estos servi-cios entre sistemas heterogéneos,según los futuros estándares que aña-den seguridad, transaccionalidad ofiabilidad a los servicios web.

Longhorn redefine los actuales sis-temas de almacenamiento en disco.NTFS se hace transaccional, lo quepermite acceder y modificar el con-tenido del disco dentro de una tran-sacción. Sobre esta tecnología se mon-ta WinFS, un sistema que guarda elcontenido de los archivos en NTFSy la información estructurada asocia-da a ellos (propiedades, relaciones,categorías...) en un almacén relacio-nal. Esto proporciona capacidades declasificación y búsqueda impensableshasta ahora y que originará un nuevoconcepto de aplicación.

El subsistema de interfaz gráficode Longhorn se denomina Avalon. Enun primer vistazo a esta tecnologíanos llamará la atención su nuevomotor basado en 3D, o las capacida-des multimedia que posee, lo que nospermitirá diseñar aplicaciones con unaspecto alucinante. Sin embargoAvalon es mucho más que eso, y suprincipal objetivo se centra en elimi-nar las barreras existentes entre apli-caciones web y Windows. Con unmismo modelo de desarrollo ahorapodremos elegir qué características

queremos en nuestra aplicación decada uno de esos mundos. Por ejem-plo, Avalon permite un modeloconectado, donde cada pantalla se des-carga de un servidor (como las pági-nas web), y un modelo desconectado,donde todas las pantallas son compi-ladas junto a la lógica en un mismoejecutable descargable. Podremosoptar también por un interfaz orien-tado al documento (como una pági-na HTML) o utilizar formularios concontroles Windows. Mostrar el inter-faz mientras se descarga, definirlo deforma separada al código o ejecutar-lo de forma segura son otras de lasopciones que dispondrá este nuevomodelo de desarrollo.

¡Quiero usarlo ya!

Estas dos oleadas no serán inme-diatas. Yukon y Whidbey están toda-vía en una fase de beta temprana,Longhorn todavía no ha llegado aeste nivel y sólo está disponible unavista preliminar de la tecnología. Siquiere adelantarse a estos cambios lerecomiendo que conozca lo quesupondrán (un buen inicio son losartículos de Yukon, Whidbey yLonghorn que encontrará en este pri-mer número de doNetMania). Perosobre todo tenga presente que el con-cepto básico de estos cambios es lle-var el modelo de desarrollo .NET atodos los elementos de una aplica-ción, por lo que utilizar a día de hoyel Framework .NET le garantizaráuna integración sencilla con estosnuevos servicios y una curva deaprendizaje mucho más rápida.

dotN

etM

anía

<<

22

dnm.<< dnm.especial.futuro<< >>

<<Pág.20-22© 27/8/56 09:22 Página 22

Page 23: ¡Hola Mundo! - humansharp.com · Intercambie contenidos en Internet en sus páginas ASP.NET a través de la especi- ... Data Providerpara ADO.NET ofrece, asimismo, ... Curso de Presentaciones

la maquinaria depublicidad del gigante de Redmond,ya haya conseguido que el nombreque da título a este artículo no leresulte al lector algo desconocido. Setrata, desde luego, del nuevo sistemaoperativo que verá la luz —segúntodos los indicios— para primerosdel 2006, y del que se dice que va aconstituir una revolución del tama-ño de la que supuso Windows 95 (oWin32) desde el punto de vista delprogramador, si no mayor (hasta hayquien afirma que el nombre deWindows ya no se usará a partir deahora, pero eso tenemos que verlo...).

Microsoft ha tirado la casa por laventana, y, aún tratándose de una ver-sión muy preliminar del producto, yadisponemos de sitios Web especiali-zados, como http://msdn.micro-soft.com/Longhorn/ donde puedenverse vídeos, presentaciones Power-Point, algo de código fuente y artícu-los sobre el nuevo sistema operativo.En el apartado dnm.desvan, puede

ver el lector algunos enlaces com-plementarios.

Una revolución

Cuando Microsoft abordó laconstrucción de la plataforma .NET,no se trataba exclusivamente de unanueva forma de construir aplicacio-nes Windows, basada en las API’s deWin32. El abandono del modeloCOM/DCOM/COM+ en favor delnuevo modelo, debía conllevar, ine-vitablemente, cambios profundos entodos los sistemas operativos que seconstruyesen a partir de ese momen-to. Y lo cierto es que Longhorn vaa ser —en muchos aspectos— unarevolución. Para comenzar, será el

primer sistema operativo construi-do sobre código administrado (estoes, gestionado por el CLR de .NET,con todo lo que eso supone de caraa la gestión y tratamiento de erro-res, y muchos otros aspectos pro-gramáticos). Además, ha sido cons-truido desde cero, para soportar lainiciativa Trustworthy Computing(Informática fiable) que Microsoftpropugna desde hace tiempo entodos sus sistemas, especialmente decara a la seguridad.

WinFX sustituye a Win32

Con ser importantes, éstas noson las únicas novedades: En reali-dad, un conjunto de cambios tanprofundo no puede abordarse si noes mediante una reconstrucción detodas las API’s básicas del sistema.Así, lo que hasta ahora (y desdeWindows 95), se ha denominadoWin32 pasa a ser WinFX, y estaráconstituido por tres pilares funda-

dotN

etM

anía

<<

23

Longhorn y el desarrollo

Es costumbre cada 2 años que Microsoft aporte una nueva versión de sus sistemas operativos. No obstante, esta vez el período de tiempo será mayor, y según parece los

cambios internos en el sistema, también. Es la herencia de algo que comenzó con la revolución .NET, de la cual esta edición de Windows es su exponente más completo.

Vamos a analizar algunas de las características de sus 3 APIs principales.

Por Marino Posadas.NET MVPwww.elavefenix.net

Probablemente,<<

Pág.23-29 27/8/56 09:23 Página 23

Page 24: ¡Hola Mundo! - humansharp.com · Intercambie contenidos en Internet en sus páginas ASP.NET a través de la especi- ... Data Providerpara ADO.NET ofrece, asimismo, ... Curso de Presentaciones

mentales: WinFS, Avalon e Indigo (tal y comose les denomina en la actualidad con sus nom-bres clave de desarrollo).

WinFS, la gestión de archivos

WinFS (Windows File System) será la APIencargada de la gestión del nuevo sistema dearchivos, que promete una búsqueda casi instan-tánea de ficheros (al estilo de las consultas enbases de datos), que se verá complementada conla tecnología Natural Search Technology, ten-dente a resolver gran parte de los problemas aso-ciados a las búsquedas de texto, y que dará ori-gen a cambios profundos en la manejabilidad yla propia interfaz de usuario (UI).

Avalon y la Interfaz de Usuario

¿Y qué hay de ésta última? También aquí loscambios serán profundos. Para empezar el siste-ma de ventanas no estará gestionado por User32como hasta ahora sino por una nueva API, lla-mada Avalon, que se apoya directamente enDirectX. Eso significa doble búfer en el dibujode las ventanas, eliminación de los incómodosefectos de flickering, transiciones de objetos enpantalla más suaves, toda suerte de transparen-cias y efectos de degradado y 3D, y —en gene-ral— poder aprovechar todas las característicasque hasta ahora estaban reservadas para la mul-timedia, dentro de las aplicaciones estándar deWindows.

Indigo y las comunicacionesOtras API’s complementarán este novedoso

panorama: Indigo será el conjunto de API’s quedará soporte a cualquier cosa relacionada con lascomunicaciones en el sistema. También ha sidoconstruida desde cero, y estará hecha de tal for-ma que, según algunos gurús (como Don Box,coautor del estándar SOAP para Servicios Web)podrá instalarse en algunos sistemas operativosanteriores, en la misma forma que ahora instala-mos ciertos SDK’s para soporte añadido de fun-cionalidades (como la propia SDK de SOAP, porejemplo).

Otro de los cambios importantes es que todaslas aplicaciones basadas en LongHorn, serántotalmente orientadas a objetos, y basadas en unobjeto central llamado Application, que suminis-tra todos los servicios clave que se necesitan para

dotN

etM

anía

<<

24

dnm.especial.futuro<<

Figura 1: Diagrama esquemático de WinFS

Figura 2: Diagrama esquemático de Avalon

Figura 3: Diagrama esquemático de Indigo

Pág.23-29 27/8/56 09:23 Página 24

Page 25: ¡Hola Mundo! - humansharp.com · Intercambie contenidos en Internet en sus páginas ASP.NET a través de la especi- ... Data Providerpara ADO.NET ofrece, asimismo, ... Curso de Presentaciones

ejecutar la aplicación. Vamos, pues,a comentar algunas de las caracte-rísticas principales del modelo deaplicaciones de Longhorn.

El modelo de aplicaciones de Longhorn

El objeto Application es el objetoraíz de todos los existentes en elmodelo de aplicaciones de Longhorn—al igual que System.Object lo es de.NET—. Application, posibilita elmanejo de una serie de páginas demarcado (una versión de XML, lla-mada XAML, o Extensible Applica-tion Markup Language), que definenel aspecto (la interfaz de usuario) deuna aplicación. Al igual que sucedeen ASP.NET, la funcionalidad esdelegada a un fichero de código fuen-te asociado (escrito en cualquiera delos lenguajes de .NET) que sopor-tará la capacidad de programación.En ese sentido, Microsoft ha dadoun paso muy importante, y, además,coherente con las ideas básicas de losestándares. El ciclo de vida del obje-to Application se convierte, por tan-to, en el propio ciclo de vida de laaplicación.

La idea principal de XML es per-mitir separar presentación de con-tenido y eso es exactamente lo quesucede aquí. Es más, ya existe unestándar W3C (oficial), llamadoXForms, que define en términos deetiquetas XML, lo que debe ser unainterfaz de usuario dada. Cuando elreceptor interpreta esas etiquetas lohace en función de su propio siste-ma operativo (se trate de Windows,Unix, Mac, un PDA o un móvil).

Eso significa que podemos escri-bir una aplicación para Longhorn ydistribuirla en múltiples escenarios.Incluyendo la posibilidad de quecualquier aplicación se ejecute den-tro de otra ventana, o bien dentro

del propio navegador de Internet(similar a la funcionalidad que enVisual Basic 6.0 ofrecían los Docu-mentos ActiveX). El código fuentees el mismo, y el único cambio nece-sario es una directiva de compilación.

A partir de este supuesto, otrosobjetos del modelo darán soporte aotras características de las aplicacio-nes, como son la navegabilidad y elmantenimiento de estado (en este caso,el objeto NavigationApplication quehereda directamente de Application, dasoporte a esas características).

De la misma forma, una aplica-ción Longhorn, separa la presenta-ción de la funcionalidad, hasta talpunto, que una aplicación muy bási-ca, cuya única funcionalidad con-sistiese en presentar la clásica ven-

tana de saludo inicial podría escri-birse exclusivamente en XAML,como veremos a continuación. Porotro lado, —como es lógico— pode-mos escribir aplicaciones utilizan-do exclusivamente código fuente enun lenguaje admitido (para el queexista el compilador .NET corres-pondiente).

Mediante el objeto Application,será posible incluso compartir códi-go fuente entre distintas páginas. Elobjetivo de este código es manejar loseventos producidos por los elemen-tos definidos en el fichero XAML.Pero, como hemos comentado antes,podríamos escribir una simple apli-cación de saludo utilizando para elloun sencillo editor de texto, con elcódigo siguiente (en XAML):

dotN

etM

anía

<<

25

dnm.especial.futuro<<

<Canvas xmlns="http://schemas.microsoft.com/2003/xaml" Background="LightCyan" Width="100%" Height="100%">

<Text Canvas.Left="20" Canvas.Top="20" FontSize="18"> Saludos desdeLonghorn!!!</Text> <Image Source="4.bmp" Canvas.Left="50" Canvas.Top="70" />

Lo cierto es que Longhorn va a ser una revolución.Será el primer sistema operativo construido sobre código gestionado por el CLR de .NET

Pág.23-29 27/8/56 09:23 Página 25

Page 26: ¡Hola Mundo! - humansharp.com · Intercambie contenidos en Internet en sus páginas ASP.NET a través de la especi- ... Data Providerpara ADO.NET ofrece, asimismo, ... Curso de Presentaciones

Si grabamos este código en unfichero con extensión .XAML y lollamamos directamente desdeLonghorn, el sistema lo interpreta-rá, ofreciendo la ventana de salidade la figura 4.

Básicamente, Longhorn, creauna ventana a partir del elemento<Canvas> e incluye el resto de ele-mentos renderizando su interpreta-ción visual de acuerdo con los atri-butos establecidos para éstos (posi-ción, tamaño, etc.).

Aunque los elementos utilizadosen este sencillo ejemplo, no poseenmás funcionalidad que la meramen-te visual, podríamos asociarles accio-nes o incluso dividir su codificaciónen dos partes, como mencionába-mos más arriba, codificando, por unlado, la presentación (pongamos quecreando un botón mediante el ele-mento <Button>), o bien utilizandocódigo fuente equivalente. Veamosesta equivalencia de la tabla 1, tal ycomo la señala Dino Esposito en suartículo “A First Look at Writing andDeploying Apps in the Next Generationof Windows”:

De la misma forma, podríamosmezclar los dos códigos para que—en un único archivo— tuviésemostanto el código declarativo como elfuncional, tal y como podemos veren la aplicación del fuente 1, que es

dotN

etM

anía

<<

26

dnm.especial.futuro<<

Figura 4:Ventana de salida del código anterior.

Fuente 1. Ejemplo de mezcla del código declarativo y el funcional.

<!-- XAML file -->

<Window xmlns="http://schemas.microsoft.com/2003/xaml"xmlns:def="Definition"def:Class="Application1.Window1"def:CodeBehind="Window1.xaml.cs" Text="Application1" Visible="True">

<DockPanel xmlns="http://schemas.microsoft.com/2003/xaml"xmlns:def="Definition" def:Language="C#" Background="White"><FlowPanel ID="sourceFlowPanel"

MouseLeftButtonDown="OnLeftMouseDown" Margin="10,10,0,0" Background="cyan" Width="150px" Height="150px"><Text ID="caption" Margin="10,10,20,20" FontSize="16">Click

on Me</Text>

</FlowPanel></DockPanel>

</Window>

// C# Codebehind class

using System;using MSAvalon.Windows;using MSAvalon.Windows.Input;using MSAvalon.Windows.Controls;using MSAvalon.Windows.Documents;using MSAvalon.Windows.Navigation;using MSAvalon.Windows.Shapes;using MSAvalon.Windows.Data;

namespace Application1{

public partial class Window1 : Window{

private bool expanded = false;private void OnLeftMouseDown(object sender, MouseButtonEventArgs

e){

if (expanded){

sourceFlowPanel.Width = new Length(sourceFlowPanel.Width.Value/2);

sourceFlowPanel.Height = new Length(sourceFlowPanel.Height.Value/2);

caption.TextRange.Text = "Pulsa";expanded = false;

}else{

sourceFlowPanel.Width = new Length(2 * sourceFlowPanel.Width.Value);

sourceFlowPanel.Height = new Length(2 * sourceFlowPanel.Height.Value);

caption.TextRange.Text = "Gracias por pulsar";expanded = true;

}}

Pág.23-29 27/8/56 09:23 Página 26

Page 27: ¡Hola Mundo! - humansharp.com · Intercambie contenidos en Internet en sus páginas ASP.NET a través de la especi- ... Data Providerpara ADO.NET ofrece, asimismo, ... Curso de Presentaciones

un complemento extendido de laanterior (bien entendido que en estecaso, deberemos compilar el códi-go, para que el compilador de C#produzca el ensamblado correspon-diente, en el que se apoyará la par-te funcional) (Ver Fuente 1).

En lugar de utilizar una ventanaformateada al estilo Longhorn, coninformación de sistema, (objetoCanvas), se utiliza una ventana sim-ple (elemento Window) en la que sedefine un botón y unas acciones aso-ciadas con él, que consisten en cam-biar el tamaño del botón y el textodel mismo. La gran ventaja de estaaproximación, no sólo es la posibi-lidad de interpretar esta interfaz deusuario en distintos entornos (direc-to o host=navegador), sino que pue-den crearse marcos de interfaz deusuario corporativos preestableci-dos, a los que se le puede aplicar mástarde la lógica necesaria.

Codificación en WinFS

Uno de los mecanismos másnovedosos asociados con WinFSserá la capacidad de búsquedas deficheros y —en general— la nuevaforma de gestionar el almacena-

miento. WinFS se apoyará interna-mente en el motor de Yukon (lanueva versión de SQL-Server, queaparecerá este mismo año, hacia elverano), y eso va a significar quetodo fichero formará parte de estesistema, capacitando al usuario labúsqueda con una rapidez similar ala que obtenemos al buscar un datoen una base de datos.

En su vertiente programática,WinFS se maneja utilizando las nue-vas librerías System.Storage ySystem.Storage.File, si bien exis-ten otras, como System.Search, quepermitirán la búsqueda de ficheros

dotN

etM

anía

<<

27

dnm.especial.futuro<<

Creación de un botón de forma declarativa (código de marcas XAML)

<Canvas xmlns="http://schemas.microsoft.com/2003/xaml"><Button Canvas.Left="10"

Canvas.Top="10" Width="90px" Height="32px">Pulsa</Button>

</Canvas>

Forma equivalente mediante código fuente en C#

Button btn = new Button();btn.Width = new Length(90);btn.Height = new Length(32);Canvas.SetTop(btn, new Length(10));Canvas.SetLeft(btn, new Length(10));btn.Content = " Pulsa ";

Tabla 1

//Acceso a ficheros de texto plano utilizando las API's de WinFs.

using System;using System.Storage;using System.Storage.Files;

class PruebaFicheros {

static void Main() {

//Crea el fichero "Test.txt"ItemContext ctx = ItemContext.Open();Folder folder = Folder.GetRootFolder(ctx);string str = “”;file = new File (folder, "Test.txt");file.DisplayName = "Test.txt";file.Stream = System.Text.Encoding.ASCII.GetBytes (str);file.Save ();

//Acceso al ficherofile = folder.GetOneMemberWithName ("Test.txt") as File;if (file != null){str = System.Text.Encoding.ASCII.GetString(file.Stream);

}// Borrado del ficheroFile file = folder.GetOneMemberWithName ("text.txt") as File;if (file != null){

file.Delete ();}

}}

Fuente 2. Ejemplo de acceso al sistema de ficheros a través de código.

Pág.23-29 27/8/56 09:23 Página 27

Page 28: ¡Hola Mundo! - humansharp.com · Intercambie contenidos en Internet en sus páginas ASP.NET a través de la especi- ... Data Providerpara ADO.NET ofrece, asimismo, ... Curso de Presentaciones

por el contenido (ya sea parcial en su nombre, obien en sus datos internos), de forma similar a lacaracterística Text Search, ahora presente enSQL-Server 2000.

Para darnos una idea de lo simple que es elacceso por código al sistema de ficheros, obser-

vemos el bloque del fuente 2, que crea, lee y, final-mente, borra un fichero de texto plano.

Además, si utilizamos la nueva versión deVisual Studio .NET (Whidbey, todavía en fasebeta) podemos observar mediante el examina-dor de objetos la convivencia de las librerías queutilizan las API’s de Win32 y las propias deLonghorn. No olvidemos que la compatibilidadserá algo crítico respecto al nuevo sistema y,como ya se ha comentado, la desaparición totaldel soporte Win32 haría que ninguna aplicaciónactual fuese capaz de funcionar en el nuevo sis-tema.

Indigo y las comunicaciones

Para concluir esta breve introducción a lascaracterísticas de Longhorn, y sus nuevas API’sde programación, vamos a comentar algo sobreIndigo, su sistema de comunicaciones.

Indigo se basa en 4 conceptos clave: • Primero, un mensaje se ve como un con-

junto de datos que puede transmitirse gra-cias a su conformidad con un modelo SOAP(como es sabido, dicho modelo da soporte alas transmisiones y recepciones de informa-ción cuando utilizamos Servicios Web).

• En segundo lugar, los mensajes viajan a tra-vés de puertos (ports). En Indigo, los puer-tos son puntos finales (end-points) de comu-nicación entre servicios. Un puerto puedeenviar y recibir mensajes independiente-

mente del transporte. Y podemos distinguirdos tipos de puertos: con nombre y anóni-mos. Los puertos con nombre pueden seraccedidos independientemente de cualquierconexión o sesión de comunicaciones. Losúltimos sólo pueden accederse de formaimplícita, como parte del proceso de lacomunicación. De hecho, los únicos men-sajes recibidos por un puerto anónimo seránlas respuestas a aquellos enviados a través deese mismo puerto.

• En tercer término, se define un servicio comouna pieza opaca de código que da soporte aun puerto. Indigo se refiere a ese código eje-cutable asociado al puerto como un servicio.Y los servicios, pueden tener a su vez doscaracterísticas: políticas (policies) y contratos.Las políticas indican las capacidades y requi-sitos del servicio, mientras que los contratosestablecen qué intercambios de mensajes sonaceptables para ese servicio (en términos deprogramación, los contratos serían similaresa las interfaces, y de hecho, desde un progra-ma, eso es lo que ocurre).

• Finalmente, los servicios se comunican conlos puertos a través de canales. Un serviciopuede crear y usar un rango de canales paraconstruir una aplicación. Las propiedades,políticas y comportamientos de un canal,varían en función de las características decomunicación que ese canal suministra.

El siguiente diagrama explica algo más estasituación:

dotN

etM

anía

<<

28

dnm.especial.futuro<<

Todas las aplicaciones basadas en LongHorn,serán totalmente orientadas a objetos,

y basadas en un objeto central llamado Application.

Fig 5. Esquema de objetos implicados en el transporte de mensajes

Pág.23-29 27/8/56 09:23 Página 28

Page 29: ¡Hola Mundo! - humansharp.com · Intercambie contenidos en Internet en sus páginas ASP.NET a través de la especi- ... Data Providerpara ADO.NET ofrece, asimismo, ... Curso de Presentaciones

noticias.noticias.noticias.noticias

Sólo a modo de introducciónincluimos en el fuente 3 el frag-mento más pequeño posible de códi-go que crea un puerto y lo abre.Nótese la presencia de la libreríaSystem.MessageBus.

Como puede apreciarse, la filo-sofía asociada a los Servicios Webestá claramente presente en Indigo,al igual que se dejan entrever aspec-

tos de la arquitectura SOA (ServicesOriented Architecture).

Conclusión

Podemos afirmar, pues, queLonghorn es revolucionario tanto ensu concepción como en su modelode programación, especialmente sile comparamos con las anteriores

versiones de Windows (WindowsServer 2003 anticipa algunas cosas,no obstante). Y como lección inicial,podemos ver cómo los modelos deprogramación tienden cada vez mása independizarse de plataformas ymecanismos de distribución, dentrode la filosofía “programar una vez yutilizar en cualquier parte”. Es nota-ble la similitud del modelo ASP.NETcon el nuevo Avalon, las capacida-des de ejecución en navegador odirectamente del mismo programa,y la posibilidad de acceder —literal-mente— a cualquier recurso del sis-tema, mediante código.

En posteriores artículos profun-dizaremos más sobre las caracterís-ticas de Longhorn, y su capacidad deprogramación, así como en la nuevaversión de Visual Studio .NET(Whidbey) que aprovecha e integramuchas de estas novedades.

dotN

etM

anía

<<

29

dnm.especial.futuro<<

using System;using System.MessageBus;class app {static void Main() {// Crea un Puerto con nombre y lo abrePort port = new Port(new Uri("soap://localhost/ejemploPuerto"));port.Open();// espera indefinidamente…Console.ReadLine();

}}

Fuente 3. Crear y abrir un puerto.

Brian Valentine, vicepresidente senior de la actual divi-sión de desarrollo de Windows, encabeza ya la nueva uni-dad llamada Windows Core Operating System Division(COSD) que se centrará en el desarrollo de las nuevastecnologías para los sistemas operativos, así como de diri-gir el camino que seguirán éstos de acuerdo a las condi-ciones del mercado.

La nueva división tendrá tres áreas operativas: Testing,Program Management y OS Development.

Lo realmente importante es que, a partir de ahora, seaunarán esfuerzos para la creación de una nueva tecnolo-gía que será compartida por todos los sistemas operativosde escritorio y servidores, las nuevas versiones de Office,y otras aplicaciones de servidor, cuando salga al mercado,y esto será con la aparición de Longhorn (¿2006?).

Según el propio Brian comentaba en marzo del añopasado a ComputerWorld, la versión de Longhorn seríaúnica y exclusivamente para equipos de escritorio y nopara servidores. La versión que sucederá a Windows 2003,

cuyo nombre en clave es Blackcomb, sería la primera ver-sión que integraría estas tecnologías tanto para equiposde escritorio como para servidores, ¡y esto no estará dis-ponible hasta 2007 ó 2008! La creación de esta divisióny el retraso sufrido por Longhorn, parecen apuntar a queserá Longhorn el primero que cuente con este primernúcleo sobre el que construirá Blackcomb, si bien en unprincipio esto no es así.

Desde la redacción de dotNetManía pensamos queson muy difíciles este tipo de predicciones tan a largo pla-zo, y que existe la posibilidad de que haya cambios tantoen fechas como en estrategia.

En cualquier caso, el futuro que Microsoft está pre-parando para sus productos pasa inevitablemente por loque esta nueva división sea capaz de desarrollar, puestoque será la base de, prácticamente, todo lo que está porvenir. La labor de Brian Valentine es, pues, fundamentalpara el futuro de la compañía. ¡Suerte Brian!

Microsoft creará una nueva división para el desarrollo del núcleo de Longhorn

Pág.23-29 27/8/56 09:23 Página 29

Page 30: ¡Hola Mundo! - humansharp.com · Intercambie contenidos en Internet en sus páginas ASP.NET a través de la especi- ... Data Providerpara ADO.NET ofrece, asimismo, ... Curso de Presentaciones

dotN

etM

anía

<<

30

que desde hace algún tiempo nos hasonrojado en esas reuniones en las que el “pro-fesional” de turno nos intenta menospreciarhaciéndonos ver cuán inferiores somos porquenuestro sistema de gestión de bases de datos siguesiendo Transact-SQL, no ya ANSI SQL 99, sinonuestro viejo y vetusto Transact-SQL, en vez de“modernos” y “versátiles” lenguajes como Java.

Ahora podemos decir altivamente: Pues nues-tro sistema es incluso mejor… bueno… lo serápronto.

Una de las fundamentales mejoras de la anun-ciada nueva versión de SQL Server es la posibi-lidad de utilizar cualquier lenguaje de progra-mación basado en .NET para crear procedi-mientos almacenados, y otros objetos progra-mables, en nuestras bases de datos.

Euforia y Pánico

Mi primera reacción ante esta noticia fue dealegría y excitación (en el más tecnológico aspec-to de esta palabra). Yo siempre me consideré unprogramador, más que un administrador de basesde datos, aunque avatares de la vida me han lle-

vado a lidiar los sistemas de bases de datos des-de ambos roles, y la perspectiva de unir ambosmundos de ese modo tan íntimo me pareció delo más interesante.

Tras la primera reacción, vino el pánico: ¿Quecualquier perforista venido a más, va a querer eje-cutar sus chapuceros programas dentro de mi ser-vidor de bases de datos? ¡Eso sí que no! ¡Hasta ahípodíamos llegar! No, mire usted, este programase ha estado ejecutando sin problemas en un main-frame durante muchos años, y lo hemos conver-tido a Cobol.NET, así que… ¿En Cobol.NET?¿En mi servidor? Esto será una broma, ¿verdad?

Pues no es una broma y en un futuro no muylejano veremos como nuestro horizonte comoprogramadores de bases de datos se expandeenormemente… o cambiaremos de trabajo.

“Pues yo no lo he necesitado hasta ahora,y me ha ido muy bien”

Si lo que has necesitado hasta ahora ha sidolisa y llanamente ejecutar instrucciones de mani-pulación de datos dentro de tu bases de datos,como los queridos SELECT, INSERT, UPDATE,

¿Programación en .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 mercadoofrecen la posibilidad de crear objetos programables en sus bases de datos uti-lizando lenguajes de programación no diseñados específicamente para el trata-miento de conjuntos de registros, como por ejemplo Java.Mientras que en SQLServer seguimos con Transact-SQL. Sin embargo, esto cambiará con la apariciónde Yukon.

Por Fernando GuerreroSQL Server MVPwww.solidqualitylearning.com

<< Esto es algo

Pág.30-35 27/8/56 09:24 Página 30

Page 31: ¡Hola Mundo! - humansharp.com · Intercambie contenidos en Internet en sus páginas ASP.NET a través de la especi- ... Data Providerpara ADO.NET ofrece, asimismo, ... Curso de Presentaciones

dnm.<<

dotN

etM

anía

<<

31

dnm especial. futuro<<

y DELETE, es probable que no hayas necesita-do nada más. Sin embargo es posible que no tehayas querido meter en problemas, y hayas limi-tado la funcionalidad de tu base de datos a aque-llo que se puede hacer con Transact-SQL.

Una de las quejas más frecuentes que se le hacena Transact-SQL es su pésima gestión de errores,pero esto se ha corregido definitivamente en Yukon,proporcionando la misma gestión estructurada deerrores que en sus primos de .NET1.

Por azares del destino, y por lazos familiares,soy ingeniero civil, y mi bautismo en la infor-mática vino creando modelos matemáticos pararesolver problemas de ingeniería. La verdad esque me gustó tanto esa experiencia que cada día,poco a poco, me he ido despegando de la inge-niería civil para acercarme cada día más a la inge-niería informática. El caso es que si alguien quie-re enfrentarse a complicados y motivadores pro-blemas de programación, que trabaje en un gabi-nete de ingeniería civil de los que se enfrentan aproyectos completamente nuevos cada pocosmeses. Este es el ambiente en el que me tocó vivirdurante muchos años, y a ello debo mis conoci-mientos de programación.

¿Has intentado alguna vez acceder a objetosexternos a SQL Server? Yo he visto todo tipo detrucos (hasta me ha tocado utilizar algunos yomismo):

• Utilizar xp_cmdshell para ejecutar programasexternos y enviar los resultados a una tabla.

• Utilizar los procedimientos de automatiza-ción de SQL Server, como SP_OACreate ydemás procedimientos relacionados.

• Los más aventurados hasta han creado pro-cedimientos extendidos, o externos, segúnse quiera llamarlos.

• La mayoría se ha rendido ante las muchaslimitaciones de estos sistemas y decidieronimplementar estas soluciones en aplicacio-nes de cliente o en la capa de negocios.

La utilización de procedimientos de automa-tización está sujeta a muchas limitaciones, sobretodo de rendimiento, por lo que no muchos pro-gramadores se aventuraron por este camino. Hacetiempo escribí un ejemplo de cómo utilizar pro-cedimientos de automatización para acceder aADO desde Transact-SQL. En este caso pre-tendía ilustrar que estos procedimientos podrí-an proporcionar una puerta falsa para saltarselimitaciones de las funciones definidas por elusuario2.

La realidad es que en cuanto el interfaz condicho objeto se complica un poco, los procedi-mientos de automatización empiezan a compli-carse también y dan lugar a no pocos problemasde activación. Por ejemplo, una clara limitaciónde estos procedimientos es la incapacidad demanejar colecciones de objetos.

En cuanto a la creación de procedimientosextendidos, la verdad es que esto ha permaneci-do como parcela exclusiva de expertos progra-

La ejecución de programas externos median-te xp_cmdshell es, como poco, peligrosa, ya queesto ha sido la fuente de no menos problemasde seguridad en SQL Server. Por otro lado, sigueexistiendo el problema de cómo recuperar losresultados de esta ejecución.

Este es un ejemplo de cómo utilizar esta téc-nica para obtener el contenido de un directorio:

CREATE TABLE #miDir (LineaID int IDENTITY(1,1)PRIMARY KEY,Linea nvarchar(256))

INSERT #miDirEXEC Xp_cmdshell 'dir c:\*.*'SELECT LineaFROM #miDirWHERE Linea LIKE '[0-9]%'ORDER BY LineaID

Una de las fundamentales mejoras es la posibilidad de utilizar cualquier lenguaje

de programación basado en .NET para crear procedimientos almacenados

1 Puedes leer más sobre las mejoras en Transact-SQL para Yukon en http://msdn.microsoft.com/library/en-us/dnsql90/html/sql_YukonTSQLEnhance.asp

2 Podéis encontrar este ejemplo en http://www.solidqualitylearning.com/conferences/

Pág.30-35 27/8/56 09:24 Página 31

Page 32: ¡Hola Mundo! - humansharp.com · Intercambie contenidos en Internet en sus páginas ASP.NET a través de la especi- ... Data Providerpara ADO.NET ofrece, asimismo, ... Curso de Presentaciones

madores en C++, como mi buenamigo Gert Drapers (Program Ma-nager en Microsoft) que utilizó estatécnica para permitir que SQL Serverpueda utilizar correo electrónicomediante SMTP directamente(www.sqldev.net)

Sinceramente, esperaba queMicrosoft hubiera convertido la ma-yoría de los procedimientos extendi-dos que vienen con SQL Server enprocedimientos de .NET. Sin embar-go esto no ha sido así, ya queMicrosoft ha aplicado un arraigadocriterio en el mundo informático: “Sifunciona, no lo cambies”. No puedoculparles por esta decisión, ya queprefiero que dediquen sus esfuerzosa otras áreas, como así han hecho.

A aquellos mortales que se esténplanteando la posibilidad de crearprocedimientos extendidos, les reco-miendo que se tomen un par de tilas,lo consulten detenidamente con laalmohada, y luego se busquen unacopia de la última beta de Yukon. Ycon esta versión beta que prueben aimplementar su solución de .NET,ya que las ventajas, desde cualquierpunto de vista pueden ser inmensas.

El Kit de Recursos de SQLServer Yukon Beta 1, contiene unlibro blanco sobre la programaciónen .NET dentro de SQL Server:Overview of .NET ProgrammingFeatures in SQL Server Yukon (Un vis-tazo a las técnicas de programación.NET en Yukon). Es curioso obser-var que el encabezado de cada pági-na simplemente menciona comotítulo Overview of ProgrammingFeatures in SQL Server Yukon (Un vis-tazo a las técnicas de programación enYukon), sin el “.NET”. Por esteencabezado, cabría pensar que estelibro blanco contemplaría todas lasmejoras de programación que estanueva versión incorpora, con espe-cial enfoque en las relacionadas con

dotN

etM

anía

<<

32

dnm.<< dnm.especial.futuro<<

Es esta la razón por la cual recomiendo encapsular estos objetosCOM tras otro objeto COM con un interfaz muy claramente defini-do, con el único propósito de servir de acceso desde Transact-SQL.Este interfaz debería permitir su utilización desde SQL Server siguien-do el siguiente esquema:

1. Crear una instancia del objeto utilizando sp_OACreate.2. Establecer muy pocas propiedades con sp_OASetProperty.3. Ejecutar muy pocos métodos con sp_OAMethod.4. Leer muy pocas propiedades con sp_OAGetProperty.5. Destruir la referencia al objeto COM mediante sp_OADestroy.

En especial, la creación de nuevos objetos COM a partir de pro-piedades leídas desde otros objetos COM, es muy propensa a produ-cir errores de instanciación, con la obtención de punteros nulos.

Este sería un ejemplo simplificado de cómo utilizar procedimien-tos de automatización para hacer uso de ADO desde dentro de una fun-ción definida por el usuario:

CREATE FUNCTION InsertNewValue(@Value int)RETURNS intASBEGIN

DECLARE @adoConn as integerDECLARE @ret intDECLARE @sql varchar(2000)DECLARE @rst int

SET @sql = 'INSERT tempdb.dbo.TestInserts (Value) SELECT ' + CAST(@Value AS varchar(10))

EXEC @ret = sp_OACreate 'ADODB.Connection', @adoConn OUT

IF @ret = 0EXEC @ret = sp_OAMethod @adoConn, 'Open', NULL, 'Provider=SQLOLEDB;Server=CLOCKWORK;trusted_connection=yes;Databa

se=Tempdb'

IF @ret = 0EXEC @ret = sp_OAMethod @adoConn, 'Execute', @rst OUTPUT, @sql

EXEC @ret = sp_OADestroy @adoConnEXEC @ret = sp_OADestroy @rst

RETURN (SELECT CASE @ret WHEN 0 THEN IDENT_CURRENT('tempdb.dbo.TestInserts') ELSE NULL END)

ENDGO

Este ejemplo lo muestro simplemente para ilustrar el funciona-miento de estos procedimientos, no para sugerir su utilización de estemodo, ya que este ejemplo en particular no podría considerarlo comouna práctica aconsejable.

Pág.30-35 27/8/56 09:24 Página 32

Page 33: ¡Hola Mundo! - humansharp.com · Intercambie contenidos en Internet en sus páginas ASP.NET a través de la especi- ... Data Providerpara ADO.NET ofrece, asimismo, ... Curso de Presentaciones

dnm <<

dotN

etM

anía

<<

33

dnm.especial.futuro<<

.NET, pero no es así. Para empezarla discusión, este libro comienza condos apartados que anuncian muy cla-ramente el talante del documento:

• Limitations of T-SQL (Limita-ciones de Transact-SQL)

• Advantages of CLR Integration(Ventajas de la integración conel CLR)

Si lo hubiera escrito yo, quizáhubiera añadido otras secciones como:

• Advantages of set oriented pro-gramming with T-SQL (Ven-tajas de la programación orien-tada a conjuntos de registroscon Transact-SQL)

• Potential problems with CLRprogramming (Problemas po-tenciales de la programacióncon CLR)

Y es que este libro blanco, aun-que aprecio los conocimientos delos autores, a los que he tenido elplacer de conocer en persona, refle-ja lo que a mi juicio puede ser laequivocación más grande que pue-de producirse con esta nueva ver-sión de SQL Server: la separacióntotal entre dos mundos que deberí-an entenderse: programadores debases de datos con T-SQL y pro-gramadores de .NET. Solo hay queechar un vistazo a los ejemplos decódigo propuestos para ver que sóloun par de páginas contienen ins-trucciones T-SQL que no sean sim-plemente CREATE.

Los autores proponen una serie de escenarios en los que utilizar técni-cas de programación .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, tengo que decir que los ejemplos pro-puestos pueden codificarse en la mayoría de los casos muy eficientementeen Transact-SQL, probablemente combinado CASE con el operador LIKE.

Lo mismo podría decirse en cuanto a la gestión avanzada de cadenas decaracteres, aunque esto podría simplificarse mediante funciones que .NETya ofrece, por lo que en aras de la comodidad (¿pereza?) podríamos prefe-rir la utilización de .NET.

Sin embargo hay que entender algo muy importante: la incorporaciónde funciones de .NET no es gratuita, y tiene unas implicaciones claras enel rendimiento de las consultas, ya que el sistema debe hacer llamadas a otrosubsistema para ejecutar estas funciones CLR. De algún modo, estamosante un caso similar a la utilización de Interop para utilizar objetos COMdesde .NET. Por lo tanto es imprescindible asegurarse de que la utilizaciónde funciones de .NET no perjudica el rendimiento de nuestras consultas.

Por ejemplo, la expresión regular:

Puede sencillamente convertirse a T-SQL como:

Parece más pesado de escribir, pero la ejecución de dicho código desdeT-SQL será más eficiente que una llamada a una función CLR definida den-tro de SQL Server.

Lo mismo podría decirse sobre la gestión avanzada de cadenas de carac-teres o de funciones financieras y simples funciones matemáticas.

Sin embargo, donde ya empezamos a entrar en el campo de la progra-mación CLR, es en cuanto debemos acceder a librerías externas para eje-

Return Regex.IsMatch(zipCode, "^\s*(\d{5}|(\d{5}-\d{4}))\s*$")

SELECT CASEWHEN @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 1ELSE 0END<<

Pág.30-35 27/8/56 09:24 Página 33

Page 34: ¡Hola Mundo! - humansharp.com · Intercambie contenidos en Internet en sus páginas ASP.NET a través de la especi- ... Data Providerpara ADO.NET ofrece, asimismo, ... Curso de Presentaciones

cutar procesos complejos, comocriptografía, complejos cálculosmatemáticos y geométricos, o inte-gración con procesos externos.

Una importante aplicación de lasbases de datos es su utilización conSistemas de Información Geográfica(GIS en sus siglas en inglés). A mí meha tocado lidiar con este problemadurante algunos años, y no es un pro-blema tan simple como pueda pare-cer. Utilizar datos geográficos impli-ca utilizar operadores como distan-cia, superficie, proximidad, etc.Implementar estos operadores en T-SQL es poco menos que imposible.Diseñar una base de datos que seacapaz de almacenar eficientemente latopología de un espacio geográfico,no es tarea fácil, si queremos restrin-girnos al terreno del diseño relacio-nal. Intentar la implementación deoperadores espaciales mediante la uti-lización de T-SQL en procedimien-tos almacenados y funciones defini-das por el usuario, es poco menos queimposible en la mayoría de los casos.

Empresas del mundo GIS, comoESRI (www.esri.com), han solucio-nado el problema mediante la utili-zación de librerías externas y la uti-lización masiva de información codi-ficada dentro de campos BLOB, conuna estructura propietaria de laempresa.

Ahora imaginemos que podemoscrear tipos definidos por el usuario,como por ejemplo:

Y que este tipo de dato Parcelano solamente tuviera propiedadescomo Superficie, Propietario(s),ValorCatastral, sino que tambiénpudiéramos implementar funcionescomo DistanciaA(@OtraParcela asParcela) o DiatanciaA(@MiCarretera

as Carretera). Las posibilidades po-drían ser inimaginables para el pro-gramador de bases de datos de hoyen día.

Supongamos que una regla denegocio podría ser que las parcelasque estén a menos de 100 metros dela costa no se pueden vender.

Podríamos llegar a implementar estaregla directamente en el mismo tipode datos, y el sistema se encargaríade su cumplimiento independiente-mente del método utilizado paramodificar estos datos.

En un sistema que me tocó dise-ñar para un proyecto en Marruecoshace ya algunos años, me tocó inte-grar diversas aplicaciones de oficinacon una base de datos de SQLServer (la empecé con 4.21 y la aca-bé con 6.5). El proceso de cálculo deprogramación de tareas era tan com-plejo que MS Project no podía eje-cutarlo (aún la última versión de esteproducto es incapaz de hacer estetipo de cálculos), lo que me obligóa crear una aplicación externa que

hacía todo ese cálculo y almacenabalos resultados en SQL Server, utili-zando MS Project simplemente paraimprimir bonitos diagramasGANTT. Si hubiera tenido en mismanos SQL Server Yukon, hubieracreado todo el proceso como una

librería de procedimientos en .NETy los llamaría automáticamente des-de la misma base de datos paragarantizar la consistencia de la infor-mación en todo momento.

En aquél proyecto, el corazón delsistema era una aplicación escrita enVisual Basic, en Yukon posiblemen-

te sería un conjunto de assembliesescritas en Visual Basic .NET (¿porqué no?)

Sé que esto me valdrá el califica-tivo de hereje, pero soy un firmedefensor de Visual Basic .NETcomo lenguaje de programación.NET por excelencia para progra-madores de bases de datos acos-tumbrados a utilizar hasta ahoraTransact-SQL, ya que la sintaxis yla experiencia de programación seasemejan mucho.

Rendimiento

Se ha hablado mucho acerca dela potencial ventaja de rendimientoque la utilización de procedimien-tos de .NET tendría con respecto alos tradicionales procedimientosescritos en Transact-SQL, pero larealidad aún no ha corroborado estaspredicciones. El producto seencuentra aún en Beta 1 y es muypronto para realizar pruebas de ren-dimiento.

Sin embargo, como dato curioso,podríamos comentar que Microsofthabía decidido la implementación de

dotN

etM

anía

<<

34

dnm.<< dnm.especial.futuro<<

CREATE TYPE Parcela EXTERNAL NAME YukonCLR:Parcela

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.30-35 27/8/56 09:24 Página 34

Page 35: ¡Hola Mundo! - humansharp.com · Intercambie contenidos en Internet en sus páginas ASP.NET a través de la especi- ... Data Providerpara ADO.NET ofrece, asimismo, ... Curso de Presentaciones

dnm.<<

dotN

etM

anía

<<

35

dnm.especial.futuro<<

algunos nuevos tipos de datos en .NET y, tras laspruebas preliminares de rendimiento que se hanefectuado, se ha decidido su implementación comotipos de datos nativos.

Como criterio general, y basándome en lainformación de que dispongo en estos momen-tos, la llamada puntual a procedimientos de .NETpara ejecutar complejos procesos matemáticosproporcionará ventajas innegables a los progra-madores de Yukon. Sin embargo la llamada repe-tida, por ejemplo registro a registro, de cortasfunciones de .NET desde código Transact-SQL,será en general más lento que la invocación deesta funcionalidad en Transact-SQL directa-mente.

Otro factor muy importante a tener encuenta es el impacto que la utilización de estosprocedimientos pueda tener en la utilizaciónde la memoria disponible para SQL Server.Cada vez que se ejecuta un objeto programa-ble, SQL Server crea un contexto de ejecuciónprivado para esta llamada en particular, quefacilite la ejecución simultánea de procedi-mientos, sin que los datos de estas llamadasindependientes se mezclen. Si quieres obtenerinformación sobre estos contextos de ejecu-ción, puedes ejecutar la siguiente consulta enSQL Server 2000:

Yo he visto sistemas en los que cada contex-to de ejecución ha llegado a tener algunosmegabytes de información. Y es que en este con-texto de ejecución, SQL Server almacena valo-res de variables privadas, y estructuras tempora-les de registros en memoria, como los resultadosintermedios de algunas consultas complejas.

Ahora supón que dentro de tus procedi-mientos almacenados creas estructuras com-plejas de datos, como objetos DataSet conmuchos registros. En este caso, el contexto deejecución de cada usuario será anormalmentegrande, con lo que la capacidad de SQL Server

para gestionar la memoria asignada a procedi-mientos almacenados se verá seriamente mer-mada, y el rendimiento del sistema se degrada-rá enormemente.

Conclusión

Las mejoras en SQL Server siempre son bien-venidas, y la posibilidad de programar en dife-rentes lenguajes de programación es algo que lle-vábamos esperando bastante tiempo, y que hacefácilmente volar nuestra imaginación.

Sin embargo, es necesario estudiar seriamen-te en cada caso las ventajas o desventajas que lautilización de esta tecnología ofrece para aplicarla solución de programación más adecuada a cadaproblema.

Ahora más que nunca, las empresas deberánaplicar criterios muy estrictos en cuanto a polí-ticas de nomenclatura y codificación, para ase-gurarse que serán capaces de mantener sus apli-caciones de bases de datos.

Estoy firmemente convencido de las ventajasde esta tecnología, y me muero de ganas de apli-carla a sistemas reales, pero, sin la adecuada for-mación y entrenamiento, esto podría desembo-car en graves problemas para muchos sistemasde bases de datos.

Aquellas empresas que inviertan en formacióny detallado análisis de sus sistemas, obtendráninnegables beneficios de estas nuevas posibilida-des de programación. Sin embargo, aquellasempresas que sigan potenciando la chapuza y laprecariedad en la formación de sus técnicos, severán encaminadas al fracaso más rotundo.

SELECT cacheobjtype, objtype, objid, dbid, dbidexec, uid, refcounts, pagesused, sqlbytes,sql

FROM master.dbo.syscacheobjects

Microsoft había decidido la implementación de algunos nuevos tipos de datos en .NET y,tras las pruebas preliminares de rendimiento

que se han efectuado, se ha decidido su implementación como tipos de datos nativos.

Pág.30-35 27/8/56 09:24 Página 35

Page 36: ¡Hola Mundo! - humansharp.com · Intercambie contenidos en Internet en sus páginas ASP.NET a través de la especi- ... Data Providerpara ADO.NET ofrece, asimismo, ... Curso de Presentaciones

dotN

etM

anía

<<

36

Introducción

Aunque en ocasiones los nombres en claveescogidos para denominar un producto, en estecaso Visual Studio .NET, puedan parecer un sinsentido, lo cierto es que tienen su lógica.

El actual Visual Studio .NET 2003 fue cono-cido antes de su presentación como Everett,nombre de una ciudad del estado de Washingtonrelativamente cercana a Redmond, dondeMicrosoft tiene su cuartel general. Whidbey,denominación en clave de la versión de VisualStudio .NET que aparecerá dentro de unosmeses, es el nombre de una isla, algo más lejosde Redmond que Everett. Finalmente, Orcas esel nombre de otra isla, aún más distanciada quela anterior, y se ha elegido como designacióndel sucesor de Visual Studio .NET Whidbey que,según se prevé, será presentado algo antes deWindows Longhorn.

Dejando de lado las anécdotas sobre nomen-clatura de las mentes de Microsoft, VS.NETWhidbey está a la vuelta de la esquina y, a dife-rencia de lo que ocurrió con VS.NET 2003,incorpora un importante número de novedadesque afectan a prácticamente todos los elemen-

tos: los servicios que ofrece la plataforma, loslenguajes de programación y el propio entornode desarrollo, sin olvidar la integración conYukon, la próxima versión de SQL Server, o laposibilidad de crear documentos inteligentespara Word 2003 y Excel 2003.

NET Framework Whidbey

La versión 1.1 de la plataforma .NET, queapareció conjuntamente con VS.NET 2003, darápaso a nueva versión en la que se ha mejoradoel rendimiento, contemplado el funcionamien-to sobre microprocesadores de 64 bits e intro-duciendo elementos como los tipos genéricos,nuevos componentes para formularios Windowsy ASP.NET, más funcionalidad en el acceso adatos o una característica demandada especial-mente por los usuarios de Visual Basic conoci-da como editar y continuar.

Hay que tener en cuenta que no todos loslenguajes .NET están obligados a implementarla funcionalidad disponible en la plataforma. Laposibilidad de efectuar modificaciones al códi-go de un ensamblado durante la depuración y,sin reiniciar, seguir con la ejecución, forma par-

De Everett a Orcas, pasando por Whidbey

Microsoft trabaja en la que será la próxima versión de Visual Studio .NET y laplataforma .NET, actualmente conocidas con el nombre en clave Whidbey, conimportantes cambios y novedades.

Por Francisco CharteTorre de Babelwww.fcharte.com

<<

Pág.36-42©© 27/8/56 09:28 Página 36

Page 37: ¡Hola Mundo! - humansharp.com · Intercambie contenidos en Internet en sus páginas ASP.NET a través de la especi- ... Data Providerpara ADO.NET ofrece, asimismo, ... Curso de Presentaciones

dnm.especial.futuro<<

dotN

etM

anía

<<

37

te de la versión Whidbey de la plata-forma .NET, pero inicialmente elequipo de desarrollo de C# no hadecidido incorporarla al lenguaje,algo que sí ha hecho el equipo deVisual Basic .NET al tratarse de unacapacidad muy demandada por losusuarios de dicho lenguaje.

La posibilidad de definir tiposgenéricos, descrita en la especifica-ción 2.0 del lenguaje C# hechapública recientemente, se ha inclui-do no en el compilador de un deter-minado lenguaje sino al nivel de lapropia plataforma. Esto significaque cualquier lenguaje .NET pue-de contemplar el uso y creación detipos genéricos y, de hecho, tantoC# como C++ y Visual Basic .NETaprovecharán esta nueva capacidad.Al ámbito System.Collections seha añadido un nuevo subámbito,llamado Generic, en el que encon-tramos clases genéricas para lasestructuras de datos más habitua-les, como son las listas, colas, pilasy diccionarios. A diferencia de otrassoluciones, como es la conocidaSTL (Standard Template Library)específica de C++, estos tipos gené-ricos o plantillas pueden ser utiliza-dos desde cualquier lenguaje .NET,lo cual supone un gran avance.

Aunque en los puntos siguientesme centraré en lo que podrían con-siderarse las novedades más impor-tantes que introduce la versiónWhidbey de la plataforma .NET,existen muchas otras que, sin consi-derarlas menores, posiblemente ten-drán una aplicación más específica yreducida, como son la existencia dela nueva clase SerialPort enSystem.IO.Ports, que podemos uti-lizar para acceder a los puertos seriedel ordenador y transmitir o recibirdatos; la incorporación en el ámbi-to System.Net de clases que per-miten la conexión con servidores

FTP; los nuevos atributos que faci-litan la integración con el depura-dor para mejorar la visualizaciónde datos; o la facultad de crear en-samblados con tipos internos queson accesibles para determinadosensamblados indicados mediante elatributo InternalsVisibleTo, evi-tando así tener que hacer públicostipos que sólo deberían ser visiblesen un ensamblado amigo pero node terceros.

Formularios Windows

A pesar del innegable crecimien-to de las aplicaciones Web, aquellasque usan como motor para su fun-cionamiento la infraestructura propiade Internet como son el protocoloHTTP y los navegadores, a día de hoyla mayor plataforma de ejecución de

software sigue siendo el habitual PCcon Windows. No es extraño, porello, que la biblioteca de clases .NET,o BCL (Base Class Library), incorpo-re no pocas novedades en el campode los formularios Windows.

En el ámbito System.Windows.Forms, que contiene la mayoría delas clases relacionadas con aplica-ciones clientes que se ejecutan enWindows, encontramos una serie denuevos componentes que, en sumayor parte, contribuyen a mejorarel aspecto visual de los programas.Ejemplos de estos componentes sonFlowLayoutPanel yTableLayoutPanel, que simplificanla distribución de los componentesen un formulario que se adapta auto-máticamente a los cambios de reso-lución; SplitContainer, medianteel que se facilita la configuración de

La posibilidad de definir tipos genéricos se ha incluido, no en el compilador de un determinado

lenguaje, sino al nivel de la propia plataforma.

<<Pág.36-42©© 27/8/56 09:28 Página 37

Page 38: ¡Hola Mundo! - humansharp.com · Intercambie contenidos en Internet en sus páginas ASP.NET a través de la especi- ... Data Providerpara ADO.NET ofrece, asimismo, ... Curso de Presentaciones

dnm.especial.futuro<<do

tNet

Man

ía<<

38

líneas de división de paneles en unaventana; ActiveDocumentHost,útil para alojar en una aplicaciónobjetos ActiveX como pueden ser losdocumentos de Office; WebBrowser,un cliente Web en un control, etc.También se han mejorado las barrasde botones y herramientas para queaprovechen los temas de WindowsXP y tengan una apariencia similara las barras de Microsoft Office.

Además de los componentes pro-piamente de interfaz, hay otros quetambién influyen en la funcionalidadde las aplicaciones Windows. De ellosdestacamos los nuevos GridView yDataContainer, controles de vincu-lación a orígenes de datos, y el com-ponente BackgroundWorker quehace posible la ejecución de tareas enun hilo independiente del principalsimplemente respondiendo a un even-to, sin necesidad de crear un objetoThread y gestionarlo manualmente.

Uno de los mayores problemasque plantean las aplicaciones Win-dows, en contraposición a las aplica-ciones Web, es la dificultad que plan-tea su distribución, instalación en losclientes y posterior mantenimiento,especialmente en empresas grandescon muchos puestos y diferentes loca-lizaciones geográficas. La versiónWhidbey de la plataforma .NET solu-cionará este problema a través de unatécnica que Microsoft ha denomina-do ClickOnce.

Mediante ClickOnce es posiblealojar la distribución de una aplica-ción en un servidor HTTP, un ser-vidor FTP o una unidad comparti-da de red, de tal manera que lospotenciales clientes no tienen másque usar una dirección UNC oURL, por ejemplo http://servi-dor.empresa.com/MiAplicacion,para conseguir una instalación auto-mática en su ordenador, incluyen-do la adición del correspondiente

acceso directo al menú Inicio deWindows y una opción de desinsta-lación. Las aplicaciones, además,pueden ser configuradas para detec-tar automáticamente la existenciade actualizaciones en el servidor,impidiendo así que los usuariosempleen una versión desfasada de lasolución.

En el entorno de Visual Studio.NET existe una nueva opción depublicación que abre un asistente—en la figura 1 se ve uno de suspasos— mediante el que se facilita

la preparación del proyecto para quesea accesible para los clientes.

Formularios Web

Si importantes son las mejoraspara el desarrollo de aplicacionescliente basadas en formulariosWindows, no lo son menos las des-tinadas a simplificar y optimizar lacreación de soluciones ASP.NET, enespecial las que emplean los ele-mentos conocidos como formulariosWeb. No me extenderé mucho eneste apartado y remito al lector alartículo monográfico que, sobre eltema, escribirá Iván González en unpróximo número, por lo que men-ciono exclusivamente los puntos que

me parecen de mayor importancia.Diseñar aplicaciones Web nunca

habrá resultado tan fácil y rápido comocon la llegada de la nueva versión deASP.NET gracias a elementos comolas páginas maestras, la adición de cua-renta y cinco nuevos componentes conuna apariencia fácilmente adaptablepor temas y la incorporación de ele-mentos funcionales comunes comoson la gestión de los miembros de unsitio y sus preferencias.

Todos los componentes de for-mularios Web, aquellos que tienen

el prefijo <asp:>, son capaces degenerar HTML, cHTML, WML,XHTML, etc., posibilitando el acce-so a las aplicaciones desde práctica-mente cualquier dispositivo móvilactual, tales como los Pocket PC oteléfonos de última generación.

Las nuevas posibilidades se venreflejadas en el entorno de VS.NETque, como se aprecia en la figura 2,dispone de asistentes específicospara la creación de sitios Web públi-cos, aplicaciones para intranets, etc.

Por cierto, para desarrollar apli-caciones Web ya no necesitaremoslas extensiones de FrontPage, es más,ni siquiera será preciso disponer deIIS ya que ASP.NET incorpora aho-ra su propio servidor Web exclusivo

Figura 1. El asistente para publicación de aplicaciones

Figura 2.Visual Studio .NET Whidbeydispone de nuevos asistentes para la

creación de sitios Web

Pág.36-42©© 27/8/56 09:28 Página 38

Page 39: ¡Hola Mundo! - humansharp.com · Intercambie contenidos en Internet en sus páginas ASP.NET a través de la especi- ... Data Providerpara ADO.NET ofrece, asimismo, ... Curso de Presentaciones

dnm.especial.futuro<<

dotN

etM

anía

<<

39

para desarrollo, un servidor que se inicia al abrir-se VS.NET y deja de estar disponible al cerrar elentorno.

Acceso a datos

La introducción de ADO.NET en la prime-ra versión de la plataforma supuso, respecto aotros modelos de acceso a datos, una cierta revo-lución por la flexibilidad ofrecida a la hora deoperar sin conexiones persistentes y la existenciade un esquema, basado en componentes de cone-xión, adaptadores y conjuntos de datos, muy con-sistente. El mayor inconveniente es que esteesquema implicaba un necesario conocimientode la estructura de los datos y el origen en queresidían, debiendo elegirse un conjunto de obje-tos u otros dependiendo de ello.

En la versión Whidbey de ADO.NET se hahecho especial hincapié en facilitar la mayoría delas operaciones sin perder un ápice de esa flexi-bilidad, gracias a la incorporación de un conjun-to de clases genéricas, como son DbConnectiono DbTable, independientes del proveedor dedatos, así como la existencia de un modelo de fac-toría que se encarga de crear los objetos especí-ficos y facilita operaciones de enumeración deproveedores y servidores disponibles. No ten-dremos, por tanto, que saber de antemano si losdatos residen en un servidor SQL Server u Oraclepara, en consecuencia, elegir un grupo de clasesu otras.

La clase DbTable en particular, descendien-te de DataTable y base de clases más específicascomo OracleDataTable o SqlDataTable, cuen-ta con todos los elementos necesarios para conec-tar con un origen de datos, recuperar filas, intro-ducir cambios y enviarlos de vuelta sin necesidadde crear todos los objetos que eran precisos enversiones previas.

Gracias a los denominados ObjectSpaces, apli-cables en principio sólo a SQL Server 2000 yYukon, será posible prescindir durante el desa-rrollo del conocimiento de la estructura física delos datos y detalles como la conexión o trata-miento de filas individuales. El nuevo ámbitoSystem.Data.ObjectSpaces contiene una seriede clases que, a partir de un esquema de corres-pondencias, permite operar con objetos persis-tentes, entendiendo por objetos aquellos que usa-

mos normalmente en una aplicación para repre-sentar desde un punto de vista lógico los ele-mentos sobre los que actuamos, como puedenser clientes, pedidos, transacciones, etc. De estaforma se consigue un nivel de abstracción muysuperior al que teníamos hasta el momento, locual redunda en menos trabajo para conseguir elmismo objetivo.

Además de las mencionadas, existen muchasotras mejoras, que no cambios, en ADO.NET,como puede ser el acceso asíncrono a los datosque evitan el bloqueo de la interfaz de usuario,la posibilidad de efectuar actualizaciones porlotes, la existencia de nuevos tipos de datos y laintegración con Yukon o la mejora en el rendi-miento de transferencia de resultados gracias alas optimizaciones introducidas en clases comoDataSet. También se ha eliminado la depen-dencia de los MDAC (Microsoft Data AccessComponents), simplificando así la distribución delas aplicaciones.

LenguajesWhidbey

La versión Whidbey de la plataforma .NETtraerá consigo, además de cambios en la BCL,nuevas versiones de los compiladores de VisualBasic .NET, C# y Visual C++ .NET. Todos elloscontemplan aspectos como la definición y uso detipos genéricos, a partir de diferentes sintaxis,tema que merece un tratamiento aparte para serdescrito como se merece. También hay algunasinnovaciones más específicas.

El compilador de Visual Basic .NET aportaa los programas un objeto, llamado My, que faci-

En la versión Whidbey de ADO.NET se ha hecho especial hincapié en facilitar la mayoría

de las operaciones sin perder un ápice de flexibilidad.

Pág.36-42©© 27/8/56 09:28 Página 39

Page 40: ¡Hola Mundo! - humansharp.com · Intercambie contenidos en Internet en sus páginas ASP.NET a través de la especi- ... Data Providerpara ADO.NET ofrece, asimismo, ... Curso de Presentaciones

dnm.especial.futuro<<do

tNet

Man

ía<<

40

lita el acceso a la información y recursos de laaplicación en curso, el usuario que la está eje-cutando, el ordenador en el que está ejecután-dose, etc. De esta manera, se reduce la cantidadde código que los programadores que eligen estelenguaje tienen que escribir, mejorando su ren-dimiento. Los elementos principales de esteobjeto son: My.Application, My.Computer,My.Forms, My.User y My.WebServices.

Otras extensiones al lenguaje Visual Basic.NET son la adición de tipos sin signo, la posi-bilidad de definir tipos parciales, sobrecargar ope-radores y la existencia de algunas nuevas ins-trucciones como Continue y Using o el nuevooperador IsNot.

Los cambios al lenguaje C# están documen-tados en la segunda versión de la especificaciónde este lenguaje, hecha pública por Microsoft afinales de octubre pasado y que puede obtenersede http://msdn.microsoft.com/vcsharp/team/language . Además de los tipos genéricos, C# per-mite ahora definir tipos parciales, métodos anó-nimos y simplifica la implementación de tiposcon iteradores.

En cuanto a C++, posiblemente lo más inte-resante sea la inclusión de la sintaxis C++/CLIpara escribir código .NET, sintaxis actualmenteen fase de estandarización por parte del ECMAy que sustituirá a la extensión __gc para designarclases .NET que, no obstante, seguirá estandodisponible. El objetivo es contar con una sinta-xis estándar, basada en modificadores como refy operadores específicos, para operar desde C++con clases .NET. También es destacable la inclu-sión de un compilador Visual C++ .NET de 64bits, una nueva versión de la STL y la posibili-dad de crear aplicaciones para dispositivos móvi-les en C++ nativo.

Visual Studio .NET Whidbey

Tanto los servicios de la BCL como las posi-bilidades de cada lenguaje en particular tienensu reflejo directo en el entorno de trabajo, elIDE de VS.NET, más adaptable y productivoque en cualquier otra versión previa. Hemos deapuntar, no obstante, que trabajamos con unaversión alpha de dicho entorno, que ni siquie-ra una beta, por lo que es de esperar que en la

versión definitiva encontremos incluso másposibilidades.

Algunas de las ventanas de este nuevo IDE seaplican por igual a varios o todos los lenguajes.Podemos, por ejemplo, arrastrar una tabla desdeel explorador de servidores hasta un formulario yobtener una interfaz completamente funcional,indistintamente de que trabajemos con C# oVB.NET. Además de incluir en el contenedor

todos los objetos necesarios, el entorno muestraunas etiquetas inteligentes que facilitan el accesoinmediato a las funciones más habituales. En lafigura 3, por ejemplo, se aprecia la interfaz pro-ducida al arrastrar a un formulario Windows latabla Employees de la base de datos Northwind,así como el menú adjunto a la etiqueta inteligen-te con opciones que permiten añadir un formu-lario de detalle o modificar los parámetros de éste.

Figura 3. Interfaz de acceso a datos generadamediante arrastrar y soltar

Figura 4. Las etiquetas inteligentes en el editor de VB.NET simplifican

la corrección de errores

Pág.36-42©© 27/8/56 09:28 Página 40

Page 41: ¡Hola Mundo! - humansharp.com · Intercambie contenidos en Internet en sus páginas ASP.NET a través de la especi- ... Data Providerpara ADO.NET ofrece, asimismo, ... Curso de Presentaciones

dnm.especial.futuro<<

La idea de las etiquetas inteli-gentes, tomada de Microsoft Office,se aplica en otros contextos. El edi-tor de VB.NET, por ejemplo, vaanalizando el código a medida quelo editamos y, en caso de detectar unerror, subraya como lo haría Wordal encontrar un fallo ortográfico. Lomás interesante es que al situar elpuntero sobre ese error, como se hahecho en la figura 4, el editor nosofrece una serie de correcciones.

También se ha mejorado la infor-mación ofrecida por el depuradorcuando la ejecución se detiene poralguna excepción, como puede serla imposibilidad de abrir un archi-vo, ofreciéndose posibles solucionesy acciones inmediatas que son acce-sibles en forma de enlaces. La figu-ra 5, por ejemplo, corresponde alglobo informativo que aparece cuan-do intenta abrirse un archivo y ésteno existe.

El editor de VB.NET tiende aahorrar la mayor cantidad de escri-tura de código posible, incorporan-do elementos como una opción delmenú contextual que da acceso a frag-mentos de código prefabricados yagrupados por categorías (véase figu-ra 6). Estos esqueletos de códigogenérico cuentan, además, con ele-mentos que deben sustituirse manual-mente para ser adecuados a cadanecesidad particular, elementos que

aparecen con un fondo distinto y alos que puede accederse de manerasecuencial mediante el tabulador. Enla figura 7, por ejemplo, puede ver-se que hay dos parámetros de estetipo en un fragmento de códigorecién insertado: el nombre de lavariable y el nombre del archivo aleer.

En contraposición al de VB.NET,el editor de código C# no nos ofre-ce fragmentos de código sino fun-ciones de refactoring que muchosechábamos en falta. Podemos selec-cionar un grupo de sentencias y gene-rar un método a partir de ellas,encapsular el acceso a una variable,cambiar el nombre de un miembro,etc., todo ello lógicamente propa-gando la modificación al nivel delproyecto. De esta forma es más fácilir mejorando el código a medidaque se edita y trabaja en él, incorpo-rando algunas de las ideas de XP(Extreme Programming).

Además de a los editores, tam-bién se han añadido otras posibili-dades a los diseñadores Web y al pro-pio entorno en sí mismo. Los archi-vos se guardan automáticamentecada pocos minutos, pudiendo serrecuperados en caso de una caída delsistema. Podemos copiar y pegar laayuda sobre parámetros que apare-ce normalmente en una etiqueta flo-tante, así como establecer marcas y

Figura 5. Globo informativo con ayuda sobre una excepción

Figura 6. El editor de VB.NET facilita el acceso a fragmentos de códigosprefabricados

Figura 7. Los esqueletos de código cuentan con elementos que debemos sustituir

Figura 8. El editor de C# dispone de opciones de refactoring

dotN

etM

anía

<<

41

Pág.36-42©© 27/8/56 09:28 Página 41

Page 42: ¡Hola Mundo! - humansharp.com · Intercambie contenidos en Internet en sus páginas ASP.NET a través de la especi- ... Data Providerpara ADO.NET ofrece, asimismo, ... Curso de Presentaciones

dnm.especial.futuro<<do

tNet

Man

ía<<

42

ver rápidamente dónde hemos introducido cam-bios gracias a las líneas de revisión.

Si trabajamos con VB.NET, durante la depu-ración podemos introducir modificaciones en elcódigo y continuar con la ejecución sin necesi-dad de reiniciarla. Esta característica, descrita alinicio del artículo, está implementada en el núcleode la plataforma, pero, por ahora, tan sólo se haaprovechado con Visual Basic.

El anclaje de las distintas ventanas que com-ponen el entorno resulta ahora más sencillo. Alarrastrar una ventana aparecen una serie de ele-mentos semitransparentes que nos indican el pun-to en el que hemos soltar para anclar en ese mar-gen, al tiempo que en la línea de estado obtene-mos indicaciones adicionales.

Diseño de servicios Web

¿Cómo es posible que en un artículo sobreMicrosoft .NET no haya aparecido aún el tér-mino servicio Web? No es que me haya olvidadode esta parte, que lógicamente sigue estando pre-sente en VS.NET Whidbey, sino que la he deja-do para el final sencillamente porque aún es difí-cil evaluar las novedades dado que no se encuen-tran disponibles en la versión alpha que Microsoftha distribuido.

No obstante, según la información facilitadapor el equipo de ASP.NET la versión Whidbeyelevará el desarrollo de servicios Web al nivel deRAD, facilitando herramientas de diseño tipo

SOA (Service Oriented Applications). Este diseña-dor definirá, mediante el uso de diagramas, laestructura lógica de los datos y sus interaccionescon los componentes, siendo capaz de generarinterfaces y clases, así como de efectuar ingenie-ría inversa sobre el código ya existente.

Hay que destacar que estos diseñadores queaparecerán en VS.NET Whidbey son totalmen-te independientes de Visio, un producto queseguiría manteniéndose como opción para inge-nieros del software.

Resumiendo

A pesar de que, como ya he comentado, nosencontramos ante una versión muy preliminarde lo que serán la plataforma .NET y VS.NETWhidbey, podemos afirmar sin dudarlo que se tra-tará de una revisión realmente importante, muchomás de lo que fue Everett. La integración conYukon, las mejoras en el desarrollo para disposi-tivos móviles o la posibilidad de crear aplicacio-nes para Office harán de este producto la herra-mienta de desarrollo universal.

Si contamos con la versión preliminar deLonghorn y el correspondiente SDK, VS.NETWhidbey también nos servirá como avanzadillapara ir conociendo lo que nos ofrecerá Orcas, elsucesor de Whidbey y que estará capacitado paraaprovechar el nuevo WinFX al completo: Avalon,Indigo y WinFS. Como se aprecia en la figura10, la integración del SDK con Whidbey nospermite ir ya abriendo boca.

Figura 9. Elementos visuales que facilitan el anclaje de las ventanas

Figura 10. El SDK de Longhorn añadenuevos tipos de proyecto a VS.NET

Whidbey

Pág.36-42©© 27/8/56 09:28 Página 42

Page 43: ¡Hola Mundo! - humansharp.com · Intercambie contenidos en Internet en sus páginas ASP.NET a través de la especi- ... Data Providerpara ADO.NET ofrece, asimismo, ... Curso de Presentaciones

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 por 75€ para el resto de Europa; o por 90€ para el resto del mundo (IVA incluido). 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. Aporto fotocopia del carné de estudiante o sello del centro académico (IMPRESCINDIBLE). La suscripción se entiende a partir del número actual.

IMPORTES VALIDOS HASTA NUEVA OFERTA (28-3-2004/PDF) DATOS DE ENVIO

CIF/NIF Empresa Nombre y apellidosDirección PoblaciónCódigo Postal ProvinciaTeléfono 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 EmpresaNombre y apellidosDirección Población Código Postal Provincia Teléfono Fax email

FORMA DE PAGO

Talón nominativo a nombre NETALIA, S. L. Giro postal a nombre NETALIA, S. L. Transferencia bancaria a nombre de NETALIA, S. L. a:

La Caixa, número de cuenta 2100 4315 48 2200014696 (Indique su nombre en la transferencia)

Domiciliación Bancaria Indique su número de cuenta:

Tarjeta de crédito VISA MASTERCARD AMERICAN EXPRESS Número de su tarjeta: Fecha de caducidad: / (Imprescindible)

Firma y sello

dotNetManía

a de de

Usted autoriza a la mecanización de estos datos. El responsable y destinatario de éstos es Netalia, S. L. Usted tiene derecho a acceder a sus datos, modificarlos y cancelarlos cuando lo desee. 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, S. L. 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 [email protected], o al fax (34) 91 499 13 64. También puede enviarlo por correo postal a la siguiente dirección:

C/ Robledal, 135 28529 - Rivas Vaciamadrid Madrid (España)
Page 44: ¡Hola Mundo! - humansharp.com · Intercambie contenidos en Internet en sus páginas ASP.NET a través de la especi- ... Data Providerpara ADO.NET ofrece, asimismo, ... Curso de Presentaciones

dotN

etM

anía

<<

44

preguntándonos en qué consiste laOrientación a Objetos en el desarrollo de softwa-re. Pues bien, lo primero es decir que estas téc-nicas suponen una nueva forma de pensar, y nodigo “nuevas” porque acaben de llegar, pues suscomienzos datan de los 70, sino porque supo-nen un cambio en los hábitos de trabajo demuchos desarrolladores, que durante este tiem-po han seguido trabajando siguiendo el para-digma funcional. Pero ¿qué diferencia a estasdos formas de pensar? En realidad es sencillo.El punto de vista funcional ve el software comoun sistema que proporciona una o varias fun-ciones al usuario; los programas son módulos decódigo que interactúan usando datos para llevara cabo un fin. Por el contrario, desde el puntode vista orientado a objeto, el software se orga-niza como una colección de objetos que contie-

nen tanto estructuras de datos como comporta-mientos, los programas son, por tanto, una seriede objetos interaccionando entre sí, enviando yrecibiendo mensajes (cada uno de esos objetostendrá una parte de datos y una funcional quedeterminará su comportamiento).

Bueno, todo esto está muy bien desde el pun-to de vista teórico, pero ¿qué supone para el pro-gramador? Pues supone darle un mayor énfasisa las estructuras de datos que manejamos ennuestros programas, ya que éstas soportanmucho mejor las variaciones en los requisitosque la funcionalidad que las rodea.

Poniendo un ejemplo: Si nos enfrentáramoscon la tarea de desarrollar un pequeño progra-ma para gestionar la información relativa a unosalumnos, sus profesores, etc.:

• Desde un punto de vista funcional, empezare-mos dividiendo el trabajo creando módu-los que se encargan de “grabar”, “modifi-car”, “borrar”, “mostrar”… datos. Haremosdiagramas de flujos para representar estasfunciones y en definitiva agruparemos lasfuncionalidades para ir creando subpro-

En este artículo vamos a intentar intro-ducir el paradigma de la orientación a obje-to, distinguiendo entre lo que es la pro-gramación, el desarrollo o el modeladoorientado a objeto. Vamos a hacer unrecorrido a través de las diferentes meto-dologías basadas en objetos (OMT, UML,Métrica v3…) y los lenguajes de progra-mación que implementan éstos concep-tos (C++, C#,VB.Net, Eiffel…).Y final-mente nos pararemos a hacer una prime-ra aproximación al Lenguaje Unificado deModelado (UML).

Orientación a Objeto. Modelos en UML

Por Juan TorresAntigotowww.indesia.com/AniGoto

Comencemos <<

El punto de vista funcional ve el software como un sistema que proporciona una o varias

funciones al usuario…

Pág.44-50 27/8/56 09:46 Página 44

Page 45: ¡Hola Mundo! - humansharp.com · Intercambie contenidos en Internet en sus páginas ASP.NET a través de la especi- ... Data Providerpara ADO.NET ofrece, asimismo, ... Curso de Presentaciones

dotN

etM

anía

<<

45

dnm.arquitectura.uml<<

gramas. Vemos cómo lo que más nos impor-tará son los verbos del enunciado de losrequisitos para transformarlos en trozos decódigo (algoritmos).

• Desde un punto de vista orientado a obje-to, empezaremos estudiando los objetos queaparecen en nuestro problema. En estecaso, el objeto “alumno”, el objeto “profe-sor”, “asignatura”… y viendo la forma enque éstos interactúan y se relacionan.Usaremos diagramas de objetos para repre-sentarlo todo y las funciones apareceráncomo el comportamiento o interrelaciónde dichos objetos. Lo que más nos impor-tarán serán los sustantivos del enunciadode los requisitos.

Diferencias entre programación,desarrollo y modelado orientados a objetos

Después de haber intentado diferenciar ambasformas de pensar, debemos estudiar las diferen-cias entre programación, metodologías, desa-rrollo y modelado orientados a objeto. Todosestos temas se refieren en realidad a lo mismo,pero vistos desde diferentes enfoques o puntosde vista. El adjetivo “Orientado a Objeto” se colo-ca a cualquier actividad relacionada con el desa-rrollo de software que siga el punto de vista antesmencionado. El tema más conocido es la Pro-gramación Orientada a Objeto, que consiste en eluso y creación de lenguajes de programación queimplementen herramientas que permitan codi-ficar los programas manteniendo esta filosofía.Lógicamente, el ciclo de vida del software se com-pone de muchas más etapas, y en todas ellaspodríamos usar esta forma de pensar. Por lo quetambién podemos hablar de Análisis Orientado aObjeto, Diseño Orientado a Objeto, etc. Sólo cuan-do utilicemos esta filosofía durante todas las fasespodremos hablar de Desarrollo Orientado a Objeto.Cuando hablamos de metodologías orientadas aobjeto nos referimos a las reglas, técnicas, dia-gramas, etc., descritos por diferentes autores, yque nos permiten llevar a cabo ordenadamentenuestro trabajo; siempre desde esta forma de pen-sar y trabajar. Y por último, el Modelado Orientado

a Objetos. Para entender su significado debemosentender qué es Modelar. Según la Real Academiade la Lengua Española, un modelo es “un esque-ma teórico de una realidad compleja, que se elaborapara facilitar su comprensión y el estudio de su com-portamiento”. Por tanto, modelar quiere decirdiseñar esos esquemas teóricos para facilitarnosla comprensión del entorno de nuestro problema,si además seguimos la filosofía antes descrita esta-remos llevando acabo un Modelado Orientado aObjeto (por hacer un símil, modelar es realizar losplanos de un edificio antes de enfrentarnos a suconstrucción).

En este artículo vamos a referirnos siempre aorientación a objeto en general, aunque de lo quemás vamos a hablar es de metodologías de mode-lado orientado a objeto que podamos usar parallevar a cabo un desarrollo completamente orien-tado a objeto.

Metodologías Orientadas a Objeto

Han sido muchos los autores que han pro-fundizado en la orientación a objeto. Creandoreglas, técnicas, diagramas, etc., que facilitan engran medida la tarea de modelar. De la recopi-lación y organización de éstas han surgido dife-rentes metodologías a lo largo de estos años(desde los 80). Podemos nombrar muchas comola Object Modeling Technique (OMT, Técnica deModelado a Objeto), la OMT-2, el métodoObject Oriented Software Engineering (OOSE,método de ingeniería del software orientado aobjeto) o el Unified Modeling Language (UML,Lenguaje Unificado de Modelado). De autorescomo James Rumbaugh, Grady Booch, IvarJacobson entre otros. Todas ellas son útiles ala hora de enfrentarse con un desarrollo, aun-que lógicamente las hay más y menos popula-res. La popularidad no siempre quiere decirmayor calidad, pero en este caso supone un valorañadido. Y digo esto porque el ser más conoci-da y por lo tanto usada entre la comunidad dedesarrolladores (analistas, programadores, etc.)supone que la documentación generada es másconvencional (se atiene a las normas mayorita-riamente observadas) y porque además encon-traremos más personal para continuar o parti-cipar en ellos fácilmente.

Pág.44-50 27/8/56 09:46 Página 45

Page 46: ¡Hola Mundo! - humansharp.com · Intercambie contenidos en Internet en sus páginas ASP.NET a través de la especi- ... Data Providerpara ADO.NET ofrece, asimismo, ... Curso de Presentaciones

De entre ellas y hasta hace muypoco tiempo se consideraba que laOMT (de James Rumbaugh) erala más utilizada en el mundo profe-sional y universitario. Pero a media-dos de los 90 los tres autores de losmétodos con mayor aceptación(James Rumbaugh, Grady Booche Ivar Jacobson) se encuentran enla compañía Rational SoftwareCorporation, y empiezan a traba-jar en la reunificación de dichosmétodos. De esta tarea surge la pri-mera versión del Lenguaje Unificadode Modelado (UML). Dicho métodoha sido aceptado por la ObjectManagement Group (OMG, es unconsorcio sin ánimo de lucro queproduce y mantiene especificacio-nes, y está formado por la mayorparte de las empresas y organismosinternacionales del sector, consultarhttp://www.omg.org) como están-dar para la definición de un lengua-je y notación de modelado. Por tan-to, parece lógico entender que éstaes la metodología con mayor futurode continuidad y sobre la que inte-resa centrar los esfuerzos formati-vos. Por ello será la que trataremosen mayor medida y cuya notaciónusaremos para los diagramas o figu-ras de este artículo.

Cabe hacer un inciso en estepunto para destacar que para el sec-tor de la Ingeniería y el Desarrollodel Software en España, este repa-so metodológico quedaría incom-pleto si no mencionáramos aMétrica. Métrica es un métododesarrollado por el Consejo Su-perior de Informática del Ministeriode Administraciones Públicas(http://www.csi.map.es), integradoen el Plan General de Garantía deCalidad aplicable al desarrollo desoftware, que ofrece las pautas detrabajo y documentación a la horade construir sistemas para las dife-

rentes administraciones públicas.Aunque Métrica no es propiamenteuna metodología orientada a obje-to (su versión 2 sólo contemplaba elenfoque funcional) en su versión 3deja a la elección del equipo de tra-bajo el uso de técnicas orientadas aobjeto o no, para llevar a cabo susactividades. Por tanto, podemosusar el Lenguaje Unificado de Mode-lado como notación para dar unenfoque orientado a objeto a losproyectos realizados bajo Métrica.

Lenguajes Orientados a Objeto

Un punto muy importante a lahora de valorar esta nueva forma deadentrarnos en un proyecto de desa-rrollo son las herramientas softwa-re que tenemos a nuestra disposi-ción. Y en este caso es una razónmás para que la orientación a obje-to resulte atractiva, ya que son innu-merables las herramientas CASE,lenguajes, entornos de desarrollo ydemás utilidades, que han ido sur-giendo alrededor de este mundo.

Concretamente vamos a parar-nos a estudiar los lenguajes de pro-gramación más importantes de losconsiderados “Orientados a Objeto”,y las características que debe cum-plir un lenguaje para serlo.

Lo primero es indicar que, aun-que un proyecto haya sido diseñadousando metodologías orientadas aobjeto, el lenguaje de programaciónusado para implementarlo no tieneporqué serlo. Hay mecanismos paracodificar en un lenguaje tradicionaltoda la lógica generada. No obstan-te, usar un lenguaje que venga pro-visto de características orientadas aobjeto nos facilitará notablementela tarea de generar el código. Y digobien “generar” y no “crear” el códi-go, porque tras un buen análisis y

dotN

etM

anía

<<

46

dnm.arquitectura.uml<<

…desde el punto de vistaorientado a objeto,

el software se organizacomo una colección

de objetos que contienen tanto

estructuras de datoscomo comportamiento.

Pág.44-50 27/8/56 09:46 Página 46

Page 47: ¡Hola Mundo! - humansharp.com · Intercambie contenidos en Internet en sus páginas ASP.NET a través de la especi- ... Data Providerpara ADO.NET ofrece, asimismo, ... Curso de Presentaciones

dotN

etM

anía

<<

47

dnm.arquitectura.uml<<

diseño orientado a objeto, gran par-te de las líneas de nuestro programaserán automáticas. Pero ¿qué carac-terísticas debe cumplir un lenguajepara ser considerado un verdaderoLenguaje Orientado a Objeto?

Las características mínimas sonlas siguientes:

• Debe permitir el uso de objetos yclases de objetos. El lenguaje debeproveer una sintaxis para lasclases (como plantillas para cre-ar objetos), que permita agru-par sus datos y funcionalidad,y mecanismos de instanciación(creación) de objetos a partirde éstas.

• Debe permitir la creación de rela-ciones entre los objetos. Existiránmecanismos sencillos que per-mitan plasmar las relacionesentre objetos que aparecen enel análisis.

• Deben existir mecanismos espe-ciales para la herencia entre obje-tos. La herencia consiste en cre-ar jerarquías de clases de obje-tos que conservan las caracte-rísticas de sus predecesores, ydebe ser posible expresarlo.

• Debe disponer de otras carac-terísticas como el Polimorfismo,Encapsulamiento, Bibliotecasde Clases, etc. Cualquier len-guaje puede cumplir uno ovarios de estos requisitos, con loque será más o menos orienta-do a objeto.

Ahora vamos a dar una lista dealgunos lenguajes considerados to-talmente orientados a objeto.

Smalltalk

Este lenguaje se diseñó en losaños 70 en el Palo Alto ReasearchInstitute de Xerox (conocido como

Xerox Parc). Mucha gente lo con-sidera el primer lenguaje orientadoa objeto. Smalltalk no es sólo un len-guaje, sino todo un entorno de desa-rrollo, prácticamente un sistemaoperativo que corre encima de una"máquina virtual". Y todo en suentorno son a su vez objetos quepodemos manejar, reutilizar y exten-der. Se ha usado durante muchosaños sobre máquinas Digital, IBM,etc., y otros muchos lenguajes lo hantomado como modelo.

C++

Este lenguaje fue inventado porBjarne Stroustrup (AT&T BellLaboratories), como una evolucióndel lenguaje C. Debido a la ampliadifusión del C (del que procede), delhecho de no ser un lenguaje propie-tario (eso quiere decir que existen ver-siones que trabajan sobre plataformasdiversas e incluso variantes gratuitas)y del apoyo del sector, se ha conver-tido durante muchos años en el refe-rente en lo que ha ProgramaciónOrientada a Objeto se refiere. Podemoscitar varias versiones comercialescomo Microsoft Visual C++, BorlandC++ Builder, Objetive-C, etc.

Object Pascal

Otro lenguaje surgido de aña-dir características orientadas a ob-

jeto a uno procedimental es elPascal. El producto que más popu-laridad le ha dado ha sido elBorland Delphi, en el que se uniríanun compilador de Object Pascal,una buena librería de clases y unpotente entorno de desarrollo deúltima generación.

Java

Este es uno de los lenguajesorientados a objeto más populares

en la actualidad. Proviene de undesarrollo de la empresa Sun Micro-systems y es un claro sucesor deC++. Se intentó superar las limita-ciones de complejidad y oscuridadque éste tenía, se le dotó de unaimportante biblioteca de clases ytodo ello se unió a una nueva for-ma de trabajar. Java se compila aun código intermedio indepen-diente de la máquina sobre la quecorre, y es una máquina virtual laque se encarga de generar códigopara la plataforma concreta. Estacaracterística le ha dotado de unascapacidades de portabilidad y reu-tilización de código entre platafor-mas inusitadas. Además le hacenperfecto para su uso a través deredes de ordenadores y, por supues-to, de Internet que ha sido sumayor mercado.

class name Ventanasuperclass Objectinstance variablesv1 v2 v3 v4

class methodscrearA: unPunto deAnchura: ancho deAltura: alto

instance methodsanadirCuadradoEn: unPunto deAnchura: ancho deAltura: alto

Fuente 1. Ejemplo de código en SmallTalk

Pág.44-50 27/8/56 09:46 Página 47

Page 48: ¡Hola Mundo! - humansharp.com · Intercambie contenidos en Internet en sus páginas ASP.NET a través de la especi- ... Data Providerpara ADO.NET ofrece, asimismo, ... Curso de Presentaciones

dotN

etM

anía

<<

48

dnm.arquitectura.uml<<

C#

Otro sucesor de C++ recién lle-gado. Se trata del nuevo lenguajediseñado por Microsoft dentro de sunueva tecnología .NET. Ésta estábasada en el uso de una máquina vir-tual al igual que Java, pero llevandoel concepto a una escala superior.Todos los lenguajes .NET se com-pilan al mismo lenguaje intermedio,y el .NET Framework se encarga degenerar el código para cada máqui-na. Por lo tanto supone portabilidadde plataforma y de lenguaje. Ademásde este lenguaje, Microsoft ha mejo-rado su producto más popular,Visual Basic, dotándole de verdade-ra orientación a objeto en su versiónVisual Basic .Net.

Otros lenguajes orientados aobjeto pueden ser Eiffel, Ruby,CLos, etc., aunque tienen menordifusión.

Introducción a UML

El Lenguaje Unificado de Modeladosirve para visualizar, especificar,construir y documentar un proyec-

to de desarrollo de software, sin im-portar el tamaño o tipo concreto deproyecto.

Sirve para visualizar porque susactividades nos crearán un esque-ma mental adecuado del problemaa tratar y de la solución a desarro-llar; permite especificar porque ob-tendrá resultados precisos y com-pletos, no arbitrarios; decimos quesirve para construir porque de susespecificaciones podremos pasarcasi automáticamente (con genera-dores de código en muchos casos)a implementaciones en lenguajesorientados a objeto como C++ oJava; y, a parte de todo esto, los dia-gramas, esquemas, etc. que genera-remos se incorporarán como docu-mentación eficaz de todo el proce-so de desarrollo.

El modelado en UML tiene tresvertientes, el Modelado Estructural,el de Comportamiento y el Ar-

quitectónico. Los tres tienen su im-portancia, aunque dependerá deltipo de proyecto el que uno u otro losea más.

Modelado Estructural

En él estudiaremos los objetos quetienen relevancia para nuestro pro-blema. Éstos serán los conceptosimportantes para nuestro sistema. Porejemplo, para el problema de desa-rrollar un programa para la gestiónde un Centro de Estudios los concep-tos Alumno Antonio, Aula numero 5,Asignatura de Matemáticas, ProfesorDon Javier, Curso Primero, Nota Sus-penso, etc. pueden ser los relevantes.Debemos así mismo agrupar los obje-tos en clases, las cuales definen lascaracterísticas comunes de un grupode objetos.

De acuerdo con el ejemplo ante-rior, podemos agrupar a todos losalumnos dentro de un grupo de ob-jetos o clase (denominada Alumnos,que encierra a todas las característi-cas o propiedades comunes a dichosobjetos). Existirían más clases comoProfesores, Cursos, Asignaturas, etc.Para cada clase debemos identificara todas las características de sus obje-tos y el comportamiento que éstostendrán. Es decir, cada clase llevaconsigo las propiedades (los datos)y los métodos (las funciones) que eseobjeto puede llevar a cabo. Por ejem-plo, los objetos de la clase Profesorespodrían poseer un método Calificarque les permitiera colocar una notapara un Alumno.

using system;

namespace Dotnetmania.OrientacionObjeto.propiedades {

// Clase Alumnoclass Alumno{

// Propiedadesprivate string nombre, apellidos;// Metodos o funciones de comportamientopublic Alumno() {}

public string Nombre {get {

return nombre;}

set {nombre = value;}

}}

Fuente 2. Ejemplo de código en C#

El modelado en UML tiene tres vertientes,

el Modelado Estructural,el de Comportamiento

y el Arquitectónico.

Pág.44-50 27/8/56 09:46 Página 48

Page 49: ¡Hola Mundo! - humansharp.com · Intercambie contenidos en Internet en sus páginas ASP.NET a través de la especi- ... Data Providerpara ADO.NET ofrece, asimismo, ... Curso de Presentaciones

Además de esto, en esta parte delmodelo estudiaremos las relacionesexistentes entre las diferentes clases.Estas relaciones o asociacionesdeterminan el que, por ejemplo, laclase Alumnos esté relacionada conla clase Cursos, lo cual querrá decirque los alumnos están matriculadosen un curso. Y especificaremos esasrelaciones, restringiéndolas y dán-doles mayor semántica. Deberemosdecir si un alumno puede relacio-narse con sólo un curso o con másde uno, si un profesor puede ser a suvez alumno, etc. Tendremos que cla-sificar las relaciones entre objetos ensimples asociaciones, agregacioneso relaciones de herencia (lo cual con-llevará diferencias semánticas signi-ficativas). Una agregación aparececuando un objeto “está compuesto”o “puede descomponerse” en otrosobjetos (un curso puede “estar com-puesto de” asignaturas). Por el con-trario, una relación de herencia (oGeneralización) aparece entre dos omás clases denominadas Padre eHijos, en la cual un hijo es “todo loque es” su padre y algo más. Esoquiere decir que una clase hija poseetodas las propiedades y métodos desu padre, y además las suyas. En elejemplo podría existir una clasePersona, que sería padre de Alumnosy Profesores. Dicha clase tendría lapropiedad Nombre (común a sushijos) pero Alumnos tendría ademáspropiedades como Calificación Final(que no tienen todas las Personas) yProfesor tendría Salario (propiedadque no tienen los Alumnos en el

ejemplo). Por tanto, Profesor yAlumnos son Personas y algo más.

Todo lo anterior lo plasmare-mos en una serie de diagramasusando una notación especial.Concretamente para esta parte delmodelado, al que hemos denomi-nado estructural usaremos Dia-gramas de Clases y Diagramas de Ob-jetos (o de instancias). En el prime-ro de ellos se dibujarán Clases y susrelaciones, y en el segundo Objetos(es decir instancias o ejemplos declases).

Modelado del Comportamiento

Esta es la segunda parte del pro-ceso de modelado UML, en ellaestudiaremos la parte dinámica denuestro sistema, la interacciónentre los objetos. Interactuar esintercambiar mensajes que danlugar al disparo de acciones quealteran el estado (el valor de suspropiedades en un momento deter-minado, por ejemplo, los Profesoresestarán en el estado activo mien-tras tengan asignado un curso) delos objetos y de su entorno. Estu-diaremos esos estados, el paso deuno a otros, la naturaleza de esosmensajes, el orden en que debenser enviados y recibidos, etc.Estudiaremos además la interac-ción de nuestro sistema con elmundo exterior (personas, dispo-

dotN

etM

anía

<<

49

dnm.arquitectura.uml<<

Cuando hablamos de metodologías orientadas a objeto nos referimos a las reglas, técnicas, diagramas, etc.,

que nos permiten llevar a cabo ordenadamente nuestro trabajo.

Pág.44-50 27/8/56 09:46 Página 49

Page 50: ¡Hola Mundo! - humansharp.com · Intercambie contenidos en Internet en sus páginas ASP.NET a través de la especi- ... Data Providerpara ADO.NET ofrece, asimismo, ... Curso de Presentaciones

dotN

etM

anía

<<

50

dnm.arquitectura.uml<<

sitivos hardware, etc. En el ejemplo, nuestrosistema interaccionaría con el Ministerio deEducación para convalidar los programas de lasasignaturas) y la forma en que el sistema seráutilizado (los llamados Casos de Uso; un caso deuso podría ser la forma en que ve nuestro sis-tema un Profesor).

Todo ello se hará diseñando una serie de dia-gramas. En este caso usaremos:

• Diagramas de Casos de Uso. En éste repre-sentaremos a cada una de las formas en quenuestro sistema será usado (casos de uso) ylos actores (entidades externas como perso-nas, hardware u otros sistemas) que inte-ractúan con él.

• Diagramas de Interacción. Sirven para mos-trar el paso de mensajes a través de los obje-tos. Se dividen en Diagramas de Secuencia yde Colaboración. Su diferencia radica en quelos de secuencia hacen hincapié en la orde-nación temporal de los mensajes, es decir,de en qué orden se envían; en cambio los decolaboración se centran en el flujo de con-trol entre objetos.

• Diagramas de Estados. Éstos no son más quela representación en forma de máquinas deestados del cambio en los valores de suspropiedades durante la vida de los objetos.Es decir, representaremos como un estadoa los posibles valores de las propiedades deun objeto en un momento determinado ya través de qué evento podrá pasar a otroestado (dentro de estos diagramas existe uncaso particular, los Diagramas de Actividades,que se centra en un tipo de estados deno-minados estados de actividad).

Modelado Arquitectónico

En esta última parte del modelo estudiaremosla parte física del sistema. Cómo se dividirá enejecutables, bibliotecas, etc., en qué máquinas se

ejecutará, qué archivos usará, etc. Para ello usa-remos dos tipos de diagramas principales:

• Diagramas de Componentes. Lo usaremospara representar la organización de las par-tes o componentes del sistema (en nues-tro ejemplo si usásemos una arquitecturaCliente/Servidor podríamos representarel ejecutable del lado cliente y la base dedatos de servidor con la información delcentro).

• Diagramas de Despliegue. Los usaremos paramostrar los nodos en que trabajan dichoscomponentes (en nuestro caso las máquinasclientes y los servidores).

Para todo el modelado existe una notaciónconcreta, pero UML deja abierta la posibilidadde extender la notación a través de los denomi-nados estereotipos (elementos que no pertenecena la notación pero que hemos añadido para exten-derla) o bien colocando notas aclaratorias. Endeterminadas partes, como la arquitectónica sonmuy utilizados.

<<

Pág.44-50 27/8/56 09:46 Página 50

Page 51: ¡Hola Mundo! - humansharp.com · Intercambie contenidos en Internet en sus páginas ASP.NET a través de la especi- ... Data Providerpara ADO.NET ofrece, asimismo, ... Curso de Presentaciones

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

Page 52: ¡Hola Mundo! - humansharp.com · Intercambie contenidos en Internet en sus páginas ASP.NET a través de la especi- ... Data Providerpara ADO.NET ofrece, asimismo, ... Curso de Presentaciones

aparición de Delphi8 para .NET Framework, creo quea pocos les quedarán dudas ya deque Win32 está tocando a su fin.Ahora tenemos la posibilidad dehacer el cambio hacia el códigogestionado de .NET Frameworktambién con Delphi.

Aún recuerdo los años en losque Delphi competía con VisualBasic para atraer a los cientos demiles de programadores que que-rían migrar desde el viejo DOS aun entorno de desarrollo Windows.Casi todos veíamos en Delphi, allenguaje más estructurado, al mejor,pero también veíamos a Microsoft

como un fabricante más fiable.Rumores corrían por entonces dela posible desaparición de Borland¿Quién se arriesgaría a pasar susdesarrollos a un lenguaje, por bue-no que fuese, cuyo fabricante setambaleaba?

Ahora existe un entorno de pro-gramación a la medida de las nue-vas tecnologías, sin basarse en loantiguo, estructurado, con unaarquitectura irreprochable, conlenguajes igualmente irreprocha-bles, y además, y lo mejor de todo,es que ¡el lenguaje nos da igual!

Aplicaciones VCL Forms

Este es uno de los muchos tiposde aplicaciones que podemos desa-rrollar con Delphi 8 para .NET y,ciertamente, es el tipo de aplica-ción en el que podremos aprove-char al máximo nuestros conoci-mientos y experiencia con Delphi.

Las aplicaciones VCL Formsestán basadas en la VCL.NET, unanueva versión de la VCL desarro-llada principalmente para facilitarla migración de aplicacionesDelphi 7 ó anteriores a la plata-forma .NET.

Aplicaciones Windows Forms

Las aplicaciones WindowsForms están basadas en la biblio-teca de clases y componentes del.NET Framework, lo que repre-senta toda una novedad para losprogramadores de Delphi. Losconocimientos de la VCL servirána medias a la hora de desarrollaraplicaciones Windows Forms. Sinembargo, el lenguaje de progra-mación sigue siendo Delphi.

En las aplicaciones WindowsForms la biblioteca de clases ycomponentes es nueva. Los nom-bres de las clases son nuevos, los

dotN

etM

anía

<<

52

Delphi 8 para Microsoft .NET FrameworkLa evolución hacia la revolución .NET.

Después de la<<

dnm.laboratorio.net<<dnm.laboratotio.net

Con la aparición de Delphi 8 para Microsoft .NET Framework, y después de la apariciónde C# Builder, Borland se convierte en el principal fabricante de herramientas de desa-rrollo para la plataforma .NET

<<

Pág.52-55©© 27/8/56 09:50 Página 52

Page 53: ¡Hola Mundo! - humansharp.com · Intercambie contenidos en Internet en sus páginas ASP.NET a través de la especi- ... Data Providerpara ADO.NET ofrece, asimismo, ... Curso de Presentaciones

dotN

etM

anía

<<

53

dnm.laboratorio.net<<

Anders Hejlsberg es casi un desconocido para la mayoría. Sin embargo,fue ni más ni menos que el creador de Turbo Pascal y Delphi en su épo-ca de 13 años en Borland. Más tarde, ya en Microsoft, fue arquitecto deMS J++ y las Windows Foundation Class y arquitecto principal de .NETFramework, y padre del lenguaje C#.

Ha pasado el tiempo,desde que Anders, crease su Turbo Pascal con elque tantos aprendimos a programar, e incluso hacer nuestros primerospinitos con la programación orientada a objeto. Ha pasado tiempo, ya locreo, y ha resultado ser que se ha convertido en la persona que más hainfluido, de largo, en el desarrollo moderno de los lenguajes de programación. Casi en cualquier cosa conla que trabajamos en la actualidad ha pasado por la cabeza de Anders Hejlsberg.

Este nuevo Delphi viene de lo que el creó hace tiempo, y ahora éste se adapta a .NET Framework don-de él ha sido uno de los arquitectos principales. ¿Habrá tenido algo que ver Anders en que Borland hayasido la primera en sacar su propio C# y haya adaptado su lenguaje más importante tan rápidamente?

Delphi 8 es puro .NET y puro Delphi. Puro Anders Hejlsberg, entonces.

La alargada sombra de Anders Hejlsberg

componentes son nuevos, la jerar-quía de clases es nueva, los nombresde las propiedades, métodos y even-tos son nuevos. En resumen, todoes nuevo. Para desarrollar aplica-ciones Windows Forms tendremosque aprender a utilizar una nuevabiblioteca de clases y componentes.

En las aplicaciones WindowsForms cada formulario está forma-do por un único archivo que con-tiene todo el código fuente, inclu-yendo lo que hacemos visualmenteen tiempo de diseño.

Aplicaciones ASP.NET WebForms

Las aplicaciones ASP.NET WebForms son aplicaciones para servi-dores Web que generan contenidoHTML en respuesta a requeri-mientos HTTP.

El .NET Framework proveecomponentes del lado servidor quegeneran automáticamente conteni-do HTML. Delphi 8 para .NETextiende ASP.NET Web Formsmediante componentes DB Webque simplifican el desarrollo de apli-caciones ASP.NET Web Formsenlazadas a datos.

Pág.52-55©© 27/8/56 09:50 Página 53

Page 54: ¡Hola Mundo! - humansharp.com · Intercambie contenidos en Internet en sus páginas ASP.NET a través de la especi- ... Data Providerpara ADO.NET ofrece, asimismo, ... Curso de Presentaciones

Acceso a datos

Delphi 8 para .NET ofrece un amplio abani-co de posibilidades para acceder a bases de datos.

ADO.NETSoporte completo para ADO.NET, permi-

tiendo utilizar todos los componentes de accesoa datos de ADO.NET, entre los que se incluyencomponentes para acceso directo a MS SQLServer y Oracle, proveedores OLEDB y ODBC.

Borland Data ProvidersDelphi 8 para .NET soporta el uso de

ADO.NET y lo extiende a través de los com-ponentes Borland Data Providers (BDP). Loscomponentes BDP proveen una arquitectura dealto rendimiento y un modelo de programaciónunificado para acceder a distintas bases de datos.Su arquitectura abierta permite añadir fácil-mente soporte para otras bases de datos.

Los componentes BDP incluidos en Delphi8 para .NET permiten acceder a las siguientesbases de datos: MS SQL Server, MS Access,InterBase, DB2 y Oracle.

VCL.NETLa VCL.NET permite acceder a bases de datos

a través de los componentes basados en BDE,dbExpress e InterBase Express, extendiendo lasposibilidades de acceso a datos desde una aplica-ción .NET y facilitando la migración de aplica-ciones Delphi 7 o anteriores.

Aplicaciones ECO Windows Forms

La unión de las herramientas de Together yBold dieron como resultado ECO (EnterpriseCore Objects). ECO es un marco de trabajo detiempo de diseño y de tiempo de ejecución queestá disponible en la edición Architect de Delphi8 para .NET.

En las aplicaciones ECO Windows Forms el cen-tro es el modelo de la aplicación. ECO adhiere a lametodología MDA (Model Driven Architecture) dela OMG (Object Management Group), organiza-ción de la cual Borland es un miembro activo.

En tiempo de diseño ECO provee:• Herramientas de diseño UML para crear

gráfica y visualmente el modelo de la apli-cación, el centro de las aplicaciones ECO.

• Componentes para trabajar con objetos yconjuntos de objetos mediante OCL y paraenlazarlos con los componentes visualeshabituales.

• Componentes para manejar la persistenciade los objetos en archivos XML o en basesde datos relacionales y para generar el esque-ma de la base de datos y permitir su evolu-ción a la par de la evolución del modelo.

En tiempo de ejecución ECO provee:• La infraestructura necesaria para obtener

colecciones de objetos, crear instancias y acce-der al mecanismo de persistencia.

Arquitectura de los servicios ECO

Las herramientas de modelado están perfec-tamente integradas en el entorno de desarrolloy están basadas en las herramientas de Together.Estas herramientas cumplen con el estándarUML (Unified Modeling Language).

El Diseñador UML de ECO

ECO permite el intercambio de informacióncon aplicaciones externas ya que permite impor-tar y exportar modelos en formato XMI.

Visualización de código

La edición Enterprise incluye una herra-mienta de modelado que permite visualizar el

dotN

etM

anía

<<

54

dnm.laboratorio.net<<

Pág.52-55©© 27/8/56 09:50 Página 54

Page 55: ¡Hola Mundo! - humansharp.com · Intercambie contenidos en Internet en sus páginas ASP.NET a través de la especi- ... Data Providerpara ADO.NET ofrece, asimismo, ... Curso de Presentaciones

noticias.noticias.noticias.noticias

diagrama de clases del código fuen-te del proyecto. Este diagrama esestático y no puede ser modificado.

Delphi 8 para .NET y ALM

Delphi 8 para .NET se integraperfectamente con el conjunto deherramientas que forman parte dela estrategia ALM (ApplicationLifecycle Management) de Borland.

Los productos ALM permitenque los administradores, diseñado-res, desarrolladores, responsables delas implementaciones y responsablesde las pruebas estén conectados entiempo real, sin importar su locali-zación, mejorando la productividady acelerando todas las etapas del pro-ceso de desarrollo de software.

Productos ALM

• Definición: Acceso a CaliberRMdesde el IDE.

• Diseño: Herramientas de mo-delado UML integradas.

• Desarrollo: Delphi 8 para.NET.

• Optimización: Integración conOptimizeIt Profiler para .NET.

• Despliegue: InstallShield Express,InterBase 7.1, Janeva.

• Administración: Acceso a Star-Team desde el IDE.

Resumen

Delphi 8 para .NET es una herra-mienta de desarrollo para la creaciónde aplicaciones .NET que permite a

los programadores Delphi dar un pasoadelante hacia la plataforma .NET sinabandonar sus desarrollos actuales, asícomo aprovechar las ventajas de laplataforma .NET y al mismo tiempola extiende con la VCL.NET, ECOy la integración con las herramientasALM de Borland.

Este artículo ha sido elaborado con lacolaboración de Borland Ibérica y

Danysoft. Para más información con-sulte en http://www.borland.es y en

http://www.danysoft.com.

dotN

etM

anía

<<

55

dnm.laboratorio.net<<

• Búsqueda Natural: Añade fácilmen-te capacidades de búsqueda en“Lenguaje Natural”.

• Utilidad Modular TOC: Automá-ticamente rellena todos los ficherosdel sistema de Ayuda con una tablade contenidos con enlace totalmen-te funcional.

• Editor de Mapa de Imagen: Rápida-mente edita las imágenes insertadas yañades enlaces a los temas específicosen el fichero de Ayuda.

• Diseñador de Temas: Permite uncontrol completo para construirtemas y permite la personalizaciónsencilla para ajustar la apariencia yforma de trabajo.

• Editor de Cadenas de Contexto:Define cadenas de contexto paraMicrosoft Help 2.0 y las conectaconvenientemente a los temas de laAyuda.

Nuevo en ComponentOne StudioEnterprise 2004 v1• ComponentOne VSFlexGrid Pro 8:

Con más de 15 nuevas funcionesincluyendo nuevos métodos para elsoporte del portapapeles, propieda-des para personalizar imágenes ymucho más.

• Nuevas funciones en los productos.NET y ASP .NET: Los menús y

barras de herramientas para .NETahora soportan el aspecto y formade trabajar de Microsoft Office2003; nuevo componente PDFpara .NET; la visión previa para.NET ahora soporta hiperenlacesy anclajes; el Spell para .NETincluye soporte para chequeo decorrecciones personalizado y dic-cionarios personalizados; el

WebSpell IDE para ASP .NETincluye un botón “Cambiar Todo”;el WebGrid para ASP .NET per-mite controlar sobre el lado clien-te los agrupamientos para colum-nas, y mucho más.

Para más información visitewww.danyshop.com o contactecon [email protected]

El Grupo Danysoft anuncia las ediciones Standard y Profesionalde ComponentOne Doc-To-Help 7.La nueva edición Profesional añade 5 nuevas funciones y un servicio de suscripción de un año.

El Grupo Danysoft anuncia Componentone Studio Enterprise 2004 v1.Esta nueva versión añade PDF para .NET, y más de 60 nuevas funcionalidades y mejoras.

Pág.52-55©© 27/8/56 09:50 Página 55

Page 56: ¡Hola Mundo! - humansharp.com · Intercambie contenidos en Internet en sus páginas ASP.NET a través de la especi- ... Data Providerpara ADO.NET ofrece, asimismo, ... Curso de Presentaciones

<<

Desde este primer número vamos a formar una biblioteca con los libros .NET que más nos gustan.No es una sección de evaluación de libros al uso, no vamos a criticar los libros que no nos gustan,ni tienen porqué estar los más nuevos. Queremos ir agrupando los libros que recomendamos demanera que cada libro que se publica en esta sección tendrá la categoría de libro recomendado pordotNetManía. En este primer número hemos querido recomendar un par de libros de colaborado-res de esta revista,por lo que quizás no hayamos sido muy imparciales,pero como también nos gus-tan, ¡qué mejor que empezar nuestra biblioteca virtual con ellos!

Programación con ASP.NETJorge Serrano

Editorial: Anaya MultimediaAutor: Jorge Serrano PérezNº de páginas: 960Tamaño: 17,5 x 22,5 cmReferencia: 2318042ISBN: 84-415-1342-2Precio orientativo: 48 6Pubicación: Febre4o 2002

En este libro de casi 1000 páginas y de carác-ter teórico-práctico, aprenderemos a introdu-cirnos en la programación de aplicaciones webcon ASP.NET. Se trata de un libro que en sín-tesis general, nos introduce a la historia des-de ASP hasta ASP.NET, explicándonos las par-tes generales de los lenguajes C#, Visual Basic.NET y JScript.NET de .NET, y enseñándo-nos a usar Visual Studio .NET como herra-

mienta de desarrollo repasando todos y cadauno de los controles de ASP.NET para el desa-rrollo de aplicaciones web.

El libro además, nos muestra como acce-der a fuentes de datos Microsoft Access,Microsoft SQL Server y MySql. Además, hayun capítulo específico para enseñarnos a cre-ar y explotar nuestros propios Servicios WebXML. El libro está acompañado de un CD-ROM con los ejemplos que se muestran en ellibro.

Se trata de un libro con un índice bastan-te completo y que quizás asuste por su tama-ño, pero que a mi modo de ver, puede con-vertirse en un libro de referencia y aprendi-zaje muy completo.

Jorge Serrano es una de las personas con máspresencia en la comunidad de desarrolla-dores de España y webmaster de una delas mejores páginas de Visual Basic en cas-tellano, portalVB ().

Visual Basic.NET.Manual imprescindibleGuillermo ‘guille’ Som

Editorial: Anaya MultimediaAutor: Guillermo ‘guille’ SomNº de páginas: 480Tamaño: 17,50x22,50Referencia: 2311110ISBN: 84-415-1394-5Precio orientativo: 20,80Publicación: Agosto/2002

Este libro, que como su nombre indica es“imprescindible”, nos informa de las noveda-des que tiene la nueva versión de Visual Basicy nos explica de forma clara todo lo relacio-nado a una de esas novedades que hacen deVisual Basic .NET un lenguaje de programa-ción de los de verdad: La herencia.

El libro está enfocado principalmente alque se quiere iniciar en la programación conVisual Basic .NET. Para los que son nuevosen la programación, dedica los tres primeroscapítulos para explicar los conceptos básicosde la sintaxis de VB .NET, desde cómo crearuna variable hasta cómo hacer un bucle For.Para los que ya tienen experiencia en la pro-

gramación con alguna versión anterior deVisual Basic, a partir del capítulo sexto se enfo-ca en todo lo relacionado con la programa-ción orientada a objetos, dedicándole a estetema nueve de los veinte capítulos del libro.

Un libro, que como dije al principio, hayque tener en nuestra librería, pero que es unalástima que no haya abordado temas como laprogramación Web o el acceso a bases dedatos. Preguntando al autor el porqué de esascarencias, me respondió que además de queel número de páginas del libro estaba restrin-gido, “preferí tratar a fondo todo lo relacionadocon la programación orientada a objetos, ya queconsidero que es mucho más importante para elque quiere programar con .NET Framework quededicar unos cuantos capítulos a poner ejemplossimples que al final no ayudarían al que realmentequiere aprender”.

Esperemos que tenga oportunidad deescribir una segunda parte sobre esos temasque se quedaron en el tintero y que estén tanbien explicados como los temas que abordaen el libro.

Guillermo ‘guille’ Som es un auténtico pio-nero de la publicación de contenidos téc-nicos en Internet en España. Acaba de abrirsu nuevo local en htpp://www.elguille,info

dotN

etM

anía

<<

56

dnm.biblioteca.net<<dnm.biblioteca.net

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

Page 57: ¡Hola Mundo! - humansharp.com · Intercambie contenidos en Internet en sus páginas ASP.NET a través de la especi- ... Data Providerpara ADO.NET ofrece, asimismo, ... Curso de Presentaciones

Golem Project surge como una plataforma de soporte a sociedadesvirtuales, pensada para que la comunidad universitaria, y en particu-lar los estudiantes, puedan compartir y evaluar piezas de software enun entorno que combina el ocio y el aprendizaje mediante el uso deuna revolucionaria técnica,denominada Sociedad Híbrida, que cons-tituye una nueva forma de comunidad virtual. En Golem Project lacalidad de una pieza de software es función solamente del interés quedespierte en los participantes de la Sociedad.

dotN

etM

anía

<<

57

dnm.comunidades.net<<dnm.comunidades.net

Golem Project (… weblog en marcha)

nace a partir de una iniciativa conjun-ta de Microsoft y el Creative Computer Group(CCG) del laboratorio de Redes de NeuronasArtificiales y Sistemas Adaptativos (RNASA) dela Universidade da Coruña, con el objetivo deacercar la tecnología .Net y los Servicios Web atoda la comunidad universitaria, proporcionan-do un foro en el que compartir y divulgar cono-cimientos y dudas acerca de éstos y otros temas.

Golem Project es un entorno virtual en el quelos estudiantes podrán participar en un juego yaprender e intercambiar conocimientos a un mis-mo tiempo. Apoyándose en el paradigma de laSociedad Híbrida (http://www.hybridsociety.net)y en las tecnologías Microsoft .Net para la creaciónde Servicios Web, este proyecto pretende crear unespacio común en el que todos los participantespodrán exponer sus creaciones software y probar,evaluar y criticar las de los demás.

Dentro de las iniciativas que forman parte deGolem Project se ha puesto ya en marcha el sitiohttp://weblogs.golemproject.com, que aglu-tina un conjunto de weblogs que crece día a díay entre los que se encuentran algunos tan inte-resantes como el weblog del equipo de MSDN

en castellano, el de INETA, y el de muchosMVPs y destacados profesionales de las tecno-logías Microsoft. Gracias a sus weblogs podráncompartir con nosotros información acerca desus proyectos, sus inquietudes, sus opiniones, etc.

Golem Project está en fase de construcción,pero ya es posible colaborar con el equipo dedesarrollo a través del correo electrónico([email protected]) o del formulario de colabora-ción de la página Web (http://www.golem-project.com), y ya se puede comenzar a cons-truir Servicios Web para jugar. Cualquier suge-rencia, comentario, duda o aportación será bien-venida y tenida en cuenta.

<<Golem Project

Juan Jesús Romero Cardalda, es profesor en elDepartamento de Tecnologías de la Información ylas Comunicaciones de la Universidade da Coruña([email protected])

Iván González Vilaboa, es investigador en el RNA-SA Lab // GIB del Departamento de Tecnologíasde la Información y las Comunicaciones de laUniversidade da Coruña ([email protected])

Pág.57 27/8/56 09:57 Página 57

Page 58: ¡Hola Mundo! - humansharp.com · Intercambie contenidos en Internet en sus páginas ASP.NET a través de la especi- ... Data Providerpara ADO.NET ofrece, asimismo, ... Curso de Presentaciones

dotN

etM

anía

<<

58

Importantes avances hacia la computación cuánticaCientíficos de la Universidad de Harvard, han conseguido dar un importante paso hacia la computacióncuántica al conseguir "parar" un pulso luminoso sin pérdida apreciable de energía y hacer que reanudarasu trayectoria un instante después, lo que podría tener importantes consecuencias en el desarrollo de orde-nadores basados en la Mecánica Cuántica. Para más información, ver el artículo de Rick Callahan, Scientistsfreeze pulse of light, for an instant (http://www.signonsandiego.com/news/science/20031209-2349-frozen-light.html). Este logro viene a completar pasos anteriores como el publicado en la revista Nature (Solid stopslight) (http://www.nature.com/nsu/020107/020107-2.html), en el que se conseguía la detención utilizandocristales especiales.

El autor de Tetris, trabaja en el divisiónde juegos de Microsoft. Alexey Pajitnov,padre del popular juego Tetris, trabajaahora en la Microsoft Games Division.Según parece está trabajando en la actua-lidad en su segunda versión de la Caja dePandora.

¿Piensa Microsoft comprar AMD?

El sitio OS-News nos lo cuenta, en su editorial de John O’Sullivan:http://www.osnews.com/story.php?news_id=5386

Microsoft, preparado para sacar el Service Pack 2 deWindows XPPara el momento de la publicación de éste primer número dedotNetManía, probablemente Microsoft ya tenga disponiblela beta del siguiente Pack de Windows XP, con mejoras en laseguridad y multimedia, principalmente. Posiblemente en mayoya estará disponible la versión definitiva y se dice que ya inclui-rá algunas caracteríaticas de Longhorn. Para más información,véase el sitio: http://news.com.com/2100-1016-5128984.html

noti

cias

.not

icia

s.no

tici

as.n

otic

ias

Revisión completa de Longhorn por Paul Thurrot:http://www.winsupersite.com/reviews/longhorn_4051.asp

Análisis de las características de XAML (Avalon) por Chris Sells: http://www.sellsbrothers.com/spout/Introducción a WinFS, por Quentin Clark (vídeo): http://www.msdn.microsoft.com/msdntv/episo-de.aspx?xml=episodes/en/20031211WinFSQC/manifest.xmlAnálisis comparativo de los 4 lenguajes principales de .NET, por Prashant Sridharan:http://www.windowsfordevices.com/articles/AT6287100687.html

arículos y vídeos en la red

sitios y recursosBitácoras (WebLogs)

Documentación oficial sobre Longhorn:http://microsoft.com/LonghornHerramientas .NET de todo tipo: http://sharptoolbox.madgeek.comPara programadores y administradores (Shell Extensión City): http://shellcity.net

Don Box (coautor de SOAP y XML-Schemas):http://www.gotdotnet.com/team/dboxDrew Marsh: http://weblogs.asp.net/dmarshBrian Jepson: http://www.jepstone.net/radio/2002/10/10.htmlClemens Vasters (sobre Indigo):http://staff.newtelligence.net/clemensvIngo Rammer (Remoting):http://www.ingorammer.com/Weblog/default.aspxJohn Lam (IUnkown.com): http://www.iunknown.comPeter Drayton (CLR): http://www.razorsoft.net/weblog

dnm.desvan

Por Marino Posadas<<

dnm.desvan

Pág.58 27/8/56 09:57 Página 58

Page 59: ¡Hola Mundo! - humansharp.com · Intercambie contenidos en Internet en sus páginas ASP.NET a través de la especi- ... Data Providerpara ADO.NET ofrece, asimismo, ... Curso de Presentaciones

OptimizetProfilerfor .NET

MirosoftServer 2003

JanevaInterBase

Togetheredition

for .NET

Caliber RM

C#BuilderDelphi

Star Team

Presentación + Demostración en directo de la nueva versión de Delphi.

9:30 Registro y entrega de Documentación10:00 Introducción Delphi 8

Jason Vokes PLSM Borland EMEA

10:45 El nuevo entorno de desarrollo para .NETPablo Reyes. Director Area Formación. Servicios Profesionales Danysoft.

11:45 Café12:15 Características de Delphi 8 para el desarrollo de aplicaciones

basadas en el framework .NET (FLC.NET)Octavio Hernández. Director Area Técnica. Servicios Profesionales Danysoft.

Madrid - 5 de FebreroAuditorio Winterthur.c/ Marqués de Villamagna, 8

Para inscripción gratuita y más información;

www.borland.es

902 344 556

S e m i n a r i oLanzamiento

Delphi 8

Agenda

Con la colaboración de:

Page 60: ¡Hola Mundo! - humansharp.com · Intercambie contenidos en Internet en sus páginas ASP.NET a través de la especi- ... Data Providerpara ADO.NET ofrece, asimismo, ... Curso de Presentaciones

Sí le ayudará aeliminar miles delíneas de código.

No le ayudaráa corregirla postura.

Visual Studio .NET puede ayudarle en (casi) todas las facetas de su trabajo.

Porque Visual Studio .NET está pensado para ayudarle a superar los retos actuales de

la programación, tanto si construye aplicaciones para Windows®, Internet y dispositivos

móviles como para crear servicios Web XML. Para empezar, los simplificados diseñadores

de formularios de Windows, Internet y móviles le permitirán utilizar el mismo modelo de

programación en diferentes plataformas y dispositivos. Con las nuevas herramientas RAD

para el servidor, eliminará miles de líneas de código utilizando la conocida técnica de

“arrastrar-soltar-hacer doble clic para escribir código”. Además, al contar con más de 20

lenguajes, le permite elegir el lenguaje más adecuado para la tarea que está desarrollando.

*Su proveedor de Internet puede cobrarle por el tiempo de conexión.© 2003 Microsoft Corporation. Todos los derechos reservados. Microsoft, el logotipo de .NET, Visual Studio, el logotipo de VisualStudio, y Windows son marcas registradas o marcas comerciales de Microsoft Corporation en Estados Unidos y/o en otros países.

Pruébelo ya mismo: conéctese a una sesión gratuita* en línea con

todos los servicios en http://msdn.microsoft.com/vstudio/tryvs/

•Preparado para hoy.

•Mejor para mañana.

¡¡Pruébelo gratis* en línea!!

DistribuidoresRecomendados:

902 12 31 46http://ms.danysoft.com

902 10 20 55http://www.ramblainf.com

900 97 33 86http://www.sosdevelopers.com/spain

902 11 57 98http://www.visualpr.net